From 97d5c458cfa039d857301e1ca7d5af3beb37131d Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Sun, 26 Apr 2026 16:38:00 -0400 Subject: build: Better Build System --- static/freebsd/man1/1.1 | 28 - static/freebsd/man1/2.1 | 1 - static/freebsd/man1/3.1 | 14 - static/freebsd/man1/4.1 | 47 - static/freebsd/man1/5.1 | 17 - static/freebsd/man1/6.1 | 14 - static/freebsd/man1/7.1 | 15 - static/freebsd/man1/8.1 | 14 - static/freebsd/man1/9.1 | 1 - static/freebsd/man2/1.2 | 14 - static/freebsd/man2/2.2 | 1 - static/freebsd/man2/3.2 | 14 - static/freebsd/man2/4.2 | 54 - static/freebsd/man2/5.2 | 14 - static/freebsd/man2/6.2 | 13 - static/freebsd/man2/7.2 | 32 - static/freebsd/man2/8.2 | 14 - static/freebsd/man2/9.2 | 1 - static/freebsd/man3/1.3 | 28 - static/freebsd/man3/2.3 | 1 - static/freebsd/man3/3.3 | 14 - static/freebsd/man3/4.3 | 56 - static/freebsd/man3/5.3 | 12 - static/freebsd/man3/6.3 | 0 static/freebsd/man3/7.3 | 24 - static/freebsd/man3/8.3 | 14 - static/freebsd/man3/9.3 | 1 - static/freebsd/man4/1.4 | 14 - static/freebsd/man4/2.4 | 1 - static/freebsd/man4/3.4 | 14 - static/freebsd/man4/4.4 | 14 - static/freebsd/man4/5.4 | 14 - static/freebsd/man4/6.4 | 20 - static/freebsd/man4/7.4 | 23 - static/freebsd/man4/8.4 | 14 - static/freebsd/man4/9.4 | 1 - static/freebsd/man5/1.5 | 28 - static/freebsd/man5/2.5 | 0 static/freebsd/man5/4.5 | 1 - static/freebsd/man5/5.5 | 5 - static/freebsd/man5/6.5 | 14 - static/freebsd/man5/7.5 | 14 - static/freebsd/man5/8.5 | 14 - static/freebsd/man5/9.5 | 1 - static/freebsd/man6/1.6 | 28 - static/freebsd/man6/2.6 | 1 - static/freebsd/man6/4.6 | 1 - static/freebsd/man6/5.6 | 5 - static/freebsd/man6/6.6 | 0 static/freebsd/man6/7.6 | 14 - static/freebsd/man6/8.6 | 14 - static/freebsd/man6/9.6 | 1 - static/freebsd/man7/1.7 | 28 - static/freebsd/man7/2.7 | 0 static/freebsd/man7/4.7 | 1 - static/freebsd/man7/5.7 | 6 - static/freebsd/man7/7.7 | 2814 --------------------- static/freebsd/man7/8.7 | 14 - static/freebsd/man7/9.7 | 1 - static/freebsd/man8/1.8 | 28 - static/freebsd/man8/2.8 | 0 static/freebsd/man8/4.8 | 0 static/freebsd/man8/5.8 | 14 - static/freebsd/man8/7.8 | 1 - static/freebsd/man8/8.8 | 14 - static/freebsd/man8/9.8 | 1 - static/freebsd/man9/1.9 | 14 - static/freebsd/man9/2.9 | 1 - static/freebsd/man9/8.9 | 42 - static/freebsd/man9/9.9 | 1 - static/inferno/Makefile | 14 + static/inferno/man1/0intro.1 | 188 ++ static/inferno/man1/9win.1 | 71 + static/inferno/man1/INDEX.1 | 324 +++ static/inferno/man1/Makefile | 3 + static/inferno/man1/acme.1 | 1203 +++++++++ static/inferno/man1/alphabet-abc.1 | 141 ++ static/inferno/man1/alphabet-fs.1 | 425 ++++ static/inferno/man1/alphabet-grid.1 | 141 ++ static/inferno/man1/alphabet-main.1 | 240 ++ static/inferno/man1/ar.1 | 163 ++ static/inferno/man1/asm.1 | 48 + static/inferno/man1/auplay.1 | 120 + static/inferno/man1/avr.1 | 47 + static/inferno/man1/basename.1 | 40 + static/inferno/man1/bind.1 | 283 +++ static/inferno/man1/blur.1 | 74 + static/inferno/man1/brutus.1 | 120 + static/inferno/man1/cal.1 | 46 + static/inferno/man1/calc.1 | 272 ++ static/inferno/man1/calendar.1 | 47 + static/inferno/man1/cat.1 | 49 + static/inferno/man1/cd.1 | 32 + static/inferno/man1/charon.1 | 442 ++++ static/inferno/man1/chgrp.1 | 44 + static/inferno/man1/chmod.1 | 105 + static/inferno/man1/cleanname.1 | 37 + static/inferno/man1/cmp.1 | 50 + static/inferno/man1/collab-clients.1 | 202 ++ static/inferno/man1/collab.1 | 84 + static/inferno/man1/comm.1 | 46 + static/inferno/man1/cook.1 | 97 + static/inferno/man1/cp.1 | 134 + static/inferno/man1/cprof.1 | 222 ++ static/inferno/man1/cpu.1 | 64 + static/inferno/man1/crypt.1 | 98 + static/inferno/man1/date.1 | 55 + static/inferno/man1/dd.1 | 182 ++ static/inferno/man1/deb.1 | 172 ++ static/inferno/man1/diff.1 | 136 + static/inferno/man1/disdep.1 | 68 + static/inferno/man1/dmview.1 | 41 + static/inferno/man1/du.1 | 66 + static/inferno/man1/ebook.1 | 73 + static/inferno/man1/echo.1 | 32 + static/inferno/man1/emu.1 | 285 +++ static/inferno/man1/env.1 | 27 + static/inferno/man1/fc.1 | 183 ++ static/inferno/man1/filename.1 | 61 + static/inferno/man1/fmt.1 | 47 + static/inferno/man1/fortune.1 | 23 + static/inferno/man1/freq.1 | 40 + static/inferno/man1/fs.1 | 449 ++++ static/inferno/man1/ftest.1 | 82 + static/inferno/man1/ftree.1 | 95 + static/inferno/man1/gettar.1 | 86 + static/inferno/man1/grep.1 | 51 + static/inferno/man1/grid-monitor.1 | 86 + static/inferno/man1/grid-ns.1 | 67 + static/inferno/man1/grid-query.1 | 44 + static/inferno/man1/grid-register.1 | 60 + static/inferno/man1/grid-session.1 | 112 + static/inferno/man1/gzip.1 | 69 + static/inferno/man1/idea.1 | 65 + static/inferno/man1/itest.1 | 124 + static/inferno/man1/keyboard.1 | 57 + static/inferno/man1/kill.1 | 72 + static/inferno/man1/limbo.1 | 218 ++ static/inferno/man1/listen.1 | 237 ++ static/inferno/man1/logon.1 | 77 + static/inferno/man1/logwindow.1 | 23 + static/inferno/man1/look.1 | 90 + static/inferno/man1/ls.1 | 173 ++ static/inferno/man1/m4.1 | 291 +++ static/inferno/man1/man.1 | 244 ++ static/inferno/man1/mash-make.1 | 182 ++ static/inferno/man1/mash-tk.1 | 212 ++ static/inferno/man1/mash.1 | 635 +++++ static/inferno/man1/math-misc.1 | 223 ++ static/inferno/man1/mc.1 | 40 + static/inferno/man1/mdb.1 | 251 ++ static/inferno/man1/miniterm.1 | 142 ++ static/inferno/man1/mk.1 | 579 +++++ static/inferno/man1/mkdir.1 | 49 + static/inferno/man1/mprof.1 | 169 ++ static/inferno/man1/mux.1 | 149 ++ static/inferno/man1/mv.1 | 43 + static/inferno/man1/netkey.1 | 18 + static/inferno/man1/netstat.1 | 42 + static/inferno/man1/ns.1 | 42 + static/inferno/man1/nsbuild.1 | 49 + static/inferno/man1/os.1 | 101 + static/inferno/man1/p.1 | 33 + static/inferno/man1/passwd.1 | 75 + static/inferno/man1/plumb.1 | 92 + static/inferno/man1/prof.1 | 135 + static/inferno/man1/ps.1 | 45 + static/inferno/man1/pwd.1 | 18 + static/inferno/man1/rcmd.1 | 72 + static/inferno/man1/read.1 | 62 + static/inferno/man1/rm.1 | 28 + static/inferno/man1/runas.1 | 23 + static/inferno/man1/secstore.1 | 141 ++ static/inferno/man1/sendmail.1 | 48 + static/inferno/man1/sh-alphabet.1 | 417 +++ static/inferno/man1/sh-arg.1 | 129 + static/inferno/man1/sh-csv.1 | 66 + static/inferno/man1/sh-expr.1 | 188 ++ static/inferno/man1/sh-file2chan.1 | 263 ++ static/inferno/man1/sh-mload.1 | 68 + static/inferno/man1/sh-regex.1 | 178 ++ static/inferno/man1/sh-sexprs.1 | 131 + static/inferno/man1/sh-std.1 | 532 ++++ static/inferno/man1/sh-string.1 | 186 ++ static/inferno/man1/sh-test.1 | 46 + static/inferno/man1/sh-tk.1 | 281 +++ static/inferno/man1/sh.1 | 980 +++++++ static/inferno/man1/sleep.1 | 24 + static/inferno/man1/sort.1 | 33 + static/inferno/man1/spree-join.1 | 45 + static/inferno/man1/stack.1 | 166 ++ static/inferno/man1/stream.1 | 54 + static/inferno/man1/strings.1 | 27 + static/inferno/man1/sum.1 | 47 + static/inferno/man1/tail.1 | 79 + static/inferno/man1/tcs.1 | 67 + static/inferno/man1/tee.1 | 30 + static/inferno/man1/telnet.1 | 35 + static/inferno/man1/time.1 | 34 + static/inferno/man1/timestamp.1 | 36 + static/inferno/man1/tiny.1 | 259 ++ static/inferno/man1/tkcmd.1 | 53 + static/inferno/man1/tktester.1 | 154 ++ static/inferno/man1/toolbar.1 | 99 + static/inferno/man1/touch.1 | 27 + static/inferno/man1/tr.1 | 95 + static/inferno/man1/tsort.1 | 26 + static/inferno/man1/unicode.1 | 62 + static/inferno/man1/uniq.1 | 36 + static/inferno/man1/units.1 | 110 + static/inferno/man1/uuencode.1 | 79 + static/inferno/man1/vacget.1 | 103 + static/inferno/man1/wc.1 | 29 + static/inferno/man1/webgrab.1 | 141 ++ static/inferno/man1/whois.1 | 40 + static/inferno/man1/wish.1 | 86 + static/inferno/man1/wm-misc.1 | 247 ++ static/inferno/man1/wm-sh.1 | 274 ++ static/inferno/man1/wm.1 | 216 ++ static/inferno/man1/xd.1 | 92 + static/inferno/man1/yacc.1 | 349 +++ static/inferno/man1/zeros.1 | 44 + static/inferno/man10/0intro.10 | 74 + static/inferno/man10/2a.10 | 55 + static/inferno/man10/2c.10 | 437 ++++ static/inferno/man10/2l.10 | 201 ++ static/inferno/man10/5coff.10 | 82 + static/inferno/man10/5cv.10 | 127 + static/inferno/man10/9load.10 | 411 +++ static/inferno/man10/INDEX.10 | 265 ++ static/inferno/man10/Makefile | 3 + static/inferno/man10/a.out.10 | 242 ++ static/inferno/man10/acid.10 | 373 +++ static/inferno/man10/allocb.10 | 314 +++ static/inferno/man10/ar.10 | 98 + static/inferno/man10/atoi.10 | 125 + static/inferno/man10/c2l.10 | 231 ++ static/inferno/man10/conf.10 | 335 +++ static/inferno/man10/delay.10 | 36 + static/inferno/man10/dev.10 | 435 ++++ static/inferno/man10/devattach.10 | 698 +++++ static/inferno/man10/dmainit.10 | 86 + static/inferno/man10/dynld.10 | 287 +++ static/inferno/man10/error.10 | 175 ++ static/inferno/man10/eve.10 | 42 + static/inferno/man10/getfields.10 | 76 + static/inferno/man10/iar.10 | 183 ++ static/inferno/man10/inb.10 | 84 + static/inferno/man10/inm.10 | 102 + static/inferno/man10/intrenable.10 | 106 + static/inferno/man10/kbdputc.10 | 105 + static/inferno/man10/kproc.10 | 142 ++ static/inferno/man10/kprof.10 | 34 + static/inferno/man10/ksize.10 | 29 + static/inferno/man10/kstrip.10 | 32 + static/inferno/man10/lock.10 | 110 + static/inferno/man10/malloc.10 | 81 + static/inferno/man10/master.10 | 70 + static/inferno/man10/memory.10 | 117 + static/inferno/man10/mk.10 | 661 +++++ static/inferno/man10/ms2.10 | 58 + static/inferno/man10/newchan.10 | 227 ++ static/inferno/man10/ntsrv.10 | 69 + static/inferno/man10/odbc.10 | 277 ++ static/inferno/man10/panic.10 | 25 + static/inferno/man10/parsecmd.10 | 68 + static/inferno/man10/plan9.ini.10 | 789 ++++++ static/inferno/man10/print.10 | 402 +++ static/inferno/man10/qio.10 | 482 ++++ static/inferno/man10/qlock.10 | 106 + static/inferno/man10/readnum.10 | 60 + static/inferno/man10/ref.10 | 61 + static/inferno/man10/rune.10 | 183 ++ static/inferno/man10/seconds.10 | 64 + static/inferno/man10/sleep.10 | 125 + static/inferno/man10/splhi.10 | 55 + static/inferno/man10/srclist.10 | 41 + static/inferno/man10/strcat.10 | 170 ++ static/inferno/man10/styx.10 | 365 +++ static/inferno/man10/styxserver.10 | 623 +++++ static/inferno/man10/xalloc.10 | 70 + static/inferno/man2/0intro.2 | 189 ++ static/inferno/man2/9p-ninep.2 | 416 +++ static/inferno/man2/INDEX.2 | 551 ++++ static/inferno/man2/Makefile | 3 + static/inferno/man2/alphabet-intro.2 | 236 ++ static/inferno/man2/arg.2 | 168 ++ static/inferno/man2/asn1.2 | 621 +++++ static/inferno/man2/attrdb.2 | 215 ++ static/inferno/man2/bloomfilter.2 | 89 + static/inferno/man2/bufio-chanfill.2 | 57 + static/inferno/man2/bufio.2 | 318 +++ static/inferno/man2/cfg.2 | 159 ++ static/inferno/man2/command.2 | 131 + static/inferno/man2/complete.2 | 83 + static/inferno/man2/convcs.2 | 367 +++ static/inferno/man2/crc.2 | 62 + static/inferno/man2/crypt-0intro.2 | 98 + static/inferno/man2/crypt-crypt.2 | 139 + static/inferno/man2/crypt-dsagen.2 | 94 + static/inferno/man2/crypt-gensk.2 | 159 ++ static/inferno/man2/crypt-rc4.2 | 49 + static/inferno/man2/crypt-sha1.2 | 144 ++ static/inferno/man2/csv.2 | 58 + static/inferno/man2/daytime.2 | 145 ++ static/inferno/man2/dbm.2 | 222 ++ static/inferno/man2/debug.2 | 382 +++ static/inferno/man2/devpointer.2 | 78 + static/inferno/man2/dhcpclient.2 | 354 +++ static/inferno/man2/dial.2 | 332 +++ static/inferno/man2/dialog.2 | 74 + static/inferno/man2/dict.2 | 57 + static/inferno/man2/dis.2 | 488 ++++ static/inferno/man2/diskblocks.2 | 120 + static/inferno/man2/disks.2 | 317 +++ static/inferno/man2/dividers.2 | 68 + static/inferno/man2/draw-0intro.2 | 268 ++ static/inferno/man2/draw-context.2 | 167 ++ static/inferno/man2/draw-display.2 | 389 +++ static/inferno/man2/draw-example.2 | 116 + static/inferno/man2/draw-font.2 | 111 + static/inferno/man2/draw-image.2 | 909 +++++++ static/inferno/man2/draw-point.2 | 66 + static/inferno/man2/draw-pointer.2 | 38 + static/inferno/man2/draw-rect.2 | 138 + static/inferno/man2/draw-screen.2 | 137 + static/inferno/man2/drawmux.2 | 68 + static/inferno/man2/encoding.2 | 50 + static/inferno/man2/env.2 | 52 + static/inferno/man2/ether.2 | 77 + static/inferno/man2/exception.2 | 65 + static/inferno/man2/factotum.2 | 366 +++ static/inferno/man2/filepat.2 | 80 + static/inferno/man2/filter-deflate.2 | 101 + static/inferno/man2/filter-slip.2 | 52 + static/inferno/man2/filter.2 | 112 + static/inferno/man2/format.2 | 249 ++ static/inferno/man2/fsproto.2 | 88 + static/inferno/man2/geodesy.2 | 146 ++ static/inferno/man2/hash.2 | 91 + static/inferno/man2/ida.2 | 151 ++ static/inferno/man2/imagefile.2 | 157 ++ static/inferno/man2/ip.2 | 334 +++ static/inferno/man2/ipints-genprime.2 | 112 + static/inferno/man2/ipints.2 | 193 ++ static/inferno/man2/ir.2 | 254 ++ static/inferno/man2/itslib.2 | 102 + static/inferno/man2/json.2 | 218 ++ static/inferno/man2/keyring-0intro.2 | 296 +++ static/inferno/man2/keyring-auth.2 | 101 + static/inferno/man2/keyring-certtostr.2 | 56 + static/inferno/man2/keyring-crypt.2 | 138 + static/inferno/man2/keyring-gensk.2 | 49 + static/inferno/man2/keyring-getmsg.2 | 68 + static/inferno/man2/keyring-getstring.2 | 90 + static/inferno/man2/keyring-ipint.2 | 180 ++ static/inferno/man2/keyring-rc4.2 | 45 + static/inferno/man2/keyring-sha1.2 | 142 ++ static/inferno/man2/keyset.2 | 79 + static/inferno/man2/lists.2 | 204 ++ static/inferno/man2/lock.2 | 39 + static/inferno/man2/math-0intro.2 | 79 + static/inferno/man2/math-elem.2 | 106 + static/inferno/man2/math-export.2 | 52 + static/inferno/man2/math-fp.2 | 205 ++ static/inferno/man2/math-linalg.2 | 146 ++ static/inferno/man2/mpeg.2 | 74 + static/inferno/man2/msgio.2 | 155 ++ static/inferno/man2/names.2 | 113 + static/inferno/man2/newns.2 | 49 + static/inferno/man2/palmfile.2 | 542 ++++ static/inferno/man2/plumbmsg.2 | 291 +++ static/inferno/man2/pop3.2 | 80 + static/inferno/man2/popup.2 | 102 + static/inferno/man2/prefab-0intro.2 | 75 + static/inferno/man2/prefab-compound.2 | 262 ++ static/inferno/man2/prefab-element.2 | 468 ++++ static/inferno/man2/prefab-environ.2 | 54 + static/inferno/man2/prefab-style.2 | 95 + static/inferno/man2/print.2 | 341 +++ static/inferno/man2/prof.2 | 225 ++ static/inferno/man2/pslib.2 | 46 + static/inferno/man2/rabin.2 | 54 + static/inferno/man2/rand.2 | 35 + static/inferno/man2/readdir.2 | 101 + static/inferno/man2/regex.2 | 108 + static/inferno/man2/registries.2 | 318 +++ static/inferno/man2/rfc822.2 | 327 +++ static/inferno/man2/scsiio.2 | 144 ++ static/inferno/man2/secstore.2 | 278 ++ static/inferno/man2/security-0intro.2 | 162 ++ static/inferno/man2/security-auth.2 | 157 ++ static/inferno/man2/security-login.2 | 93 + static/inferno/man2/security-oldauth.2 | 246 ++ static/inferno/man2/security-random.2 | 43 + static/inferno/man2/security-ssl.2 | 65 + static/inferno/man2/selectfile.2 | 57 + static/inferno/man2/sets.2 | 226 ++ static/inferno/man2/sexprs.2 | 362 +++ static/inferno/man2/sh.2 | 560 ++++ static/inferno/man2/smtp.2 | 56 + static/inferno/man2/spki-verifier.2 | 91 + static/inferno/man2/spki.2 | 601 +++++ static/inferno/man2/spree-allow.2 | 129 + static/inferno/man2/spree-cardlib.2 | 628 +++++ static/inferno/man2/spree-gather.2 | 105 + static/inferno/man2/spree-objstore.2 | 63 + static/inferno/man2/spree.2 | 604 +++++ static/inferno/man2/srv.2 | 66 + static/inferno/man2/string.2 | 200 ++ static/inferno/man2/stringinttab.2 | 87 + static/inferno/man2/styx.2 | 417 +++ static/inferno/man2/styxconv.2 | 78 + static/inferno/man2/styxflush.2 | 156 ++ static/inferno/man2/styxpersist.2 | 80 + static/inferno/man2/styxservers-nametree.2 | 180 ++ static/inferno/man2/styxservers.2 | 941 +++++++ static/inferno/man2/sys-0intro.2 | 345 +++ static/inferno/man2/sys-bind.2 | 201 ++ static/inferno/man2/sys-byte2char.2 | 68 + static/inferno/man2/sys-chdir.2 | 40 + static/inferno/man2/sys-dial.2 | 255 ++ static/inferno/man2/sys-dirread.2 | 59 + static/inferno/man2/sys-dup.2 | 75 + static/inferno/man2/sys-export.2 | 116 + static/inferno/man2/sys-fauth.2 | 61 + static/inferno/man2/sys-fd2path.2 | 46 + static/inferno/man2/sys-file2chan.2 | 171 ++ static/inferno/man2/sys-fversion.2 | 71 + static/inferno/man2/sys-iounit.2 | 35 + static/inferno/man2/sys-millisec.2 | 24 + static/inferno/man2/sys-open.2 | 135 + static/inferno/man2/sys-pctl.2 | 141 ++ static/inferno/man2/sys-pipe.2 | 45 + static/inferno/man2/sys-print.2 | 276 ++ static/inferno/man2/sys-read.2 | 108 + static/inferno/man2/sys-remove.2 | 23 + static/inferno/man2/sys-seek.2 | 48 + static/inferno/man2/sys-self.2 | 83 + static/inferno/man2/sys-sleep.2 | 29 + static/inferno/man2/sys-stat.2 | 283 +++ static/inferno/man2/sys-tokenize.2 | 56 + static/inferno/man2/sys-utfbytes.2 | 28 + static/inferno/man2/sys-werrstr.2 | 26 + static/inferno/man2/tabs.2 | 74 + static/inferno/man2/tftp.2 | 54 + static/inferno/man2/timers.2 | 89 + static/inferno/man2/tk.2 | 270 ++ static/inferno/man2/tkclient.2 | 229 ++ static/inferno/man2/translate.2 | 135 + static/inferno/man2/ubfa.2 | 273 ++ static/inferno/man2/venti.2 | 103 + static/inferno/man2/virgil.2 | 54 + static/inferno/man2/volume.2 | 51 + static/inferno/man2/w3c-css.2 | 349 +++ static/inferno/man2/w3c-uris.2 | 243 ++ static/inferno/man2/w3c-xpointers.2 | 382 +++ static/inferno/man2/wait.2 | 100 + static/inferno/man2/wmclient.2 | 235 ++ static/inferno/man2/wmlib.2 | 90 + static/inferno/man2/wmsrv.2 | 295 +++ static/inferno/man2/workdir.2 | 25 + static/inferno/man2/xml.2 | 277 ++ static/inferno/man3/0intro.3 | 69 + static/inferno/man3/INDEX.3 | 54 + static/inferno/man3/Makefile | 3 + static/inferno/man3/arch.3 | 63 + static/inferno/man3/audio.3 | 169 ++ static/inferno/man3/boot.3 | 41 + static/inferno/man3/cap.3 | 92 + static/inferno/man3/cmd.3 | 282 +++ static/inferno/man3/cons.3 | 301 +++ static/inferno/man3/dbg.3 | 384 +++ static/inferno/man3/draw.3 | 816 ++++++ static/inferno/man3/ds.3 | 145 ++ static/inferno/man3/dup.3 | 60 + static/inferno/man3/dynld.3 | 75 + static/inferno/man3/eia.3 | 136 + static/inferno/man3/env.3 | 48 + static/inferno/man3/ether.3 | 134 + static/inferno/man3/flash.3 | 157 ++ static/inferno/man3/floppy.3 | 52 + static/inferno/man3/fpga.3 | 97 + static/inferno/man3/fs.3 | 120 + static/inferno/man3/ftl.3 | 185 ++ static/inferno/man3/gpio.3 | 94 + static/inferno/man3/i2c.3 | 87 + static/inferno/man3/i82365.3 | 41 + static/inferno/man3/indir.3 | 81 + static/inferno/man3/ip.3 | 927 +++++++ static/inferno/man3/kprof.3 | 88 + static/inferno/man3/logfs.3 | 260 ++ static/inferno/man3/lpt.3 | 51 + static/inferno/man3/mnt.3 | 84 + static/inferno/man3/mpeg.3 | 102 + static/inferno/man3/pbus.3 | 60 + static/inferno/man3/pipe.3 | 69 + static/inferno/man3/plap.3 | 136 + static/inferno/man3/pnp.3 | 150 ++ static/inferno/man3/pointer.3 | 80 + static/inferno/man3/prof.3 | 93 + static/inferno/man3/prog.3 | 310 +++ static/inferno/man3/root.3 | 54 + static/inferno/man3/rtc.3 | 60 + static/inferno/man3/sd.3 | 194 ++ static/inferno/man3/sign.3 | 92 + static/inferno/man3/snarf.3 | 29 + static/inferno/man3/srv.3 | 86 + static/inferno/man3/srv9.3 | 108 + static/inferno/man3/ssl.3 | 145 ++ static/inferno/man3/switch.3 | 28 + static/inferno/man3/tinyfs.3 | 45 + static/inferno/man3/tls.3 | 276 ++ static/inferno/man3/touch.3 | 138 + static/inferno/man3/tv.3 | 179 ++ static/inferno/man3/usb.3 | 143 ++ static/inferno/man3/vga.3 | 247 ++ static/inferno/man3/vid.3 | 64 + static/inferno/man4/0intro.4 | 16 + static/inferno/man4/9srvfs.4 | 73 + static/inferno/man4/INDEX.4 | 34 + static/inferno/man4/Makefile | 3 + static/inferno/man4/acme.4 | 408 +++ static/inferno/man4/archfs.4 | 64 + static/inferno/man4/dbfs.4 | 126 + static/inferno/man4/dossrv.4 | 76 + static/inferno/man4/export.4 | 56 + static/inferno/man4/factotum.4 | 717 ++++++ static/inferno/man4/ftpfs.4 | 117 + static/inferno/man4/grid-cpu.4 | 141 ++ static/inferno/man4/import.4 | 145 ++ static/inferno/man4/iostats.4 | 81 + static/inferno/man4/keyfs.4 | 126 + static/inferno/man4/keysrv.4 | 116 + static/inferno/man4/kfs.4 | 175 ++ static/inferno/man4/lockfs.4 | 89 + static/inferno/man4/logfile.4 | 45 + static/inferno/man4/memfs.4 | 62 + static/inferno/man4/mntgen.4 | 30 + static/inferno/man4/namespace.4 | 332 +++ static/inferno/man4/palmsrv.4 | 49 + static/inferno/man4/ramfile.4 | 63 + static/inferno/man4/registry.4 | 205 ++ static/inferno/man4/spree.4 | 195 ++ static/inferno/man4/tarfs.4 | 45 + static/inferno/man4/trfs.4 | 22 + static/inferno/man4/vacfs.4 | 47 + static/inferno/man5/0intro.5 | 647 +++++ static/inferno/man5/INDEX.5 | 15 + static/inferno/man5/Makefile | 3 + static/inferno/man5/attach.5 | 159 ++ static/inferno/man5/clunk.5 | 44 + static/inferno/man5/error.5 | 25 + static/inferno/man5/flush.5 | 101 + static/inferno/man5/open.5 | 250 ++ static/inferno/man5/read.5 | 124 + static/inferno/man5/remove.5 | 39 + static/inferno/man5/stat.5 | 309 +++ static/inferno/man5/version.5 | 103 + static/inferno/man5/walk.5 | 186 ++ static/inferno/man6/0intro.6 | 7 + static/inferno/man6/INDEX.6 | 30 + static/inferno/man6/Makefile | 3 + static/inferno/man6/attrdb.6 | 101 + static/inferno/man6/audio.6 | 79 + static/inferno/man6/auth.6 | 74 + static/inferno/man6/colour.6 | 187 ++ static/inferno/man6/dis.6 | 487 ++++ static/inferno/man6/font.6 | 102 + static/inferno/man6/image.6 | 178 ++ static/inferno/man6/json.6 | 68 + static/inferno/man6/keyboard.6 | 170 ++ static/inferno/man6/keys.6 | 52 + static/inferno/man6/keytext.6 | 124 + static/inferno/man6/login.6 | 109 + static/inferno/man6/man.6 | 248 ++ static/inferno/man6/namespace.6 | 165 ++ static/inferno/man6/ndb.6 | 219 ++ static/inferno/man6/plumbing.6 | 163 ++ static/inferno/man6/proto.6 | 153 ++ static/inferno/man6/regexp.6 | 126 + static/inferno/man6/sbl.6 | 392 +++ static/inferno/man6/scancode.6 | 37 + static/inferno/man6/sexprs.6 | 238 ++ static/inferno/man6/translate.6 | 55 + static/inferno/man6/ubfa.6 | 129 + static/inferno/man6/users.6 | 73 + static/inferno/man6/utf.6 | 108 + static/inferno/man7/0intro.7 | 6 + static/inferno/man7/INDEX.7 | 4 + static/inferno/man7/Makefile | 3 + static/inferno/man7/cddb.7 | 56 + static/inferno/man7/db.7 | 187 ++ static/inferno/man7/dbsrv.7 | 67 + static/inferno/man8/0intro.8 | 13 + static/inferno/man8/INDEX.8 | 60 + static/inferno/man8/Makefile | 3 + static/inferno/man8/ai2key.8 | 262 ++ static/inferno/man8/applylog.8 | 237 ++ static/inferno/man8/bootpd.8 | 163 ++ static/inferno/man8/changelogin.8 | 113 + static/inferno/man8/collabsrv.8 | 334 +++ static/inferno/man8/create.8 | 204 ++ static/inferno/man8/createsignerkey.8 | 67 + static/inferno/man8/cs.8 | 248 ++ static/inferno/man8/dhcp.8 | 117 + static/inferno/man8/dns.8 | 158 ++ static/inferno/man8/fpgaload.8 | 24 + static/inferno/man8/ftl.8 | 63 + static/inferno/man8/getauthinfo.8 | 127 + static/inferno/man8/httpd.8 | 115 + static/inferno/man8/init.8 | 99 + static/inferno/man8/kfscmd.8 | 142 ++ static/inferno/man8/logind.8 | 52 + static/inferno/man8/mangaload.8 | 49 + static/inferno/man8/manufacture.8 | 31 + static/inferno/man8/mkfs.8 | 223 ++ static/inferno/man8/ping.8 | 64 + static/inferno/man8/plumber.8 | 94 + static/inferno/man8/prep.8 | 710 ++++++ static/inferno/man8/rdbgsrv.8 | 58 + static/inferno/man8/register.8 | 85 + static/inferno/man8/rip.8 | 98 + static/inferno/man8/rstyxd.8 | 88 + static/inferno/man8/shutdown.8 | 30 + static/inferno/man8/signer.8 | 117 + static/inferno/man8/sntp.8 | 41 + static/inferno/man8/styxchat.8 | 245 ++ static/inferno/man8/styxmon.8 | 50 + static/inferno/man8/svc.8 | 145 ++ static/inferno/man8/touchcal.8 | 39 + static/inferno/man8/virgild.8 | 55 + static/inferno/man9/0intro.9 | 134 + static/inferno/man9/1copyright.9 | 55 + static/inferno/man9/INDEX.9 | 34 + static/inferno/man9/Makefile | 3 + static/inferno/man9/bind.9 | 194 ++ static/inferno/man9/button.9 | 133 + static/inferno/man9/canvas.9 | 1359 ++++++++++ static/inferno/man9/checkbutton.9 | 193 ++ static/inferno/man9/choicebutton.9 | 148 ++ static/inferno/man9/cursor.9 | 47 + static/inferno/man9/destroy.9 | 24 + static/inferno/man9/entry.9 | 316 +++ static/inferno/man9/focus.9 | 21 + static/inferno/man9/frame.9 | 79 + static/inferno/man9/grab.9 | 58 + static/inferno/man9/grid.9 | 332 +++ static/inferno/man9/image.9 | 75 + static/inferno/man9/label.9 | 79 + static/inferno/man9/listbox.9 | 304 +++ static/inferno/man9/lower.9 | 12 + static/inferno/man9/menu.9 | 461 ++++ static/inferno/man9/menubutton.9 | 134 + static/inferno/man9/options.9 | 244 ++ static/inferno/man9/pack.9 | 227 ++ static/inferno/man9/panel.9 | 121 + static/inferno/man9/radiobutton.9 | 192 ++ static/inferno/man9/raise.9 | 13 + static/inferno/man9/scale.9 | 198 ++ static/inferno/man9/scrollbar.9 | 243 ++ static/inferno/man9/see.9 | 37 + static/inferno/man9/send.9 | 38 + static/inferno/man9/text.9 | 1188 +++++++++ static/inferno/man9/types.9 | 147 ++ static/inferno/man9/update.9 | 24 + static/inferno/man9/variable.9 | 25 + static/plan9-4e/Makefile | 13 + static/plan9-4e/man1/0intro.1 | 398 +++ static/plan9-4e/man1/2a.1 | 55 + static/plan9-4e/man1/2c.1 | 398 +++ static/plan9-4e/man1/2l.1 | 193 ++ static/plan9-4e/man1/INDEX.1 | 291 +++ static/plan9-4e/man1/INDEX.html.1 | 561 ++++ static/plan9-4e/man1/Makefile | 3 + static/plan9-4e/man1/aan.1 | 88 + static/plan9-4e/man1/acid.1 | 472 ++++ static/plan9-4e/man1/acme.1 | 683 +++++ static/plan9-4e/man1/ar.1 | 183 ++ static/plan9-4e/man1/ascii.1 | 161 ++ static/plan9-4e/man1/awk.1 | 527 ++++ static/plan9-4e/man1/basename.1 | 35 + static/plan9-4e/man1/bc.1 | 292 +++ static/plan9-4e/man1/bind.1 | 201 ++ static/plan9-4e/man1/bitsyload.1 | 146 ++ static/plan9-4e/man1/bundle.1 | 53 + static/plan9-4e/man1/cal.1 | 46 + static/plan9-4e/man1/calendar.1 | 44 + static/plan9-4e/man1/cat.1 | 82 + static/plan9-4e/man1/chgrp.1 | 36 + static/plan9-4e/man1/chmod.1 | 104 + static/plan9-4e/man1/cleanname.1 | 32 + static/plan9-4e/man1/cmp.1 | 57 + static/plan9-4e/man1/colors.1 | 73 + static/plan9-4e/man1/comm.1 | 47 + static/plan9-4e/man1/con.1 | 238 ++ static/plan9-4e/man1/cp.1 | 92 + static/plan9-4e/man1/cpp.1 | 116 + static/plan9-4e/man1/cpu.1 | 162 ++ static/plan9-4e/man1/crop.1 | 147 ++ static/plan9-4e/man1/date.1 | 58 + static/plan9-4e/man1/db.1 | 1018 ++++++++ static/plan9-4e/man1/dc.1 | 257 ++ static/plan9-4e/man1/dd.1 | 187 ++ static/plan9-4e/man1/deroff.1 | 117 + static/plan9-4e/man1/diff.1 | 155 ++ static/plan9-4e/man1/doc2txt.1 | 53 + static/plan9-4e/man1/doctype.1 | 56 + static/plan9-4e/man1/du.1 | 97 + static/plan9-4e/man1/echo.1 | 20 + static/plan9-4e/man1/ed.1 | 683 +++++ static/plan9-4e/man1/emacs.1 | 17 + static/plan9-4e/man1/eqn.1 | 339 +++ static/plan9-4e/man1/faces.1 | 93 + static/plan9-4e/man1/factor.1 | 66 + static/plan9-4e/man1/file.1 | 117 + static/plan9-4e/man1/fmt.1 | 79 + static/plan9-4e/man1/fortune.1 | 23 + static/plan9-4e/man1/freq.1 | 40 + static/plan9-4e/man1/grap.1 | 416 +++ static/plan9-4e/man1/graph.1 | 148 ++ static/plan9-4e/man1/grep.1 | 103 + static/plan9-4e/man1/gs.1 | 276 ++ static/plan9-4e/man1/gzip.1 | 160 ++ static/plan9-4e/man1/hget.1 | 68 + static/plan9-4e/man1/history.1 | 81 + static/plan9-4e/man1/hoc.1 | 144 ++ static/plan9-4e/man1/idiff.1 | 72 + static/plan9-4e/man1/join.1 | 148 ++ static/plan9-4e/man1/jpg.1 | 204 ++ static/plan9-4e/man1/kill.1 | 70 + static/plan9-4e/man1/ktrace.1 | 62 + static/plan9-4e/man1/leak.1 | 141 ++ static/plan9-4e/man1/lens.1 | 39 + static/plan9-4e/man1/lex.1 | 78 + static/plan9-4e/man1/look.1 | 86 + static/plan9-4e/man1/lp.1 | 185 ++ static/plan9-4e/man1/ls.1 | 155 ++ static/plan9-4e/man1/mail.1 | 1268 ++++++++++ static/plan9-4e/man1/man.1 | 97 + static/plan9-4e/man1/mc.1 | 40 + static/plan9-4e/man1/mk.1 | 654 +++++ static/plan9-4e/man1/mkdir.1 | 25 + static/plan9-4e/man1/ms2html.1 | 41 + static/plan9-4e/man1/netstat.1 | 39 + static/plan9-4e/man1/news.1 | 63 + static/plan9-4e/man1/nm.1 | 104 + static/plan9-4e/man1/ns.1 | 44 + static/plan9-4e/man1/p.1 | 33 + static/plan9-4e/man1/page.1 | 229 ++ static/plan9-4e/man1/passwd.1 | 74 + static/plan9-4e/man1/pcc.1 | 185 ++ static/plan9-4e/man1/pic.1 | 344 +++ static/plan9-4e/man1/pipefile.1 | 101 + static/plan9-4e/man1/plot.1 | 61 + static/plan9-4e/man1/plumb.1 | 92 + static/plan9-4e/man1/pr.1 | 110 + static/plan9-4e/man1/prof.1 | 132 + static/plan9-4e/man1/proof.1 | 134 + static/plan9-4e/man1/ps.1 | 109 + static/plan9-4e/man1/pwd.1 | 46 + static/plan9-4e/man1/rc.1 | 959 +++++++ static/plan9-4e/man1/replica.1 | 304 +++ static/plan9-4e/man1/resample.1 | 58 + static/plan9-4e/man1/rio.1 | 513 ++++ static/plan9-4e/man1/rm.1 | 28 + static/plan9-4e/man1/rtstats.1 | 117 + static/plan9-4e/man1/sam.1 | 885 +++++++ static/plan9-4e/man1/secstore.1 | 107 + static/plan9-4e/man1/sed.1 | 385 +++ static/plan9-4e/man1/seq.1 | 69 + static/plan9-4e/man1/size.1 | 28 + static/plan9-4e/man1/sleep.1 | 31 + static/plan9-4e/man1/sort.1 | 260 ++ static/plan9-4e/man1/spell.1 | 96 + static/plan9-4e/man1/spin.1 | 149 ++ static/plan9-4e/man1/split.1 | 76 + static/plan9-4e/man1/src.1 | 83 + static/plan9-4e/man1/ssh.1 | 338 +++ static/plan9-4e/man1/stop.1 | 36 + static/plan9-4e/man1/strings.1 | 28 + static/plan9-4e/man1/strip.1 | 19 + static/plan9-4e/man1/sum.1 | 77 + static/plan9-4e/man1/syscall.1 | 77 + static/plan9-4e/man1/tail.1 | 87 + static/plan9-4e/man1/tapefs.1 | 100 + static/plan9-4e/man1/tar.1 | 110 + static/plan9-4e/man1/tbl.1 | 285 +++ static/plan9-4e/man1/tcs.1 | 167 ++ static/plan9-4e/man1/tee.1 | 28 + static/plan9-4e/man1/tel.1 | 110 + static/plan9-4e/man1/test.1 | 174 ++ static/plan9-4e/man1/time.1 | 21 + static/plan9-4e/man1/touch.1 | 35 + static/plan9-4e/man1/tr.1 | 97 + static/plan9-4e/man1/troff.1 | 198 ++ static/plan9-4e/man1/troff2html.1 | 97 + static/plan9-4e/man1/tweak.1 | 167 ++ static/plan9-4e/man1/uniq.1 | 59 + static/plan9-4e/man1/units.1 | 108 + static/plan9-4e/man1/vac.1 | 122 + static/plan9-4e/man1/vi.1 | 170 ++ static/plan9-4e/man1/vnc.1 | 153 ++ static/plan9-4e/man1/vt.1 | 109 + static/plan9-4e/man1/wc.1 | 53 + static/plan9-4e/man1/who.1 | 22 + static/plan9-4e/man1/xd.1 | 87 + static/plan9-4e/man1/yacc.1 | 167 ++ static/plan9-4e/man1/yesterday.1 | 122 + static/plan9-4e/man2/0intro.2 | 465 ++++ static/plan9-4e/man2/9p.2 | 678 +++++ static/plan9-4e/man2/9pfid.2 | 204 ++ static/plan9-4e/man2/9pfile.2 | 224 ++ static/plan9-4e/man2/INDEX.2 | 1274 ++++++++++ static/plan9-4e/man2/INDEX.html.2 | 565 +++++ static/plan9-4e/man2/Makefile | 3 + static/plan9-4e/man2/abort.2 | 18 + static/plan9-4e/man2/abs.2 | 33 + static/plan9-4e/man2/access.2 | 64 + static/plan9-4e/man2/addpt.2 | 188 ++ static/plan9-4e/man2/aes.2 | 50 + static/plan9-4e/man2/allocimage.2 | 348 +++ static/plan9-4e/man2/arg.2 | 122 + static/plan9-4e/man2/arith3.2 | 269 ++ static/plan9-4e/man2/assert.2 | 25 + static/plan9-4e/man2/atof.2 | 146 ++ static/plan9-4e/man2/auth.2 | 395 +++ static/plan9-4e/man2/authsrv.2 | 217 ++ static/plan9-4e/man2/bin.2 | 99 + static/plan9-4e/man2/bind.2 | 236 ++ static/plan9-4e/man2/bio.2 | 349 +++ static/plan9-4e/man2/blowfish.2 | 51 + static/plan9-4e/man2/brk.2 | 62 + static/plan9-4e/man2/cachechars.2 | 313 +++ static/plan9-4e/man2/chdir.2 | 32 + static/plan9-4e/man2/cleanname.2 | 34 + static/plan9-4e/man2/color.2 | 56 + static/plan9-4e/man2/control.2 | 1829 ++++++++++++++ static/plan9-4e/man2/cputime.2 | 34 + static/plan9-4e/man2/ctime.2 | 129 + static/plan9-4e/man2/ctype.2 | 160 ++ static/plan9-4e/man2/debugger.2 | 386 +++ static/plan9-4e/man2/des.2 | 143 ++ static/plan9-4e/man2/dial.2 | 331 +++ static/plan9-4e/man2/dirread.2 | 103 + static/plan9-4e/man2/disk.2 | 172 ++ static/plan9-4e/man2/draw.2 | 779 ++++++ static/plan9-4e/man2/dup.2 | 42 + static/plan9-4e/man2/elgamal.2 | 92 + static/plan9-4e/man2/encode.2 | 82 + static/plan9-4e/man2/encrypt.2 | 76 + static/plan9-4e/man2/errstr.2 | 75 + static/plan9-4e/man2/event.2 | 384 +++ static/plan9-4e/man2/exec.2 | 159 ++ static/plan9-4e/man2/exits.2 | 81 + static/plan9-4e/man2/exp.2 | 62 + static/plan9-4e/man2/fauth.2 | 66 + static/plan9-4e/man2/fcall.2 | 351 +++ static/plan9-4e/man2/fd2path.2 | 57 + static/plan9-4e/man2/fgetc.2 | 211 ++ static/plan9-4e/man2/flate.2 | 207 ++ static/plan9-4e/man2/floor.2 | 58 + static/plan9-4e/man2/fmtinstall.2 | 372 +++ static/plan9-4e/man2/fopen.2 | 352 +++ static/plan9-4e/man2/fork.2 | 166 ++ static/plan9-4e/man2/fprintf.2 | 504 ++++ static/plan9-4e/man2/frame.2 | 362 +++ static/plan9-4e/man2/frexp.2 | 47 + static/plan9-4e/man2/fscanf.2 | 402 +++ static/plan9-4e/man2/fversion.2 | 72 + static/plan9-4e/man2/genrandom.2 | 44 + static/plan9-4e/man2/getcallerpc.2 | 38 + static/plan9-4e/man2/getenv.2 | 44 + static/plan9-4e/man2/getfcr.2 | 125 + static/plan9-4e/man2/getfields.2 | 88 + static/plan9-4e/man2/getpid.2 | 41 + static/plan9-4e/man2/getuser.2 | 37 + static/plan9-4e/man2/getwd.2 | 37 + static/plan9-4e/man2/graphics.2 | 632 +++++ static/plan9-4e/man2/html.2 | 1420 +++++++++++ static/plan9-4e/man2/httpd.2 | 307 +++ static/plan9-4e/man2/hypot.2 | 21 + static/plan9-4e/man2/intmap.2 | 126 + static/plan9-4e/man2/iounit.2 | 37 + static/plan9-4e/man2/ip.2 | 335 +++ static/plan9-4e/man2/isalpharune.2 | 51 + static/plan9-4e/man2/keyboard.2 | 104 + static/plan9-4e/man2/lock.2 | 180 ++ static/plan9-4e/man2/mach.2 | 393 +++ static/plan9-4e/man2/malloc.2 | 198 ++ static/plan9-4e/man2/matrix.2 | 350 +++ static/plan9-4e/man2/memdraw.2 | 450 ++++ static/plan9-4e/man2/memlayer.2 | 305 +++ static/plan9-4e/man2/memory.2 | 126 + static/plan9-4e/man2/mktemp.2 | 40 + static/plan9-4e/man2/mouse.2 | 249 ++ static/plan9-4e/man2/mp.2 | 568 +++++ static/plan9-4e/man2/muldiv.2 | 31 + static/plan9-4e/man2/nan.2 | 44 + static/plan9-4e/man2/ndb.2 | 366 +++ static/plan9-4e/man2/notify.2 | 243 ++ static/plan9-4e/man2/object.2 | 150 ++ static/plan9-4e/man2/open.2 | 148 ++ static/plan9-4e/man2/perror.2 | 92 + static/plan9-4e/man2/pipe.2 | 74 + static/plan9-4e/man2/plumb.2 | 240 ++ static/plan9-4e/man2/pool.2 | 329 +++ static/plan9-4e/man2/postnote.2 | 49 + static/plan9-4e/man2/prime.2 | 104 + static/plan9-4e/man2/print.2 | 445 ++++ static/plan9-4e/man2/privalloc.2 | 36 + static/plan9-4e/man2/proto.2 | 131 + static/plan9-4e/man2/pushssl.2 | 45 + static/plan9-4e/man2/pushtls.2 | 177 ++ static/plan9-4e/man2/qball.2 | 76 + static/plan9-4e/man2/qsort.2 | 33 + static/plan9-4e/man2/quaternion.2 | 152 ++ static/plan9-4e/man2/quote.2 | 159 ++ static/plan9-4e/man2/rand.2 | 172 ++ static/plan9-4e/man2/rc4.2 | 54 + static/plan9-4e/man2/read.2 | 95 + static/plan9-4e/man2/readcolmap.2 | 76 + static/plan9-4e/man2/readv.2 | 82 + static/plan9-4e/man2/regexp.2 | 212 ++ static/plan9-4e/man2/remove.2 | 31 + static/plan9-4e/man2/rendezvous.2 | 57 + static/plan9-4e/man2/rsa.2 | 149 ++ static/plan9-4e/man2/rune.2 | 190 ++ static/plan9-4e/man2/runestrcat.2 | 67 + static/plan9-4e/man2/scribble.2 | 162 ++ static/plan9-4e/man2/scsi.2 | 184 ++ static/plan9-4e/man2/sechash.2 | 150 ++ static/plan9-4e/man2/seek.2 | 46 + static/plan9-4e/man2/segattach.2 | 173 ++ static/plan9-4e/man2/segbrk.2 | 43 + static/plan9-4e/man2/segflush.2 | 42 + static/plan9-4e/man2/setjmp.2 | 98 + static/plan9-4e/man2/sin.2 | 64 + static/plan9-4e/man2/sinh.2 | 23 + static/plan9-4e/man2/sleep.2 | 45 + static/plan9-4e/man2/stat.2 | 326 +++ static/plan9-4e/man2/strcat.2 | 268 ++ static/plan9-4e/man2/string.2 | 231 ++ static/plan9-4e/man2/stringsize.2 | 69 + static/plan9-4e/man2/subfont.2 | 235 ++ static/plan9-4e/man2/symbol.2 | 436 ++++ static/plan9-4e/man2/thread.2 | 578 +++++ static/plan9-4e/man2/time.2 | 45 + static/plan9-4e/man2/tmpfile.2 | 58 + static/plan9-4e/man2/wait.2 | 117 + static/plan9-4e/man2/window.2 | 244 ++ static/plan9-4e/man3/0intro.3 | 92 + static/plan9-4e/man3/INDEX.3 | 35 + static/plan9-4e/man3/INDEX.html.3 | 137 + static/plan9-4e/man3/Makefile | 3 + static/plan9-4e/man3/apm.3 | 60 + static/plan9-4e/man3/arch.3 | 65 + static/plan9-4e/man3/audio.3 | 129 + static/plan9-4e/man3/cap.3 | 81 + static/plan9-4e/man3/cons.3 | 346 +++ static/plan9-4e/man3/draw.3 | 782 ++++++ static/plan9-4e/man3/dup.3 | 58 + static/plan9-4e/man3/env.3 | 64 + static/plan9-4e/man3/ether.3 | 96 + static/plan9-4e/man3/floppy.3 | 54 + static/plan9-4e/man3/i82365.3 | 41 + static/plan9-4e/man3/ip.3 | 926 +++++++ static/plan9-4e/man3/kprof.3 | 66 + static/plan9-4e/man3/loopback.3 | 88 + static/plan9-4e/man3/lpt.3 | 43 + static/plan9-4e/man3/mnt.3 | 72 + static/plan9-4e/man3/mouse.3 | 213 ++ static/plan9-4e/man3/pipe.3 | 59 + static/plan9-4e/man3/pnp.3 | 146 ++ static/plan9-4e/man3/proc.3 | 328 +++ static/plan9-4e/man3/realtime.3 | 316 +++ static/plan9-4e/man3/root.3 | 39 + static/plan9-4e/man3/rtc.3 | 40 + static/plan9-4e/man3/sd.3 | 209 ++ static/plan9-4e/man3/segment.3 | 117 + static/plan9-4e/man3/srv.3 | 74 + static/plan9-4e/man3/ssl.3 | 124 + static/plan9-4e/man3/tls.3 | 272 ++ static/plan9-4e/man3/uart.3 | 97 + static/plan9-4e/man3/usb.3 | 235 ++ static/plan9-4e/man3/vga.3 | 209 ++ static/plan9-4e/man4/0intro.4 | 14 + static/plan9-4e/man4/INDEX.4 | 71 + static/plan9-4e/man4/INDEX.html.4 | 157 ++ static/plan9-4e/man4/Makefile | 3 + static/plan9-4e/man4/acme.4 | 408 +++ static/plan9-4e/man4/archfs.4 | 46 + static/plan9-4e/man4/cdfs.4 | 172 ++ static/plan9-4e/man4/cfs.4 | 95 + static/plan9-4e/man4/consolefs.4 | 216 ++ static/plan9-4e/man4/dossrv.4 | 217 ++ static/plan9-4e/man4/execnet.4 | 67 + static/plan9-4e/man4/exportfs.4 | 205 ++ static/plan9-4e/man4/factotum.4 | 679 +++++ static/plan9-4e/man4/fs.4 | 148 ++ static/plan9-4e/man4/ftpfs.4 | 173 ++ static/plan9-4e/man4/import.4 | 121 + static/plan9-4e/man4/iostats.4 | 64 + static/plan9-4e/man4/keyfs.4 | 248 ++ static/plan9-4e/man4/kfs.4 | 132 + static/plan9-4e/man4/lnfs.4 | 55 + static/plan9-4e/man4/namespace.4 | 384 +++ static/plan9-4e/man4/nntpfs.4 | 107 + static/plan9-4e/man4/paqfs.4 | 76 + static/plan9-4e/man4/plumber.4 | 126 + static/plan9-4e/man4/ramfs.4 | 74 + static/plan9-4e/man4/ratfs.4 | 174 ++ static/plan9-4e/man4/rdbfs.4 | 67 + static/plan9-4e/man4/rio.4 | 403 +++ static/plan9-4e/man4/sacfs.4 | 59 + static/plan9-4e/man4/snap.4 | 103 + static/plan9-4e/man4/srv.4 | 237 ++ static/plan9-4e/man4/tapefs.4 | 100 + static/plan9-4e/man4/telco.4 | 226 ++ static/plan9-4e/man4/u9fs.4 | 250 ++ static/plan9-4e/man4/usb.4 | 154 ++ static/plan9-4e/man4/usbd.4 | 35 + static/plan9-4e/man4/vacfs.4 | 72 + static/plan9-4e/man4/webcookies.4 | 166 ++ static/plan9-4e/man4/webfs.4 | 307 +++ static/plan9-4e/man4/wikifs.4 | 338 +++ static/plan9-4e/man5/0intro.5 | 603 +++++ static/plan9-4e/man5/INDEX.5 | 16 + static/plan9-4e/man5/INDEX.html.5 | 53 + static/plan9-4e/man5/Makefile | 3 + static/plan9-4e/man5/attach.5 | 159 ++ static/plan9-4e/man5/clunk.5 | 43 + static/plan9-4e/man5/error.5 | 27 + static/plan9-4e/man5/flush.5 | 76 + static/plan9-4e/man5/open.5 | 247 ++ static/plan9-4e/man5/read.5 | 125 + static/plan9-4e/man5/remove.5 | 35 + static/plan9-4e/man5/stat.5 | 291 +++ static/plan9-4e/man5/version.5 | 101 + static/plan9-4e/man5/walk.5 | 178 ++ static/plan9-4e/man6/0intro.6 | 8 + static/plan9-4e/man6/INDEX.6 | 33 + static/plan9-4e/man6/INDEX.html.6 | 113 + static/plan9-4e/man6/Makefile | 3 + static/plan9-4e/man6/a.out.6 | 252 ++ static/plan9-4e/man6/ar.6 | 99 + static/plan9-4e/man6/authsrv.6 | 373 +++ static/plan9-4e/man6/color.6 | 150 ++ static/plan9-4e/man6/face.6 | 114 + static/plan9-4e/man6/font.6 | 87 + static/plan9-4e/man6/image.6 | 205 ++ static/plan9-4e/man6/keyboard.6 | 198 ++ static/plan9-4e/man6/man.6 | 249 ++ static/plan9-4e/man6/map.6 | 87 + static/plan9-4e/man6/mpictures.6 | 151 ++ static/plan9-4e/man6/ms.6 | 308 +++ static/plan9-4e/man6/namespace.6 | 82 + static/plan9-4e/man6/ndb.6 | 285 +++ static/plan9-4e/man6/plot.6 | 336 +++ static/plan9-4e/man6/plumb.6 | 417 +++ static/plan9-4e/man6/regexp.6 | 129 + static/plan9-4e/man6/rewrite.6 | 154 ++ static/plan9-4e/man6/smtpd.6 | 306 +++ static/plan9-4e/man6/snap.6 | 98 + static/plan9-4e/man6/thumbprint.6 | 41 + static/plan9-4e/man6/users.6 | 69 + static/plan9-4e/man6/utf.6 | 98 + static/plan9-4e/man6/venti.conf.6 | 67 + static/plan9-4e/man6/vgadb.6 | 486 ++++ static/plan9-4e/man7/0intro.7 | 8 + static/plan9-4e/man7/INDEX.7 | 8 + static/plan9-4e/man7/INDEX.html.7 | 33 + static/plan9-4e/man7/Makefile | 3 + static/plan9-4e/man7/astro.7 | 122 + static/plan9-4e/man7/dict.7 | 163 ++ static/plan9-4e/man7/juke.7 | 52 + static/plan9-4e/man7/map.7 | 676 +++++ static/plan9-4e/man7/scat.7 | 335 +++ static/plan9-4e/man8/0intro.8 | 8 + static/plan9-4e/man8/9load.8 | 407 +++ static/plan9-4e/man8/9pcon.8 | 160 ++ static/plan9-4e/man8/INDEX.8 | 157 ++ static/plan9-4e/man8/INDEX.html.8 | 237 ++ static/plan9-4e/man8/Makefile | 3 + static/plan9-4e/man8/apm.8 | 111 + static/plan9-4e/man8/auth.8 | 194 ++ static/plan9-4e/man8/boot.8 | 258 ++ static/plan9-4e/man8/booting.8 | 158 ++ static/plan9-4e/man8/buildindex.8 | 62 + static/plan9-4e/man8/checkarenas.8 | 34 + static/plan9-4e/man8/checkindex.8 | 52 + static/plan9-4e/man8/cpurc.8 | 67 + static/plan9-4e/man8/cron.8 | 111 + static/plan9-4e/man8/dhcpd.8 | 272 ++ static/plan9-4e/man8/drawterm.8 | 124 + static/plan9-4e/man8/fmtarenas.8 | 64 + static/plan9-4e/man8/fmtindex.8 | 60 + static/plan9-4e/man8/fmtisect.8 | 50 + static/plan9-4e/man8/fs.8 | 678 +++++ static/plan9-4e/man8/fsconfig.8 | 249 ++ static/plan9-4e/man8/httpd.8 | 196 ++ static/plan9-4e/man8/init.8 | 87 + static/plan9-4e/man8/ipconfig.8 | 205 ++ static/plan9-4e/man8/ipserv.8 | 239 ++ static/plan9-4e/man8/kfscmd.8 | 198 ++ static/plan9-4e/man8/listen.8 | 172 ++ static/plan9-4e/man8/lp.8 | 126 + static/plan9-4e/man8/mk9660.8 | 231 ++ static/plan9-4e/man8/mkfs.8 | 187 ++ static/plan9-4e/man8/mkpaqfs.8 | 52 + static/plan9-4e/man8/mksacfs.8 | 38 + static/plan9-4e/man8/mouse.8 | 120 + static/plan9-4e/man8/na.8 | 33 + static/plan9-4e/man8/ndb.8 | 459 ++++ static/plan9-4e/man8/newuser.8 | 119 + static/plan9-4e/man8/nfsserver.8 | 164 ++ static/plan9-4e/man8/pcmcia.8 | 23 + static/plan9-4e/man8/ping.8 | 146 ++ static/plan9-4e/man8/plan9.ini.8 | 815 ++++++ static/plan9-4e/man8/ppp.8 | 275 ++ static/plan9-4e/man8/prep.8 | 657 +++++ static/plan9-4e/man8/qer.8 | 226 ++ static/plan9-4e/man8/rdarena.8 | 30 + static/plan9-4e/man8/reboot.8 | 20 + static/plan9-4e/man8/replica.8 | 303 +++ static/plan9-4e/man8/scanmail.8 | 447 ++++ static/plan9-4e/man8/scuzz.8 | 370 +++ static/plan9-4e/man8/secstore.8 | 47 + static/plan9-4e/man8/securenet.8 | 128 + static/plan9-4e/man8/snoopy.8 | 170 ++ static/plan9-4e/man8/stats.8 | 145 ++ static/plan9-4e/man8/swap.8 | 30 + static/plan9-4e/man8/timesync.8 | 95 + static/plan9-4e/man8/tlssrv.8 | 38 + static/plan9-4e/man8/udpecho.8 | 16 + static/plan9-4e/man8/update.8 | 127 + static/plan9-4e/man8/venti.8 | 196 ++ static/plan9-4e/man8/vga.8 | 189 ++ static/unix-v10/=.1 | 123 + static/unix-v10/Makefile | 14 + static/unix-v10/man1/2500.1 | 120 + static/unix-v10/man1/300.1 | 228 ++ static/unix-v10/man1/450.1 | 110 + static/unix-v10/man1/8q.1 | 92 + static/unix-v10/man1/:.1.broken | 26 + static/unix-v10/man1/=.1 | 123 + static/unix-v10/man1/Makefile | 3 + static/unix-v10/man1/acro.1 | 59 + static/unix-v10/man1/adb.1 | 1116 ++++++++ static/unix-v10/man1/altran.1 | 82 + static/unix-v10/man1/apl.1 | 202 ++ static/unix-v10/man1/apnews.1 | 39 + static/unix-v10/man1/apply.1 | 102 + static/unix-v10/man1/apsend.1 | 60 + static/unix-v10/man1/ar.1 | 83 + static/unix-v10/man1/array.1 | 4 + static/unix-v10/man1/as.1 | 89 + static/unix-v10/man1/as80.1 | 80 + static/unix-v10/man1/asa.1 | 34 + static/unix-v10/man1/ascii.1 | 82 + static/unix-v10/man1/at.1 | 111 + static/unix-v10/man1/awk.1 | 452 ++++ static/unix-v10/man1/backup.1 | 351 +++ static/unix-v10/man1/badge.1 | 41 + static/unix-v10/man1/bas.1 | 312 +++ static/unix-v10/man1/basename.1 | 58 + static/unix-v10/man1/basic.1 | 14 + static/unix-v10/man1/bc.1 | 274 ++ static/unix-v10/man1/bcp.1 | 288 +++ static/unix-v10/man1/bdiff.1 | 68 + static/unix-v10/man1/bigcore.1 | 38 + static/unix-v10/man1/bison.1 | 62 + static/unix-v10/man1/bite.1 | 712 ++++++ static/unix-v10/man1/bitship.1 | 24 + static/unix-v10/man1/bmd08v.1 | 54 + static/unix-v10/man1/bprint.1 | 87 + static/unix-v10/man1/btoa.1 | 82 + static/unix-v10/man1/buildtables.1 | 214 ++ static/unix-v10/man1/bundle.1 | 53 + static/unix-v10/man1/byteyears.1 | 38 + static/unix-v10/man1/c++.1 | 151 ++ static/unix-v10/man1/c++filt.1 | 43 + static/unix-v10/man1/calendar.1 | 118 + static/unix-v10/man1/can.1 | 238 ++ static/unix-v10/man1/cat.1 | 44 + static/unix-v10/man1/catsim.1 | 27 + static/unix-v10/man1/cb.1 | 49 + static/unix-v10/man1/cbt.1 | 71 + static/unix-v10/man1/cc.1 | 52 + static/unix-v10/man1/cdb.1 | 41 + static/unix-v10/man1/cf.1 | 1 + static/unix-v10/man1/charge.1 | 194 ++ static/unix-v10/man1/chash.1 | 44 + static/unix-v10/man1/chdate.1 | 76 + static/unix-v10/man1/chdir.1 | 29 + static/unix-v10/man1/checknews.1 | 57 + static/unix-v10/man1/checknr.1 | 99 + static/unix-v10/man1/chmod.1 | 40 + static/unix-v10/man1/chown.1 | 30 + static/unix-v10/man1/chunk.1 | 58 + static/unix-v10/man1/cin.1 | 906 +++++++ static/unix-v10/man1/cite.1 | 98 + static/unix-v10/man1/clear.1 | 14 + static/unix-v10/man1/cmp.1 | 30 + static/unix-v10/man1/column.1 | 143 ++ static/unix-v10/man1/comm.1 | 48 + static/unix-v10/man1/compress.1 | 238 ++ static/unix-v10/man1/compressdir.1 | 33 + static/unix-v10/man1/con.1 | 176 ++ static/unix-v10/man1/cospan.1 | 315 +++ static/unix-v10/man1/courier.1 | 36 + static/unix-v10/man1/cp.1 | 34 + static/unix-v10/man1/cpio.1 | 184 ++ static/unix-v10/man1/cq.1 | 50 + static/unix-v10/man1/cray.1 | 124 + static/unix-v10/man1/cref.1 | 119 + static/unix-v10/man1/cropmarks.1 | 101 + static/unix-v10/man1/crypt.1 | 41 + static/unix-v10/man1/cscan.1 | 77 + static/unix-v10/man1/csh.1 | 2145 ++++++++++++++++ static/unix-v10/man1/ctags.1 | 109 + static/unix-v10/man1/cu.1 | 248 ++ static/unix-v10/man1/cut.1 | 137 + static/unix-v10/man1/cvt.1 | 8 + static/unix-v10/man1/d202.1 | 138 + static/unix-v10/man1/dag.1 | 150 ++ static/unix-v10/man1/date.1 | 33 + static/unix-v10/man1/db.1 | 283 +++ static/unix-v10/man1/dc.1 | 196 ++ static/unix-v10/man1/dcon.1 | 170 ++ static/unix-v10/man1/dd.1 | 242 ++ static/unix-v10/man1/dds.1 | 25 + static/unix-v10/man1/deroff.1 | 178 ++ static/unix-v10/man1/df.1 | 30 + static/unix-v10/man1/dictadd.1 | 142 ++ static/unix-v10/man1/dictplus.1 | 128 + static/unix-v10/man1/diff.1 | 270 ++ static/unix-v10/man1/dimpress.1 | 160 ++ static/unix-v10/man1/dired.1 | 148 ++ static/unix-v10/man1/dis.1 | 34 + static/unix-v10/man1/dist.1 | 84 + static/unix-v10/man1/dmdcat.1 | 92 + static/unix-v10/man1/dmdcc.1 | 247 ++ static/unix-v10/man1/dmddemo.1 | 31 + static/unix-v10/man1/dmdld.1 | 210 ++ static/unix-v10/man1/dmdman.1 | 61 + static/unix-v10/man1/dmdmemory.1 | 195 ++ static/unix-v10/man1/dmdpi.1 | 702 ++++++ static/unix-v10/man1/dmdversion.1 | 99 + static/unix-v10/man1/docgen.1 | 68 + static/unix-v10/man1/docsubmit.1 | 101 + static/unix-v10/man1/doctype.1 | 53 + static/unix-v10/man1/double.1 | 60 + static/unix-v10/man1/download.1 | 175 ++ static/unix-v10/man1/dpost.1 | 310 +++ static/unix-v10/man1/dsw.1 | 28 + static/unix-v10/man1/du.1 | 42 + static/unix-v10/man1/echo.1 | 25 + static/unix-v10/man1/ed.1 | 421 ++++ static/unix-v10/man1/efl.1 | 74 + static/unix-v10/man1/eqn.1 | 366 +++ static/unix-v10/man1/esterel.1 | 258 ++ static/unix-v10/man1/exit.1 | 26 + static/unix-v10/man1/expr.1 | 112 + static/unix-v10/man1/f2c.1 | 191 ++ static/unix-v10/man1/f77.1 | 212 ++ static/unix-v10/man1/factor.1 | 30 + static/unix-v10/man1/fc.1 | 292 +++ static/unix-v10/man1/fed.1 | 127 + static/unix-v10/man1/fields.1 | 5 + static/unix-v10/man1/file.1 | 18 + static/unix-v10/man1/find.1 | 182 ++ static/unix-v10/man1/flex.1 | 716 ++++++ static/unix-v10/man1/fmt.1 | 37 + static/unix-v10/man1/form.1 | 84 + static/unix-v10/man1/forml.1 | 50 + static/unix-v10/man1/fstrip.1 | 37 + static/unix-v10/man1/ftp.1 | 963 +++++++ static/unix-v10/man1/games.1 | 272 ++ static/unix-v10/man1/gcc.1 | 641 +++++ static/unix-v10/man1/getlab.1 | 49 + static/unix-v10/man1/getopt.1 | 78 + static/unix-v10/man1/gets.1 | 55 + static/unix-v10/man1/getuid.1 | 85 + static/unix-v10/man1/goto.1 | 37 + static/unix-v10/man1/grabit.1 | 86 + static/unix-v10/man1/gram.1 | 81 + static/unix-v10/man1/grap.1 | 400 +++ static/unix-v10/man1/graph.1 | 151 ++ static/unix-v10/man1/gre.1 | 188 ++ static/unix-v10/man1/grep.1 | 56 + static/unix-v10/man1/hang.1 | 16 + static/unix-v10/man1/hardcopy.1 | 131 + static/unix-v10/man1/hoc.1 | 156 ++ static/unix-v10/man1/hostname.1 | 16 + static/unix-v10/man1/hp.1 | 65 + static/unix-v10/man1/hyphen.1 | 29 + static/unix-v10/man1/ican.1 | 203 ++ static/unix-v10/man1/iclc.1 | 136 + static/unix-v10/man1/icon.1 | 162 ++ static/unix-v10/man1/icon_pi.1 | 205 ++ static/unix-v10/man1/icont.1 | 267 ++ static/unix-v10/man1/ideal.1 | 380 +++ static/unix-v10/man1/idiff.1 | 77 + static/unix-v10/man1/if.1 | 76 + static/unix-v10/man1/imscan.1 | 51 + static/unix-v10/man1/inews.1 | 151 ++ static/unix-v10/man1/init.1 | 16 + static/unix-v10/man1/intro.1 | 34 + static/unix-v10/man1/jim.1 | 331 +++ static/unix-v10/man1/join.1 | 144 ++ static/unix-v10/man1/jx.1 | 130 + static/unix-v10/man1/kill.1 | 22 + static/unix-v10/man1/kp.1 | 91 + static/unix-v10/man1/ksh.1 | 3787 ++++++++++++++++++++++++++++ static/unix-v10/man1/lab.1 | 40 + static/unix-v10/man1/langs.1 | 191 ++ static/unix-v10/man1/laserbar.1 | 41 + static/unix-v10/man1/lcc.1 | 505 ++++ static/unix-v10/man1/lcoc.1 | 76 + static/unix-v10/man1/lcomp.1 | 133 + static/unix-v10/man1/ld.1 | 111 + static/unix-v10/man1/ld80.1 | 120 + static/unix-v10/man1/learn.1 | 84 + static/unix-v10/man1/lex.1 | 71 + static/unix-v10/man1/library.1 | 241 ++ static/unix-v10/man1/lim.1 | 92 + static/unix-v10/man1/limits.1 | 14 + static/unix-v10/man1/linkdata.1 | 34 + static/unix-v10/man1/lint.1 | 319 +++ static/unix-v10/man1/lisp.1 | 101 + static/unix-v10/man1/ln.1 | 34 + static/unix-v10/man1/load.1 | 52 + static/unix-v10/man1/loadfont.1 | 212 ++ static/unix-v10/man1/login.1 | 54 + static/unix-v10/man1/look.1 | 79 + static/unix-v10/man1/lorder.1 | 40 + static/unix-v10/man1/lp.1 | 181 ++ static/unix-v10/man1/lpr.1 | 54 + static/unix-v10/man1/ls.1 | 215 ++ static/unix-v10/man1/m.1 | 31 + static/unix-v10/man1/m4.1 | 315 +++ static/unix-v10/man1/m6.1 | 109 + static/unix-v10/man1/mail.1 | 662 +++++ static/unix-v10/man1/mailalias.1 | 93 + static/unix-v10/man1/mailx.1 | 1249 +++++++++ static/unix-v10/man1/make.1 | 425 ++++ static/unix-v10/man1/makeml.1 | 138 + static/unix-v10/man1/man.1 | 34 + static/unix-v10/man1/maple.1 | 149 ++ static/unix-v10/man1/match.1 | 63 + static/unix-v10/man1/matlab.1 | 113 + static/unix-v10/man1/mc68ar.1 | 166 ++ static/unix-v10/man1/mc68as.1 | 120 + static/unix-v10/man1/mc68conv.1 | 109 + static/unix-v10/man1/mc68cpp.1 | 314 +++ static/unix-v10/man1/mc68cprs.1 | 42 + static/unix-v10/man1/mc68dis.1 | 162 ++ static/unix-v10/man1/mc68dump.1 | 164 ++ static/unix-v10/man1/mc68ld.1 | 341 +++ static/unix-v10/man1/mc68lorder.1 | 63 + static/unix-v10/man1/mc68nm.1 | 172 ++ static/unix-v10/man1/mc68size.1 | 53 + static/unix-v10/man1/mc68strip.1 | 145 ++ static/unix-v10/man1/memo.1 | 38 + static/unix-v10/man1/merge.1 | 50 + static/unix-v10/man1/mesg.1 | 27 + static/unix-v10/man1/mint.1 | 420 +++ static/unix-v10/man1/mk.1 | 617 +++++ static/unix-v10/man1/mkdir.1 | 25 + static/unix-v10/man1/mkdist.1 | 66 + static/unix-v10/man1/mkstand.1 | 202 ++ static/unix-v10/man1/mkstr.1 | 88 + static/unix-v10/man1/mkunique.1 | 30 + static/unix-v10/man1/mm.1 | 274 ++ static/unix-v10/man1/mmt.1 | 165 ++ static/unix-v10/man1/monk.1 | 341 +++ static/unix-v10/man1/movie.1 | 165 ++ static/unix-v10/man1/mp.1 | 304 +++ static/unix-v10/man1/mt.1 | 124 + static/unix-v10/man1/mv.1 | 28 + static/unix-v10/man1/newcrypt.1 | 65 + static/unix-v10/man1/newcsh.1 | 366 +++ static/unix-v10/man1/newgrp.1 | 42 + static/unix-v10/man1/newscheck.1 | 34 + static/unix-v10/man1/nice.1 | 14 + static/unix-v10/man1/nm.1 | 33 + static/unix-v10/man1/nm80.1 | 85 + static/unix-v10/man1/nohup.1 | 15 + static/unix-v10/man1/notary.1 | 94 + static/unix-v10/man1/notify.1 | 114 + static/unix-v10/man1/nroff.1 | 191 ++ static/unix-v10/man1/occ.1 | 79 + static/unix-v10/man1/ocdebug.1 | 80 + static/unix-v10/man1/ocr.1 | 176 ++ static/unix-v10/man1/od.1 | 74 + static/unix-v10/man1/olint.1 | 147 ++ static/unix-v10/man1/opr.1 | 48 + static/unix-v10/man1/ops5.1 | 185 ++ static/unix-v10/man1/org.1 | 60 + static/unix-v10/man1/osh.1 | 1151 +++++++++ static/unix-v10/man1/ov.1 | 30 + static/unix-v10/man1/p.1 | 52 + static/unix-v10/man1/pack.1 | 136 + static/unix-v10/man1/paper.1 | 16 + static/unix-v10/man1/paranoia.1 | 196 ++ static/unix-v10/man1/pascal.1 | 170 ++ static/unix-v10/man1/passwd.1 | 128 + static/unix-v10/man1/patch.1 | 320 +++ static/unix-v10/man1/pax.1 | 657 +++++ static/unix-v10/man1/pc.1 | 176 ++ static/unix-v10/man1/pcopy.1 | 28 + static/unix-v10/man1/pfe.1 | 19 + static/unix-v10/man1/pic.1 | 341 +++ static/unix-v10/man1/picasso.1 | 232 ++ static/unix-v10/man1/pico.1 | 273 ++ static/unix-v10/man1/picpack.1 | 123 + static/unix-v10/man1/pl.1 | 52 + static/unix-v10/man1/plot.1 | 72 + static/unix-v10/man1/post.1 | 607 +++++ static/unix-v10/man1/postbgi.1 | 243 ++ static/unix-v10/man1/postdaisy.1 | 217 ++ static/unix-v10/man1/postdmd.1 | 206 ++ static/unix-v10/man1/postgif.1 | 157 ++ static/unix-v10/man1/postio.1 | 308 +++ static/unix-v10/man1/postmd.1 | 330 +++ static/unix-v10/man1/postnews.1 | 74 + static/unix-v10/man1/postprint.1 | 257 ++ static/unix-v10/man1/postreverse.1 | 112 + static/unix-v10/man1/posttek.1 | 198 ++ static/unix-v10/man1/pp.1 | 39 + static/unix-v10/man1/pq.1 | 52 + static/unix-v10/man1/pr.1 | 49 + static/unix-v10/man1/prefer.1 | 489 ++++ static/unix-v10/man1/printenv.1 | 33 + static/unix-v10/man1/printfont.1 | 183 ++ static/unix-v10/man1/priv.1 | 145 ++ static/unix-v10/man1/prof.1 | 53 + static/unix-v10/man1/proof.1 | 41 + static/unix-v10/man1/proofr.1 | 111 + static/unix-v10/man1/prose.1 | 228 ++ static/unix-v10/man1/ps.1 | 66 + static/unix-v10/man1/psencoding.1 | 37 + static/unix-v10/man1/psifile.1 | 156 ++ static/unix-v10/man1/psix.1 | 132 + static/unix-v10/man1/ptx.1 | 120 + static/unix-v10/man1/punct.1 | 22 + static/unix-v10/man1/push.1 | 104 + static/unix-v10/man1/pwd.1 | 21 + static/unix-v10/man1/pwintf.1 | 178 ++ static/unix-v10/man1/pxp.1 | 125 + static/unix-v10/man1/qed.1 | 1617 ++++++++++++ static/unix-v10/man1/qsnap.1 | 117 + static/unix-v10/man1/random.1 | 50 + static/unix-v10/man1/rates.1 | 61 + static/unix-v10/man1/ratfor.1 | 70 + static/unix-v10/man1/rc.1 | 896 +++++++ static/unix-v10/man1/rcp.1 | 87 + static/unix-v10/man1/readnews.1 | 331 +++ static/unix-v10/man1/readslow.1 | 25 + static/unix-v10/man1/redmail.1 | 48 + static/unix-v10/man1/refer.1 | 273 ++ static/unix-v10/man1/reloc.1 | 45 + static/unix-v10/man1/remshent.1 | 31 + static/unix-v10/man1/rev.1 | 75 + static/unix-v10/man1/rew.1 | 30 + static/unix-v10/man1/rm.1 | 48 + static/unix-v10/man1/rmdir.1 | 32 + static/unix-v10/man1/roff.1 | 197 ++ static/unix-v10/man1/route.1 | 85 + static/unix-v10/man1/rscan.1 | 46 + static/unix-v10/man1/sdb.1 | 407 +++ static/unix-v10/man1/sed.1 | 441 ++++ static/unix-v10/man1/see.also.1 | 171 ++ static/unix-v10/man1/sendnews.1 | 46 + static/unix-v10/man1/seq.1 | 46 + static/unix-v10/man1/server.1 | 35 + static/unix-v10/man1/session.1 | 197 ++ static/unix-v10/man1/setlab.1 | 142 ++ static/unix-v10/man1/sexist.1 | 141 ++ static/unix-v10/man1/sh.1 | 386 +++ static/unix-v10/man1/shift.1 | 38 + static/unix-v10/man1/shstats.1 | 72 + static/unix-v10/man1/sign.1 | 118 + static/unix-v10/man1/size.1 | 31 + static/unix-v10/man1/size80.1 | 17 + static/unix-v10/man1/sleep.1 | 31 + static/unix-v10/man1/sml.1 | 96 + static/unix-v10/man1/sno.1 | 99 + static/unix-v10/man1/snocone.1 | 269 ++ static/unix-v10/man1/soelim.1 | 46 + static/unix-v10/man1/sort.1 | 44 + static/unix-v10/man1/speak.1 | 79 + static/unix-v10/man1/spell.1 | 134 + static/unix-v10/man1/spelltell.1 | 109 + static/unix-v10/man1/spellwwb.1 | 164 ++ static/unix-v10/man1/spin.1 | 134 + static/unix-v10/man1/spitbol.1 | 404 +++ static/unix-v10/man1/spline.1 | 95 + static/unix-v10/man1/split.1 | 30 + static/unix-v10/man1/splitrules.1 | 3 + static/unix-v10/man1/stat.1 | 70 + static/unix-v10/man1/stdarg.1 | 5 + static/unix-v10/man1/strings.1 | 51 + static/unix-v10/man1/strip.1 | 36 + static/unix-v10/man1/strlic.1 | 72 + static/unix-v10/man1/struct.1 | 4 + static/unix-v10/man1/stty.1 | 49 + static/unix-v10/man1/sum.1 | 31 + static/unix-v10/man1/switch.1 | 76 + static/unix-v10/man1/syl.1 | 93 + static/unix-v10/man1/tabs.1 | 30 + static/unix-v10/man1/tail.1 | 95 + static/unix-v10/man1/talk.1 | 67 + static/unix-v10/man1/tap.1 | 147 ++ static/unix-v10/man1/tape.1 | 60 + static/unix-v10/man1/tar.1 | 154 ++ static/unix-v10/man1/tbl.1 | 281 +++ static/unix-v10/man1/tdc.1 | 184 ++ static/unix-v10/man1/tee.1 | 29 + static/unix-v10/man1/telnet.1 | 92 + static/unix-v10/man1/test.1 | 206 ++ static/unix-v10/man1/tex.1 | 325 +++ static/unix-v10/man1/time.1 | 30 + static/unix-v10/man1/tk.1 | 60 + static/unix-v10/man1/tmg.1 | 52 + static/unix-v10/man1/tmpnam.1 | 24 + static/unix-v10/man1/tp.1 | 150 ++ static/unix-v10/man1/tr.1 | 86 + static/unix-v10/man1/tr2tex.1 | 124 + static/unix-v10/man1/track.1 | 77 + static/unix-v10/man1/troff.1 | 76 + static/unix-v10/man1/trofftable.1 | 164 ++ static/unix-v10/man1/true.1 | 25 + static/unix-v10/man1/tset.1 | 129 + static/unix-v10/man1/tsort.1 | 27 + static/unix-v10/man1/tss.1 | 65 + static/unix-v10/man1/tty.1 | 24 + static/unix-v10/man1/twig.1 | 67 + static/unix-v10/man1/type.1 | 28 + static/unix-v10/man1/typo.1 | 45 + static/unix-v10/man1/ucache.1 | 46 + static/unix-v10/man1/ul.1 | 32 + static/unix-v10/man1/un.1 | 29 + static/unix-v10/man1/uniq.1 | 51 + static/unix-v10/man1/uptime.1 | 18 + static/unix-v10/man1/usgmake.1 | 700 +++++ static/unix-v10/man1/ustats.1 | 80 + static/unix-v10/man1/uucp.1 | 255 ++ static/unix-v10/man1/uuencode.1 | 62 + static/unix-v10/man1/uurec.1 | 18 + static/unix-v10/man1/uustat.1 | 145 ++ static/unix-v10/man1/uuto.1 | 102 + static/unix-v10/man1/uux.1 | 129 + static/unix-v10/man1/v6run.1 | 42 + static/unix-v10/man1/vacation.1 | 104 + static/unix-v10/man1/vi.1 | 459 ++++ static/unix-v10/man1/view2d.1 | 156 ++ static/unix-v10/man1/vis.1 | 41 + static/unix-v10/man1/visi.1 | 283 +++ static/unix-v10/man1/vs.1 | 44 + static/unix-v10/man1/vsw.1 | 93 + static/unix-v10/man1/w.1 | 87 + static/unix-v10/man1/wait.1 | 32 + static/unix-v10/man1/wc.1 | 36 + static/unix-v10/man1/wf1.1 | 74 + static/unix-v10/man1/who.1 | 42 + static/unix-v10/man1/worduse.1 | 157 ++ static/unix-v10/man1/write.1 | 62 + static/unix-v10/man1/wtinit.1 | 25 + static/unix-v10/man1/wwb.1 | 143 ++ static/unix-v10/man1/wwbhelp.1 | 74 + static/unix-v10/man1/wwbinfo.1 | 48 + static/unix-v10/man1/wwbmail.1 | 71 + static/unix-v10/man1/wwbstand.1 | 94 + static/unix-v10/man1/wwv.1 | 45 + static/unix-v10/man1/xargs.1 | 163 ++ static/unix-v10/man1/xd.1 | 159 ++ static/unix-v10/man1/yacc.1 | 10 + static/unix-v10/man1/yes.1 | 19 + static/unix-v10/man1/zcmp.1 | 45 + static/unix-v10/man1/zero.1 | 20 + static/unix-v10/man1/zmore.1 | 125 + static/unix-v10/man2/Makefile | 3 + static/unix-v10/man2/access.2 | 63 + static/unix-v10/man2/acct.2 | 46 + static/unix-v10/man2/alarm.2 | 83 + static/unix-v10/man2/back.2 | 1 + static/unix-v10/man2/boot.2 | 27 + static/unix-v10/man2/break.2 | 34 + static/unix-v10/man2/brk.2 | 52 + static/unix-v10/man2/cemt.2 | 30 + static/unix-v10/man2/chdir.2 | 24 + static/unix-v10/man2/chmod.2 | 61 + static/unix-v10/man2/chown.2 | 71 + static/unix-v10/man2/close.2 | 27 + static/unix-v10/man2/cq.2 | 10 + static/unix-v10/man2/creat.2 | 74 + static/unix-v10/man2/csw.2 | 29 + static/unix-v10/man2/deprecated.2 | 84 + static/unix-v10/man2/dirread.2 | 63 + static/unix-v10/man2/dup.2 | 54 + static/unix-v10/man2/exec.2 | 288 +++ static/unix-v10/man2/exit.2 | 126 + static/unix-v10/man2/f2c.2 | 333 +++ static/unix-v10/man2/fields.2 | 2 + static/unix-v10/man2/fmount.2 | 149 ++ static/unix-v10/man2/fork.2 | 32 + static/unix-v10/man2/fpe.2 | 34 + static/unix-v10/man2/front.2 | 12 + static/unix-v10/man2/fstat.2 | 27 + static/unix-v10/man2/getflab.2 | 238 ++ static/unix-v10/man2/getgid.2 | 25 + static/unix-v10/man2/getplab.2 | 137 + static/unix-v10/man2/getuid.2 | 29 + static/unix-v10/man2/gtty.2 | 31 + static/unix-v10/man2/ilgins.2 | 34 + static/unix-v10/man2/indir.2 | 32 + static/unix-v10/man2/intr.2 | 31 + static/unix-v10/man2/intro.2 | 271 ++ static/unix-v10/man2/ioctl.2 | 73 + static/unix-v10/man2/kill.2 | 29 + static/unix-v10/man2/labmount.2 | 25 + static/unix-v10/man2/limits.2 | 145 ++ static/unix-v10/man2/link.2 | 26 + static/unix-v10/man2/lseek.2 | 47 + static/unix-v10/man2/m.2 | 57 + static/unix-v10/man2/makdir.2 | 27 + static/unix-v10/man2/mdate.2 | 31 + static/unix-v10/man2/mkdir.2 | 68 + static/unix-v10/man2/mknod.2 | 42 + static/unix-v10/man2/mount.2 | 38 + static/unix-v10/man2/mpx.2 | 503 ++++ static/unix-v10/man2/nice.2 | 27 + static/unix-v10/man2/nochk.2 | 32 + static/unix-v10/man2/open.2 | 61 + static/unix-v10/man2/pipe.2 | 51 + static/unix-v10/man2/profil.2 | 40 + static/unix-v10/man2/quit.2 | 24 + static/unix-v10/man2/read.2 | 42 + static/unix-v10/man2/rele.2 | 26 + static/unix-v10/man2/seek.2 | 83 + static/unix-v10/man2/select.2 | 130 + static/unix-v10/man2/setgid.2 | 25 + static/unix-v10/man2/setuid.2 | 50 + static/unix-v10/man2/signal.2 | 220 ++ static/unix-v10/man2/sleep.2 | 31 + static/unix-v10/man2/stat.2 | 128 + static/unix-v10/man2/stime.2 | 24 + static/unix-v10/man2/stty.2 | 94 + static/unix-v10/man2/sync.2 | 27 + static/unix-v10/man2/syscall.2 | 17 + static/unix-v10/man2/syslog.2 | 113 + static/unix-v10/man2/time.2 | 28 + static/unix-v10/man2/times.2 | 68 + static/unix-v10/man2/udbuf.2 | 48 + static/unix-v10/man2/umask.2 | 38 + static/unix-v10/man2/umount.2 | 34 + static/unix-v10/man2/unlink.2 | 40 + static/unix-v10/man2/unsafe.2 | 59 + static/unix-v10/man2/vtimes.2 | 51 + static/unix-v10/man2/wait.2 | 59 + static/unix-v10/man2/write.2 | 54 + static/unix-v10/man3/Makefile | 3 + static/unix-v10/man3/abort.3 | 19 + static/unix-v10/man3/arith.3 | 97 + static/unix-v10/man3/assert.3 | 38 + static/unix-v10/man3/atan.3 | 29 + static/unix-v10/man3/atof.3 | 43 + static/unix-v10/man3/atoi.3 | 43 + static/unix-v10/man3/bessel.3 | 39 + static/unix-v10/man3/bits.3 | 198 ++ static/unix-v10/man3/block.3 | 175 ++ static/unix-v10/man3/buildmap.3 | 62 + static/unix-v10/man3/cbit.3 | 105 + static/unix-v10/man3/cbt.3 | 86 + static/unix-v10/man3/chrtab.3 | 24 + static/unix-v10/man3/closeshares.3 | 21 + static/unix-v10/man3/compar.3 | 43 + static/unix-v10/man3/crypt.3 | 30 + static/unix-v10/man3/ctime.3 | 36 + static/unix-v10/man3/ctype.3 | 102 + static/unix-v10/man3/curses.3 | 98 + static/unix-v10/man3/dbm.3 | 144 ++ static/unix-v10/man3/ddsput.3 | 82 + static/unix-v10/man3/dialout.3 | 86 + static/unix-v10/man3/directory.3 | 110 + static/unix-v10/man3/ecvt.3 | 47 + static/unix-v10/man3/end.3 | 45 + static/unix-v10/man3/erf.3 | 39 + static/unix-v10/man3/exit.3 | 61 + static/unix-v10/man3/exp.3 | 28 + static/unix-v10/man3/ferror.3 | 62 + static/unix-v10/man3/fgets.3 | 73 + static/unix-v10/man3/filebuf.3 | 200 ++ static/unix-v10/man3/fio.3 | 255 ++ static/unix-v10/man3/floor.3 | 57 + static/unix-v10/man3/fopen.3 | 107 + static/unix-v10/man3/fptrap.3 | 94 + static/unix-v10/man3/fread.3 | 55 + static/unix-v10/man3/frexp.3 | 49 + static/unix-v10/man3/fseek.3 | 51 + static/unix-v10/man3/fstream.3 | 154 ++ static/unix-v10/man3/ftoa.3 | 39 + static/unix-v10/man3/ftoo.3 | 32 + static/unix-v10/man3/ftw.3 | 165 ++ static/unix-v10/man3/ftwalk.3 | 209 ++ static/unix-v10/man3/galloc.3 | 75 + static/unix-v10/man3/gamma.3 | 48 + static/unix-v10/man3/gerts.3 | 43 + static/unix-v10/man3/getarg.3 | 49 + static/unix-v10/man3/getc.3 | 59 + static/unix-v10/man3/getchr.3 | 55 + static/unix-v10/man3/getdate.3 | 169 ++ static/unix-v10/man3/getenv.3 | 30 + static/unix-v10/man3/getfields.3 | 74 + static/unix-v10/man3/getflags.3 | 116 + static/unix-v10/man3/getflds.3 | 86 + static/unix-v10/man3/getfsent.3 | 89 + static/unix-v10/man3/getgrent.3 | 79 + static/unix-v10/man3/getlogin.3 | 32 + static/unix-v10/man3/getopt.3 | 99 + static/unix-v10/man3/getpass.3 | 27 + static/unix-v10/man3/getpw.3 | 28 + static/unix-v10/man3/getpwent.3 | 83 + static/unix-v10/man3/getshares.3 | 43 + static/unix-v10/man3/getshput.3 | 50 + static/unix-v10/man3/getstsrc.3 | 43 + static/unix-v10/man3/getwd.3 | 41 + static/unix-v10/man3/hash.3 | 611 +++++ static/unix-v10/man3/hmul.3 | 16 + static/unix-v10/man3/huff.3 | 89 + static/unix-v10/man3/hypot.3 | 35 + static/unix-v10/man3/ierror.3 | 52 + static/unix-v10/man3/internet.3 | 104 + static/unix-v10/man3/intro.3 | 109 + static/unix-v10/man3/ios.3 | 384 +++ static/unix-v10/man3/ipc.3 | 348 +++ static/unix-v10/man3/iread.3 | 35 + static/unix-v10/man3/istream.3 | 334 +++ static/unix-v10/man3/itoa.3 | 30 + static/unix-v10/man3/juke.3 | 115 + static/unix-v10/man3/l3tol.3 | 34 + static/unix-v10/man3/labconst.3 | 32 + static/unix-v10/man3/labeq.3 | 80 + static/unix-v10/man3/labtoa.3 | 123 + static/unix-v10/man3/ldiv.3 | 43 + static/unix-v10/man3/log.3 | 26 + static/unix-v10/man3/malloc.3 | 94 + static/unix-v10/man3/manip.3 | 186 ++ static/unix-v10/man3/map.3 | 274 ++ static/unix-v10/man3/memory.3 | 118 + static/unix-v10/man3/mesg.3 | 25 + static/unix-v10/man3/mktemp.3 | 45 + static/unix-v10/man3/mkunique.3 | 45 + static/unix-v10/man3/mon.3 | 60 + static/unix-v10/man3/monitor.3 | 103 + static/unix-v10/man3/mp.3 | 154 ++ static/unix-v10/man3/mvefil.3 | 62 + static/unix-v10/man3/nargs.3 | 19 + static/unix-v10/man3/nlist.3 | 62 + static/unix-v10/man3/notary.3 | 92 + static/unix-v10/man3/openshares.3 | 33 + static/unix-v10/man3/ostream.3 | 249 ++ static/unix-v10/man3/perror.3 | 46 + static/unix-v10/man3/pex.3 | 63 + static/unix-v10/man3/picfile.3 | 253 ++ static/unix-v10/man3/pipebuf.3 | 73 + static/unix-v10/man3/pipestream.3 | 59 + static/unix-v10/man3/plot.3 | 161 ++ static/unix-v10/man3/poly.3 | 50 + static/unix-v10/man3/pool.3 | 85 + static/unix-v10/man3/popen.3 | 108 + static/unix-v10/man3/port.3 | 31 + static/unix-v10/man3/pow.3 | 36 + static/unix-v10/man3/print.3 | 274 ++ static/unix-v10/man3/printf.3 | 137 + static/unix-v10/man3/proj.3 | 370 +++ static/unix-v10/man3/ptime.3 | 34 + static/unix-v10/man3/putc.3 | 60 + static/unix-v10/man3/putchr.3 | 49 + static/unix-v10/man3/putshares.3 | 37 + static/unix-v10/man3/pwquery.3 | 71 + static/unix-v10/man3/qsort.3 | 42 + static/unix-v10/man3/rand.3 | 37 + static/unix-v10/man3/re.3 | 178 ++ static/unix-v10/man3/regex.3 | 66 + static/unix-v10/man3/regexp.3 | 145 ++ static/unix-v10/man3/reset.3 | 42 + static/unix-v10/man3/salloc.3 | 160 ++ static/unix-v10/man3/sbuf.prot.3 | 410 +++ static/unix-v10/man3/sbuf.pub.3 | 254 ++ static/unix-v10/man3/scanf.3 | 300 +++ static/unix-v10/man3/setbuf.3 | 46 + static/unix-v10/man3/setfil.3 | 34 + static/unix-v10/man3/setjmp.3 | 42 + static/unix-v10/man3/setlimits.3 | 58 + static/unix-v10/man3/setupgroups.3 | 30 + static/unix-v10/man3/setupshares.3 | 51 + static/unix-v10/man3/sfio.3 | 628 +++++ static/unix-v10/man3/sharesfile.3 | 17 + static/unix-v10/man3/sin.3 | 27 + static/unix-v10/man3/sinh.3 | 31 + static/unix-v10/man3/sleep.3 | 29 + static/unix-v10/man3/sqrt.3 | 24 + static/unix-v10/man3/ssbuf.3 | 130 + static/unix-v10/man3/stak.3 | 163 ++ static/unix-v10/man3/stdio.3 | 123 + static/unix-v10/man3/stdiobuf.3 | 39 + static/unix-v10/man3/string.3 | 205 ++ static/unix-v10/man3/strstream.3 | 110 + static/unix-v10/man3/swab.3 | 22 + static/unix-v10/man3/switch.3 | 44 + static/unix-v10/man3/system.3 | 22 + static/unix-v10/man3/tcp.3 | 181 ++ static/unix-v10/man3/termcap.3 | 175 ++ static/unix-v10/man3/timec.3 | 109 + static/unix-v10/man3/tm.3 | 550 ++++ static/unix-v10/man3/tolower.3 | 20 + static/unix-v10/man3/ttyn.3 | 26 + static/unix-v10/man3/ttyname.3 | 84 + static/unix-v10/man3/udp.3 | 83 + static/unix-v10/man3/uname.3 | 54 + static/unix-v10/man3/ungetc.3 | 39 + static/unix-v10/man3/valloc.3 | 27 + static/unix-v10/man3/varargs.3 | 89 + static/unix-v10/man3/view2d.3 | 93 + static/unix-v10/man3/vt.3 | 37 + static/unix-v10/man4/Makefile | 3 + static/unix-v10/man4/binarsys.4 | 39 + static/unix-v10/man4/bk.4 | 74 + static/unix-v10/man4/bl.4 | 41 + static/unix-v10/man4/bufld.4 | 22 + static/unix-v10/man4/cat.4 | 20 + static/unix-v10/man4/connld.4 | 83 + static/unix-v10/man4/console.4 | 63 + static/unix-v10/man4/da.4 | 16 + static/unix-v10/man4/dc.4 | 214 ++ static/unix-v10/man4/dh.4 | 17 + static/unix-v10/man4/dispatch.4 | 32 + static/unix-v10/man4/dk.4 | 231 ++ static/unix-v10/man4/dn.4 | 35 + static/unix-v10/man4/dp.4 | 32 + static/unix-v10/man4/drum.4 | 16 + static/unix-v10/man4/dz.4 | 18 + static/unix-v10/man4/ethernet.4 | 105 + static/unix-v10/man4/fd.4 | 63 + static/unix-v10/man4/fl.4 | 24 + static/unix-v10/man4/font.4 | 59 + static/unix-v10/man4/hp.4 | 105 + static/unix-v10/man4/ht.4 | 81 + static/unix-v10/man4/intro.4 | 91 + static/unix-v10/man4/ip.4 | 261 ++ static/unix-v10/man4/kl.4 | 41 + static/unix-v10/man4/log.4 | 42 + static/unix-v10/man4/lp.4 | 63 + static/unix-v10/man4/lpr.4 | 52 + static/unix-v10/man4/mailcnfg.4 | 117 + static/unix-v10/man4/mailsurr.4 | 517 ++++ static/unix-v10/man4/mem.4 | 34 + static/unix-v10/man4/mesgld.4 | 168 ++ static/unix-v10/man4/modules.4 | 206 ++ static/unix-v10/man4/mt.4 | 162 ++ static/unix-v10/man4/newtty.4 | 90 + static/unix-v10/man4/null.4 | 14 + static/unix-v10/man4/pc.4 | 38 + static/unix-v10/man4/pex.4 | 217 ++ static/unix-v10/man4/proc.4 | 243 ++ static/unix-v10/man4/ra.4 | 218 ++ static/unix-v10/man4/rf.4 | 37 + static/unix-v10/man4/rk.4 | 28 + static/unix-v10/man4/rp.4 | 34 + static/unix-v10/man4/rv.4 | 71 + static/unix-v10/man4/scsi.4 | 117 + static/unix-v10/man4/stream.4 | 272 ++ static/unix-v10/man4/tbl.4 | 90 + static/unix-v10/man4/tc.4 | 31 + static/unix-v10/man4/tcp.4 | 193 ++ static/unix-v10/man4/tiu.4 | 18 + static/unix-v10/man4/tm.4 | 38 + static/unix-v10/man4/tty.4 | 114 + static/unix-v10/man4/ttyld.4 | 294 +++ static/unix-v10/man4/up.4 | 65 + static/unix-v10/man4/va.4 | 121 + static/unix-v10/man4/vc.4 | 64 + static/unix-v10/man4/vp.4 | 100 + static/unix-v10/man4/vs.4 | 20 + static/unix-v10/man4/vt.4 | 230 ++ static/unix-v10/man5/80.out.5 | 161 ++ static/unix-v10/man5/Makefile | 3 + static/unix-v10/man5/a.out.5 | 150 ++ static/unix-v10/man5/acct.5 | 63 + static/unix-v10/man5/aliases.5 | 51 + static/unix-v10/man5/ar.5 | 55 + static/unix-v10/man5/ascii.5 | 61 + static/unix-v10/man5/backup.5 | 168 ++ static/unix-v10/man5/cdl.10.5 | 534 ++++ static/unix-v10/man5/config.5 | 149 ++ static/unix-v10/man5/core.5 | 57 + static/unix-v10/man5/cpio.5 | 87 + static/unix-v10/man5/dir.5 | 34 + static/unix-v10/man5/dist.5 | 68 + static/unix-v10/man5/dump.5 | 211 ++ static/unix-v10/man5/environ.5 | 91 + static/unix-v10/man5/filsys.5 | 327 +++ static/unix-v10/man5/fizz.10.5 | 459 ++++ static/unix-v10/man5/font.5 | 413 +++ static/unix-v10/man5/fs.5 | 147 ++ static/unix-v10/man5/fsm.10.5 | 116 + static/unix-v10/man5/fstab.5 | 106 + static/unix-v10/man5/graw.10.5 | 79 + static/unix-v10/man5/ident.5 | 37 + static/unix-v10/man5/lde.10.5 | 295 +++ static/unix-v10/man5/lnode.5 | 166 ++ static/unix-v10/man5/log.5 | 126 + static/unix-v10/man5/map.5 | 83 + static/unix-v10/man5/math.5 | 104 + static/unix-v10/man5/mcolor.5 | 60 + static/unix-v10/man5/mds.10.5 | 239 ++ static/unix-v10/man5/minterm.10.5 | 78 + static/unix-v10/man5/minus.z.5 | 77 + static/unix-v10/man5/mpictures.5 | 220 ++ static/unix-v10/man5/mpxio.5 | 187 ++ static/unix-v10/man5/netnews.5 | 123 + static/unix-v10/man5/news.5 | 146 ++ static/unix-v10/man5/newsrc.5 | 50 + static/unix-v10/man5/paddle.10.5 | 63 + static/unix-v10/man5/passwd.5 | 33 + static/unix-v10/man5/picfile.5 | 157 ++ static/unix-v10/man5/plot.5 | 453 ++++ static/unix-v10/man5/poly.5 | 141 ++ static/unix-v10/man5/privs.5 | 282 +++ static/unix-v10/man5/pwfile.5 | 52 + static/unix-v10/man5/saf.10.5 | Bin 0 -> 4387 bytes static/unix-v10/man5/share.5 | 309 +++ static/unix-v10/man5/shares.5 | 64 + static/unix-v10/man5/speakm.5 | 42 + static/unix-v10/man5/src.5 | 27 + static/unix-v10/man5/stab.5 | 211 ++ static/unix-v10/man5/stock.10.5 | 18 + static/unix-v10/man5/tap.5 | 68 + static/unix-v10/man5/termcap.5 | 350 +++ static/unix-v10/man5/tp.5 | 68 + static/unix-v10/man5/troff.5 | 202 ++ static/unix-v10/man5/ttys.5 | 41 + static/unix-v10/man5/ttytype.5 | 23 + static/unix-v10/man5/types.5 | 42 + static/unix-v10/man5/uids.5 | 33 + static/unix-v10/man5/utmp.5 | 23 + static/unix-v10/man5/uuencode.5 | 49 + static/unix-v10/man5/values.5 | 84 + static/unix-v10/man5/vfont.5 | 88 + static/unix-v10/man5/view2d.5 | 65 + static/unix-v10/man5/whoami.5 | 14 + static/unix-v10/man5/worm.5 | 103 + static/unix-v10/man5/wtmp.5 | 21 + static/unix-v10/man6/Makefile | 3 + static/unix-v10/man6/adventure.6 | 52 + static/unix-v10/man6/arithmetic.6 | 71 + static/unix-v10/man6/ascii.6 | 43 + static/unix-v10/man6/atc.6 | 375 +++ static/unix-v10/man6/azel.6 | 104 + static/unix-v10/man6/back.6 | 9 + static/unix-v10/man6/banner.6 | 73 + static/unix-v10/man6/basic.6 | 32 + static/unix-v10/man6/bc.6 | 62 + static/unix-v10/man6/bcd.6 | 24 + static/unix-v10/man6/bianchi.6 | 37 + static/unix-v10/man6/bj.6 | 84 + static/unix-v10/man6/boggle.6 | 99 + static/unix-v10/man6/bridge.6 | 96 + static/unix-v10/man6/cal.6 | 35 + static/unix-v10/man6/cards.6 | 43 + static/unix-v10/man6/chess.6 | 31 + static/unix-v10/man6/ching.6 | 127 + static/unix-v10/man6/cubic.6 | 17 + static/unix-v10/man6/das.6 | 27 + static/unix-v10/man6/doctor.6 | 16 + static/unix-v10/man6/dpt.6 | 31 + static/unix-v10/man6/eqnchar.6 | 182 ++ static/unix-v10/man6/factor.6 | 30 + static/unix-v10/man6/festoon.6 | 17 + static/unix-v10/man6/font.6 | 114 + static/unix-v10/man6/fortune.6 | 16 + static/unix-v10/man6/hangman.6 | 56 + static/unix-v10/man6/hyphen.6 | 19 + static/unix-v10/man6/imp.6 | 36 + static/unix-v10/man6/ipa.6 | 72 + static/unix-v10/man6/latex.6 | 100 + static/unix-v10/man6/m6.6 | 110 + static/unix-v10/man6/mail.6 | 126 + static/unix-v10/man6/man.6 | 281 +++ static/unix-v10/man6/mars.6 | 100 + static/unix-v10/man6/maze.6 | 12 + static/unix-v10/man6/mbits.6 | 118 + static/unix-v10/man6/mcs.6 | 145 ++ static/unix-v10/man6/mille.6 | 223 ++ static/unix-v10/man6/mon.6 | 12 + static/unix-v10/man6/monop.6 | 181 ++ static/unix-v10/man6/moo.6 | 26 + static/unix-v10/man6/mpictures.6 | 154 ++ static/unix-v10/man6/mpm.6 | 173 ++ static/unix-v10/man6/ms.6 | 340 +++ static/unix-v10/man6/number.6 | 14 + static/unix-v10/man6/ogre.6 | 128 + static/unix-v10/man6/ov.6 | 21 + static/unix-v10/man6/ptx.6 | 36 + static/unix-v10/man6/quiz.6 | 86 + static/unix-v10/man6/rain.6 | 1 + static/unix-v10/man6/redcode.6 | 80 + static/unix-v10/man6/sail.6 | 560 ++++ static/unix-v10/man6/sfs.6 | 43 + static/unix-v10/man6/sky.6 | 81 + static/unix-v10/man6/snake.6 | 45 + static/unix-v10/man6/spline.6 | 57 + static/unix-v10/man6/term.6 | 71 + static/unix-v10/man6/tmg.6 | 48 + static/unix-v10/man6/trek.man.6 | 802 ++++++ static/unix-v10/man6/ttt.6 | 29 + static/unix-v10/man6/warp.6 | 13 + static/unix-v10/man6/worms.6 | 1 + static/unix-v10/man6/wump.6 | 29 + static/unix-v10/man6/yacc.6 | 43 + static/unix-v10/man7/Makefile | 3 + static/unix-v10/man7/apnews.7 | 196 ++ static/unix-v10/man7/ascii.7 | 37 + static/unix-v10/man7/av.7 | 121 + static/unix-v10/man7/avw.7 | 127 + static/unix-v10/man7/cal.7 | 33 + static/unix-v10/man7/dict.7 | 193 ++ static/unix-v10/man7/dkname.7 | 16 + static/unix-v10/man7/dpd.7 | 75 + static/unix-v10/man7/getty.7 | 75 + static/unix-v10/man7/glob.7 | 36 + static/unix-v10/man7/greek.7 | 42 + static/unix-v10/man7/hier.7 | 517 ++++ static/unix-v10/man7/init.7 | 75 + static/unix-v10/man7/kbd.7 | 44 + static/unix-v10/man7/library.7 | 126 + static/unix-v10/man7/login.7 | 101 + static/unix-v10/man7/map.7 | 451 ++++ static/unix-v10/man7/me.7 | 270 ++ static/unix-v10/man7/msh.7 | 34 + static/unix-v10/man7/netlib.7 | 91 + static/unix-v10/man7/netnews.7 | 148 ++ static/unix-v10/man7/news.7 | 67 + static/unix-v10/man7/obproc.7 | 240 ++ static/unix-v10/man7/papers.7 | 85 + static/unix-v10/man7/poly.7 | 98 + static/unix-v10/man7/postnews.7 | 43 + static/unix-v10/man7/pq.7 | 126 + static/unix-v10/man7/qns.7 | 189 ++ static/unix-v10/man7/readnews.7 | 400 +++ static/unix-v10/man7/scat.7 | 81 + static/unix-v10/man7/sky.7 | 48 + static/unix-v10/man7/submit.7 | 112 + static/unix-v10/man7/tabs.7 | 30 + static/unix-v10/man7/tel.7 | 127 + static/unix-v10/man7/telno.7 | 43 + static/unix-v10/man7/tmheader.7 | 15 + static/unix-v10/man7/town.7 | 33 + static/unix-v10/man7/units.7 | 140 + static/unix-v10/man7/vs.7 | 58 + static/unix-v10/man7/vsp.7 | 61 + static/unix-v10/man7/weather.7 | 45 + static/unix-v10/man7/wx.7 | 90 + static/unix-v10/man8/11.8 | 12 + static/unix-v10/man8/20boot.8 | 31 + static/unix-v10/man8/Makefile | 3 + static/unix-v10/man8/ac.8 | 56 + static/unix-v10/man8/acct.8 | 37 + static/unix-v10/man8/adduser.8 | 87 + static/unix-v10/man8/analyze.8 | 117 + static/unix-v10/man8/apx.8 | 33 + static/unix-v10/man8/arcv.8 | 23 + static/unix-v10/man8/arff.8 | 64 + static/unix-v10/man8/asd.8 | 174 ++ static/unix-v10/man8/atalla.8 | 62 + static/unix-v10/man8/authmgr.8 | 204 ++ static/unix-v10/man8/backup.8 | 90 + static/unix-v10/man8/blmount.8 | 23 + static/unix-v10/man8/bproc.8 | 235 ++ static/unix-v10/man8/check.8 | 50 + static/unix-v10/man8/chk.8 | 21 + static/unix-v10/man8/chown.8 | 47 + static/unix-v10/man8/chuck.8 | 116 + static/unix-v10/man8/cl.8 | 100 + static/unix-v10/man8/clri.8 | 41 + static/unix-v10/man8/config.8 | 48 + static/unix-v10/man8/cpp.8 | 114 + static/unix-v10/man8/crash.8 | 268 ++ static/unix-v10/man8/cron.8 | 86 + static/unix-v10/man8/dcheck.8 | 44 + static/unix-v10/man8/delivermail.8 | 248 ++ static/unix-v10/man8/df.8 | 21 + static/unix-v10/man8/dist.8 | 146 ++ static/unix-v10/man8/dkmgr.8 | 165 ++ static/unix-v10/man8/dli.8 | 27 + static/unix-v10/man8/dmesg.8 | 64 + static/unix-v10/man8/downgrade.8 | 37 + static/unix-v10/man8/dump.8 | 94 + static/unix-v10/man8/dumpdir.8 | 38 + static/unix-v10/man8/expire.8 | 67 + static/unix-v10/man8/fsck.8 | 248 ++ static/unix-v10/man8/fstat.8 | 49 + static/unix-v10/man8/gacct.8 | 22 + static/unix-v10/man8/gettable.8 | 65 + static/unix-v10/man8/getty.8 | 88 + static/unix-v10/man8/halt.8 | 21 + static/unix-v10/man8/htable.8 | 116 + static/unix-v10/man8/icheck.8 | 182 ++ static/unix-v10/man8/inews.8 | 93 + static/unix-v10/man8/init.8 | 147 ++ static/unix-v10/man8/ino.8 | 10 + static/unix-v10/man8/ins.8 | 103 + static/unix-v10/man8/install.8 | 34 + static/unix-v10/man8/ipconfig.8 | 125 + static/unix-v10/man8/istat.8 | 35 + static/unix-v10/man8/kill.8 | 36 + static/unix-v10/man8/kmc.8 | 107 + static/unix-v10/man8/ldpcs.8 | 58 + static/unix-v10/man8/login.8 | 138 + static/unix-v10/man8/makekey.8 | 53 + static/unix-v10/man8/mkfs.8 | 138 + static/unix-v10/man8/mknod.8 | 79 + static/unix-v10/man8/mkpkg.8 | 179 ++ static/unix-v10/man8/mount.8 | 153 ++ static/unix-v10/man8/netfs.8 | 315 +++ static/unix-v10/man8/netstat.8 | 100 + static/unix-v10/man8/nosh.8 | 138 + static/unix-v10/man8/ns.8 | 153 ++ static/unix-v10/man8/postbgi.8 | 138 + static/unix-v10/man8/postio.8 | 205 ++ static/unix-v10/man8/postreverse.8 | 97 + static/unix-v10/man8/postscript.8 | 283 +++ static/unix-v10/man8/privserv.8 | 60 + static/unix-v10/man8/ps.8 | 77 + static/unix-v10/man8/pstat.8 | 418 +++ static/unix-v10/man8/pwserv.8 | 77 + static/unix-v10/man8/quot.8 | 135 + static/unix-v10/man8/rarepl.8 | 115 + static/unix-v10/man8/rc.8 | 77 + static/unix-v10/man8/reboot.8 | 127 + static/unix-v10/man8/recnews.8 | 24 + static/unix-v10/man8/reloc.8 | 45 + static/unix-v10/man8/renice.8 | 31 + static/unix-v10/man8/restor.8 | 112 + static/unix-v10/man8/route.8 | 95 + static/unix-v10/man8/sa.8 | 185 ++ static/unix-v10/man8/salv.8 | 86 + static/unix-v10/man8/savecore.8 | 83 + static/unix-v10/man8/scsish.8 | 222 ++ static/unix-v10/man8/sendcover.8 | 28 + static/unix-v10/man8/sendnews.8 | 60 + static/unix-v10/man8/ship.8 | 118 + static/unix-v10/man8/showq.8 | 56 + static/unix-v10/man8/shutdown.8 | 9 + static/unix-v10/man8/smash.8 | 43 + static/unix-v10/man8/smstat.8 | 24 + static/unix-v10/man8/smtp.8 | 200 ++ static/unix-v10/man8/sticky.8 | 44 + static/unix-v10/man8/su.8 | 34 + static/unix-v10/man8/svcmgr.8 | 331 +++ static/unix-v10/man8/swapon.8 | 37 + static/unix-v10/man8/swtmp.8 | 24 + static/unix-v10/man8/symorder.8 | 23 + static/unix-v10/man8/sync.8 | 18 + static/unix-v10/man8/syslog.8 | 172 ++ static/unix-v10/man8/tcpmgr.8 | 73 + static/unix-v10/man8/tm.8 | 48 + static/unix-v10/man8/tp.8 | 175 ++ static/unix-v10/man8/umount.8 | 31 + static/unix-v10/man8/unspk.8 | 43 + static/unix-v10/man8/upas.8 | 275 ++ static/unix-v10/man8/update.8 | 25 + static/unix-v10/man8/uucico.8 | 205 ++ static/unix-v10/man8/uucleanup.8 | 103 + static/unix-v10/man8/uurec.8 | 18 + static/unix-v10/man8/vipw.8 | 23 + static/unix-v10/man8/vmstat.8 | 143 ++ static/unix-v10/man8/vpac.8 | 49 + static/unix-v10/man8/wall.8 | 23 + static/unix-v10/man8/worm.8 | 436 ++++ static/unix-v10/man8/xs.8 | 63 + static/unix-v10/man8/xstr.8 | 108 + static/unix-v10/man9/32ld.9 | 55 + static/unix-v10/man9/3cc.9 | 163 ++ static/unix-v10/man9/Makefile | 3 + static/unix-v10/man9/add.9 | 138 + static/unix-v10/man9/alloc.9 | 93 + static/unix-v10/man9/bitblt.9 | 161 ++ static/unix-v10/man9/bitfile.9 | 74 + static/unix-v10/man9/blitblt.9 | 130 + static/unix-v10/man9/blitmap.9 | 191 ++ static/unix-v10/man9/brfs.9 | 27 + static/unix-v10/man9/brush.9 | 301 +++ static/unix-v10/man9/button.9 | 108 + static/unix-v10/man9/cip.9 | 58 + static/unix-v10/man9/circle.9 | 78 + static/unix-v10/man9/cos.9 | 59 + static/unix-v10/man9/crabs.9 | 52 + static/unix-v10/man9/demo.9 | 37 + static/unix-v10/man9/face.9 | 86 + static/unix-v10/man9/faced.9 | 179 ++ static/unix-v10/man9/flickfile.9 | 86 + static/unix-v10/man9/flicks.9 | 138 + static/unix-v10/man9/font.9 | 110 + static/unix-v10/man9/gebaca.9 | 18 + static/unix-v10/man9/getfont.9 | 59 + static/unix-v10/man9/graphdraw.9 | 310 +++ static/unix-v10/man9/icon.9 | 90 + static/unix-v10/man9/intro.9 | 128 + static/unix-v10/man9/jf.9 | 117 + static/unix-v10/man9/jim.9 | 347 +++ static/unix-v10/man9/jioctl.9 | 74 + static/unix-v10/man9/jx.9 | 112 + static/unix-v10/man9/lens.9 | 108 + static/unix-v10/man9/libc.9 | 42 + static/unix-v10/man9/lsh.9 | 32 + static/unix-v10/man9/mcc.9 | 227 ++ static/unix-v10/man9/menuhit.9 | 210 ++ static/unix-v10/man9/mld.9 | 146 ++ static/unix-v10/man9/mouse.9 | 63 + static/unix-v10/man9/movie.9 | 172 ++ static/unix-v10/man9/mux.9 | 210 ++ static/unix-v10/man9/muxstring.9 | 124 + static/unix-v10/man9/newlayer.9 | 81 + static/unix-v10/man9/newproc.9 | 193 ++ static/unix-v10/man9/pads.9 | 102 + static/unix-v10/man9/paint.9 | 218 ++ static/unix-v10/man9/ped.9 | 318 +++ static/unix-v10/man9/pengo.9 | 72 + static/unix-v10/man9/pi.9 | 397 +++ static/unix-v10/man9/proof.9 | 124 + static/unix-v10/man9/psi.9 | 142 ++ static/unix-v10/man9/reader.9 | 72 + static/unix-v10/man9/rebecca.9 | 123 + static/unix-v10/man9/request.9 | 238 ++ static/unix-v10/man9/ruler.9 | 46 + static/unix-v10/man9/sam.9 | 888 +++++++ static/unix-v10/man9/samuel.9 | 420 +++ static/unix-v10/man9/string.9 | 102 + static/unix-v10/man9/term.9 | 50 + static/unix-v10/man9/thinkblt.9 | 108 + static/unix-v10/man9/thinkclient.9 | 46 + static/unix-v10/man9/twid.9 | 90 + static/unix-v10/man9/types.9 | 147 ++ static/unix-v10/man9/vismon.9 | 116 + static/unix-v10/man9/windows.9 | 90 + static/v10/=.1 | 123 - static/v10/Makefile | 14 - static/v10/man1/2500.1 | 120 - static/v10/man1/300.1 | 228 -- static/v10/man1/450.1 | 110 - static/v10/man1/8q.1 | 92 - static/v10/man1/:.1.broken | 26 - static/v10/man1/=.1 | 123 - static/v10/man1/Makefile | 3 - static/v10/man1/acro.1 | 59 - static/v10/man1/adb.1 | 1116 -------- static/v10/man1/altran.1 | 82 - static/v10/man1/apl.1 | 202 -- static/v10/man1/apnews.1 | 39 - static/v10/man1/apply.1 | 102 - static/v10/man1/apsend.1 | 60 - static/v10/man1/ar.1 | 83 - static/v10/man1/array.1 | 4 - static/v10/man1/as.1 | 89 - static/v10/man1/as80.1 | 80 - static/v10/man1/asa.1 | 34 - static/v10/man1/ascii.1 | 82 - static/v10/man1/at.1 | 111 - static/v10/man1/awk.1 | 452 ---- static/v10/man1/backup.1 | 351 --- static/v10/man1/badge.1 | 41 - static/v10/man1/bas.1 | 312 --- static/v10/man1/basename.1 | 58 - static/v10/man1/basic.1 | 14 - static/v10/man1/bc.1 | 274 -- static/v10/man1/bcp.1 | 288 --- static/v10/man1/bdiff.1 | 68 - static/v10/man1/bigcore.1 | 38 - static/v10/man1/bison.1 | 62 - static/v10/man1/bite.1 | 712 ------ static/v10/man1/bitship.1 | 24 - static/v10/man1/bmd08v.1 | 54 - static/v10/man1/bprint.1 | 87 - static/v10/man1/btoa.1 | 82 - static/v10/man1/buildtables.1 | 214 -- static/v10/man1/bundle.1 | 53 - static/v10/man1/byteyears.1 | 38 - static/v10/man1/c++.1 | 151 -- static/v10/man1/c++filt.1 | 43 - static/v10/man1/calendar.1 | 118 - static/v10/man1/can.1 | 238 -- static/v10/man1/cat.1 | 44 - static/v10/man1/catsim.1 | 27 - static/v10/man1/cb.1 | 49 - static/v10/man1/cbt.1 | 71 - static/v10/man1/cc.1 | 52 - static/v10/man1/cdb.1 | 41 - static/v10/man1/cf.1 | 1 - static/v10/man1/charge.1 | 194 -- static/v10/man1/chash.1 | 44 - static/v10/man1/chdate.1 | 76 - static/v10/man1/chdir.1 | 29 - static/v10/man1/checknews.1 | 57 - static/v10/man1/checknr.1 | 99 - static/v10/man1/chmod.1 | 40 - static/v10/man1/chown.1 | 30 - static/v10/man1/chunk.1 | 58 - static/v10/man1/cin.1 | 906 ------- static/v10/man1/cite.1 | 98 - static/v10/man1/clear.1 | 14 - static/v10/man1/cmp.1 | 30 - static/v10/man1/column.1 | 143 -- static/v10/man1/comm.1 | 48 - static/v10/man1/compress.1 | 238 -- static/v10/man1/compressdir.1 | 33 - static/v10/man1/con.1 | 176 -- static/v10/man1/cospan.1 | 315 --- static/v10/man1/courier.1 | 36 - static/v10/man1/cp.1 | 34 - static/v10/man1/cpio.1 | 184 -- static/v10/man1/cq.1 | 50 - static/v10/man1/cray.1 | 124 - static/v10/man1/cref.1 | 119 - static/v10/man1/cropmarks.1 | 101 - static/v10/man1/crypt.1 | 41 - static/v10/man1/cscan.1 | 77 - static/v10/man1/csh.1 | 2145 ---------------- static/v10/man1/ctags.1 | 109 - static/v10/man1/cu.1 | 248 -- static/v10/man1/cut.1 | 137 - static/v10/man1/cvt.1 | 8 - static/v10/man1/d202.1 | 138 - static/v10/man1/dag.1 | 150 -- static/v10/man1/date.1 | 33 - static/v10/man1/db.1 | 283 --- static/v10/man1/dc.1 | 196 -- static/v10/man1/dcon.1 | 170 -- static/v10/man1/dd.1 | 242 -- static/v10/man1/dds.1 | 25 - static/v10/man1/deroff.1 | 178 -- static/v10/man1/df.1 | 30 - static/v10/man1/dictadd.1 | 142 -- static/v10/man1/dictplus.1 | 128 - static/v10/man1/diff.1 | 270 -- static/v10/man1/dimpress.1 | 160 -- static/v10/man1/dired.1 | 148 -- static/v10/man1/dis.1 | 34 - static/v10/man1/dist.1 | 84 - static/v10/man1/dmdcat.1 | 92 - static/v10/man1/dmdcc.1 | 247 -- static/v10/man1/dmddemo.1 | 31 - static/v10/man1/dmdld.1 | 210 -- static/v10/man1/dmdman.1 | 61 - static/v10/man1/dmdmemory.1 | 195 -- static/v10/man1/dmdpi.1 | 702 ------ static/v10/man1/dmdversion.1 | 99 - static/v10/man1/docgen.1 | 68 - static/v10/man1/docsubmit.1 | 101 - static/v10/man1/doctype.1 | 53 - static/v10/man1/double.1 | 60 - static/v10/man1/download.1 | 175 -- static/v10/man1/dpost.1 | 310 --- static/v10/man1/dsw.1 | 28 - static/v10/man1/du.1 | 42 - static/v10/man1/echo.1 | 25 - static/v10/man1/ed.1 | 421 ---- static/v10/man1/efl.1 | 74 - static/v10/man1/eqn.1 | 366 --- static/v10/man1/esterel.1 | 258 -- static/v10/man1/exit.1 | 26 - static/v10/man1/expr.1 | 112 - static/v10/man1/f2c.1 | 191 -- static/v10/man1/f77.1 | 212 -- static/v10/man1/factor.1 | 30 - static/v10/man1/fc.1 | 292 --- static/v10/man1/fed.1 | 127 - static/v10/man1/fields.1 | 5 - static/v10/man1/file.1 | 18 - static/v10/man1/find.1 | 182 -- static/v10/man1/flex.1 | 716 ------ static/v10/man1/fmt.1 | 37 - static/v10/man1/form.1 | 84 - static/v10/man1/forml.1 | 50 - static/v10/man1/fstrip.1 | 37 - static/v10/man1/ftp.1 | 963 ------- static/v10/man1/games.1 | 272 -- static/v10/man1/gcc.1 | 641 ----- static/v10/man1/getlab.1 | 49 - static/v10/man1/getopt.1 | 78 - static/v10/man1/gets.1 | 55 - static/v10/man1/getuid.1 | 85 - static/v10/man1/goto.1 | 37 - static/v10/man1/grabit.1 | 86 - static/v10/man1/gram.1 | 81 - static/v10/man1/grap.1 | 400 --- static/v10/man1/graph.1 | 151 -- static/v10/man1/gre.1 | 188 -- static/v10/man1/grep.1 | 56 - static/v10/man1/hang.1 | 16 - static/v10/man1/hardcopy.1 | 131 - static/v10/man1/hoc.1 | 156 -- static/v10/man1/hostname.1 | 16 - static/v10/man1/hp.1 | 65 - static/v10/man1/hyphen.1 | 29 - static/v10/man1/ican.1 | 203 -- static/v10/man1/iclc.1 | 136 - static/v10/man1/icon.1 | 162 -- static/v10/man1/icon_pi.1 | 205 -- static/v10/man1/icont.1 | 267 -- static/v10/man1/ideal.1 | 380 --- static/v10/man1/idiff.1 | 77 - static/v10/man1/if.1 | 76 - static/v10/man1/imscan.1 | 51 - static/v10/man1/inews.1 | 151 -- static/v10/man1/init.1 | 16 - static/v10/man1/intro.1 | 34 - static/v10/man1/jim.1 | 331 --- static/v10/man1/join.1 | 144 -- static/v10/man1/jx.1 | 130 - static/v10/man1/kill.1 | 22 - static/v10/man1/kp.1 | 91 - static/v10/man1/ksh.1 | 3787 ---------------------------- static/v10/man1/lab.1 | 40 - static/v10/man1/langs.1 | 191 -- static/v10/man1/laserbar.1 | 41 - static/v10/man1/lcc.1 | 505 ---- static/v10/man1/lcoc.1 | 76 - static/v10/man1/lcomp.1 | 133 - static/v10/man1/ld.1 | 111 - static/v10/man1/ld80.1 | 120 - static/v10/man1/learn.1 | 84 - static/v10/man1/lex.1 | 71 - static/v10/man1/library.1 | 241 -- static/v10/man1/lim.1 | 92 - static/v10/man1/limits.1 | 14 - static/v10/man1/linkdata.1 | 34 - static/v10/man1/lint.1 | 319 --- static/v10/man1/lisp.1 | 101 - static/v10/man1/ln.1 | 34 - static/v10/man1/load.1 | 52 - static/v10/man1/loadfont.1 | 212 -- static/v10/man1/login.1 | 54 - static/v10/man1/look.1 | 79 - static/v10/man1/lorder.1 | 40 - static/v10/man1/lp.1 | 181 -- static/v10/man1/lpr.1 | 54 - static/v10/man1/ls.1 | 215 -- static/v10/man1/m.1 | 31 - static/v10/man1/m4.1 | 315 --- static/v10/man1/m6.1 | 109 - static/v10/man1/mail.1 | 662 ----- static/v10/man1/mailalias.1 | 93 - static/v10/man1/mailx.1 | 1249 --------- static/v10/man1/make.1 | 425 ---- static/v10/man1/makeml.1 | 138 - static/v10/man1/man.1 | 34 - static/v10/man1/maple.1 | 149 -- static/v10/man1/match.1 | 63 - static/v10/man1/matlab.1 | 113 - static/v10/man1/mc68ar.1 | 166 -- static/v10/man1/mc68as.1 | 120 - static/v10/man1/mc68conv.1 | 109 - static/v10/man1/mc68cpp.1 | 314 --- static/v10/man1/mc68cprs.1 | 42 - static/v10/man1/mc68dis.1 | 162 -- static/v10/man1/mc68dump.1 | 164 -- static/v10/man1/mc68ld.1 | 341 --- static/v10/man1/mc68lorder.1 | 63 - static/v10/man1/mc68nm.1 | 172 -- static/v10/man1/mc68size.1 | 53 - static/v10/man1/mc68strip.1 | 145 -- static/v10/man1/memo.1 | 38 - static/v10/man1/merge.1 | 50 - static/v10/man1/mesg.1 | 27 - static/v10/man1/mint.1 | 420 --- static/v10/man1/mk.1 | 617 ----- static/v10/man1/mkdir.1 | 25 - static/v10/man1/mkdist.1 | 66 - static/v10/man1/mkstand.1 | 202 -- static/v10/man1/mkstr.1 | 88 - static/v10/man1/mkunique.1 | 30 - static/v10/man1/mm.1 | 274 -- static/v10/man1/mmt.1 | 165 -- static/v10/man1/monk.1 | 341 --- static/v10/man1/movie.1 | 165 -- static/v10/man1/mp.1 | 304 --- static/v10/man1/mt.1 | 124 - static/v10/man1/mv.1 | 28 - static/v10/man1/newcrypt.1 | 65 - static/v10/man1/newcsh.1 | 366 --- static/v10/man1/newgrp.1 | 42 - static/v10/man1/newscheck.1 | 34 - static/v10/man1/nice.1 | 14 - static/v10/man1/nm.1 | 33 - static/v10/man1/nm80.1 | 85 - static/v10/man1/nohup.1 | 15 - static/v10/man1/notary.1 | 94 - static/v10/man1/notify.1 | 114 - static/v10/man1/nroff.1 | 191 -- static/v10/man1/occ.1 | 79 - static/v10/man1/ocdebug.1 | 80 - static/v10/man1/ocr.1 | 176 -- static/v10/man1/od.1 | 74 - static/v10/man1/olint.1 | 147 -- static/v10/man1/opr.1 | 48 - static/v10/man1/ops5.1 | 185 -- static/v10/man1/org.1 | 60 - static/v10/man1/osh.1 | 1151 --------- static/v10/man1/ov.1 | 30 - static/v10/man1/p.1 | 52 - static/v10/man1/pack.1 | 136 - static/v10/man1/paper.1 | 16 - static/v10/man1/paranoia.1 | 196 -- static/v10/man1/pascal.1 | 170 -- static/v10/man1/passwd.1 | 128 - static/v10/man1/patch.1 | 320 --- static/v10/man1/pax.1 | 657 ----- static/v10/man1/pc.1 | 176 -- static/v10/man1/pcopy.1 | 28 - static/v10/man1/pfe.1 | 19 - static/v10/man1/pic.1 | 341 --- static/v10/man1/picasso.1 | 232 -- static/v10/man1/pico.1 | 273 -- static/v10/man1/picpack.1 | 123 - static/v10/man1/pl.1 | 52 - static/v10/man1/plot.1 | 72 - static/v10/man1/post.1 | 607 ----- static/v10/man1/postbgi.1 | 243 -- static/v10/man1/postdaisy.1 | 217 -- static/v10/man1/postdmd.1 | 206 -- static/v10/man1/postgif.1 | 157 -- static/v10/man1/postio.1 | 308 --- static/v10/man1/postmd.1 | 330 --- static/v10/man1/postnews.1 | 74 - static/v10/man1/postprint.1 | 257 -- static/v10/man1/postreverse.1 | 112 - static/v10/man1/posttek.1 | 198 -- static/v10/man1/pp.1 | 39 - static/v10/man1/pq.1 | 52 - static/v10/man1/pr.1 | 49 - static/v10/man1/prefer.1 | 489 ---- static/v10/man1/printenv.1 | 33 - static/v10/man1/printfont.1 | 183 -- static/v10/man1/priv.1 | 145 -- static/v10/man1/prof.1 | 53 - static/v10/man1/proof.1 | 41 - static/v10/man1/proofr.1 | 111 - static/v10/man1/prose.1 | 228 -- static/v10/man1/ps.1 | 66 - static/v10/man1/psencoding.1 | 37 - static/v10/man1/psifile.1 | 156 -- static/v10/man1/psix.1 | 132 - static/v10/man1/ptx.1 | 120 - static/v10/man1/punct.1 | 22 - static/v10/man1/push.1 | 104 - static/v10/man1/pwd.1 | 21 - static/v10/man1/pwintf.1 | 178 -- static/v10/man1/pxp.1 | 125 - static/v10/man1/qed.1 | 1617 ------------ static/v10/man1/qsnap.1 | 117 - static/v10/man1/random.1 | 50 - static/v10/man1/rates.1 | 61 - static/v10/man1/ratfor.1 | 70 - static/v10/man1/rc.1 | 896 ------- static/v10/man1/rcp.1 | 87 - static/v10/man1/readnews.1 | 331 --- static/v10/man1/readslow.1 | 25 - static/v10/man1/redmail.1 | 48 - static/v10/man1/refer.1 | 273 -- static/v10/man1/reloc.1 | 45 - static/v10/man1/remshent.1 | 31 - static/v10/man1/rev.1 | 75 - static/v10/man1/rew.1 | 30 - static/v10/man1/rm.1 | 48 - static/v10/man1/rmdir.1 | 32 - static/v10/man1/roff.1 | 197 -- static/v10/man1/route.1 | 85 - static/v10/man1/rscan.1 | 46 - static/v10/man1/sdb.1 | 407 --- static/v10/man1/sed.1 | 441 ---- static/v10/man1/see.also.1 | 171 -- static/v10/man1/sendnews.1 | 46 - static/v10/man1/seq.1 | 46 - static/v10/man1/server.1 | 35 - static/v10/man1/session.1 | 197 -- static/v10/man1/setlab.1 | 142 -- static/v10/man1/sexist.1 | 141 -- static/v10/man1/sh.1 | 386 --- static/v10/man1/shift.1 | 38 - static/v10/man1/shstats.1 | 72 - static/v10/man1/sign.1 | 118 - static/v10/man1/size.1 | 31 - static/v10/man1/size80.1 | 17 - static/v10/man1/sleep.1 | 31 - static/v10/man1/sml.1 | 96 - static/v10/man1/sno.1 | 99 - static/v10/man1/snocone.1 | 269 -- static/v10/man1/soelim.1 | 46 - static/v10/man1/sort.1 | 44 - static/v10/man1/speak.1 | 79 - static/v10/man1/spell.1 | 134 - static/v10/man1/spelltell.1 | 109 - static/v10/man1/spellwwb.1 | 164 -- static/v10/man1/spin.1 | 134 - static/v10/man1/spitbol.1 | 404 --- static/v10/man1/spline.1 | 95 - static/v10/man1/split.1 | 30 - static/v10/man1/splitrules.1 | 3 - static/v10/man1/stat.1 | 70 - static/v10/man1/stdarg.1 | 5 - static/v10/man1/strings.1 | 51 - static/v10/man1/strip.1 | 36 - static/v10/man1/strlic.1 | 72 - static/v10/man1/struct.1 | 4 - static/v10/man1/stty.1 | 49 - static/v10/man1/sum.1 | 31 - static/v10/man1/switch.1 | 76 - static/v10/man1/syl.1 | 93 - static/v10/man1/tabs.1 | 30 - static/v10/man1/tail.1 | 95 - static/v10/man1/talk.1 | 67 - static/v10/man1/tap.1 | 147 -- static/v10/man1/tape.1 | 60 - static/v10/man1/tar.1 | 154 -- static/v10/man1/tbl.1 | 281 --- static/v10/man1/tdc.1 | 184 -- static/v10/man1/tee.1 | 29 - static/v10/man1/telnet.1 | 92 - static/v10/man1/test.1 | 206 -- static/v10/man1/tex.1 | 325 --- static/v10/man1/time.1 | 30 - static/v10/man1/tk.1 | 60 - static/v10/man1/tmg.1 | 52 - static/v10/man1/tmpnam.1 | 24 - static/v10/man1/tp.1 | 150 -- static/v10/man1/tr.1 | 86 - static/v10/man1/tr2tex.1 | 124 - static/v10/man1/track.1 | 77 - static/v10/man1/troff.1 | 76 - static/v10/man1/trofftable.1 | 164 -- static/v10/man1/true.1 | 25 - static/v10/man1/tset.1 | 129 - static/v10/man1/tsort.1 | 27 - static/v10/man1/tss.1 | 65 - static/v10/man1/tty.1 | 24 - static/v10/man1/twig.1 | 67 - static/v10/man1/type.1 | 28 - static/v10/man1/typo.1 | 45 - static/v10/man1/ucache.1 | 46 - static/v10/man1/ul.1 | 32 - static/v10/man1/un.1 | 29 - static/v10/man1/uniq.1 | 51 - static/v10/man1/uptime.1 | 18 - static/v10/man1/usgmake.1 | 700 ----- static/v10/man1/ustats.1 | 80 - static/v10/man1/uucp.1 | 255 -- static/v10/man1/uuencode.1 | 62 - static/v10/man1/uurec.1 | 18 - static/v10/man1/uustat.1 | 145 -- static/v10/man1/uuto.1 | 102 - static/v10/man1/uux.1 | 129 - static/v10/man1/v6run.1 | 42 - static/v10/man1/vacation.1 | 104 - static/v10/man1/vi.1 | 459 ---- static/v10/man1/view2d.1 | 156 -- static/v10/man1/vis.1 | 41 - static/v10/man1/visi.1 | 283 --- static/v10/man1/vs.1 | 44 - static/v10/man1/vsw.1 | 93 - static/v10/man1/w.1 | 87 - static/v10/man1/wait.1 | 32 - static/v10/man1/wc.1 | 36 - static/v10/man1/wf1.1 | 74 - static/v10/man1/who.1 | 42 - static/v10/man1/worduse.1 | 157 -- static/v10/man1/write.1 | 62 - static/v10/man1/wtinit.1 | 25 - static/v10/man1/wwb.1 | 143 -- static/v10/man1/wwbhelp.1 | 74 - static/v10/man1/wwbinfo.1 | 48 - static/v10/man1/wwbmail.1 | 71 - static/v10/man1/wwbstand.1 | 94 - static/v10/man1/wwv.1 | 45 - static/v10/man1/xargs.1 | 163 -- static/v10/man1/xd.1 | 159 -- static/v10/man1/yacc.1 | 10 - static/v10/man1/yes.1 | 19 - static/v10/man1/zcmp.1 | 45 - static/v10/man1/zero.1 | 20 - static/v10/man1/zmore.1 | 125 - static/v10/man2/Makefile | 3 - static/v10/man2/access.2 | 63 - static/v10/man2/acct.2 | 46 - static/v10/man2/alarm.2 | 83 - static/v10/man2/back.2 | 1 - static/v10/man2/boot.2 | 27 - static/v10/man2/break.2 | 34 - static/v10/man2/brk.2 | 52 - static/v10/man2/cemt.2 | 30 - static/v10/man2/chdir.2 | 24 - static/v10/man2/chmod.2 | 61 - static/v10/man2/chown.2 | 71 - static/v10/man2/close.2 | 27 - static/v10/man2/cq.2 | 10 - static/v10/man2/creat.2 | 74 - static/v10/man2/csw.2 | 29 - static/v10/man2/deprecated.2 | 84 - static/v10/man2/dirread.2 | 63 - static/v10/man2/dup.2 | 54 - static/v10/man2/exec.2 | 288 --- static/v10/man2/exit.2 | 126 - static/v10/man2/f2c.2 | 333 --- static/v10/man2/fields.2 | 2 - static/v10/man2/fmount.2 | 149 -- static/v10/man2/fork.2 | 32 - static/v10/man2/fpe.2 | 34 - static/v10/man2/front.2 | 12 - static/v10/man2/fstat.2 | 27 - static/v10/man2/getflab.2 | 238 -- static/v10/man2/getgid.2 | 25 - static/v10/man2/getplab.2 | 137 - static/v10/man2/getuid.2 | 29 - static/v10/man2/gtty.2 | 31 - static/v10/man2/ilgins.2 | 34 - static/v10/man2/indir.2 | 32 - static/v10/man2/intr.2 | 31 - static/v10/man2/intro.2 | 271 -- static/v10/man2/ioctl.2 | 73 - static/v10/man2/kill.2 | 29 - static/v10/man2/labmount.2 | 25 - static/v10/man2/limits.2 | 145 -- static/v10/man2/link.2 | 26 - static/v10/man2/lseek.2 | 47 - static/v10/man2/m.2 | 57 - static/v10/man2/makdir.2 | 27 - static/v10/man2/mdate.2 | 31 - static/v10/man2/mkdir.2 | 68 - static/v10/man2/mknod.2 | 42 - static/v10/man2/mount.2 | 38 - static/v10/man2/mpx.2 | 503 ---- static/v10/man2/nice.2 | 27 - static/v10/man2/nochk.2 | 32 - static/v10/man2/open.2 | 61 - static/v10/man2/pipe.2 | 51 - static/v10/man2/profil.2 | 40 - static/v10/man2/quit.2 | 24 - static/v10/man2/read.2 | 42 - static/v10/man2/rele.2 | 26 - static/v10/man2/seek.2 | 83 - static/v10/man2/select.2 | 130 - static/v10/man2/setgid.2 | 25 - static/v10/man2/setuid.2 | 50 - static/v10/man2/signal.2 | 220 -- static/v10/man2/sleep.2 | 31 - static/v10/man2/stat.2 | 128 - static/v10/man2/stime.2 | 24 - static/v10/man2/stty.2 | 94 - static/v10/man2/sync.2 | 27 - static/v10/man2/syscall.2 | 17 - static/v10/man2/syslog.2 | 113 - static/v10/man2/time.2 | 28 - static/v10/man2/times.2 | 68 - static/v10/man2/udbuf.2 | 48 - static/v10/man2/umask.2 | 38 - static/v10/man2/umount.2 | 34 - static/v10/man2/unlink.2 | 40 - static/v10/man2/unsafe.2 | 59 - static/v10/man2/vtimes.2 | 51 - static/v10/man2/wait.2 | 59 - static/v10/man2/write.2 | 54 - static/v10/man3/Makefile | 3 - static/v10/man3/abort.3 | 19 - static/v10/man3/arith.3 | 97 - static/v10/man3/assert.3 | 38 - static/v10/man3/atan.3 | 29 - static/v10/man3/atof.3 | 43 - static/v10/man3/atoi.3 | 43 - static/v10/man3/bessel.3 | 39 - static/v10/man3/bits.3 | 198 -- static/v10/man3/block.3 | 175 -- static/v10/man3/buildmap.3 | 62 - static/v10/man3/cbit.3 | 105 - static/v10/man3/cbt.3 | 86 - static/v10/man3/chrtab.3 | 24 - static/v10/man3/closeshares.3 | 21 - static/v10/man3/compar.3 | 43 - static/v10/man3/crypt.3 | 30 - static/v10/man3/ctime.3 | 36 - static/v10/man3/ctype.3 | 102 - static/v10/man3/curses.3 | 98 - static/v10/man3/dbm.3 | 144 -- static/v10/man3/ddsput.3 | 82 - static/v10/man3/dialout.3 | 86 - static/v10/man3/directory.3 | 110 - static/v10/man3/ecvt.3 | 47 - static/v10/man3/end.3 | 45 - static/v10/man3/erf.3 | 39 - static/v10/man3/exit.3 | 61 - static/v10/man3/exp.3 | 28 - static/v10/man3/ferror.3 | 62 - static/v10/man3/fgets.3 | 73 - static/v10/man3/filebuf.3 | 200 -- static/v10/man3/fio.3 | 255 -- static/v10/man3/floor.3 | 57 - static/v10/man3/fopen.3 | 107 - static/v10/man3/fptrap.3 | 94 - static/v10/man3/fread.3 | 55 - static/v10/man3/frexp.3 | 49 - static/v10/man3/fseek.3 | 51 - static/v10/man3/fstream.3 | 154 -- static/v10/man3/ftoa.3 | 39 - static/v10/man3/ftoo.3 | 32 - static/v10/man3/ftw.3 | 165 -- static/v10/man3/ftwalk.3 | 209 -- static/v10/man3/galloc.3 | 75 - static/v10/man3/gamma.3 | 48 - static/v10/man3/gerts.3 | 43 - static/v10/man3/getarg.3 | 49 - static/v10/man3/getc.3 | 59 - static/v10/man3/getchr.3 | 55 - static/v10/man3/getdate.3 | 169 -- static/v10/man3/getenv.3 | 30 - static/v10/man3/getfields.3 | 74 - static/v10/man3/getflags.3 | 116 - static/v10/man3/getflds.3 | 86 - static/v10/man3/getfsent.3 | 89 - static/v10/man3/getgrent.3 | 79 - static/v10/man3/getlogin.3 | 32 - static/v10/man3/getopt.3 | 99 - static/v10/man3/getpass.3 | 27 - static/v10/man3/getpw.3 | 28 - static/v10/man3/getpwent.3 | 83 - static/v10/man3/getshares.3 | 43 - static/v10/man3/getshput.3 | 50 - static/v10/man3/getstsrc.3 | 43 - static/v10/man3/getwd.3 | 41 - static/v10/man3/hash.3 | 611 ----- static/v10/man3/hmul.3 | 16 - static/v10/man3/huff.3 | 89 - static/v10/man3/hypot.3 | 35 - static/v10/man3/ierror.3 | 52 - static/v10/man3/internet.3 | 104 - static/v10/man3/intro.3 | 109 - static/v10/man3/ios.3 | 384 --- static/v10/man3/ipc.3 | 348 --- static/v10/man3/iread.3 | 35 - static/v10/man3/istream.3 | 334 --- static/v10/man3/itoa.3 | 30 - static/v10/man3/juke.3 | 115 - static/v10/man3/l3tol.3 | 34 - static/v10/man3/labconst.3 | 32 - static/v10/man3/labeq.3 | 80 - static/v10/man3/labtoa.3 | 123 - static/v10/man3/ldiv.3 | 43 - static/v10/man3/log.3 | 26 - static/v10/man3/malloc.3 | 94 - static/v10/man3/manip.3 | 186 -- static/v10/man3/map.3 | 274 -- static/v10/man3/memory.3 | 118 - static/v10/man3/mesg.3 | 25 - static/v10/man3/mktemp.3 | 45 - static/v10/man3/mkunique.3 | 45 - static/v10/man3/mon.3 | 60 - static/v10/man3/monitor.3 | 103 - static/v10/man3/mp.3 | 154 -- static/v10/man3/mvefil.3 | 62 - static/v10/man3/nargs.3 | 19 - static/v10/man3/nlist.3 | 62 - static/v10/man3/notary.3 | 92 - static/v10/man3/openshares.3 | 33 - static/v10/man3/ostream.3 | 249 -- static/v10/man3/perror.3 | 46 - static/v10/man3/pex.3 | 63 - static/v10/man3/picfile.3 | 253 -- static/v10/man3/pipebuf.3 | 73 - static/v10/man3/pipestream.3 | 59 - static/v10/man3/plot.3 | 161 -- static/v10/man3/poly.3 | 50 - static/v10/man3/pool.3 | 85 - static/v10/man3/popen.3 | 108 - static/v10/man3/port.3 | 31 - static/v10/man3/pow.3 | 36 - static/v10/man3/print.3 | 274 -- static/v10/man3/printf.3 | 137 - static/v10/man3/proj.3 | 370 --- static/v10/man3/ptime.3 | 34 - static/v10/man3/putc.3 | 60 - static/v10/man3/putchr.3 | 49 - static/v10/man3/putshares.3 | 37 - static/v10/man3/pwquery.3 | 71 - static/v10/man3/qsort.3 | 42 - static/v10/man3/rand.3 | 37 - static/v10/man3/re.3 | 178 -- static/v10/man3/regex.3 | 66 - static/v10/man3/regexp.3 | 145 -- static/v10/man3/reset.3 | 42 - static/v10/man3/salloc.3 | 160 -- static/v10/man3/sbuf.prot.3 | 410 --- static/v10/man3/sbuf.pub.3 | 254 -- static/v10/man3/scanf.3 | 300 --- static/v10/man3/setbuf.3 | 46 - static/v10/man3/setfil.3 | 34 - static/v10/man3/setjmp.3 | 42 - static/v10/man3/setlimits.3 | 58 - static/v10/man3/setupgroups.3 | 30 - static/v10/man3/setupshares.3 | 51 - static/v10/man3/sfio.3 | 628 ----- static/v10/man3/sharesfile.3 | 17 - static/v10/man3/sin.3 | 27 - static/v10/man3/sinh.3 | 31 - static/v10/man3/sleep.3 | 29 - static/v10/man3/sqrt.3 | 24 - static/v10/man3/ssbuf.3 | 130 - static/v10/man3/stak.3 | 163 -- static/v10/man3/stdio.3 | 123 - static/v10/man3/stdiobuf.3 | 39 - static/v10/man3/string.3 | 205 -- static/v10/man3/strstream.3 | 110 - static/v10/man3/swab.3 | 22 - static/v10/man3/switch.3 | 44 - static/v10/man3/system.3 | 22 - static/v10/man3/tcp.3 | 181 -- static/v10/man3/termcap.3 | 175 -- static/v10/man3/timec.3 | 109 - static/v10/man3/tm.3 | 550 ---- static/v10/man3/tolower.3 | 20 - static/v10/man3/ttyn.3 | 26 - static/v10/man3/ttyname.3 | 84 - static/v10/man3/udp.3 | 83 - static/v10/man3/uname.3 | 54 - static/v10/man3/ungetc.3 | 39 - static/v10/man3/valloc.3 | 27 - static/v10/man3/varargs.3 | 89 - static/v10/man3/view2d.3 | 93 - static/v10/man3/vt.3 | 37 - static/v10/man4/Makefile | 3 - static/v10/man4/binarsys.4 | 39 - static/v10/man4/bk.4 | 74 - static/v10/man4/bl.4 | 41 - static/v10/man4/bufld.4 | 22 - static/v10/man4/cat.4 | 20 - static/v10/man4/connld.4 | 83 - static/v10/man4/console.4 | 63 - static/v10/man4/da.4 | 16 - static/v10/man4/dc.4 | 214 -- static/v10/man4/dh.4 | 17 - static/v10/man4/dispatch.4 | 32 - static/v10/man4/dk.4 | 231 -- static/v10/man4/dn.4 | 35 - static/v10/man4/dp.4 | 32 - static/v10/man4/drum.4 | 16 - static/v10/man4/dz.4 | 18 - static/v10/man4/ethernet.4 | 105 - static/v10/man4/fd.4 | 63 - static/v10/man4/fl.4 | 24 - static/v10/man4/font.4 | 59 - static/v10/man4/hp.4 | 105 - static/v10/man4/ht.4 | 81 - static/v10/man4/intro.4 | 91 - static/v10/man4/ip.4 | 261 -- static/v10/man4/kl.4 | 41 - static/v10/man4/log.4 | 42 - static/v10/man4/lp.4 | 63 - static/v10/man4/lpr.4 | 52 - static/v10/man4/mailcnfg.4 | 117 - static/v10/man4/mailsurr.4 | 517 ---- static/v10/man4/mem.4 | 34 - static/v10/man4/mesgld.4 | 168 -- static/v10/man4/modules.4 | 206 -- static/v10/man4/mt.4 | 162 -- static/v10/man4/newtty.4 | 90 - static/v10/man4/null.4 | 14 - static/v10/man4/pc.4 | 38 - static/v10/man4/pex.4 | 217 -- static/v10/man4/proc.4 | 243 -- static/v10/man4/ra.4 | 218 -- static/v10/man4/rf.4 | 37 - static/v10/man4/rk.4 | 28 - static/v10/man4/rp.4 | 34 - static/v10/man4/rv.4 | 71 - static/v10/man4/scsi.4 | 117 - static/v10/man4/stream.4 | 272 -- static/v10/man4/tbl.4 | 90 - static/v10/man4/tc.4 | 31 - static/v10/man4/tcp.4 | 193 -- static/v10/man4/tiu.4 | 18 - static/v10/man4/tm.4 | 38 - static/v10/man4/tty.4 | 114 - static/v10/man4/ttyld.4 | 294 --- static/v10/man4/up.4 | 65 - static/v10/man4/va.4 | 121 - static/v10/man4/vc.4 | 64 - static/v10/man4/vp.4 | 100 - static/v10/man4/vs.4 | 20 - static/v10/man4/vt.4 | 230 -- static/v10/man5/80.out.5 | 161 -- static/v10/man5/Makefile | 3 - static/v10/man5/a.out.5 | 150 -- static/v10/man5/acct.5 | 63 - static/v10/man5/aliases.5 | 51 - static/v10/man5/ar.5 | 55 - static/v10/man5/ascii.5 | 61 - static/v10/man5/backup.5 | 168 -- static/v10/man5/cdl.10.5 | 534 ---- static/v10/man5/config.5 | 149 -- static/v10/man5/core.5 | 57 - static/v10/man5/cpio.5 | 87 - static/v10/man5/dir.5 | 34 - static/v10/man5/dist.5 | 68 - static/v10/man5/dump.5 | 211 -- static/v10/man5/environ.5 | 91 - static/v10/man5/filsys.5 | 327 --- static/v10/man5/fizz.10.5 | 459 ---- static/v10/man5/font.5 | 413 --- static/v10/man5/fs.5 | 147 -- static/v10/man5/fsm.10.5 | 116 - static/v10/man5/fstab.5 | 106 - static/v10/man5/graw.10.5 | 79 - static/v10/man5/ident.5 | 37 - static/v10/man5/lde.10.5 | 295 --- static/v10/man5/lnode.5 | 166 -- static/v10/man5/log.5 | 126 - static/v10/man5/map.5 | 83 - static/v10/man5/math.5 | 104 - static/v10/man5/mcolor.5 | 60 - static/v10/man5/mds.10.5 | 239 -- static/v10/man5/minterm.10.5 | 78 - static/v10/man5/minus.z.5 | 77 - static/v10/man5/mpictures.5 | 220 -- static/v10/man5/mpxio.5 | 187 -- static/v10/man5/netnews.5 | 123 - static/v10/man5/news.5 | 146 -- static/v10/man5/newsrc.5 | 50 - static/v10/man5/paddle.10.5 | 63 - static/v10/man5/passwd.5 | 33 - static/v10/man5/picfile.5 | 157 -- static/v10/man5/plot.5 | 453 ---- static/v10/man5/poly.5 | 141 -- static/v10/man5/privs.5 | 282 --- static/v10/man5/pwfile.5 | 52 - static/v10/man5/saf.10.5 | Bin 4387 -> 0 bytes static/v10/man5/share.5 | 309 --- static/v10/man5/shares.5 | 64 - static/v10/man5/speakm.5 | 42 - static/v10/man5/src.5 | 27 - static/v10/man5/stab.5 | 211 -- static/v10/man5/stock.10.5 | 18 - static/v10/man5/tap.5 | 68 - static/v10/man5/termcap.5 | 350 --- static/v10/man5/tp.5 | 68 - static/v10/man5/troff.5 | 202 -- static/v10/man5/ttys.5 | 41 - static/v10/man5/ttytype.5 | 23 - static/v10/man5/types.5 | 42 - static/v10/man5/uids.5 | 33 - static/v10/man5/utmp.5 | 23 - static/v10/man5/uuencode.5 | 49 - static/v10/man5/values.5 | 84 - static/v10/man5/vfont.5 | 88 - static/v10/man5/view2d.5 | 65 - static/v10/man5/whoami.5 | 14 - static/v10/man5/worm.5 | 103 - static/v10/man5/wtmp.5 | 21 - static/v10/man6/Makefile | 3 - static/v10/man6/adventure.6 | 52 - static/v10/man6/arithmetic.6 | 71 - static/v10/man6/ascii.6 | 43 - static/v10/man6/atc.6 | 375 --- static/v10/man6/azel.6 | 104 - static/v10/man6/back.6 | 9 - static/v10/man6/banner.6 | 73 - static/v10/man6/basic.6 | 32 - static/v10/man6/bc.6 | 62 - static/v10/man6/bcd.6 | 24 - static/v10/man6/bianchi.6 | 37 - static/v10/man6/bj.6 | 84 - static/v10/man6/boggle.6 | 99 - static/v10/man6/bridge.6 | 96 - static/v10/man6/cal.6 | 35 - static/v10/man6/cards.6 | 43 - static/v10/man6/chess.6 | 31 - static/v10/man6/ching.6 | 127 - static/v10/man6/cubic.6 | 17 - static/v10/man6/das.6 | 27 - static/v10/man6/doctor.6 | 16 - static/v10/man6/dpt.6 | 31 - static/v10/man6/eqnchar.6 | 182 -- static/v10/man6/factor.6 | 30 - static/v10/man6/festoon.6 | 17 - static/v10/man6/font.6 | 114 - static/v10/man6/fortune.6 | 16 - static/v10/man6/hangman.6 | 56 - static/v10/man6/hyphen.6 | 19 - static/v10/man6/imp.6 | 36 - static/v10/man6/ipa.6 | 72 - static/v10/man6/latex.6 | 100 - static/v10/man6/m6.6 | 110 - static/v10/man6/mail.6 | 126 - static/v10/man6/man.6 | 281 --- static/v10/man6/mars.6 | 100 - static/v10/man6/maze.6 | 12 - static/v10/man6/mbits.6 | 118 - static/v10/man6/mcs.6 | 145 -- static/v10/man6/mille.6 | 223 -- static/v10/man6/mon.6 | 12 - static/v10/man6/monop.6 | 181 -- static/v10/man6/moo.6 | 26 - static/v10/man6/mpictures.6 | 154 -- static/v10/man6/mpm.6 | 173 -- static/v10/man6/ms.6 | 340 --- static/v10/man6/number.6 | 14 - static/v10/man6/ogre.6 | 128 - static/v10/man6/ov.6 | 21 - static/v10/man6/ptx.6 | 36 - static/v10/man6/quiz.6 | 86 - static/v10/man6/rain.6 | 1 - static/v10/man6/redcode.6 | 80 - static/v10/man6/sail.6 | 560 ---- static/v10/man6/sfs.6 | 43 - static/v10/man6/sky.6 | 81 - static/v10/man6/snake.6 | 45 - static/v10/man6/spline.6 | 57 - static/v10/man6/term.6 | 71 - static/v10/man6/tmg.6 | 48 - static/v10/man6/trek.man.6 | 802 ------ static/v10/man6/ttt.6 | 29 - static/v10/man6/warp.6 | 13 - static/v10/man6/worms.6 | 1 - static/v10/man6/wump.6 | 29 - static/v10/man6/yacc.6 | 43 - static/v10/man7/Makefile | 3 - static/v10/man7/apnews.7 | 196 -- static/v10/man7/ascii.7 | 37 - static/v10/man7/av.7 | 121 - static/v10/man7/avw.7 | 127 - static/v10/man7/cal.7 | 33 - static/v10/man7/dict.7 | 193 -- static/v10/man7/dkname.7 | 16 - static/v10/man7/dpd.7 | 75 - static/v10/man7/getty.7 | 75 - static/v10/man7/glob.7 | 36 - static/v10/man7/greek.7 | 42 - static/v10/man7/hier.7 | 517 ---- static/v10/man7/init.7 | 75 - static/v10/man7/kbd.7 | 44 - static/v10/man7/library.7 | 126 - static/v10/man7/login.7 | 101 - static/v10/man7/map.7 | 451 ---- static/v10/man7/me.7 | 270 -- static/v10/man7/msh.7 | 34 - static/v10/man7/netlib.7 | 91 - static/v10/man7/netnews.7 | 148 -- static/v10/man7/news.7 | 67 - static/v10/man7/obproc.7 | 240 -- static/v10/man7/papers.7 | 85 - static/v10/man7/poly.7 | 98 - static/v10/man7/postnews.7 | 43 - static/v10/man7/pq.7 | 126 - static/v10/man7/qns.7 | 189 -- static/v10/man7/readnews.7 | 400 --- static/v10/man7/scat.7 | 81 - static/v10/man7/sky.7 | 48 - static/v10/man7/submit.7 | 112 - static/v10/man7/tabs.7 | 30 - static/v10/man7/tel.7 | 127 - static/v10/man7/telno.7 | 43 - static/v10/man7/tmheader.7 | 15 - static/v10/man7/town.7 | 33 - static/v10/man7/units.7 | 140 - static/v10/man7/vs.7 | 58 - static/v10/man7/vsp.7 | 61 - static/v10/man7/weather.7 | 45 - static/v10/man7/wx.7 | 90 - static/v10/man8/11.8 | 12 - static/v10/man8/20boot.8 | 31 - static/v10/man8/Makefile | 3 - static/v10/man8/ac.8 | 56 - static/v10/man8/acct.8 | 37 - static/v10/man8/adduser.8 | 87 - static/v10/man8/analyze.8 | 117 - static/v10/man8/apx.8 | 33 - static/v10/man8/arcv.8 | 23 - static/v10/man8/arff.8 | 64 - static/v10/man8/asd.8 | 174 -- static/v10/man8/atalla.8 | 62 - static/v10/man8/authmgr.8 | 204 -- static/v10/man8/backup.8 | 90 - static/v10/man8/blmount.8 | 23 - static/v10/man8/bproc.8 | 235 -- static/v10/man8/check.8 | 50 - static/v10/man8/chk.8 | 21 - static/v10/man8/chown.8 | 47 - static/v10/man8/chuck.8 | 116 - static/v10/man8/cl.8 | 100 - static/v10/man8/clri.8 | 41 - static/v10/man8/config.8 | 48 - static/v10/man8/cpp.8 | 114 - static/v10/man8/crash.8 | 268 -- static/v10/man8/cron.8 | 86 - static/v10/man8/dcheck.8 | 44 - static/v10/man8/delivermail.8 | 248 -- static/v10/man8/df.8 | 21 - static/v10/man8/dist.8 | 146 -- static/v10/man8/dkmgr.8 | 165 -- static/v10/man8/dli.8 | 27 - static/v10/man8/dmesg.8 | 64 - static/v10/man8/downgrade.8 | 37 - static/v10/man8/dump.8 | 94 - static/v10/man8/dumpdir.8 | 38 - static/v10/man8/expire.8 | 67 - static/v10/man8/fsck.8 | 248 -- static/v10/man8/fstat.8 | 49 - static/v10/man8/gacct.8 | 22 - static/v10/man8/gettable.8 | 65 - static/v10/man8/getty.8 | 88 - static/v10/man8/halt.8 | 21 - static/v10/man8/htable.8 | 116 - static/v10/man8/icheck.8 | 182 -- static/v10/man8/inews.8 | 93 - static/v10/man8/init.8 | 147 -- static/v10/man8/ino.8 | 10 - static/v10/man8/ins.8 | 103 - static/v10/man8/install.8 | 34 - static/v10/man8/ipconfig.8 | 125 - static/v10/man8/istat.8 | 35 - static/v10/man8/kill.8 | 36 - static/v10/man8/kmc.8 | 107 - static/v10/man8/ldpcs.8 | 58 - static/v10/man8/login.8 | 138 - static/v10/man8/makekey.8 | 53 - static/v10/man8/mkfs.8 | 138 - static/v10/man8/mknod.8 | 79 - static/v10/man8/mkpkg.8 | 179 -- static/v10/man8/mount.8 | 153 -- static/v10/man8/netfs.8 | 315 --- static/v10/man8/netstat.8 | 100 - static/v10/man8/nosh.8 | 138 - static/v10/man8/ns.8 | 153 -- static/v10/man8/postbgi.8 | 138 - static/v10/man8/postio.8 | 205 -- static/v10/man8/postreverse.8 | 97 - static/v10/man8/postscript.8 | 283 --- static/v10/man8/privserv.8 | 60 - static/v10/man8/ps.8 | 77 - static/v10/man8/pstat.8 | 418 --- static/v10/man8/pwserv.8 | 77 - static/v10/man8/quot.8 | 135 - static/v10/man8/rarepl.8 | 115 - static/v10/man8/rc.8 | 77 - static/v10/man8/reboot.8 | 127 - static/v10/man8/recnews.8 | 24 - static/v10/man8/reloc.8 | 45 - static/v10/man8/renice.8 | 31 - static/v10/man8/restor.8 | 112 - static/v10/man8/route.8 | 95 - static/v10/man8/sa.8 | 185 -- static/v10/man8/salv.8 | 86 - static/v10/man8/savecore.8 | 83 - static/v10/man8/scsish.8 | 222 -- static/v10/man8/sendcover.8 | 28 - static/v10/man8/sendnews.8 | 60 - static/v10/man8/ship.8 | 118 - static/v10/man8/showq.8 | 56 - static/v10/man8/shutdown.8 | 9 - static/v10/man8/smash.8 | 43 - static/v10/man8/smstat.8 | 24 - static/v10/man8/smtp.8 | 200 -- static/v10/man8/sticky.8 | 44 - static/v10/man8/su.8 | 34 - static/v10/man8/svcmgr.8 | 331 --- static/v10/man8/swapon.8 | 37 - static/v10/man8/swtmp.8 | 24 - static/v10/man8/symorder.8 | 23 - static/v10/man8/sync.8 | 18 - static/v10/man8/syslog.8 | 172 -- static/v10/man8/tcpmgr.8 | 73 - static/v10/man8/tm.8 | 48 - static/v10/man8/tp.8 | 175 -- static/v10/man8/umount.8 | 31 - static/v10/man8/unspk.8 | 43 - static/v10/man8/upas.8 | 275 -- static/v10/man8/update.8 | 25 - static/v10/man8/uucico.8 | 205 -- static/v10/man8/uucleanup.8 | 103 - static/v10/man8/uurec.8 | 18 - static/v10/man8/vipw.8 | 23 - static/v10/man8/vmstat.8 | 143 -- static/v10/man8/vpac.8 | 49 - static/v10/man8/wall.8 | 23 - static/v10/man8/worm.8 | 436 ---- static/v10/man8/xs.8 | 63 - static/v10/man8/xstr.8 | 108 - static/v10/man9/32ld.9 | 55 - static/v10/man9/3cc.9 | 163 -- static/v10/man9/Makefile | 3 - static/v10/man9/add.9 | 138 - static/v10/man9/alloc.9 | 93 - static/v10/man9/bitblt.9 | 161 -- static/v10/man9/bitfile.9 | 74 - static/v10/man9/blitblt.9 | 130 - static/v10/man9/blitmap.9 | 191 -- static/v10/man9/brfs.9 | 27 - static/v10/man9/brush.9 | 301 --- static/v10/man9/button.9 | 108 - static/v10/man9/cip.9 | 58 - static/v10/man9/circle.9 | 78 - static/v10/man9/cos.9 | 59 - static/v10/man9/crabs.9 | 52 - static/v10/man9/demo.9 | 37 - static/v10/man9/face.9 | 86 - static/v10/man9/faced.9 | 179 -- static/v10/man9/flickfile.9 | 86 - static/v10/man9/flicks.9 | 138 - static/v10/man9/font.9 | 110 - static/v10/man9/gebaca.9 | 18 - static/v10/man9/getfont.9 | 59 - static/v10/man9/graphdraw.9 | 310 --- static/v10/man9/icon.9 | 90 - static/v10/man9/intro.9 | 128 - static/v10/man9/jf.9 | 117 - static/v10/man9/jim.9 | 347 --- static/v10/man9/jioctl.9 | 74 - static/v10/man9/jx.9 | 112 - static/v10/man9/lens.9 | 108 - static/v10/man9/libc.9 | 42 - static/v10/man9/lsh.9 | 32 - static/v10/man9/mcc.9 | 227 -- static/v10/man9/menuhit.9 | 210 -- static/v10/man9/mld.9 | 146 -- static/v10/man9/mouse.9 | 63 - static/v10/man9/movie.9 | 172 -- static/v10/man9/mux.9 | 210 -- static/v10/man9/muxstring.9 | 124 - static/v10/man9/newlayer.9 | 81 - static/v10/man9/newproc.9 | 193 -- static/v10/man9/pads.9 | 102 - static/v10/man9/paint.9 | 218 -- static/v10/man9/ped.9 | 318 --- static/v10/man9/pengo.9 | 72 - static/v10/man9/pi.9 | 397 --- static/v10/man9/proof.9 | 124 - static/v10/man9/psi.9 | 142 -- static/v10/man9/reader.9 | 72 - static/v10/man9/rebecca.9 | 123 - static/v10/man9/request.9 | 238 -- static/v10/man9/ruler.9 | 46 - static/v10/man9/sam.9 | 888 ------- static/v10/man9/samuel.9 | 420 --- static/v10/man9/string.9 | 102 - static/v10/man9/term.9 | 50 - static/v10/man9/thinkblt.9 | 108 - static/v10/man9/thinkclient.9 | 46 - static/v10/man9/twid.9 | 90 - static/v10/man9/types.9 | 147 -- static/v10/man9/vismon.9 | 116 - static/v10/man9/windows.9 | 90 - 3360 files changed, 315553 insertions(+), 141771 deletions(-) delete mode 100644 static/freebsd/man1/1.1 delete mode 100644 static/freebsd/man1/2.1 delete mode 100644 static/freebsd/man1/3.1 delete mode 100644 static/freebsd/man1/4.1 delete mode 100644 static/freebsd/man1/5.1 delete mode 100644 static/freebsd/man1/6.1 delete mode 100644 static/freebsd/man1/7.1 delete mode 100644 static/freebsd/man1/8.1 delete mode 100644 static/freebsd/man1/9.1 delete mode 100644 static/freebsd/man2/1.2 delete mode 100644 static/freebsd/man2/2.2 delete mode 100644 static/freebsd/man2/3.2 delete mode 100644 static/freebsd/man2/4.2 delete mode 100644 static/freebsd/man2/5.2 delete mode 100644 static/freebsd/man2/6.2 delete mode 100644 static/freebsd/man2/7.2 delete mode 100644 static/freebsd/man2/8.2 delete mode 100644 static/freebsd/man2/9.2 delete mode 100644 static/freebsd/man3/1.3 delete mode 100644 static/freebsd/man3/2.3 delete mode 100644 static/freebsd/man3/3.3 delete mode 100644 static/freebsd/man3/4.3 delete mode 100644 static/freebsd/man3/5.3 delete mode 100644 static/freebsd/man3/6.3 delete mode 100644 static/freebsd/man3/7.3 delete mode 100644 static/freebsd/man3/8.3 delete mode 100644 static/freebsd/man3/9.3 delete mode 100644 static/freebsd/man4/1.4 delete mode 100644 static/freebsd/man4/2.4 delete mode 100644 static/freebsd/man4/3.4 delete mode 100644 static/freebsd/man4/4.4 delete mode 100644 static/freebsd/man4/5.4 delete mode 100644 static/freebsd/man4/6.4 delete mode 100644 static/freebsd/man4/7.4 delete mode 100644 static/freebsd/man4/8.4 delete mode 100644 static/freebsd/man4/9.4 delete mode 100644 static/freebsd/man5/1.5 delete mode 100644 static/freebsd/man5/2.5 delete mode 100644 static/freebsd/man5/4.5 delete mode 100644 static/freebsd/man5/5.5 delete mode 100644 static/freebsd/man5/6.5 delete mode 100644 static/freebsd/man5/7.5 delete mode 100644 static/freebsd/man5/8.5 delete mode 100644 static/freebsd/man5/9.5 delete mode 100644 static/freebsd/man6/1.6 delete mode 100644 static/freebsd/man6/2.6 delete mode 100644 static/freebsd/man6/4.6 delete mode 100644 static/freebsd/man6/5.6 delete mode 100644 static/freebsd/man6/6.6 delete mode 100644 static/freebsd/man6/7.6 delete mode 100644 static/freebsd/man6/8.6 delete mode 100644 static/freebsd/man6/9.6 delete mode 100644 static/freebsd/man7/1.7 delete mode 100644 static/freebsd/man7/2.7 delete mode 100644 static/freebsd/man7/4.7 delete mode 100644 static/freebsd/man7/5.7 delete mode 100644 static/freebsd/man7/7.7 delete mode 100644 static/freebsd/man7/8.7 delete mode 100644 static/freebsd/man7/9.7 delete mode 100644 static/freebsd/man8/1.8 delete mode 100644 static/freebsd/man8/2.8 delete mode 100644 static/freebsd/man8/4.8 delete mode 100644 static/freebsd/man8/5.8 delete mode 100644 static/freebsd/man8/7.8 delete mode 100644 static/freebsd/man8/8.8 delete mode 100644 static/freebsd/man8/9.8 delete mode 100644 static/freebsd/man9/1.9 delete mode 100644 static/freebsd/man9/2.9 delete mode 100644 static/freebsd/man9/8.9 delete mode 100644 static/freebsd/man9/9.9 create mode 100644 static/inferno/Makefile create mode 100644 static/inferno/man1/0intro.1 create mode 100644 static/inferno/man1/9win.1 create mode 100644 static/inferno/man1/INDEX.1 create mode 100644 static/inferno/man1/Makefile create mode 100644 static/inferno/man1/acme.1 create mode 100644 static/inferno/man1/alphabet-abc.1 create mode 100644 static/inferno/man1/alphabet-fs.1 create mode 100644 static/inferno/man1/alphabet-grid.1 create mode 100644 static/inferno/man1/alphabet-main.1 create mode 100644 static/inferno/man1/ar.1 create mode 100644 static/inferno/man1/asm.1 create mode 100644 static/inferno/man1/auplay.1 create mode 100644 static/inferno/man1/avr.1 create mode 100644 static/inferno/man1/basename.1 create mode 100644 static/inferno/man1/bind.1 create mode 100644 static/inferno/man1/blur.1 create mode 100644 static/inferno/man1/brutus.1 create mode 100644 static/inferno/man1/cal.1 create mode 100644 static/inferno/man1/calc.1 create mode 100644 static/inferno/man1/calendar.1 create mode 100644 static/inferno/man1/cat.1 create mode 100644 static/inferno/man1/cd.1 create mode 100644 static/inferno/man1/charon.1 create mode 100644 static/inferno/man1/chgrp.1 create mode 100644 static/inferno/man1/chmod.1 create mode 100644 static/inferno/man1/cleanname.1 create mode 100644 static/inferno/man1/cmp.1 create mode 100644 static/inferno/man1/collab-clients.1 create mode 100644 static/inferno/man1/collab.1 create mode 100644 static/inferno/man1/comm.1 create mode 100644 static/inferno/man1/cook.1 create mode 100644 static/inferno/man1/cp.1 create mode 100644 static/inferno/man1/cprof.1 create mode 100644 static/inferno/man1/cpu.1 create mode 100644 static/inferno/man1/crypt.1 create mode 100644 static/inferno/man1/date.1 create mode 100644 static/inferno/man1/dd.1 create mode 100644 static/inferno/man1/deb.1 create mode 100644 static/inferno/man1/diff.1 create mode 100644 static/inferno/man1/disdep.1 create mode 100644 static/inferno/man1/dmview.1 create mode 100644 static/inferno/man1/du.1 create mode 100644 static/inferno/man1/ebook.1 create mode 100644 static/inferno/man1/echo.1 create mode 100644 static/inferno/man1/emu.1 create mode 100644 static/inferno/man1/env.1 create mode 100644 static/inferno/man1/fc.1 create mode 100644 static/inferno/man1/filename.1 create mode 100644 static/inferno/man1/fmt.1 create mode 100644 static/inferno/man1/fortune.1 create mode 100644 static/inferno/man1/freq.1 create mode 100644 static/inferno/man1/fs.1 create mode 100644 static/inferno/man1/ftest.1 create mode 100644 static/inferno/man1/ftree.1 create mode 100644 static/inferno/man1/gettar.1 create mode 100644 static/inferno/man1/grep.1 create mode 100644 static/inferno/man1/grid-monitor.1 create mode 100644 static/inferno/man1/grid-ns.1 create mode 100644 static/inferno/man1/grid-query.1 create mode 100644 static/inferno/man1/grid-register.1 create mode 100644 static/inferno/man1/grid-session.1 create mode 100644 static/inferno/man1/gzip.1 create mode 100644 static/inferno/man1/idea.1 create mode 100644 static/inferno/man1/itest.1 create mode 100644 static/inferno/man1/keyboard.1 create mode 100644 static/inferno/man1/kill.1 create mode 100644 static/inferno/man1/limbo.1 create mode 100644 static/inferno/man1/listen.1 create mode 100644 static/inferno/man1/logon.1 create mode 100644 static/inferno/man1/logwindow.1 create mode 100644 static/inferno/man1/look.1 create mode 100644 static/inferno/man1/ls.1 create mode 100644 static/inferno/man1/m4.1 create mode 100644 static/inferno/man1/man.1 create mode 100644 static/inferno/man1/mash-make.1 create mode 100644 static/inferno/man1/mash-tk.1 create mode 100644 static/inferno/man1/mash.1 create mode 100644 static/inferno/man1/math-misc.1 create mode 100644 static/inferno/man1/mc.1 create mode 100644 static/inferno/man1/mdb.1 create mode 100644 static/inferno/man1/miniterm.1 create mode 100644 static/inferno/man1/mk.1 create mode 100644 static/inferno/man1/mkdir.1 create mode 100644 static/inferno/man1/mprof.1 create mode 100644 static/inferno/man1/mux.1 create mode 100644 static/inferno/man1/mv.1 create mode 100644 static/inferno/man1/netkey.1 create mode 100644 static/inferno/man1/netstat.1 create mode 100644 static/inferno/man1/ns.1 create mode 100644 static/inferno/man1/nsbuild.1 create mode 100644 static/inferno/man1/os.1 create mode 100644 static/inferno/man1/p.1 create mode 100644 static/inferno/man1/passwd.1 create mode 100644 static/inferno/man1/plumb.1 create mode 100644 static/inferno/man1/prof.1 create mode 100644 static/inferno/man1/ps.1 create mode 100644 static/inferno/man1/pwd.1 create mode 100644 static/inferno/man1/rcmd.1 create mode 100644 static/inferno/man1/read.1 create mode 100644 static/inferno/man1/rm.1 create mode 100644 static/inferno/man1/runas.1 create mode 100644 static/inferno/man1/secstore.1 create mode 100644 static/inferno/man1/sendmail.1 create mode 100644 static/inferno/man1/sh-alphabet.1 create mode 100644 static/inferno/man1/sh-arg.1 create mode 100644 static/inferno/man1/sh-csv.1 create mode 100644 static/inferno/man1/sh-expr.1 create mode 100644 static/inferno/man1/sh-file2chan.1 create mode 100644 static/inferno/man1/sh-mload.1 create mode 100644 static/inferno/man1/sh-regex.1 create mode 100644 static/inferno/man1/sh-sexprs.1 create mode 100644 static/inferno/man1/sh-std.1 create mode 100644 static/inferno/man1/sh-string.1 create mode 100644 static/inferno/man1/sh-test.1 create mode 100644 static/inferno/man1/sh-tk.1 create mode 100644 static/inferno/man1/sh.1 create mode 100644 static/inferno/man1/sleep.1 create mode 100644 static/inferno/man1/sort.1 create mode 100644 static/inferno/man1/spree-join.1 create mode 100644 static/inferno/man1/stack.1 create mode 100644 static/inferno/man1/stream.1 create mode 100644 static/inferno/man1/strings.1 create mode 100644 static/inferno/man1/sum.1 create mode 100644 static/inferno/man1/tail.1 create mode 100644 static/inferno/man1/tcs.1 create mode 100644 static/inferno/man1/tee.1 create mode 100644 static/inferno/man1/telnet.1 create mode 100644 static/inferno/man1/time.1 create mode 100644 static/inferno/man1/timestamp.1 create mode 100644 static/inferno/man1/tiny.1 create mode 100644 static/inferno/man1/tkcmd.1 create mode 100644 static/inferno/man1/tktester.1 create mode 100644 static/inferno/man1/toolbar.1 create mode 100644 static/inferno/man1/touch.1 create mode 100644 static/inferno/man1/tr.1 create mode 100644 static/inferno/man1/tsort.1 create mode 100644 static/inferno/man1/unicode.1 create mode 100644 static/inferno/man1/uniq.1 create mode 100644 static/inferno/man1/units.1 create mode 100644 static/inferno/man1/uuencode.1 create mode 100644 static/inferno/man1/vacget.1 create mode 100644 static/inferno/man1/wc.1 create mode 100644 static/inferno/man1/webgrab.1 create mode 100644 static/inferno/man1/whois.1 create mode 100644 static/inferno/man1/wish.1 create mode 100644 static/inferno/man1/wm-misc.1 create mode 100644 static/inferno/man1/wm-sh.1 create mode 100644 static/inferno/man1/wm.1 create mode 100644 static/inferno/man1/xd.1 create mode 100644 static/inferno/man1/yacc.1 create mode 100644 static/inferno/man1/zeros.1 create mode 100644 static/inferno/man10/0intro.10 create mode 100644 static/inferno/man10/2a.10 create mode 100644 static/inferno/man10/2c.10 create mode 100644 static/inferno/man10/2l.10 create mode 100644 static/inferno/man10/5coff.10 create mode 100644 static/inferno/man10/5cv.10 create mode 100644 static/inferno/man10/9load.10 create mode 100644 static/inferno/man10/INDEX.10 create mode 100644 static/inferno/man10/Makefile create mode 100644 static/inferno/man10/a.out.10 create mode 100644 static/inferno/man10/acid.10 create mode 100644 static/inferno/man10/allocb.10 create mode 100644 static/inferno/man10/ar.10 create mode 100644 static/inferno/man10/atoi.10 create mode 100644 static/inferno/man10/c2l.10 create mode 100644 static/inferno/man10/conf.10 create mode 100644 static/inferno/man10/delay.10 create mode 100644 static/inferno/man10/dev.10 create mode 100644 static/inferno/man10/devattach.10 create mode 100644 static/inferno/man10/dmainit.10 create mode 100644 static/inferno/man10/dynld.10 create mode 100644 static/inferno/man10/error.10 create mode 100644 static/inferno/man10/eve.10 create mode 100644 static/inferno/man10/getfields.10 create mode 100644 static/inferno/man10/iar.10 create mode 100644 static/inferno/man10/inb.10 create mode 100644 static/inferno/man10/inm.10 create mode 100644 static/inferno/man10/intrenable.10 create mode 100644 static/inferno/man10/kbdputc.10 create mode 100644 static/inferno/man10/kproc.10 create mode 100644 static/inferno/man10/kprof.10 create mode 100644 static/inferno/man10/ksize.10 create mode 100644 static/inferno/man10/kstrip.10 create mode 100644 static/inferno/man10/lock.10 create mode 100644 static/inferno/man10/malloc.10 create mode 100644 static/inferno/man10/master.10 create mode 100644 static/inferno/man10/memory.10 create mode 100644 static/inferno/man10/mk.10 create mode 100644 static/inferno/man10/ms2.10 create mode 100644 static/inferno/man10/newchan.10 create mode 100644 static/inferno/man10/ntsrv.10 create mode 100644 static/inferno/man10/odbc.10 create mode 100644 static/inferno/man10/panic.10 create mode 100644 static/inferno/man10/parsecmd.10 create mode 100644 static/inferno/man10/plan9.ini.10 create mode 100644 static/inferno/man10/print.10 create mode 100644 static/inferno/man10/qio.10 create mode 100644 static/inferno/man10/qlock.10 create mode 100644 static/inferno/man10/readnum.10 create mode 100644 static/inferno/man10/ref.10 create mode 100644 static/inferno/man10/rune.10 create mode 100644 static/inferno/man10/seconds.10 create mode 100644 static/inferno/man10/sleep.10 create mode 100644 static/inferno/man10/splhi.10 create mode 100644 static/inferno/man10/srclist.10 create mode 100644 static/inferno/man10/strcat.10 create mode 100644 static/inferno/man10/styx.10 create mode 100644 static/inferno/man10/styxserver.10 create mode 100644 static/inferno/man10/xalloc.10 create mode 100644 static/inferno/man2/0intro.2 create mode 100644 static/inferno/man2/9p-ninep.2 create mode 100644 static/inferno/man2/INDEX.2 create mode 100644 static/inferno/man2/Makefile create mode 100644 static/inferno/man2/alphabet-intro.2 create mode 100644 static/inferno/man2/arg.2 create mode 100644 static/inferno/man2/asn1.2 create mode 100644 static/inferno/man2/attrdb.2 create mode 100644 static/inferno/man2/bloomfilter.2 create mode 100644 static/inferno/man2/bufio-chanfill.2 create mode 100644 static/inferno/man2/bufio.2 create mode 100644 static/inferno/man2/cfg.2 create mode 100644 static/inferno/man2/command.2 create mode 100644 static/inferno/man2/complete.2 create mode 100644 static/inferno/man2/convcs.2 create mode 100644 static/inferno/man2/crc.2 create mode 100644 static/inferno/man2/crypt-0intro.2 create mode 100644 static/inferno/man2/crypt-crypt.2 create mode 100644 static/inferno/man2/crypt-dsagen.2 create mode 100644 static/inferno/man2/crypt-gensk.2 create mode 100644 static/inferno/man2/crypt-rc4.2 create mode 100644 static/inferno/man2/crypt-sha1.2 create mode 100644 static/inferno/man2/csv.2 create mode 100644 static/inferno/man2/daytime.2 create mode 100644 static/inferno/man2/dbm.2 create mode 100644 static/inferno/man2/debug.2 create mode 100644 static/inferno/man2/devpointer.2 create mode 100644 static/inferno/man2/dhcpclient.2 create mode 100644 static/inferno/man2/dial.2 create mode 100644 static/inferno/man2/dialog.2 create mode 100644 static/inferno/man2/dict.2 create mode 100644 static/inferno/man2/dis.2 create mode 100644 static/inferno/man2/diskblocks.2 create mode 100644 static/inferno/man2/disks.2 create mode 100644 static/inferno/man2/dividers.2 create mode 100644 static/inferno/man2/draw-0intro.2 create mode 100644 static/inferno/man2/draw-context.2 create mode 100644 static/inferno/man2/draw-display.2 create mode 100644 static/inferno/man2/draw-example.2 create mode 100644 static/inferno/man2/draw-font.2 create mode 100644 static/inferno/man2/draw-image.2 create mode 100644 static/inferno/man2/draw-point.2 create mode 100644 static/inferno/man2/draw-pointer.2 create mode 100644 static/inferno/man2/draw-rect.2 create mode 100644 static/inferno/man2/draw-screen.2 create mode 100644 static/inferno/man2/drawmux.2 create mode 100644 static/inferno/man2/encoding.2 create mode 100644 static/inferno/man2/env.2 create mode 100644 static/inferno/man2/ether.2 create mode 100644 static/inferno/man2/exception.2 create mode 100644 static/inferno/man2/factotum.2 create mode 100644 static/inferno/man2/filepat.2 create mode 100644 static/inferno/man2/filter-deflate.2 create mode 100644 static/inferno/man2/filter-slip.2 create mode 100644 static/inferno/man2/filter.2 create mode 100644 static/inferno/man2/format.2 create mode 100644 static/inferno/man2/fsproto.2 create mode 100644 static/inferno/man2/geodesy.2 create mode 100644 static/inferno/man2/hash.2 create mode 100644 static/inferno/man2/ida.2 create mode 100644 static/inferno/man2/imagefile.2 create mode 100644 static/inferno/man2/ip.2 create mode 100644 static/inferno/man2/ipints-genprime.2 create mode 100644 static/inferno/man2/ipints.2 create mode 100644 static/inferno/man2/ir.2 create mode 100644 static/inferno/man2/itslib.2 create mode 100644 static/inferno/man2/json.2 create mode 100644 static/inferno/man2/keyring-0intro.2 create mode 100644 static/inferno/man2/keyring-auth.2 create mode 100644 static/inferno/man2/keyring-certtostr.2 create mode 100644 static/inferno/man2/keyring-crypt.2 create mode 100644 static/inferno/man2/keyring-gensk.2 create mode 100644 static/inferno/man2/keyring-getmsg.2 create mode 100644 static/inferno/man2/keyring-getstring.2 create mode 100644 static/inferno/man2/keyring-ipint.2 create mode 100644 static/inferno/man2/keyring-rc4.2 create mode 100644 static/inferno/man2/keyring-sha1.2 create mode 100644 static/inferno/man2/keyset.2 create mode 100644 static/inferno/man2/lists.2 create mode 100644 static/inferno/man2/lock.2 create mode 100644 static/inferno/man2/math-0intro.2 create mode 100644 static/inferno/man2/math-elem.2 create mode 100644 static/inferno/man2/math-export.2 create mode 100644 static/inferno/man2/math-fp.2 create mode 100644 static/inferno/man2/math-linalg.2 create mode 100644 static/inferno/man2/mpeg.2 create mode 100644 static/inferno/man2/msgio.2 create mode 100644 static/inferno/man2/names.2 create mode 100644 static/inferno/man2/newns.2 create mode 100644 static/inferno/man2/palmfile.2 create mode 100644 static/inferno/man2/plumbmsg.2 create mode 100644 static/inferno/man2/pop3.2 create mode 100644 static/inferno/man2/popup.2 create mode 100644 static/inferno/man2/prefab-0intro.2 create mode 100644 static/inferno/man2/prefab-compound.2 create mode 100644 static/inferno/man2/prefab-element.2 create mode 100644 static/inferno/man2/prefab-environ.2 create mode 100644 static/inferno/man2/prefab-style.2 create mode 100644 static/inferno/man2/print.2 create mode 100644 static/inferno/man2/prof.2 create mode 100644 static/inferno/man2/pslib.2 create mode 100644 static/inferno/man2/rabin.2 create mode 100644 static/inferno/man2/rand.2 create mode 100644 static/inferno/man2/readdir.2 create mode 100644 static/inferno/man2/regex.2 create mode 100644 static/inferno/man2/registries.2 create mode 100644 static/inferno/man2/rfc822.2 create mode 100644 static/inferno/man2/scsiio.2 create mode 100644 static/inferno/man2/secstore.2 create mode 100644 static/inferno/man2/security-0intro.2 create mode 100644 static/inferno/man2/security-auth.2 create mode 100644 static/inferno/man2/security-login.2 create mode 100644 static/inferno/man2/security-oldauth.2 create mode 100644 static/inferno/man2/security-random.2 create mode 100644 static/inferno/man2/security-ssl.2 create mode 100644 static/inferno/man2/selectfile.2 create mode 100644 static/inferno/man2/sets.2 create mode 100644 static/inferno/man2/sexprs.2 create mode 100644 static/inferno/man2/sh.2 create mode 100644 static/inferno/man2/smtp.2 create mode 100644 static/inferno/man2/spki-verifier.2 create mode 100644 static/inferno/man2/spki.2 create mode 100644 static/inferno/man2/spree-allow.2 create mode 100644 static/inferno/man2/spree-cardlib.2 create mode 100644 static/inferno/man2/spree-gather.2 create mode 100644 static/inferno/man2/spree-objstore.2 create mode 100644 static/inferno/man2/spree.2 create mode 100644 static/inferno/man2/srv.2 create mode 100644 static/inferno/man2/string.2 create mode 100644 static/inferno/man2/stringinttab.2 create mode 100644 static/inferno/man2/styx.2 create mode 100644 static/inferno/man2/styxconv.2 create mode 100644 static/inferno/man2/styxflush.2 create mode 100644 static/inferno/man2/styxpersist.2 create mode 100644 static/inferno/man2/styxservers-nametree.2 create mode 100644 static/inferno/man2/styxservers.2 create mode 100644 static/inferno/man2/sys-0intro.2 create mode 100644 static/inferno/man2/sys-bind.2 create mode 100644 static/inferno/man2/sys-byte2char.2 create mode 100644 static/inferno/man2/sys-chdir.2 create mode 100644 static/inferno/man2/sys-dial.2 create mode 100644 static/inferno/man2/sys-dirread.2 create mode 100644 static/inferno/man2/sys-dup.2 create mode 100644 static/inferno/man2/sys-export.2 create mode 100644 static/inferno/man2/sys-fauth.2 create mode 100644 static/inferno/man2/sys-fd2path.2 create mode 100644 static/inferno/man2/sys-file2chan.2 create mode 100644 static/inferno/man2/sys-fversion.2 create mode 100644 static/inferno/man2/sys-iounit.2 create mode 100644 static/inferno/man2/sys-millisec.2 create mode 100644 static/inferno/man2/sys-open.2 create mode 100644 static/inferno/man2/sys-pctl.2 create mode 100644 static/inferno/man2/sys-pipe.2 create mode 100644 static/inferno/man2/sys-print.2 create mode 100644 static/inferno/man2/sys-read.2 create mode 100644 static/inferno/man2/sys-remove.2 create mode 100644 static/inferno/man2/sys-seek.2 create mode 100644 static/inferno/man2/sys-self.2 create mode 100644 static/inferno/man2/sys-sleep.2 create mode 100644 static/inferno/man2/sys-stat.2 create mode 100644 static/inferno/man2/sys-tokenize.2 create mode 100644 static/inferno/man2/sys-utfbytes.2 create mode 100644 static/inferno/man2/sys-werrstr.2 create mode 100644 static/inferno/man2/tabs.2 create mode 100644 static/inferno/man2/tftp.2 create mode 100644 static/inferno/man2/timers.2 create mode 100644 static/inferno/man2/tk.2 create mode 100644 static/inferno/man2/tkclient.2 create mode 100644 static/inferno/man2/translate.2 create mode 100644 static/inferno/man2/ubfa.2 create mode 100644 static/inferno/man2/venti.2 create mode 100644 static/inferno/man2/virgil.2 create mode 100644 static/inferno/man2/volume.2 create mode 100644 static/inferno/man2/w3c-css.2 create mode 100644 static/inferno/man2/w3c-uris.2 create mode 100644 static/inferno/man2/w3c-xpointers.2 create mode 100644 static/inferno/man2/wait.2 create mode 100644 static/inferno/man2/wmclient.2 create mode 100644 static/inferno/man2/wmlib.2 create mode 100644 static/inferno/man2/wmsrv.2 create mode 100644 static/inferno/man2/workdir.2 create mode 100644 static/inferno/man2/xml.2 create mode 100644 static/inferno/man3/0intro.3 create mode 100644 static/inferno/man3/INDEX.3 create mode 100644 static/inferno/man3/Makefile create mode 100644 static/inferno/man3/arch.3 create mode 100644 static/inferno/man3/audio.3 create mode 100644 static/inferno/man3/boot.3 create mode 100644 static/inferno/man3/cap.3 create mode 100644 static/inferno/man3/cmd.3 create mode 100644 static/inferno/man3/cons.3 create mode 100644 static/inferno/man3/dbg.3 create mode 100644 static/inferno/man3/draw.3 create mode 100644 static/inferno/man3/ds.3 create mode 100644 static/inferno/man3/dup.3 create mode 100644 static/inferno/man3/dynld.3 create mode 100644 static/inferno/man3/eia.3 create mode 100644 static/inferno/man3/env.3 create mode 100644 static/inferno/man3/ether.3 create mode 100644 static/inferno/man3/flash.3 create mode 100644 static/inferno/man3/floppy.3 create mode 100644 static/inferno/man3/fpga.3 create mode 100644 static/inferno/man3/fs.3 create mode 100644 static/inferno/man3/ftl.3 create mode 100644 static/inferno/man3/gpio.3 create mode 100644 static/inferno/man3/i2c.3 create mode 100644 static/inferno/man3/i82365.3 create mode 100644 static/inferno/man3/indir.3 create mode 100644 static/inferno/man3/ip.3 create mode 100644 static/inferno/man3/kprof.3 create mode 100644 static/inferno/man3/logfs.3 create mode 100644 static/inferno/man3/lpt.3 create mode 100644 static/inferno/man3/mnt.3 create mode 100644 static/inferno/man3/mpeg.3 create mode 100644 static/inferno/man3/pbus.3 create mode 100644 static/inferno/man3/pipe.3 create mode 100644 static/inferno/man3/plap.3 create mode 100644 static/inferno/man3/pnp.3 create mode 100644 static/inferno/man3/pointer.3 create mode 100644 static/inferno/man3/prof.3 create mode 100644 static/inferno/man3/prog.3 create mode 100644 static/inferno/man3/root.3 create mode 100644 static/inferno/man3/rtc.3 create mode 100644 static/inferno/man3/sd.3 create mode 100644 static/inferno/man3/sign.3 create mode 100644 static/inferno/man3/snarf.3 create mode 100644 static/inferno/man3/srv.3 create mode 100644 static/inferno/man3/srv9.3 create mode 100644 static/inferno/man3/ssl.3 create mode 100644 static/inferno/man3/switch.3 create mode 100644 static/inferno/man3/tinyfs.3 create mode 100644 static/inferno/man3/tls.3 create mode 100644 static/inferno/man3/touch.3 create mode 100644 static/inferno/man3/tv.3 create mode 100644 static/inferno/man3/usb.3 create mode 100644 static/inferno/man3/vga.3 create mode 100644 static/inferno/man3/vid.3 create mode 100644 static/inferno/man4/0intro.4 create mode 100644 static/inferno/man4/9srvfs.4 create mode 100644 static/inferno/man4/INDEX.4 create mode 100644 static/inferno/man4/Makefile create mode 100644 static/inferno/man4/acme.4 create mode 100644 static/inferno/man4/archfs.4 create mode 100644 static/inferno/man4/dbfs.4 create mode 100644 static/inferno/man4/dossrv.4 create mode 100644 static/inferno/man4/export.4 create mode 100644 static/inferno/man4/factotum.4 create mode 100644 static/inferno/man4/ftpfs.4 create mode 100644 static/inferno/man4/grid-cpu.4 create mode 100644 static/inferno/man4/import.4 create mode 100644 static/inferno/man4/iostats.4 create mode 100644 static/inferno/man4/keyfs.4 create mode 100644 static/inferno/man4/keysrv.4 create mode 100644 static/inferno/man4/kfs.4 create mode 100644 static/inferno/man4/lockfs.4 create mode 100644 static/inferno/man4/logfile.4 create mode 100644 static/inferno/man4/memfs.4 create mode 100644 static/inferno/man4/mntgen.4 create mode 100644 static/inferno/man4/namespace.4 create mode 100644 static/inferno/man4/palmsrv.4 create mode 100644 static/inferno/man4/ramfile.4 create mode 100644 static/inferno/man4/registry.4 create mode 100644 static/inferno/man4/spree.4 create mode 100644 static/inferno/man4/tarfs.4 create mode 100644 static/inferno/man4/trfs.4 create mode 100644 static/inferno/man4/vacfs.4 create mode 100644 static/inferno/man5/0intro.5 create mode 100644 static/inferno/man5/INDEX.5 create mode 100644 static/inferno/man5/Makefile create mode 100644 static/inferno/man5/attach.5 create mode 100644 static/inferno/man5/clunk.5 create mode 100644 static/inferno/man5/error.5 create mode 100644 static/inferno/man5/flush.5 create mode 100644 static/inferno/man5/open.5 create mode 100644 static/inferno/man5/read.5 create mode 100644 static/inferno/man5/remove.5 create mode 100644 static/inferno/man5/stat.5 create mode 100644 static/inferno/man5/version.5 create mode 100644 static/inferno/man5/walk.5 create mode 100644 static/inferno/man6/0intro.6 create mode 100644 static/inferno/man6/INDEX.6 create mode 100644 static/inferno/man6/Makefile create mode 100644 static/inferno/man6/attrdb.6 create mode 100644 static/inferno/man6/audio.6 create mode 100644 static/inferno/man6/auth.6 create mode 100644 static/inferno/man6/colour.6 create mode 100644 static/inferno/man6/dis.6 create mode 100644 static/inferno/man6/font.6 create mode 100644 static/inferno/man6/image.6 create mode 100644 static/inferno/man6/json.6 create mode 100644 static/inferno/man6/keyboard.6 create mode 100644 static/inferno/man6/keys.6 create mode 100644 static/inferno/man6/keytext.6 create mode 100644 static/inferno/man6/login.6 create mode 100644 static/inferno/man6/man.6 create mode 100644 static/inferno/man6/namespace.6 create mode 100644 static/inferno/man6/ndb.6 create mode 100644 static/inferno/man6/plumbing.6 create mode 100644 static/inferno/man6/proto.6 create mode 100644 static/inferno/man6/regexp.6 create mode 100644 static/inferno/man6/sbl.6 create mode 100644 static/inferno/man6/scancode.6 create mode 100644 static/inferno/man6/sexprs.6 create mode 100644 static/inferno/man6/translate.6 create mode 100644 static/inferno/man6/ubfa.6 create mode 100644 static/inferno/man6/users.6 create mode 100644 static/inferno/man6/utf.6 create mode 100644 static/inferno/man7/0intro.7 create mode 100644 static/inferno/man7/INDEX.7 create mode 100644 static/inferno/man7/Makefile create mode 100644 static/inferno/man7/cddb.7 create mode 100644 static/inferno/man7/db.7 create mode 100644 static/inferno/man7/dbsrv.7 create mode 100644 static/inferno/man8/0intro.8 create mode 100644 static/inferno/man8/INDEX.8 create mode 100644 static/inferno/man8/Makefile create mode 100644 static/inferno/man8/ai2key.8 create mode 100644 static/inferno/man8/applylog.8 create mode 100644 static/inferno/man8/bootpd.8 create mode 100644 static/inferno/man8/changelogin.8 create mode 100644 static/inferno/man8/collabsrv.8 create mode 100644 static/inferno/man8/create.8 create mode 100644 static/inferno/man8/createsignerkey.8 create mode 100644 static/inferno/man8/cs.8 create mode 100644 static/inferno/man8/dhcp.8 create mode 100644 static/inferno/man8/dns.8 create mode 100644 static/inferno/man8/fpgaload.8 create mode 100644 static/inferno/man8/ftl.8 create mode 100644 static/inferno/man8/getauthinfo.8 create mode 100644 static/inferno/man8/httpd.8 create mode 100644 static/inferno/man8/init.8 create mode 100644 static/inferno/man8/kfscmd.8 create mode 100644 static/inferno/man8/logind.8 create mode 100644 static/inferno/man8/mangaload.8 create mode 100644 static/inferno/man8/manufacture.8 create mode 100644 static/inferno/man8/mkfs.8 create mode 100644 static/inferno/man8/ping.8 create mode 100644 static/inferno/man8/plumber.8 create mode 100644 static/inferno/man8/prep.8 create mode 100644 static/inferno/man8/rdbgsrv.8 create mode 100644 static/inferno/man8/register.8 create mode 100644 static/inferno/man8/rip.8 create mode 100644 static/inferno/man8/rstyxd.8 create mode 100644 static/inferno/man8/shutdown.8 create mode 100644 static/inferno/man8/signer.8 create mode 100644 static/inferno/man8/sntp.8 create mode 100644 static/inferno/man8/styxchat.8 create mode 100644 static/inferno/man8/styxmon.8 create mode 100644 static/inferno/man8/svc.8 create mode 100644 static/inferno/man8/touchcal.8 create mode 100644 static/inferno/man8/virgild.8 create mode 100644 static/inferno/man9/0intro.9 create mode 100644 static/inferno/man9/1copyright.9 create mode 100644 static/inferno/man9/INDEX.9 create mode 100644 static/inferno/man9/Makefile create mode 100644 static/inferno/man9/bind.9 create mode 100644 static/inferno/man9/button.9 create mode 100644 static/inferno/man9/canvas.9 create mode 100644 static/inferno/man9/checkbutton.9 create mode 100644 static/inferno/man9/choicebutton.9 create mode 100644 static/inferno/man9/cursor.9 create mode 100644 static/inferno/man9/destroy.9 create mode 100644 static/inferno/man9/entry.9 create mode 100644 static/inferno/man9/focus.9 create mode 100644 static/inferno/man9/frame.9 create mode 100644 static/inferno/man9/grab.9 create mode 100644 static/inferno/man9/grid.9 create mode 100644 static/inferno/man9/image.9 create mode 100644 static/inferno/man9/label.9 create mode 100644 static/inferno/man9/listbox.9 create mode 100644 static/inferno/man9/lower.9 create mode 100644 static/inferno/man9/menu.9 create mode 100644 static/inferno/man9/menubutton.9 create mode 100644 static/inferno/man9/options.9 create mode 100644 static/inferno/man9/pack.9 create mode 100644 static/inferno/man9/panel.9 create mode 100644 static/inferno/man9/radiobutton.9 create mode 100644 static/inferno/man9/raise.9 create mode 100644 static/inferno/man9/scale.9 create mode 100644 static/inferno/man9/scrollbar.9 create mode 100644 static/inferno/man9/see.9 create mode 100644 static/inferno/man9/send.9 create mode 100644 static/inferno/man9/text.9 create mode 100644 static/inferno/man9/types.9 create mode 100644 static/inferno/man9/update.9 create mode 100644 static/inferno/man9/variable.9 create mode 100644 static/plan9-4e/Makefile create mode 100644 static/plan9-4e/man1/0intro.1 create mode 100644 static/plan9-4e/man1/2a.1 create mode 100644 static/plan9-4e/man1/2c.1 create mode 100644 static/plan9-4e/man1/2l.1 create mode 100644 static/plan9-4e/man1/INDEX.1 create mode 100644 static/plan9-4e/man1/INDEX.html.1 create mode 100644 static/plan9-4e/man1/Makefile create mode 100644 static/plan9-4e/man1/aan.1 create mode 100644 static/plan9-4e/man1/acid.1 create mode 100644 static/plan9-4e/man1/acme.1 create mode 100644 static/plan9-4e/man1/ar.1 create mode 100644 static/plan9-4e/man1/ascii.1 create mode 100644 static/plan9-4e/man1/awk.1 create mode 100644 static/plan9-4e/man1/basename.1 create mode 100644 static/plan9-4e/man1/bc.1 create mode 100644 static/plan9-4e/man1/bind.1 create mode 100644 static/plan9-4e/man1/bitsyload.1 create mode 100644 static/plan9-4e/man1/bundle.1 create mode 100644 static/plan9-4e/man1/cal.1 create mode 100644 static/plan9-4e/man1/calendar.1 create mode 100644 static/plan9-4e/man1/cat.1 create mode 100644 static/plan9-4e/man1/chgrp.1 create mode 100644 static/plan9-4e/man1/chmod.1 create mode 100644 static/plan9-4e/man1/cleanname.1 create mode 100644 static/plan9-4e/man1/cmp.1 create mode 100644 static/plan9-4e/man1/colors.1 create mode 100644 static/plan9-4e/man1/comm.1 create mode 100644 static/plan9-4e/man1/con.1 create mode 100644 static/plan9-4e/man1/cp.1 create mode 100644 static/plan9-4e/man1/cpp.1 create mode 100644 static/plan9-4e/man1/cpu.1 create mode 100644 static/plan9-4e/man1/crop.1 create mode 100644 static/plan9-4e/man1/date.1 create mode 100644 static/plan9-4e/man1/db.1 create mode 100644 static/plan9-4e/man1/dc.1 create mode 100644 static/plan9-4e/man1/dd.1 create mode 100644 static/plan9-4e/man1/deroff.1 create mode 100644 static/plan9-4e/man1/diff.1 create mode 100644 static/plan9-4e/man1/doc2txt.1 create mode 100644 static/plan9-4e/man1/doctype.1 create mode 100644 static/plan9-4e/man1/du.1 create mode 100644 static/plan9-4e/man1/echo.1 create mode 100644 static/plan9-4e/man1/ed.1 create mode 100644 static/plan9-4e/man1/emacs.1 create mode 100644 static/plan9-4e/man1/eqn.1 create mode 100644 static/plan9-4e/man1/faces.1 create mode 100644 static/plan9-4e/man1/factor.1 create mode 100644 static/plan9-4e/man1/file.1 create mode 100644 static/plan9-4e/man1/fmt.1 create mode 100644 static/plan9-4e/man1/fortune.1 create mode 100644 static/plan9-4e/man1/freq.1 create mode 100644 static/plan9-4e/man1/grap.1 create mode 100644 static/plan9-4e/man1/graph.1 create mode 100644 static/plan9-4e/man1/grep.1 create mode 100644 static/plan9-4e/man1/gs.1 create mode 100644 static/plan9-4e/man1/gzip.1 create mode 100644 static/plan9-4e/man1/hget.1 create mode 100644 static/plan9-4e/man1/history.1 create mode 100644 static/plan9-4e/man1/hoc.1 create mode 100644 static/plan9-4e/man1/idiff.1 create mode 100644 static/plan9-4e/man1/join.1 create mode 100644 static/plan9-4e/man1/jpg.1 create mode 100644 static/plan9-4e/man1/kill.1 create mode 100644 static/plan9-4e/man1/ktrace.1 create mode 100644 static/plan9-4e/man1/leak.1 create mode 100644 static/plan9-4e/man1/lens.1 create mode 100644 static/plan9-4e/man1/lex.1 create mode 100644 static/plan9-4e/man1/look.1 create mode 100644 static/plan9-4e/man1/lp.1 create mode 100644 static/plan9-4e/man1/ls.1 create mode 100644 static/plan9-4e/man1/mail.1 create mode 100644 static/plan9-4e/man1/man.1 create mode 100644 static/plan9-4e/man1/mc.1 create mode 100644 static/plan9-4e/man1/mk.1 create mode 100644 static/plan9-4e/man1/mkdir.1 create mode 100644 static/plan9-4e/man1/ms2html.1 create mode 100644 static/plan9-4e/man1/netstat.1 create mode 100644 static/plan9-4e/man1/news.1 create mode 100644 static/plan9-4e/man1/nm.1 create mode 100644 static/plan9-4e/man1/ns.1 create mode 100644 static/plan9-4e/man1/p.1 create mode 100644 static/plan9-4e/man1/page.1 create mode 100644 static/plan9-4e/man1/passwd.1 create mode 100644 static/plan9-4e/man1/pcc.1 create mode 100644 static/plan9-4e/man1/pic.1 create mode 100644 static/plan9-4e/man1/pipefile.1 create mode 100644 static/plan9-4e/man1/plot.1 create mode 100644 static/plan9-4e/man1/plumb.1 create mode 100644 static/plan9-4e/man1/pr.1 create mode 100644 static/plan9-4e/man1/prof.1 create mode 100644 static/plan9-4e/man1/proof.1 create mode 100644 static/plan9-4e/man1/ps.1 create mode 100644 static/plan9-4e/man1/pwd.1 create mode 100644 static/plan9-4e/man1/rc.1 create mode 100644 static/plan9-4e/man1/replica.1 create mode 100644 static/plan9-4e/man1/resample.1 create mode 100644 static/plan9-4e/man1/rio.1 create mode 100644 static/plan9-4e/man1/rm.1 create mode 100644 static/plan9-4e/man1/rtstats.1 create mode 100644 static/plan9-4e/man1/sam.1 create mode 100644 static/plan9-4e/man1/secstore.1 create mode 100644 static/plan9-4e/man1/sed.1 create mode 100644 static/plan9-4e/man1/seq.1 create mode 100644 static/plan9-4e/man1/size.1 create mode 100644 static/plan9-4e/man1/sleep.1 create mode 100644 static/plan9-4e/man1/sort.1 create mode 100644 static/plan9-4e/man1/spell.1 create mode 100644 static/plan9-4e/man1/spin.1 create mode 100644 static/plan9-4e/man1/split.1 create mode 100644 static/plan9-4e/man1/src.1 create mode 100644 static/plan9-4e/man1/ssh.1 create mode 100644 static/plan9-4e/man1/stop.1 create mode 100644 static/plan9-4e/man1/strings.1 create mode 100644 static/plan9-4e/man1/strip.1 create mode 100644 static/plan9-4e/man1/sum.1 create mode 100644 static/plan9-4e/man1/syscall.1 create mode 100644 static/plan9-4e/man1/tail.1 create mode 100644 static/plan9-4e/man1/tapefs.1 create mode 100644 static/plan9-4e/man1/tar.1 create mode 100644 static/plan9-4e/man1/tbl.1 create mode 100644 static/plan9-4e/man1/tcs.1 create mode 100644 static/plan9-4e/man1/tee.1 create mode 100644 static/plan9-4e/man1/tel.1 create mode 100644 static/plan9-4e/man1/test.1 create mode 100644 static/plan9-4e/man1/time.1 create mode 100644 static/plan9-4e/man1/touch.1 create mode 100644 static/plan9-4e/man1/tr.1 create mode 100644 static/plan9-4e/man1/troff.1 create mode 100644 static/plan9-4e/man1/troff2html.1 create mode 100644 static/plan9-4e/man1/tweak.1 create mode 100644 static/plan9-4e/man1/uniq.1 create mode 100644 static/plan9-4e/man1/units.1 create mode 100644 static/plan9-4e/man1/vac.1 create mode 100644 static/plan9-4e/man1/vi.1 create mode 100644 static/plan9-4e/man1/vnc.1 create mode 100644 static/plan9-4e/man1/vt.1 create mode 100644 static/plan9-4e/man1/wc.1 create mode 100644 static/plan9-4e/man1/who.1 create mode 100644 static/plan9-4e/man1/xd.1 create mode 100644 static/plan9-4e/man1/yacc.1 create mode 100644 static/plan9-4e/man1/yesterday.1 create mode 100644 static/plan9-4e/man2/0intro.2 create mode 100644 static/plan9-4e/man2/9p.2 create mode 100644 static/plan9-4e/man2/9pfid.2 create mode 100644 static/plan9-4e/man2/9pfile.2 create mode 100644 static/plan9-4e/man2/INDEX.2 create mode 100644 static/plan9-4e/man2/INDEX.html.2 create mode 100644 static/plan9-4e/man2/Makefile create mode 100644 static/plan9-4e/man2/abort.2 create mode 100644 static/plan9-4e/man2/abs.2 create mode 100644 static/plan9-4e/man2/access.2 create mode 100644 static/plan9-4e/man2/addpt.2 create mode 100644 static/plan9-4e/man2/aes.2 create mode 100644 static/plan9-4e/man2/allocimage.2 create mode 100644 static/plan9-4e/man2/arg.2 create mode 100644 static/plan9-4e/man2/arith3.2 create mode 100644 static/plan9-4e/man2/assert.2 create mode 100644 static/plan9-4e/man2/atof.2 create mode 100644 static/plan9-4e/man2/auth.2 create mode 100644 static/plan9-4e/man2/authsrv.2 create mode 100644 static/plan9-4e/man2/bin.2 create mode 100644 static/plan9-4e/man2/bind.2 create mode 100644 static/plan9-4e/man2/bio.2 create mode 100644 static/plan9-4e/man2/blowfish.2 create mode 100644 static/plan9-4e/man2/brk.2 create mode 100644 static/plan9-4e/man2/cachechars.2 create mode 100644 static/plan9-4e/man2/chdir.2 create mode 100644 static/plan9-4e/man2/cleanname.2 create mode 100644 static/plan9-4e/man2/color.2 create mode 100644 static/plan9-4e/man2/control.2 create mode 100644 static/plan9-4e/man2/cputime.2 create mode 100644 static/plan9-4e/man2/ctime.2 create mode 100644 static/plan9-4e/man2/ctype.2 create mode 100644 static/plan9-4e/man2/debugger.2 create mode 100644 static/plan9-4e/man2/des.2 create mode 100644 static/plan9-4e/man2/dial.2 create mode 100644 static/plan9-4e/man2/dirread.2 create mode 100644 static/plan9-4e/man2/disk.2 create mode 100644 static/plan9-4e/man2/draw.2 create mode 100644 static/plan9-4e/man2/dup.2 create mode 100644 static/plan9-4e/man2/elgamal.2 create mode 100644 static/plan9-4e/man2/encode.2 create mode 100644 static/plan9-4e/man2/encrypt.2 create mode 100644 static/plan9-4e/man2/errstr.2 create mode 100644 static/plan9-4e/man2/event.2 create mode 100644 static/plan9-4e/man2/exec.2 create mode 100644 static/plan9-4e/man2/exits.2 create mode 100644 static/plan9-4e/man2/exp.2 create mode 100644 static/plan9-4e/man2/fauth.2 create mode 100644 static/plan9-4e/man2/fcall.2 create mode 100644 static/plan9-4e/man2/fd2path.2 create mode 100644 static/plan9-4e/man2/fgetc.2 create mode 100644 static/plan9-4e/man2/flate.2 create mode 100644 static/plan9-4e/man2/floor.2 create mode 100644 static/plan9-4e/man2/fmtinstall.2 create mode 100644 static/plan9-4e/man2/fopen.2 create mode 100644 static/plan9-4e/man2/fork.2 create mode 100644 static/plan9-4e/man2/fprintf.2 create mode 100644 static/plan9-4e/man2/frame.2 create mode 100644 static/plan9-4e/man2/frexp.2 create mode 100644 static/plan9-4e/man2/fscanf.2 create mode 100644 static/plan9-4e/man2/fversion.2 create mode 100644 static/plan9-4e/man2/genrandom.2 create mode 100644 static/plan9-4e/man2/getcallerpc.2 create mode 100644 static/plan9-4e/man2/getenv.2 create mode 100644 static/plan9-4e/man2/getfcr.2 create mode 100644 static/plan9-4e/man2/getfields.2 create mode 100644 static/plan9-4e/man2/getpid.2 create mode 100644 static/plan9-4e/man2/getuser.2 create mode 100644 static/plan9-4e/man2/getwd.2 create mode 100644 static/plan9-4e/man2/graphics.2 create mode 100644 static/plan9-4e/man2/html.2 create mode 100644 static/plan9-4e/man2/httpd.2 create mode 100644 static/plan9-4e/man2/hypot.2 create mode 100644 static/plan9-4e/man2/intmap.2 create mode 100644 static/plan9-4e/man2/iounit.2 create mode 100644 static/plan9-4e/man2/ip.2 create mode 100644 static/plan9-4e/man2/isalpharune.2 create mode 100644 static/plan9-4e/man2/keyboard.2 create mode 100644 static/plan9-4e/man2/lock.2 create mode 100644 static/plan9-4e/man2/mach.2 create mode 100644 static/plan9-4e/man2/malloc.2 create mode 100644 static/plan9-4e/man2/matrix.2 create mode 100644 static/plan9-4e/man2/memdraw.2 create mode 100644 static/plan9-4e/man2/memlayer.2 create mode 100644 static/plan9-4e/man2/memory.2 create mode 100644 static/plan9-4e/man2/mktemp.2 create mode 100644 static/plan9-4e/man2/mouse.2 create mode 100644 static/plan9-4e/man2/mp.2 create mode 100644 static/plan9-4e/man2/muldiv.2 create mode 100644 static/plan9-4e/man2/nan.2 create mode 100644 static/plan9-4e/man2/ndb.2 create mode 100644 static/plan9-4e/man2/notify.2 create mode 100644 static/plan9-4e/man2/object.2 create mode 100644 static/plan9-4e/man2/open.2 create mode 100644 static/plan9-4e/man2/perror.2 create mode 100644 static/plan9-4e/man2/pipe.2 create mode 100644 static/plan9-4e/man2/plumb.2 create mode 100644 static/plan9-4e/man2/pool.2 create mode 100644 static/plan9-4e/man2/postnote.2 create mode 100644 static/plan9-4e/man2/prime.2 create mode 100644 static/plan9-4e/man2/print.2 create mode 100644 static/plan9-4e/man2/privalloc.2 create mode 100644 static/plan9-4e/man2/proto.2 create mode 100644 static/plan9-4e/man2/pushssl.2 create mode 100644 static/plan9-4e/man2/pushtls.2 create mode 100644 static/plan9-4e/man2/qball.2 create mode 100644 static/plan9-4e/man2/qsort.2 create mode 100644 static/plan9-4e/man2/quaternion.2 create mode 100644 static/plan9-4e/man2/quote.2 create mode 100644 static/plan9-4e/man2/rand.2 create mode 100644 static/plan9-4e/man2/rc4.2 create mode 100644 static/plan9-4e/man2/read.2 create mode 100644 static/plan9-4e/man2/readcolmap.2 create mode 100644 static/plan9-4e/man2/readv.2 create mode 100644 static/plan9-4e/man2/regexp.2 create mode 100644 static/plan9-4e/man2/remove.2 create mode 100644 static/plan9-4e/man2/rendezvous.2 create mode 100644 static/plan9-4e/man2/rsa.2 create mode 100644 static/plan9-4e/man2/rune.2 create mode 100644 static/plan9-4e/man2/runestrcat.2 create mode 100644 static/plan9-4e/man2/scribble.2 create mode 100644 static/plan9-4e/man2/scsi.2 create mode 100644 static/plan9-4e/man2/sechash.2 create mode 100644 static/plan9-4e/man2/seek.2 create mode 100644 static/plan9-4e/man2/segattach.2 create mode 100644 static/plan9-4e/man2/segbrk.2 create mode 100644 static/plan9-4e/man2/segflush.2 create mode 100644 static/plan9-4e/man2/setjmp.2 create mode 100644 static/plan9-4e/man2/sin.2 create mode 100644 static/plan9-4e/man2/sinh.2 create mode 100644 static/plan9-4e/man2/sleep.2 create mode 100644 static/plan9-4e/man2/stat.2 create mode 100644 static/plan9-4e/man2/strcat.2 create mode 100644 static/plan9-4e/man2/string.2 create mode 100644 static/plan9-4e/man2/stringsize.2 create mode 100644 static/plan9-4e/man2/subfont.2 create mode 100644 static/plan9-4e/man2/symbol.2 create mode 100644 static/plan9-4e/man2/thread.2 create mode 100644 static/plan9-4e/man2/time.2 create mode 100644 static/plan9-4e/man2/tmpfile.2 create mode 100644 static/plan9-4e/man2/wait.2 create mode 100644 static/plan9-4e/man2/window.2 create mode 100644 static/plan9-4e/man3/0intro.3 create mode 100644 static/plan9-4e/man3/INDEX.3 create mode 100644 static/plan9-4e/man3/INDEX.html.3 create mode 100644 static/plan9-4e/man3/Makefile create mode 100644 static/plan9-4e/man3/apm.3 create mode 100644 static/plan9-4e/man3/arch.3 create mode 100644 static/plan9-4e/man3/audio.3 create mode 100644 static/plan9-4e/man3/cap.3 create mode 100644 static/plan9-4e/man3/cons.3 create mode 100644 static/plan9-4e/man3/draw.3 create mode 100644 static/plan9-4e/man3/dup.3 create mode 100644 static/plan9-4e/man3/env.3 create mode 100644 static/plan9-4e/man3/ether.3 create mode 100644 static/plan9-4e/man3/floppy.3 create mode 100644 static/plan9-4e/man3/i82365.3 create mode 100644 static/plan9-4e/man3/ip.3 create mode 100644 static/plan9-4e/man3/kprof.3 create mode 100644 static/plan9-4e/man3/loopback.3 create mode 100644 static/plan9-4e/man3/lpt.3 create mode 100644 static/plan9-4e/man3/mnt.3 create mode 100644 static/plan9-4e/man3/mouse.3 create mode 100644 static/plan9-4e/man3/pipe.3 create mode 100644 static/plan9-4e/man3/pnp.3 create mode 100644 static/plan9-4e/man3/proc.3 create mode 100644 static/plan9-4e/man3/realtime.3 create mode 100644 static/plan9-4e/man3/root.3 create mode 100644 static/plan9-4e/man3/rtc.3 create mode 100644 static/plan9-4e/man3/sd.3 create mode 100644 static/plan9-4e/man3/segment.3 create mode 100644 static/plan9-4e/man3/srv.3 create mode 100644 static/plan9-4e/man3/ssl.3 create mode 100644 static/plan9-4e/man3/tls.3 create mode 100644 static/plan9-4e/man3/uart.3 create mode 100644 static/plan9-4e/man3/usb.3 create mode 100644 static/plan9-4e/man3/vga.3 create mode 100644 static/plan9-4e/man4/0intro.4 create mode 100644 static/plan9-4e/man4/INDEX.4 create mode 100644 static/plan9-4e/man4/INDEX.html.4 create mode 100644 static/plan9-4e/man4/Makefile create mode 100644 static/plan9-4e/man4/acme.4 create mode 100644 static/plan9-4e/man4/archfs.4 create mode 100644 static/plan9-4e/man4/cdfs.4 create mode 100644 static/plan9-4e/man4/cfs.4 create mode 100644 static/plan9-4e/man4/consolefs.4 create mode 100644 static/plan9-4e/man4/dossrv.4 create mode 100644 static/plan9-4e/man4/execnet.4 create mode 100644 static/plan9-4e/man4/exportfs.4 create mode 100644 static/plan9-4e/man4/factotum.4 create mode 100644 static/plan9-4e/man4/fs.4 create mode 100644 static/plan9-4e/man4/ftpfs.4 create mode 100644 static/plan9-4e/man4/import.4 create mode 100644 static/plan9-4e/man4/iostats.4 create mode 100644 static/plan9-4e/man4/keyfs.4 create mode 100644 static/plan9-4e/man4/kfs.4 create mode 100644 static/plan9-4e/man4/lnfs.4 create mode 100644 static/plan9-4e/man4/namespace.4 create mode 100644 static/plan9-4e/man4/nntpfs.4 create mode 100644 static/plan9-4e/man4/paqfs.4 create mode 100644 static/plan9-4e/man4/plumber.4 create mode 100644 static/plan9-4e/man4/ramfs.4 create mode 100644 static/plan9-4e/man4/ratfs.4 create mode 100644 static/plan9-4e/man4/rdbfs.4 create mode 100644 static/plan9-4e/man4/rio.4 create mode 100644 static/plan9-4e/man4/sacfs.4 create mode 100644 static/plan9-4e/man4/snap.4 create mode 100644 static/plan9-4e/man4/srv.4 create mode 100644 static/plan9-4e/man4/tapefs.4 create mode 100644 static/plan9-4e/man4/telco.4 create mode 100644 static/plan9-4e/man4/u9fs.4 create mode 100644 static/plan9-4e/man4/usb.4 create mode 100644 static/plan9-4e/man4/usbd.4 create mode 100644 static/plan9-4e/man4/vacfs.4 create mode 100644 static/plan9-4e/man4/webcookies.4 create mode 100644 static/plan9-4e/man4/webfs.4 create mode 100644 static/plan9-4e/man4/wikifs.4 create mode 100644 static/plan9-4e/man5/0intro.5 create mode 100644 static/plan9-4e/man5/INDEX.5 create mode 100644 static/plan9-4e/man5/INDEX.html.5 create mode 100644 static/plan9-4e/man5/Makefile create mode 100644 static/plan9-4e/man5/attach.5 create mode 100644 static/plan9-4e/man5/clunk.5 create mode 100644 static/plan9-4e/man5/error.5 create mode 100644 static/plan9-4e/man5/flush.5 create mode 100644 static/plan9-4e/man5/open.5 create mode 100644 static/plan9-4e/man5/read.5 create mode 100644 static/plan9-4e/man5/remove.5 create mode 100644 static/plan9-4e/man5/stat.5 create mode 100644 static/plan9-4e/man5/version.5 create mode 100644 static/plan9-4e/man5/walk.5 create mode 100644 static/plan9-4e/man6/0intro.6 create mode 100644 static/plan9-4e/man6/INDEX.6 create mode 100644 static/plan9-4e/man6/INDEX.html.6 create mode 100644 static/plan9-4e/man6/Makefile create mode 100644 static/plan9-4e/man6/a.out.6 create mode 100644 static/plan9-4e/man6/ar.6 create mode 100644 static/plan9-4e/man6/authsrv.6 create mode 100644 static/plan9-4e/man6/color.6 create mode 100644 static/plan9-4e/man6/face.6 create mode 100644 static/plan9-4e/man6/font.6 create mode 100644 static/plan9-4e/man6/image.6 create mode 100644 static/plan9-4e/man6/keyboard.6 create mode 100644 static/plan9-4e/man6/man.6 create mode 100644 static/plan9-4e/man6/map.6 create mode 100644 static/plan9-4e/man6/mpictures.6 create mode 100644 static/plan9-4e/man6/ms.6 create mode 100644 static/plan9-4e/man6/namespace.6 create mode 100644 static/plan9-4e/man6/ndb.6 create mode 100644 static/plan9-4e/man6/plot.6 create mode 100644 static/plan9-4e/man6/plumb.6 create mode 100644 static/plan9-4e/man6/regexp.6 create mode 100644 static/plan9-4e/man6/rewrite.6 create mode 100644 static/plan9-4e/man6/smtpd.6 create mode 100644 static/plan9-4e/man6/snap.6 create mode 100644 static/plan9-4e/man6/thumbprint.6 create mode 100644 static/plan9-4e/man6/users.6 create mode 100644 static/plan9-4e/man6/utf.6 create mode 100644 static/plan9-4e/man6/venti.conf.6 create mode 100644 static/plan9-4e/man6/vgadb.6 create mode 100644 static/plan9-4e/man7/0intro.7 create mode 100644 static/plan9-4e/man7/INDEX.7 create mode 100644 static/plan9-4e/man7/INDEX.html.7 create mode 100644 static/plan9-4e/man7/Makefile create mode 100644 static/plan9-4e/man7/astro.7 create mode 100644 static/plan9-4e/man7/dict.7 create mode 100644 static/plan9-4e/man7/juke.7 create mode 100644 static/plan9-4e/man7/map.7 create mode 100644 static/plan9-4e/man7/scat.7 create mode 100644 static/plan9-4e/man8/0intro.8 create mode 100644 static/plan9-4e/man8/9load.8 create mode 100644 static/plan9-4e/man8/9pcon.8 create mode 100644 static/plan9-4e/man8/INDEX.8 create mode 100644 static/plan9-4e/man8/INDEX.html.8 create mode 100644 static/plan9-4e/man8/Makefile create mode 100644 static/plan9-4e/man8/apm.8 create mode 100644 static/plan9-4e/man8/auth.8 create mode 100644 static/plan9-4e/man8/boot.8 create mode 100644 static/plan9-4e/man8/booting.8 create mode 100644 static/plan9-4e/man8/buildindex.8 create mode 100644 static/plan9-4e/man8/checkarenas.8 create mode 100644 static/plan9-4e/man8/checkindex.8 create mode 100644 static/plan9-4e/man8/cpurc.8 create mode 100644 static/plan9-4e/man8/cron.8 create mode 100644 static/plan9-4e/man8/dhcpd.8 create mode 100644 static/plan9-4e/man8/drawterm.8 create mode 100644 static/plan9-4e/man8/fmtarenas.8 create mode 100644 static/plan9-4e/man8/fmtindex.8 create mode 100644 static/plan9-4e/man8/fmtisect.8 create mode 100644 static/plan9-4e/man8/fs.8 create mode 100644 static/plan9-4e/man8/fsconfig.8 create mode 100644 static/plan9-4e/man8/httpd.8 create mode 100644 static/plan9-4e/man8/init.8 create mode 100644 static/plan9-4e/man8/ipconfig.8 create mode 100644 static/plan9-4e/man8/ipserv.8 create mode 100644 static/plan9-4e/man8/kfscmd.8 create mode 100644 static/plan9-4e/man8/listen.8 create mode 100644 static/plan9-4e/man8/lp.8 create mode 100644 static/plan9-4e/man8/mk9660.8 create mode 100644 static/plan9-4e/man8/mkfs.8 create mode 100644 static/plan9-4e/man8/mkpaqfs.8 create mode 100644 static/plan9-4e/man8/mksacfs.8 create mode 100644 static/plan9-4e/man8/mouse.8 create mode 100644 static/plan9-4e/man8/na.8 create mode 100644 static/plan9-4e/man8/ndb.8 create mode 100644 static/plan9-4e/man8/newuser.8 create mode 100644 static/plan9-4e/man8/nfsserver.8 create mode 100644 static/plan9-4e/man8/pcmcia.8 create mode 100644 static/plan9-4e/man8/ping.8 create mode 100644 static/plan9-4e/man8/plan9.ini.8 create mode 100644 static/plan9-4e/man8/ppp.8 create mode 100644 static/plan9-4e/man8/prep.8 create mode 100644 static/plan9-4e/man8/qer.8 create mode 100644 static/plan9-4e/man8/rdarena.8 create mode 100644 static/plan9-4e/man8/reboot.8 create mode 100644 static/plan9-4e/man8/replica.8 create mode 100644 static/plan9-4e/man8/scanmail.8 create mode 100644 static/plan9-4e/man8/scuzz.8 create mode 100644 static/plan9-4e/man8/secstore.8 create mode 100644 static/plan9-4e/man8/securenet.8 create mode 100644 static/plan9-4e/man8/snoopy.8 create mode 100644 static/plan9-4e/man8/stats.8 create mode 100644 static/plan9-4e/man8/swap.8 create mode 100644 static/plan9-4e/man8/timesync.8 create mode 100644 static/plan9-4e/man8/tlssrv.8 create mode 100644 static/plan9-4e/man8/udpecho.8 create mode 100644 static/plan9-4e/man8/update.8 create mode 100644 static/plan9-4e/man8/venti.8 create mode 100644 static/plan9-4e/man8/vga.8 create mode 100644 static/unix-v10/=.1 create mode 100644 static/unix-v10/Makefile create mode 100644 static/unix-v10/man1/2500.1 create mode 100644 static/unix-v10/man1/300.1 create mode 100644 static/unix-v10/man1/450.1 create mode 100644 static/unix-v10/man1/8q.1 create mode 100644 static/unix-v10/man1/:.1.broken create mode 100644 static/unix-v10/man1/=.1 create mode 100644 static/unix-v10/man1/Makefile create mode 100644 static/unix-v10/man1/acro.1 create mode 100644 static/unix-v10/man1/adb.1 create mode 100644 static/unix-v10/man1/altran.1 create mode 100644 static/unix-v10/man1/apl.1 create mode 100644 static/unix-v10/man1/apnews.1 create mode 100644 static/unix-v10/man1/apply.1 create mode 100644 static/unix-v10/man1/apsend.1 create mode 100644 static/unix-v10/man1/ar.1 create mode 100644 static/unix-v10/man1/array.1 create mode 100644 static/unix-v10/man1/as.1 create mode 100644 static/unix-v10/man1/as80.1 create mode 100644 static/unix-v10/man1/asa.1 create mode 100644 static/unix-v10/man1/ascii.1 create mode 100644 static/unix-v10/man1/at.1 create mode 100644 static/unix-v10/man1/awk.1 create mode 100644 static/unix-v10/man1/backup.1 create mode 100644 static/unix-v10/man1/badge.1 create mode 100644 static/unix-v10/man1/bas.1 create mode 100644 static/unix-v10/man1/basename.1 create mode 100644 static/unix-v10/man1/basic.1 create mode 100644 static/unix-v10/man1/bc.1 create mode 100644 static/unix-v10/man1/bcp.1 create mode 100644 static/unix-v10/man1/bdiff.1 create mode 100644 static/unix-v10/man1/bigcore.1 create mode 100644 static/unix-v10/man1/bison.1 create mode 100644 static/unix-v10/man1/bite.1 create mode 100644 static/unix-v10/man1/bitship.1 create mode 100644 static/unix-v10/man1/bmd08v.1 create mode 100644 static/unix-v10/man1/bprint.1 create mode 100644 static/unix-v10/man1/btoa.1 create mode 100644 static/unix-v10/man1/buildtables.1 create mode 100644 static/unix-v10/man1/bundle.1 create mode 100644 static/unix-v10/man1/byteyears.1 create mode 100644 static/unix-v10/man1/c++.1 create mode 100644 static/unix-v10/man1/c++filt.1 create mode 100644 static/unix-v10/man1/calendar.1 create mode 100644 static/unix-v10/man1/can.1 create mode 100644 static/unix-v10/man1/cat.1 create mode 100644 static/unix-v10/man1/catsim.1 create mode 100644 static/unix-v10/man1/cb.1 create mode 100644 static/unix-v10/man1/cbt.1 create mode 100644 static/unix-v10/man1/cc.1 create mode 100644 static/unix-v10/man1/cdb.1 create mode 100644 static/unix-v10/man1/cf.1 create mode 100644 static/unix-v10/man1/charge.1 create mode 100644 static/unix-v10/man1/chash.1 create mode 100644 static/unix-v10/man1/chdate.1 create mode 100644 static/unix-v10/man1/chdir.1 create mode 100644 static/unix-v10/man1/checknews.1 create mode 100644 static/unix-v10/man1/checknr.1 create mode 100644 static/unix-v10/man1/chmod.1 create mode 100644 static/unix-v10/man1/chown.1 create mode 100644 static/unix-v10/man1/chunk.1 create mode 100644 static/unix-v10/man1/cin.1 create mode 100644 static/unix-v10/man1/cite.1 create mode 100644 static/unix-v10/man1/clear.1 create mode 100644 static/unix-v10/man1/cmp.1 create mode 100644 static/unix-v10/man1/column.1 create mode 100644 static/unix-v10/man1/comm.1 create mode 100644 static/unix-v10/man1/compress.1 create mode 100644 static/unix-v10/man1/compressdir.1 create mode 100644 static/unix-v10/man1/con.1 create mode 100644 static/unix-v10/man1/cospan.1 create mode 100644 static/unix-v10/man1/courier.1 create mode 100644 static/unix-v10/man1/cp.1 create mode 100644 static/unix-v10/man1/cpio.1 create mode 100644 static/unix-v10/man1/cq.1 create mode 100644 static/unix-v10/man1/cray.1 create mode 100644 static/unix-v10/man1/cref.1 create mode 100644 static/unix-v10/man1/cropmarks.1 create mode 100644 static/unix-v10/man1/crypt.1 create mode 100644 static/unix-v10/man1/cscan.1 create mode 100644 static/unix-v10/man1/csh.1 create mode 100644 static/unix-v10/man1/ctags.1 create mode 100644 static/unix-v10/man1/cu.1 create mode 100644 static/unix-v10/man1/cut.1 create mode 100644 static/unix-v10/man1/cvt.1 create mode 100644 static/unix-v10/man1/d202.1 create mode 100644 static/unix-v10/man1/dag.1 create mode 100644 static/unix-v10/man1/date.1 create mode 100644 static/unix-v10/man1/db.1 create mode 100644 static/unix-v10/man1/dc.1 create mode 100644 static/unix-v10/man1/dcon.1 create mode 100644 static/unix-v10/man1/dd.1 create mode 100644 static/unix-v10/man1/dds.1 create mode 100644 static/unix-v10/man1/deroff.1 create mode 100644 static/unix-v10/man1/df.1 create mode 100644 static/unix-v10/man1/dictadd.1 create mode 100644 static/unix-v10/man1/dictplus.1 create mode 100644 static/unix-v10/man1/diff.1 create mode 100644 static/unix-v10/man1/dimpress.1 create mode 100644 static/unix-v10/man1/dired.1 create mode 100644 static/unix-v10/man1/dis.1 create mode 100644 static/unix-v10/man1/dist.1 create mode 100755 static/unix-v10/man1/dmdcat.1 create mode 100755 static/unix-v10/man1/dmdcc.1 create mode 100755 static/unix-v10/man1/dmddemo.1 create mode 100755 static/unix-v10/man1/dmdld.1 create mode 100755 static/unix-v10/man1/dmdman.1 create mode 100755 static/unix-v10/man1/dmdmemory.1 create mode 100755 static/unix-v10/man1/dmdpi.1 create mode 100755 static/unix-v10/man1/dmdversion.1 create mode 100644 static/unix-v10/man1/docgen.1 create mode 100644 static/unix-v10/man1/docsubmit.1 create mode 100644 static/unix-v10/man1/doctype.1 create mode 100644 static/unix-v10/man1/double.1 create mode 100644 static/unix-v10/man1/download.1 create mode 100644 static/unix-v10/man1/dpost.1 create mode 100644 static/unix-v10/man1/dsw.1 create mode 100644 static/unix-v10/man1/du.1 create mode 100644 static/unix-v10/man1/echo.1 create mode 100644 static/unix-v10/man1/ed.1 create mode 100644 static/unix-v10/man1/efl.1 create mode 100644 static/unix-v10/man1/eqn.1 create mode 100644 static/unix-v10/man1/esterel.1 create mode 100644 static/unix-v10/man1/exit.1 create mode 100644 static/unix-v10/man1/expr.1 create mode 100644 static/unix-v10/man1/f2c.1 create mode 100644 static/unix-v10/man1/f77.1 create mode 100644 static/unix-v10/man1/factor.1 create mode 100644 static/unix-v10/man1/fc.1 create mode 100644 static/unix-v10/man1/fed.1 create mode 100644 static/unix-v10/man1/fields.1 create mode 100644 static/unix-v10/man1/file.1 create mode 100644 static/unix-v10/man1/find.1 create mode 100644 static/unix-v10/man1/flex.1 create mode 100644 static/unix-v10/man1/fmt.1 create mode 100644 static/unix-v10/man1/form.1 create mode 100644 static/unix-v10/man1/forml.1 create mode 100644 static/unix-v10/man1/fstrip.1 create mode 100644 static/unix-v10/man1/ftp.1 create mode 100644 static/unix-v10/man1/games.1 create mode 100644 static/unix-v10/man1/gcc.1 create mode 100644 static/unix-v10/man1/getlab.1 create mode 100644 static/unix-v10/man1/getopt.1 create mode 100644 static/unix-v10/man1/gets.1 create mode 100644 static/unix-v10/man1/getuid.1 create mode 100644 static/unix-v10/man1/goto.1 create mode 100644 static/unix-v10/man1/grabit.1 create mode 100644 static/unix-v10/man1/gram.1 create mode 100644 static/unix-v10/man1/grap.1 create mode 100644 static/unix-v10/man1/graph.1 create mode 100644 static/unix-v10/man1/gre.1 create mode 100644 static/unix-v10/man1/grep.1 create mode 100644 static/unix-v10/man1/hang.1 create mode 100644 static/unix-v10/man1/hardcopy.1 create mode 100644 static/unix-v10/man1/hoc.1 create mode 100644 static/unix-v10/man1/hostname.1 create mode 100644 static/unix-v10/man1/hp.1 create mode 100644 static/unix-v10/man1/hyphen.1 create mode 100644 static/unix-v10/man1/ican.1 create mode 100644 static/unix-v10/man1/iclc.1 create mode 100755 static/unix-v10/man1/icon.1 create mode 100644 static/unix-v10/man1/icon_pi.1 create mode 100644 static/unix-v10/man1/icont.1 create mode 100644 static/unix-v10/man1/ideal.1 create mode 100644 static/unix-v10/man1/idiff.1 create mode 100644 static/unix-v10/man1/if.1 create mode 100644 static/unix-v10/man1/imscan.1 create mode 100644 static/unix-v10/man1/inews.1 create mode 100644 static/unix-v10/man1/init.1 create mode 100644 static/unix-v10/man1/intro.1 create mode 100755 static/unix-v10/man1/jim.1 create mode 100644 static/unix-v10/man1/join.1 create mode 100755 static/unix-v10/man1/jx.1 create mode 100644 static/unix-v10/man1/kill.1 create mode 100644 static/unix-v10/man1/kp.1 create mode 100644 static/unix-v10/man1/ksh.1 create mode 100644 static/unix-v10/man1/lab.1 create mode 100644 static/unix-v10/man1/langs.1 create mode 100644 static/unix-v10/man1/laserbar.1 create mode 100644 static/unix-v10/man1/lcc.1 create mode 100644 static/unix-v10/man1/lcoc.1 create mode 100644 static/unix-v10/man1/lcomp.1 create mode 100644 static/unix-v10/man1/ld.1 create mode 100644 static/unix-v10/man1/ld80.1 create mode 100644 static/unix-v10/man1/learn.1 create mode 100644 static/unix-v10/man1/lex.1 create mode 100644 static/unix-v10/man1/library.1 create mode 100644 static/unix-v10/man1/lim.1 create mode 100644 static/unix-v10/man1/limits.1 create mode 100644 static/unix-v10/man1/linkdata.1 create mode 100644 static/unix-v10/man1/lint.1 create mode 100644 static/unix-v10/man1/lisp.1 create mode 100644 static/unix-v10/man1/ln.1 create mode 100644 static/unix-v10/man1/load.1 create mode 100755 static/unix-v10/man1/loadfont.1 create mode 100644 static/unix-v10/man1/login.1 create mode 100644 static/unix-v10/man1/look.1 create mode 100644 static/unix-v10/man1/lorder.1 create mode 100644 static/unix-v10/man1/lp.1 create mode 100644 static/unix-v10/man1/lpr.1 create mode 100644 static/unix-v10/man1/ls.1 create mode 100644 static/unix-v10/man1/m.1 create mode 100644 static/unix-v10/man1/m4.1 create mode 100644 static/unix-v10/man1/m6.1 create mode 100644 static/unix-v10/man1/mail.1 create mode 100644 static/unix-v10/man1/mailalias.1 create mode 100644 static/unix-v10/man1/mailx.1 create mode 100644 static/unix-v10/man1/make.1 create mode 100644 static/unix-v10/man1/makeml.1 create mode 100644 static/unix-v10/man1/man.1 create mode 100644 static/unix-v10/man1/maple.1 create mode 100644 static/unix-v10/man1/match.1 create mode 100644 static/unix-v10/man1/matlab.1 create mode 100755 static/unix-v10/man1/mc68ar.1 create mode 100755 static/unix-v10/man1/mc68as.1 create mode 100755 static/unix-v10/man1/mc68conv.1 create mode 100755 static/unix-v10/man1/mc68cpp.1 create mode 100755 static/unix-v10/man1/mc68cprs.1 create mode 100755 static/unix-v10/man1/mc68dis.1 create mode 100755 static/unix-v10/man1/mc68dump.1 create mode 100755 static/unix-v10/man1/mc68ld.1 create mode 100755 static/unix-v10/man1/mc68lorder.1 create mode 100755 static/unix-v10/man1/mc68nm.1 create mode 100755 static/unix-v10/man1/mc68size.1 create mode 100755 static/unix-v10/man1/mc68strip.1 create mode 100644 static/unix-v10/man1/memo.1 create mode 100644 static/unix-v10/man1/merge.1 create mode 100644 static/unix-v10/man1/mesg.1 create mode 100644 static/unix-v10/man1/mint.1 create mode 100644 static/unix-v10/man1/mk.1 create mode 100644 static/unix-v10/man1/mkdir.1 create mode 100644 static/unix-v10/man1/mkdist.1 create mode 100644 static/unix-v10/man1/mkstand.1 create mode 100644 static/unix-v10/man1/mkstr.1 create mode 100644 static/unix-v10/man1/mkunique.1 create mode 100644 static/unix-v10/man1/mm.1 create mode 100644 static/unix-v10/man1/mmt.1 create mode 100644 static/unix-v10/man1/monk.1 create mode 100644 static/unix-v10/man1/movie.1 create mode 100644 static/unix-v10/man1/mp.1 create mode 100644 static/unix-v10/man1/mt.1 create mode 100644 static/unix-v10/man1/mv.1 create mode 100644 static/unix-v10/man1/newcrypt.1 create mode 100644 static/unix-v10/man1/newcsh.1 create mode 100644 static/unix-v10/man1/newgrp.1 create mode 100644 static/unix-v10/man1/newscheck.1 create mode 100644 static/unix-v10/man1/nice.1 create mode 100644 static/unix-v10/man1/nm.1 create mode 100644 static/unix-v10/man1/nm80.1 create mode 100644 static/unix-v10/man1/nohup.1 create mode 100644 static/unix-v10/man1/notary.1 create mode 100644 static/unix-v10/man1/notify.1 create mode 100644 static/unix-v10/man1/nroff.1 create mode 100644 static/unix-v10/man1/occ.1 create mode 100644 static/unix-v10/man1/ocdebug.1 create mode 100644 static/unix-v10/man1/ocr.1 create mode 100644 static/unix-v10/man1/od.1 create mode 100644 static/unix-v10/man1/olint.1 create mode 100644 static/unix-v10/man1/opr.1 create mode 100644 static/unix-v10/man1/ops5.1 create mode 100644 static/unix-v10/man1/org.1 create mode 100644 static/unix-v10/man1/osh.1 create mode 100644 static/unix-v10/man1/ov.1 create mode 100644 static/unix-v10/man1/p.1 create mode 100644 static/unix-v10/man1/pack.1 create mode 100644 static/unix-v10/man1/paper.1 create mode 100644 static/unix-v10/man1/paranoia.1 create mode 100644 static/unix-v10/man1/pascal.1 create mode 100644 static/unix-v10/man1/passwd.1 create mode 100644 static/unix-v10/man1/patch.1 create mode 100644 static/unix-v10/man1/pax.1 create mode 100644 static/unix-v10/man1/pc.1 create mode 100644 static/unix-v10/man1/pcopy.1 create mode 100644 static/unix-v10/man1/pfe.1 create mode 100644 static/unix-v10/man1/pic.1 create mode 100644 static/unix-v10/man1/picasso.1 create mode 100644 static/unix-v10/man1/pico.1 create mode 100644 static/unix-v10/man1/picpack.1 create mode 100644 static/unix-v10/man1/pl.1 create mode 100644 static/unix-v10/man1/plot.1 create mode 100644 static/unix-v10/man1/post.1 create mode 100644 static/unix-v10/man1/postbgi.1 create mode 100644 static/unix-v10/man1/postdaisy.1 create mode 100644 static/unix-v10/man1/postdmd.1 create mode 100644 static/unix-v10/man1/postgif.1 create mode 100644 static/unix-v10/man1/postio.1 create mode 100644 static/unix-v10/man1/postmd.1 create mode 100644 static/unix-v10/man1/postnews.1 create mode 100644 static/unix-v10/man1/postprint.1 create mode 100644 static/unix-v10/man1/postreverse.1 create mode 100644 static/unix-v10/man1/posttek.1 create mode 100644 static/unix-v10/man1/pp.1 create mode 100644 static/unix-v10/man1/pq.1 create mode 100644 static/unix-v10/man1/pr.1 create mode 100644 static/unix-v10/man1/prefer.1 create mode 100644 static/unix-v10/man1/printenv.1 create mode 100644 static/unix-v10/man1/printfont.1 create mode 100644 static/unix-v10/man1/priv.1 create mode 100644 static/unix-v10/man1/prof.1 create mode 100644 static/unix-v10/man1/proof.1 create mode 100644 static/unix-v10/man1/proofr.1 create mode 100644 static/unix-v10/man1/prose.1 create mode 100644 static/unix-v10/man1/ps.1 create mode 100644 static/unix-v10/man1/psencoding.1 create mode 100644 static/unix-v10/man1/psifile.1 create mode 100644 static/unix-v10/man1/psix.1 create mode 100644 static/unix-v10/man1/ptx.1 create mode 100644 static/unix-v10/man1/punct.1 create mode 100644 static/unix-v10/man1/push.1 create mode 100644 static/unix-v10/man1/pwd.1 create mode 100644 static/unix-v10/man1/pwintf.1 create mode 100644 static/unix-v10/man1/pxp.1 create mode 100644 static/unix-v10/man1/qed.1 create mode 100644 static/unix-v10/man1/qsnap.1 create mode 100644 static/unix-v10/man1/random.1 create mode 100644 static/unix-v10/man1/rates.1 create mode 100644 static/unix-v10/man1/ratfor.1 create mode 100644 static/unix-v10/man1/rc.1 create mode 100644 static/unix-v10/man1/rcp.1 create mode 100644 static/unix-v10/man1/readnews.1 create mode 100644 static/unix-v10/man1/readslow.1 create mode 100644 static/unix-v10/man1/redmail.1 create mode 100644 static/unix-v10/man1/refer.1 create mode 100644 static/unix-v10/man1/reloc.1 create mode 100644 static/unix-v10/man1/remshent.1 create mode 100644 static/unix-v10/man1/rev.1 create mode 100644 static/unix-v10/man1/rew.1 create mode 100644 static/unix-v10/man1/rm.1 create mode 100644 static/unix-v10/man1/rmdir.1 create mode 100644 static/unix-v10/man1/roff.1 create mode 100644 static/unix-v10/man1/route.1 create mode 100644 static/unix-v10/man1/rscan.1 create mode 100644 static/unix-v10/man1/sdb.1 create mode 100644 static/unix-v10/man1/sed.1 create mode 100644 static/unix-v10/man1/see.also.1 create mode 100644 static/unix-v10/man1/sendnews.1 create mode 100644 static/unix-v10/man1/seq.1 create mode 100644 static/unix-v10/man1/server.1 create mode 100644 static/unix-v10/man1/session.1 create mode 100644 static/unix-v10/man1/setlab.1 create mode 100644 static/unix-v10/man1/sexist.1 create mode 100644 static/unix-v10/man1/sh.1 create mode 100644 static/unix-v10/man1/shift.1 create mode 100644 static/unix-v10/man1/shstats.1 create mode 100644 static/unix-v10/man1/sign.1 create mode 100644 static/unix-v10/man1/size.1 create mode 100644 static/unix-v10/man1/size80.1 create mode 100644 static/unix-v10/man1/sleep.1 create mode 100644 static/unix-v10/man1/sml.1 create mode 100644 static/unix-v10/man1/sno.1 create mode 100644 static/unix-v10/man1/snocone.1 create mode 100644 static/unix-v10/man1/soelim.1 create mode 100644 static/unix-v10/man1/sort.1 create mode 100644 static/unix-v10/man1/speak.1 create mode 100644 static/unix-v10/man1/spell.1 create mode 100644 static/unix-v10/man1/spelltell.1 create mode 100644 static/unix-v10/man1/spellwwb.1 create mode 100644 static/unix-v10/man1/spin.1 create mode 100644 static/unix-v10/man1/spitbol.1 create mode 100644 static/unix-v10/man1/spline.1 create mode 100644 static/unix-v10/man1/split.1 create mode 100644 static/unix-v10/man1/splitrules.1 create mode 100644 static/unix-v10/man1/stat.1 create mode 100644 static/unix-v10/man1/stdarg.1 create mode 100644 static/unix-v10/man1/strings.1 create mode 100644 static/unix-v10/man1/strip.1 create mode 100644 static/unix-v10/man1/strlic.1 create mode 100644 static/unix-v10/man1/struct.1 create mode 100644 static/unix-v10/man1/stty.1 create mode 100644 static/unix-v10/man1/sum.1 create mode 100644 static/unix-v10/man1/switch.1 create mode 100644 static/unix-v10/man1/syl.1 create mode 100644 static/unix-v10/man1/tabs.1 create mode 100644 static/unix-v10/man1/tail.1 create mode 100644 static/unix-v10/man1/talk.1 create mode 100644 static/unix-v10/man1/tap.1 create mode 100644 static/unix-v10/man1/tape.1 create mode 100644 static/unix-v10/man1/tar.1 create mode 100644 static/unix-v10/man1/tbl.1 create mode 100644 static/unix-v10/man1/tdc.1 create mode 100644 static/unix-v10/man1/tee.1 create mode 100644 static/unix-v10/man1/telnet.1 create mode 100644 static/unix-v10/man1/test.1 create mode 100644 static/unix-v10/man1/tex.1 create mode 100644 static/unix-v10/man1/time.1 create mode 100644 static/unix-v10/man1/tk.1 create mode 100644 static/unix-v10/man1/tmg.1 create mode 100644 static/unix-v10/man1/tmpnam.1 create mode 100644 static/unix-v10/man1/tp.1 create mode 100644 static/unix-v10/man1/tr.1 create mode 100644 static/unix-v10/man1/tr2tex.1 create mode 100644 static/unix-v10/man1/track.1 create mode 100644 static/unix-v10/man1/troff.1 create mode 100644 static/unix-v10/man1/trofftable.1 create mode 100644 static/unix-v10/man1/true.1 create mode 100644 static/unix-v10/man1/tset.1 create mode 100644 static/unix-v10/man1/tsort.1 create mode 100644 static/unix-v10/man1/tss.1 create mode 100644 static/unix-v10/man1/tty.1 create mode 100644 static/unix-v10/man1/twig.1 create mode 100644 static/unix-v10/man1/type.1 create mode 100644 static/unix-v10/man1/typo.1 create mode 100755 static/unix-v10/man1/ucache.1 create mode 100644 static/unix-v10/man1/ul.1 create mode 100644 static/unix-v10/man1/un.1 create mode 100644 static/unix-v10/man1/uniq.1 create mode 100644 static/unix-v10/man1/uptime.1 create mode 100644 static/unix-v10/man1/usgmake.1 create mode 100644 static/unix-v10/man1/ustats.1 create mode 100644 static/unix-v10/man1/uucp.1 create mode 100644 static/unix-v10/man1/uuencode.1 create mode 100644 static/unix-v10/man1/uurec.1 create mode 100644 static/unix-v10/man1/uustat.1 create mode 100644 static/unix-v10/man1/uuto.1 create mode 100644 static/unix-v10/man1/uux.1 create mode 100644 static/unix-v10/man1/v6run.1 create mode 100644 static/unix-v10/man1/vacation.1 create mode 100644 static/unix-v10/man1/vi.1 create mode 100644 static/unix-v10/man1/view2d.1 create mode 100644 static/unix-v10/man1/vis.1 create mode 100644 static/unix-v10/man1/visi.1 create mode 100644 static/unix-v10/man1/vs.1 create mode 100644 static/unix-v10/man1/vsw.1 create mode 100644 static/unix-v10/man1/w.1 create mode 100644 static/unix-v10/man1/wait.1 create mode 100644 static/unix-v10/man1/wc.1 create mode 100644 static/unix-v10/man1/wf1.1 create mode 100644 static/unix-v10/man1/who.1 create mode 100644 static/unix-v10/man1/worduse.1 create mode 100644 static/unix-v10/man1/write.1 create mode 100755 static/unix-v10/man1/wtinit.1 create mode 100644 static/unix-v10/man1/wwb.1 create mode 100644 static/unix-v10/man1/wwbhelp.1 create mode 100644 static/unix-v10/man1/wwbinfo.1 create mode 100644 static/unix-v10/man1/wwbmail.1 create mode 100644 static/unix-v10/man1/wwbstand.1 create mode 100644 static/unix-v10/man1/wwv.1 create mode 100644 static/unix-v10/man1/xargs.1 create mode 100644 static/unix-v10/man1/xd.1 create mode 100644 static/unix-v10/man1/yacc.1 create mode 100644 static/unix-v10/man1/yes.1 create mode 100644 static/unix-v10/man1/zcmp.1 create mode 100644 static/unix-v10/man1/zero.1 create mode 100644 static/unix-v10/man1/zmore.1 create mode 100644 static/unix-v10/man2/Makefile create mode 100644 static/unix-v10/man2/access.2 create mode 100644 static/unix-v10/man2/acct.2 create mode 100644 static/unix-v10/man2/alarm.2 create mode 100644 static/unix-v10/man2/back.2 create mode 100644 static/unix-v10/man2/boot.2 create mode 100644 static/unix-v10/man2/break.2 create mode 100644 static/unix-v10/man2/brk.2 create mode 100644 static/unix-v10/man2/cemt.2 create mode 100644 static/unix-v10/man2/chdir.2 create mode 100644 static/unix-v10/man2/chmod.2 create mode 100644 static/unix-v10/man2/chown.2 create mode 100644 static/unix-v10/man2/close.2 create mode 100644 static/unix-v10/man2/cq.2 create mode 100644 static/unix-v10/man2/creat.2 create mode 100644 static/unix-v10/man2/csw.2 create mode 100644 static/unix-v10/man2/deprecated.2 create mode 100644 static/unix-v10/man2/dirread.2 create mode 100644 static/unix-v10/man2/dup.2 create mode 100644 static/unix-v10/man2/exec.2 create mode 100644 static/unix-v10/man2/exit.2 create mode 100644 static/unix-v10/man2/f2c.2 create mode 100644 static/unix-v10/man2/fields.2 create mode 100644 static/unix-v10/man2/fmount.2 create mode 100644 static/unix-v10/man2/fork.2 create mode 100644 static/unix-v10/man2/fpe.2 create mode 100644 static/unix-v10/man2/front.2 create mode 100644 static/unix-v10/man2/fstat.2 create mode 100644 static/unix-v10/man2/getflab.2 create mode 100644 static/unix-v10/man2/getgid.2 create mode 100644 static/unix-v10/man2/getplab.2 create mode 100644 static/unix-v10/man2/getuid.2 create mode 100644 static/unix-v10/man2/gtty.2 create mode 100644 static/unix-v10/man2/ilgins.2 create mode 100644 static/unix-v10/man2/indir.2 create mode 100644 static/unix-v10/man2/intr.2 create mode 100644 static/unix-v10/man2/intro.2 create mode 100644 static/unix-v10/man2/ioctl.2 create mode 100644 static/unix-v10/man2/kill.2 create mode 100644 static/unix-v10/man2/labmount.2 create mode 100644 static/unix-v10/man2/limits.2 create mode 100644 static/unix-v10/man2/link.2 create mode 100644 static/unix-v10/man2/lseek.2 create mode 100644 static/unix-v10/man2/m.2 create mode 100644 static/unix-v10/man2/makdir.2 create mode 100644 static/unix-v10/man2/mdate.2 create mode 100644 static/unix-v10/man2/mkdir.2 create mode 100644 static/unix-v10/man2/mknod.2 create mode 100644 static/unix-v10/man2/mount.2 create mode 100644 static/unix-v10/man2/mpx.2 create mode 100644 static/unix-v10/man2/nice.2 create mode 100644 static/unix-v10/man2/nochk.2 create mode 100644 static/unix-v10/man2/open.2 create mode 100644 static/unix-v10/man2/pipe.2 create mode 100644 static/unix-v10/man2/profil.2 create mode 100644 static/unix-v10/man2/quit.2 create mode 100644 static/unix-v10/man2/read.2 create mode 100644 static/unix-v10/man2/rele.2 create mode 100644 static/unix-v10/man2/seek.2 create mode 100644 static/unix-v10/man2/select.2 create mode 100644 static/unix-v10/man2/setgid.2 create mode 100644 static/unix-v10/man2/setuid.2 create mode 100644 static/unix-v10/man2/signal.2 create mode 100644 static/unix-v10/man2/sleep.2 create mode 100644 static/unix-v10/man2/stat.2 create mode 100644 static/unix-v10/man2/stime.2 create mode 100644 static/unix-v10/man2/stty.2 create mode 100644 static/unix-v10/man2/sync.2 create mode 100644 static/unix-v10/man2/syscall.2 create mode 100644 static/unix-v10/man2/syslog.2 create mode 100644 static/unix-v10/man2/time.2 create mode 100644 static/unix-v10/man2/times.2 create mode 100644 static/unix-v10/man2/udbuf.2 create mode 100644 static/unix-v10/man2/umask.2 create mode 100644 static/unix-v10/man2/umount.2 create mode 100644 static/unix-v10/man2/unlink.2 create mode 100644 static/unix-v10/man2/unsafe.2 create mode 100644 static/unix-v10/man2/vtimes.2 create mode 100644 static/unix-v10/man2/wait.2 create mode 100644 static/unix-v10/man2/write.2 create mode 100644 static/unix-v10/man3/Makefile create mode 100644 static/unix-v10/man3/abort.3 create mode 100644 static/unix-v10/man3/arith.3 create mode 100644 static/unix-v10/man3/assert.3 create mode 100644 static/unix-v10/man3/atan.3 create mode 100644 static/unix-v10/man3/atof.3 create mode 100644 static/unix-v10/man3/atoi.3 create mode 100644 static/unix-v10/man3/bessel.3 create mode 100644 static/unix-v10/man3/bits.3 create mode 100644 static/unix-v10/man3/block.3 create mode 100644 static/unix-v10/man3/buildmap.3 create mode 100644 static/unix-v10/man3/cbit.3 create mode 100644 static/unix-v10/man3/cbt.3 create mode 100644 static/unix-v10/man3/chrtab.3 create mode 100644 static/unix-v10/man3/closeshares.3 create mode 100644 static/unix-v10/man3/compar.3 create mode 100644 static/unix-v10/man3/crypt.3 create mode 100644 static/unix-v10/man3/ctime.3 create mode 100644 static/unix-v10/man3/ctype.3 create mode 100644 static/unix-v10/man3/curses.3 create mode 100644 static/unix-v10/man3/dbm.3 create mode 100644 static/unix-v10/man3/ddsput.3 create mode 100644 static/unix-v10/man3/dialout.3 create mode 100644 static/unix-v10/man3/directory.3 create mode 100644 static/unix-v10/man3/ecvt.3 create mode 100644 static/unix-v10/man3/end.3 create mode 100644 static/unix-v10/man3/erf.3 create mode 100644 static/unix-v10/man3/exit.3 create mode 100644 static/unix-v10/man3/exp.3 create mode 100644 static/unix-v10/man3/ferror.3 create mode 100644 static/unix-v10/man3/fgets.3 create mode 100644 static/unix-v10/man3/filebuf.3 create mode 100644 static/unix-v10/man3/fio.3 create mode 100644 static/unix-v10/man3/floor.3 create mode 100644 static/unix-v10/man3/fopen.3 create mode 100644 static/unix-v10/man3/fptrap.3 create mode 100644 static/unix-v10/man3/fread.3 create mode 100644 static/unix-v10/man3/frexp.3 create mode 100644 static/unix-v10/man3/fseek.3 create mode 100644 static/unix-v10/man3/fstream.3 create mode 100644 static/unix-v10/man3/ftoa.3 create mode 100644 static/unix-v10/man3/ftoo.3 create mode 100644 static/unix-v10/man3/ftw.3 create mode 100644 static/unix-v10/man3/ftwalk.3 create mode 100644 static/unix-v10/man3/galloc.3 create mode 100644 static/unix-v10/man3/gamma.3 create mode 100644 static/unix-v10/man3/gerts.3 create mode 100644 static/unix-v10/man3/getarg.3 create mode 100644 static/unix-v10/man3/getc.3 create mode 100644 static/unix-v10/man3/getchr.3 create mode 100644 static/unix-v10/man3/getdate.3 create mode 100644 static/unix-v10/man3/getenv.3 create mode 100644 static/unix-v10/man3/getfields.3 create mode 100644 static/unix-v10/man3/getflags.3 create mode 100644 static/unix-v10/man3/getflds.3 create mode 100644 static/unix-v10/man3/getfsent.3 create mode 100644 static/unix-v10/man3/getgrent.3 create mode 100644 static/unix-v10/man3/getlogin.3 create mode 100644 static/unix-v10/man3/getopt.3 create mode 100644 static/unix-v10/man3/getpass.3 create mode 100644 static/unix-v10/man3/getpw.3 create mode 100644 static/unix-v10/man3/getpwent.3 create mode 100644 static/unix-v10/man3/getshares.3 create mode 100644 static/unix-v10/man3/getshput.3 create mode 100644 static/unix-v10/man3/getstsrc.3 create mode 100644 static/unix-v10/man3/getwd.3 create mode 100644 static/unix-v10/man3/hash.3 create mode 100644 static/unix-v10/man3/hmul.3 create mode 100644 static/unix-v10/man3/huff.3 create mode 100644 static/unix-v10/man3/hypot.3 create mode 100644 static/unix-v10/man3/ierror.3 create mode 100644 static/unix-v10/man3/internet.3 create mode 100644 static/unix-v10/man3/intro.3 create mode 100644 static/unix-v10/man3/ios.3 create mode 100644 static/unix-v10/man3/ipc.3 create mode 100644 static/unix-v10/man3/iread.3 create mode 100644 static/unix-v10/man3/istream.3 create mode 100644 static/unix-v10/man3/itoa.3 create mode 100644 static/unix-v10/man3/juke.3 create mode 100644 static/unix-v10/man3/l3tol.3 create mode 100644 static/unix-v10/man3/labconst.3 create mode 100644 static/unix-v10/man3/labeq.3 create mode 100644 static/unix-v10/man3/labtoa.3 create mode 100644 static/unix-v10/man3/ldiv.3 create mode 100644 static/unix-v10/man3/log.3 create mode 100644 static/unix-v10/man3/malloc.3 create mode 100644 static/unix-v10/man3/manip.3 create mode 100644 static/unix-v10/man3/map.3 create mode 100644 static/unix-v10/man3/memory.3 create mode 100644 static/unix-v10/man3/mesg.3 create mode 100644 static/unix-v10/man3/mktemp.3 create mode 100644 static/unix-v10/man3/mkunique.3 create mode 100644 static/unix-v10/man3/mon.3 create mode 100644 static/unix-v10/man3/monitor.3 create mode 100644 static/unix-v10/man3/mp.3 create mode 100644 static/unix-v10/man3/mvefil.3 create mode 100644 static/unix-v10/man3/nargs.3 create mode 100644 static/unix-v10/man3/nlist.3 create mode 100644 static/unix-v10/man3/notary.3 create mode 100644 static/unix-v10/man3/openshares.3 create mode 100644 static/unix-v10/man3/ostream.3 create mode 100644 static/unix-v10/man3/perror.3 create mode 100644 static/unix-v10/man3/pex.3 create mode 100644 static/unix-v10/man3/picfile.3 create mode 100644 static/unix-v10/man3/pipebuf.3 create mode 100644 static/unix-v10/man3/pipestream.3 create mode 100644 static/unix-v10/man3/plot.3 create mode 100644 static/unix-v10/man3/poly.3 create mode 100644 static/unix-v10/man3/pool.3 create mode 100644 static/unix-v10/man3/popen.3 create mode 100644 static/unix-v10/man3/port.3 create mode 100644 static/unix-v10/man3/pow.3 create mode 100644 static/unix-v10/man3/print.3 create mode 100644 static/unix-v10/man3/printf.3 create mode 100644 static/unix-v10/man3/proj.3 create mode 100644 static/unix-v10/man3/ptime.3 create mode 100644 static/unix-v10/man3/putc.3 create mode 100644 static/unix-v10/man3/putchr.3 create mode 100644 static/unix-v10/man3/putshares.3 create mode 100644 static/unix-v10/man3/pwquery.3 create mode 100644 static/unix-v10/man3/qsort.3 create mode 100644 static/unix-v10/man3/rand.3 create mode 100644 static/unix-v10/man3/re.3 create mode 100644 static/unix-v10/man3/regex.3 create mode 100644 static/unix-v10/man3/regexp.3 create mode 100644 static/unix-v10/man3/reset.3 create mode 100644 static/unix-v10/man3/salloc.3 create mode 100644 static/unix-v10/man3/sbuf.prot.3 create mode 100644 static/unix-v10/man3/sbuf.pub.3 create mode 100644 static/unix-v10/man3/scanf.3 create mode 100644 static/unix-v10/man3/setbuf.3 create mode 100644 static/unix-v10/man3/setfil.3 create mode 100644 static/unix-v10/man3/setjmp.3 create mode 100644 static/unix-v10/man3/setlimits.3 create mode 100644 static/unix-v10/man3/setupgroups.3 create mode 100644 static/unix-v10/man3/setupshares.3 create mode 100644 static/unix-v10/man3/sfio.3 create mode 100644 static/unix-v10/man3/sharesfile.3 create mode 100644 static/unix-v10/man3/sin.3 create mode 100644 static/unix-v10/man3/sinh.3 create mode 100644 static/unix-v10/man3/sleep.3 create mode 100644 static/unix-v10/man3/sqrt.3 create mode 100644 static/unix-v10/man3/ssbuf.3 create mode 100644 static/unix-v10/man3/stak.3 create mode 100644 static/unix-v10/man3/stdio.3 create mode 100644 static/unix-v10/man3/stdiobuf.3 create mode 100644 static/unix-v10/man3/string.3 create mode 100644 static/unix-v10/man3/strstream.3 create mode 100644 static/unix-v10/man3/swab.3 create mode 100644 static/unix-v10/man3/switch.3 create mode 100644 static/unix-v10/man3/system.3 create mode 100644 static/unix-v10/man3/tcp.3 create mode 100644 static/unix-v10/man3/termcap.3 create mode 100644 static/unix-v10/man3/timec.3 create mode 100644 static/unix-v10/man3/tm.3 create mode 100644 static/unix-v10/man3/tolower.3 create mode 100644 static/unix-v10/man3/ttyn.3 create mode 100644 static/unix-v10/man3/ttyname.3 create mode 100644 static/unix-v10/man3/udp.3 create mode 100644 static/unix-v10/man3/uname.3 create mode 100644 static/unix-v10/man3/ungetc.3 create mode 100644 static/unix-v10/man3/valloc.3 create mode 100644 static/unix-v10/man3/varargs.3 create mode 100644 static/unix-v10/man3/view2d.3 create mode 100644 static/unix-v10/man3/vt.3 create mode 100644 static/unix-v10/man4/Makefile create mode 100644 static/unix-v10/man4/binarsys.4 create mode 100644 static/unix-v10/man4/bk.4 create mode 100644 static/unix-v10/man4/bl.4 create mode 100644 static/unix-v10/man4/bufld.4 create mode 100644 static/unix-v10/man4/cat.4 create mode 100644 static/unix-v10/man4/connld.4 create mode 100644 static/unix-v10/man4/console.4 create mode 100644 static/unix-v10/man4/da.4 create mode 100644 static/unix-v10/man4/dc.4 create mode 100644 static/unix-v10/man4/dh.4 create mode 100644 static/unix-v10/man4/dispatch.4 create mode 100644 static/unix-v10/man4/dk.4 create mode 100644 static/unix-v10/man4/dn.4 create mode 100644 static/unix-v10/man4/dp.4 create mode 100644 static/unix-v10/man4/drum.4 create mode 100644 static/unix-v10/man4/dz.4 create mode 100644 static/unix-v10/man4/ethernet.4 create mode 100644 static/unix-v10/man4/fd.4 create mode 100644 static/unix-v10/man4/fl.4 create mode 100755 static/unix-v10/man4/font.4 create mode 100644 static/unix-v10/man4/hp.4 create mode 100644 static/unix-v10/man4/ht.4 create mode 100644 static/unix-v10/man4/intro.4 create mode 100644 static/unix-v10/man4/ip.4 create mode 100644 static/unix-v10/man4/kl.4 create mode 100644 static/unix-v10/man4/log.4 create mode 100644 static/unix-v10/man4/lp.4 create mode 100644 static/unix-v10/man4/lpr.4 create mode 100644 static/unix-v10/man4/mailcnfg.4 create mode 100644 static/unix-v10/man4/mailsurr.4 create mode 100644 static/unix-v10/man4/mem.4 create mode 100644 static/unix-v10/man4/mesgld.4 create mode 100644 static/unix-v10/man4/modules.4 create mode 100644 static/unix-v10/man4/mt.4 create mode 100644 static/unix-v10/man4/newtty.4 create mode 100644 static/unix-v10/man4/null.4 create mode 100644 static/unix-v10/man4/pc.4 create mode 100644 static/unix-v10/man4/pex.4 create mode 100644 static/unix-v10/man4/proc.4 create mode 100644 static/unix-v10/man4/ra.4 create mode 100644 static/unix-v10/man4/rf.4 create mode 100644 static/unix-v10/man4/rk.4 create mode 100644 static/unix-v10/man4/rp.4 create mode 100644 static/unix-v10/man4/rv.4 create mode 100644 static/unix-v10/man4/scsi.4 create mode 100644 static/unix-v10/man4/stream.4 create mode 100644 static/unix-v10/man4/tbl.4 create mode 100644 static/unix-v10/man4/tc.4 create mode 100644 static/unix-v10/man4/tcp.4 create mode 100644 static/unix-v10/man4/tiu.4 create mode 100644 static/unix-v10/man4/tm.4 create mode 100644 static/unix-v10/man4/tty.4 create mode 100644 static/unix-v10/man4/ttyld.4 create mode 100644 static/unix-v10/man4/up.4 create mode 100644 static/unix-v10/man4/va.4 create mode 100644 static/unix-v10/man4/vc.4 create mode 100644 static/unix-v10/man4/vp.4 create mode 100644 static/unix-v10/man4/vs.4 create mode 100644 static/unix-v10/man4/vt.4 create mode 100644 static/unix-v10/man5/80.out.5 create mode 100644 static/unix-v10/man5/Makefile create mode 100644 static/unix-v10/man5/a.out.5 create mode 100644 static/unix-v10/man5/acct.5 create mode 100644 static/unix-v10/man5/aliases.5 create mode 100644 static/unix-v10/man5/ar.5 create mode 100755 static/unix-v10/man5/ascii.5 create mode 100644 static/unix-v10/man5/backup.5 create mode 100644 static/unix-v10/man5/cdl.10.5 create mode 100644 static/unix-v10/man5/config.5 create mode 100644 static/unix-v10/man5/core.5 create mode 100644 static/unix-v10/man5/cpio.5 create mode 100644 static/unix-v10/man5/dir.5 create mode 100644 static/unix-v10/man5/dist.5 create mode 100644 static/unix-v10/man5/dump.5 create mode 100644 static/unix-v10/man5/environ.5 create mode 100644 static/unix-v10/man5/filsys.5 create mode 100644 static/unix-v10/man5/fizz.10.5 create mode 100644 static/unix-v10/man5/font.5 create mode 100644 static/unix-v10/man5/fs.5 create mode 100644 static/unix-v10/man5/fsm.10.5 create mode 100644 static/unix-v10/man5/fstab.5 create mode 100644 static/unix-v10/man5/graw.10.5 create mode 100644 static/unix-v10/man5/ident.5 create mode 100644 static/unix-v10/man5/lde.10.5 create mode 100644 static/unix-v10/man5/lnode.5 create mode 100644 static/unix-v10/man5/log.5 create mode 100644 static/unix-v10/man5/map.5 create mode 100755 static/unix-v10/man5/math.5 create mode 100644 static/unix-v10/man5/mcolor.5 create mode 100644 static/unix-v10/man5/mds.10.5 create mode 100644 static/unix-v10/man5/minterm.10.5 create mode 100644 static/unix-v10/man5/minus.z.5 create mode 100644 static/unix-v10/man5/mpictures.5 create mode 100644 static/unix-v10/man5/mpxio.5 create mode 100644 static/unix-v10/man5/netnews.5 create mode 100644 static/unix-v10/man5/news.5 create mode 100644 static/unix-v10/man5/newsrc.5 create mode 100644 static/unix-v10/man5/paddle.10.5 create mode 100644 static/unix-v10/man5/passwd.5 create mode 100644 static/unix-v10/man5/picfile.5 create mode 100644 static/unix-v10/man5/plot.5 create mode 100644 static/unix-v10/man5/poly.5 create mode 100644 static/unix-v10/man5/privs.5 create mode 100644 static/unix-v10/man5/pwfile.5 create mode 100644 static/unix-v10/man5/saf.10.5 create mode 100644 static/unix-v10/man5/share.5 create mode 100644 static/unix-v10/man5/shares.5 create mode 100644 static/unix-v10/man5/speakm.5 create mode 100644 static/unix-v10/man5/src.5 create mode 100644 static/unix-v10/man5/stab.5 create mode 100644 static/unix-v10/man5/stock.10.5 create mode 100644 static/unix-v10/man5/tap.5 create mode 100644 static/unix-v10/man5/termcap.5 create mode 100644 static/unix-v10/man5/tp.5 create mode 100644 static/unix-v10/man5/troff.5 create mode 100644 static/unix-v10/man5/ttys.5 create mode 100644 static/unix-v10/man5/ttytype.5 create mode 100644 static/unix-v10/man5/types.5 create mode 100644 static/unix-v10/man5/uids.5 create mode 100644 static/unix-v10/man5/utmp.5 create mode 100644 static/unix-v10/man5/uuencode.5 create mode 100755 static/unix-v10/man5/values.5 create mode 100644 static/unix-v10/man5/vfont.5 create mode 100644 static/unix-v10/man5/view2d.5 create mode 100644 static/unix-v10/man5/whoami.5 create mode 100644 static/unix-v10/man5/worm.5 create mode 100644 static/unix-v10/man5/wtmp.5 create mode 100644 static/unix-v10/man6/Makefile create mode 100644 static/unix-v10/man6/adventure.6 create mode 100644 static/unix-v10/man6/arithmetic.6 create mode 100644 static/unix-v10/man6/ascii.6 create mode 100644 static/unix-v10/man6/atc.6 create mode 100644 static/unix-v10/man6/azel.6 create mode 100644 static/unix-v10/man6/back.6 create mode 100644 static/unix-v10/man6/banner.6 create mode 100644 static/unix-v10/man6/basic.6 create mode 100644 static/unix-v10/man6/bc.6 create mode 100644 static/unix-v10/man6/bcd.6 create mode 100644 static/unix-v10/man6/bianchi.6 create mode 100644 static/unix-v10/man6/bj.6 create mode 100644 static/unix-v10/man6/boggle.6 create mode 100644 static/unix-v10/man6/bridge.6 create mode 100644 static/unix-v10/man6/cal.6 create mode 100644 static/unix-v10/man6/cards.6 create mode 100644 static/unix-v10/man6/chess.6 create mode 100644 static/unix-v10/man6/ching.6 create mode 100644 static/unix-v10/man6/cubic.6 create mode 100644 static/unix-v10/man6/das.6 create mode 100644 static/unix-v10/man6/doctor.6 create mode 100644 static/unix-v10/man6/dpt.6 create mode 100644 static/unix-v10/man6/eqnchar.6 create mode 100644 static/unix-v10/man6/factor.6 create mode 100644 static/unix-v10/man6/festoon.6 create mode 100644 static/unix-v10/man6/font.6 create mode 100644 static/unix-v10/man6/fortune.6 create mode 100644 static/unix-v10/man6/hangman.6 create mode 100644 static/unix-v10/man6/hyphen.6 create mode 100644 static/unix-v10/man6/imp.6 create mode 100644 static/unix-v10/man6/ipa.6 create mode 100644 static/unix-v10/man6/latex.6 create mode 100644 static/unix-v10/man6/m6.6 create mode 100644 static/unix-v10/man6/mail.6 create mode 100644 static/unix-v10/man6/man.6 create mode 100644 static/unix-v10/man6/mars.6 create mode 100644 static/unix-v10/man6/maze.6 create mode 100644 static/unix-v10/man6/mbits.6 create mode 100644 static/unix-v10/man6/mcs.6 create mode 100644 static/unix-v10/man6/mille.6 create mode 100644 static/unix-v10/man6/mon.6 create mode 100644 static/unix-v10/man6/monop.6 create mode 100644 static/unix-v10/man6/moo.6 create mode 100644 static/unix-v10/man6/mpictures.6 create mode 100644 static/unix-v10/man6/mpm.6 create mode 100644 static/unix-v10/man6/ms.6 create mode 100644 static/unix-v10/man6/number.6 create mode 100644 static/unix-v10/man6/ogre.6 create mode 100644 static/unix-v10/man6/ov.6 create mode 100644 static/unix-v10/man6/ptx.6 create mode 100644 static/unix-v10/man6/quiz.6 create mode 100644 static/unix-v10/man6/rain.6 create mode 100644 static/unix-v10/man6/redcode.6 create mode 100644 static/unix-v10/man6/sail.6 create mode 100644 static/unix-v10/man6/sfs.6 create mode 100644 static/unix-v10/man6/sky.6 create mode 100644 static/unix-v10/man6/snake.6 create mode 100644 static/unix-v10/man6/spline.6 create mode 100644 static/unix-v10/man6/term.6 create mode 100644 static/unix-v10/man6/tmg.6 create mode 100644 static/unix-v10/man6/trek.man.6 create mode 100644 static/unix-v10/man6/ttt.6 create mode 100644 static/unix-v10/man6/warp.6 create mode 100644 static/unix-v10/man6/worms.6 create mode 100644 static/unix-v10/man6/wump.6 create mode 100644 static/unix-v10/man6/yacc.6 create mode 100644 static/unix-v10/man7/Makefile create mode 100644 static/unix-v10/man7/apnews.7 create mode 100644 static/unix-v10/man7/ascii.7 create mode 100644 static/unix-v10/man7/av.7 create mode 100644 static/unix-v10/man7/avw.7 create mode 100644 static/unix-v10/man7/cal.7 create mode 100644 static/unix-v10/man7/dict.7 create mode 100644 static/unix-v10/man7/dkname.7 create mode 100644 static/unix-v10/man7/dpd.7 create mode 100644 static/unix-v10/man7/getty.7 create mode 100644 static/unix-v10/man7/glob.7 create mode 100644 static/unix-v10/man7/greek.7 create mode 100644 static/unix-v10/man7/hier.7 create mode 100644 static/unix-v10/man7/init.7 create mode 100644 static/unix-v10/man7/kbd.7 create mode 100644 static/unix-v10/man7/library.7 create mode 100644 static/unix-v10/man7/login.7 create mode 100644 static/unix-v10/man7/map.7 create mode 100644 static/unix-v10/man7/me.7 create mode 100644 static/unix-v10/man7/msh.7 create mode 100644 static/unix-v10/man7/netlib.7 create mode 100644 static/unix-v10/man7/netnews.7 create mode 100644 static/unix-v10/man7/news.7 create mode 100644 static/unix-v10/man7/obproc.7 create mode 100644 static/unix-v10/man7/papers.7 create mode 100644 static/unix-v10/man7/poly.7 create mode 100644 static/unix-v10/man7/postnews.7 create mode 100644 static/unix-v10/man7/pq.7 create mode 100644 static/unix-v10/man7/qns.7 create mode 100644 static/unix-v10/man7/readnews.7 create mode 100644 static/unix-v10/man7/scat.7 create mode 100644 static/unix-v10/man7/sky.7 create mode 100644 static/unix-v10/man7/submit.7 create mode 100644 static/unix-v10/man7/tabs.7 create mode 100644 static/unix-v10/man7/tel.7 create mode 100644 static/unix-v10/man7/telno.7 create mode 100644 static/unix-v10/man7/tmheader.7 create mode 100644 static/unix-v10/man7/town.7 create mode 100644 static/unix-v10/man7/units.7 create mode 100644 static/unix-v10/man7/vs.7 create mode 100644 static/unix-v10/man7/vsp.7 create mode 100644 static/unix-v10/man7/weather.7 create mode 100644 static/unix-v10/man7/wx.7 create mode 100644 static/unix-v10/man8/11.8 create mode 100644 static/unix-v10/man8/20boot.8 create mode 100644 static/unix-v10/man8/Makefile create mode 100644 static/unix-v10/man8/ac.8 create mode 100644 static/unix-v10/man8/acct.8 create mode 100644 static/unix-v10/man8/adduser.8 create mode 100644 static/unix-v10/man8/analyze.8 create mode 100644 static/unix-v10/man8/apx.8 create mode 100644 static/unix-v10/man8/arcv.8 create mode 100644 static/unix-v10/man8/arff.8 create mode 100644 static/unix-v10/man8/asd.8 create mode 100644 static/unix-v10/man8/atalla.8 create mode 100644 static/unix-v10/man8/authmgr.8 create mode 100644 static/unix-v10/man8/backup.8 create mode 100644 static/unix-v10/man8/blmount.8 create mode 100644 static/unix-v10/man8/bproc.8 create mode 100644 static/unix-v10/man8/check.8 create mode 100644 static/unix-v10/man8/chk.8 create mode 100644 static/unix-v10/man8/chown.8 create mode 100644 static/unix-v10/man8/chuck.8 create mode 100644 static/unix-v10/man8/cl.8 create mode 100644 static/unix-v10/man8/clri.8 create mode 100644 static/unix-v10/man8/config.8 create mode 100644 static/unix-v10/man8/cpp.8 create mode 100644 static/unix-v10/man8/crash.8 create mode 100644 static/unix-v10/man8/cron.8 create mode 100644 static/unix-v10/man8/dcheck.8 create mode 100644 static/unix-v10/man8/delivermail.8 create mode 100644 static/unix-v10/man8/df.8 create mode 100644 static/unix-v10/man8/dist.8 create mode 100644 static/unix-v10/man8/dkmgr.8 create mode 100644 static/unix-v10/man8/dli.8 create mode 100644 static/unix-v10/man8/dmesg.8 create mode 100644 static/unix-v10/man8/downgrade.8 create mode 100644 static/unix-v10/man8/dump.8 create mode 100644 static/unix-v10/man8/dumpdir.8 create mode 100644 static/unix-v10/man8/expire.8 create mode 100644 static/unix-v10/man8/fsck.8 create mode 100644 static/unix-v10/man8/fstat.8 create mode 100644 static/unix-v10/man8/gacct.8 create mode 100644 static/unix-v10/man8/gettable.8 create mode 100644 static/unix-v10/man8/getty.8 create mode 100644 static/unix-v10/man8/halt.8 create mode 100644 static/unix-v10/man8/htable.8 create mode 100644 static/unix-v10/man8/icheck.8 create mode 100644 static/unix-v10/man8/inews.8 create mode 100644 static/unix-v10/man8/init.8 create mode 100644 static/unix-v10/man8/ino.8 create mode 100644 static/unix-v10/man8/ins.8 create mode 100644 static/unix-v10/man8/install.8 create mode 100644 static/unix-v10/man8/ipconfig.8 create mode 100644 static/unix-v10/man8/istat.8 create mode 100644 static/unix-v10/man8/kill.8 create mode 100644 static/unix-v10/man8/kmc.8 create mode 100644 static/unix-v10/man8/ldpcs.8 create mode 100644 static/unix-v10/man8/login.8 create mode 100644 static/unix-v10/man8/makekey.8 create mode 100644 static/unix-v10/man8/mkfs.8 create mode 100644 static/unix-v10/man8/mknod.8 create mode 100644 static/unix-v10/man8/mkpkg.8 create mode 100644 static/unix-v10/man8/mount.8 create mode 100644 static/unix-v10/man8/netfs.8 create mode 100644 static/unix-v10/man8/netstat.8 create mode 100644 static/unix-v10/man8/nosh.8 create mode 100644 static/unix-v10/man8/ns.8 create mode 100644 static/unix-v10/man8/postbgi.8 create mode 100644 static/unix-v10/man8/postio.8 create mode 100644 static/unix-v10/man8/postreverse.8 create mode 100644 static/unix-v10/man8/postscript.8 create mode 100644 static/unix-v10/man8/privserv.8 create mode 100644 static/unix-v10/man8/ps.8 create mode 100644 static/unix-v10/man8/pstat.8 create mode 100644 static/unix-v10/man8/pwserv.8 create mode 100644 static/unix-v10/man8/quot.8 create mode 100644 static/unix-v10/man8/rarepl.8 create mode 100644 static/unix-v10/man8/rc.8 create mode 100644 static/unix-v10/man8/reboot.8 create mode 100644 static/unix-v10/man8/recnews.8 create mode 100644 static/unix-v10/man8/reloc.8 create mode 100644 static/unix-v10/man8/renice.8 create mode 100644 static/unix-v10/man8/restor.8 create mode 100644 static/unix-v10/man8/route.8 create mode 100644 static/unix-v10/man8/sa.8 create mode 100644 static/unix-v10/man8/salv.8 create mode 100644 static/unix-v10/man8/savecore.8 create mode 100644 static/unix-v10/man8/scsish.8 create mode 100644 static/unix-v10/man8/sendcover.8 create mode 100644 static/unix-v10/man8/sendnews.8 create mode 100644 static/unix-v10/man8/ship.8 create mode 100644 static/unix-v10/man8/showq.8 create mode 100644 static/unix-v10/man8/shutdown.8 create mode 100644 static/unix-v10/man8/smash.8 create mode 100644 static/unix-v10/man8/smstat.8 create mode 100644 static/unix-v10/man8/smtp.8 create mode 100644 static/unix-v10/man8/sticky.8 create mode 100644 static/unix-v10/man8/su.8 create mode 100644 static/unix-v10/man8/svcmgr.8 create mode 100644 static/unix-v10/man8/swapon.8 create mode 100644 static/unix-v10/man8/swtmp.8 create mode 100644 static/unix-v10/man8/symorder.8 create mode 100644 static/unix-v10/man8/sync.8 create mode 100644 static/unix-v10/man8/syslog.8 create mode 100644 static/unix-v10/man8/tcpmgr.8 create mode 100644 static/unix-v10/man8/tm.8 create mode 100644 static/unix-v10/man8/tp.8 create mode 100644 static/unix-v10/man8/umount.8 create mode 100644 static/unix-v10/man8/unspk.8 create mode 100644 static/unix-v10/man8/upas.8 create mode 100644 static/unix-v10/man8/update.8 create mode 100644 static/unix-v10/man8/uucico.8 create mode 100644 static/unix-v10/man8/uucleanup.8 create mode 100644 static/unix-v10/man8/uurec.8 create mode 100644 static/unix-v10/man8/vipw.8 create mode 100644 static/unix-v10/man8/vmstat.8 create mode 100644 static/unix-v10/man8/vpac.8 create mode 100644 static/unix-v10/man8/wall.8 create mode 100644 static/unix-v10/man8/worm.8 create mode 100644 static/unix-v10/man8/xs.8 create mode 100644 static/unix-v10/man8/xstr.8 create mode 100644 static/unix-v10/man9/32ld.9 create mode 100644 static/unix-v10/man9/3cc.9 create mode 100644 static/unix-v10/man9/Makefile create mode 100644 static/unix-v10/man9/add.9 create mode 100644 static/unix-v10/man9/alloc.9 create mode 100644 static/unix-v10/man9/bitblt.9 create mode 100644 static/unix-v10/man9/bitfile.9 create mode 100644 static/unix-v10/man9/blitblt.9 create mode 100644 static/unix-v10/man9/blitmap.9 create mode 100644 static/unix-v10/man9/brfs.9 create mode 100644 static/unix-v10/man9/brush.9 create mode 100644 static/unix-v10/man9/button.9 create mode 100644 static/unix-v10/man9/cip.9 create mode 100644 static/unix-v10/man9/circle.9 create mode 100644 static/unix-v10/man9/cos.9 create mode 100644 static/unix-v10/man9/crabs.9 create mode 100644 static/unix-v10/man9/demo.9 create mode 100644 static/unix-v10/man9/face.9 create mode 100644 static/unix-v10/man9/faced.9 create mode 100644 static/unix-v10/man9/flickfile.9 create mode 100644 static/unix-v10/man9/flicks.9 create mode 100644 static/unix-v10/man9/font.9 create mode 100644 static/unix-v10/man9/gebaca.9 create mode 100644 static/unix-v10/man9/getfont.9 create mode 100644 static/unix-v10/man9/graphdraw.9 create mode 100644 static/unix-v10/man9/icon.9 create mode 100644 static/unix-v10/man9/intro.9 create mode 100644 static/unix-v10/man9/jf.9 create mode 100644 static/unix-v10/man9/jim.9 create mode 100644 static/unix-v10/man9/jioctl.9 create mode 100644 static/unix-v10/man9/jx.9 create mode 100644 static/unix-v10/man9/lens.9 create mode 100644 static/unix-v10/man9/libc.9 create mode 100644 static/unix-v10/man9/lsh.9 create mode 100644 static/unix-v10/man9/mcc.9 create mode 100644 static/unix-v10/man9/menuhit.9 create mode 100644 static/unix-v10/man9/mld.9 create mode 100644 static/unix-v10/man9/mouse.9 create mode 100644 static/unix-v10/man9/movie.9 create mode 100644 static/unix-v10/man9/mux.9 create mode 100644 static/unix-v10/man9/muxstring.9 create mode 100644 static/unix-v10/man9/newlayer.9 create mode 100644 static/unix-v10/man9/newproc.9 create mode 100644 static/unix-v10/man9/pads.9 create mode 100644 static/unix-v10/man9/paint.9 create mode 100644 static/unix-v10/man9/ped.9 create mode 100644 static/unix-v10/man9/pengo.9 create mode 100644 static/unix-v10/man9/pi.9 create mode 100644 static/unix-v10/man9/proof.9 create mode 100644 static/unix-v10/man9/psi.9 create mode 100644 static/unix-v10/man9/reader.9 create mode 100644 static/unix-v10/man9/rebecca.9 create mode 100644 static/unix-v10/man9/request.9 create mode 100644 static/unix-v10/man9/ruler.9 create mode 100644 static/unix-v10/man9/sam.9 create mode 100644 static/unix-v10/man9/samuel.9 create mode 100644 static/unix-v10/man9/string.9 create mode 100644 static/unix-v10/man9/term.9 create mode 100644 static/unix-v10/man9/thinkblt.9 create mode 100644 static/unix-v10/man9/thinkclient.9 create mode 100644 static/unix-v10/man9/twid.9 create mode 100644 static/unix-v10/man9/types.9 create mode 100644 static/unix-v10/man9/vismon.9 create mode 100644 static/unix-v10/man9/windows.9 delete mode 100644 static/v10/=.1 delete mode 100644 static/v10/Makefile delete mode 100644 static/v10/man1/2500.1 delete mode 100644 static/v10/man1/300.1 delete mode 100644 static/v10/man1/450.1 delete mode 100644 static/v10/man1/8q.1 delete mode 100644 static/v10/man1/:.1.broken delete mode 100644 static/v10/man1/=.1 delete mode 100644 static/v10/man1/Makefile delete mode 100644 static/v10/man1/acro.1 delete mode 100644 static/v10/man1/adb.1 delete mode 100644 static/v10/man1/altran.1 delete mode 100644 static/v10/man1/apl.1 delete mode 100644 static/v10/man1/apnews.1 delete mode 100644 static/v10/man1/apply.1 delete mode 100644 static/v10/man1/apsend.1 delete mode 100644 static/v10/man1/ar.1 delete mode 100644 static/v10/man1/array.1 delete mode 100644 static/v10/man1/as.1 delete mode 100644 static/v10/man1/as80.1 delete mode 100644 static/v10/man1/asa.1 delete mode 100644 static/v10/man1/ascii.1 delete mode 100644 static/v10/man1/at.1 delete mode 100644 static/v10/man1/awk.1 delete mode 100644 static/v10/man1/backup.1 delete mode 100644 static/v10/man1/badge.1 delete mode 100644 static/v10/man1/bas.1 delete mode 100644 static/v10/man1/basename.1 delete mode 100644 static/v10/man1/basic.1 delete mode 100644 static/v10/man1/bc.1 delete mode 100644 static/v10/man1/bcp.1 delete mode 100644 static/v10/man1/bdiff.1 delete mode 100644 static/v10/man1/bigcore.1 delete mode 100644 static/v10/man1/bison.1 delete mode 100644 static/v10/man1/bite.1 delete mode 100644 static/v10/man1/bitship.1 delete mode 100644 static/v10/man1/bmd08v.1 delete mode 100644 static/v10/man1/bprint.1 delete mode 100644 static/v10/man1/btoa.1 delete mode 100644 static/v10/man1/buildtables.1 delete mode 100644 static/v10/man1/bundle.1 delete mode 100644 static/v10/man1/byteyears.1 delete mode 100644 static/v10/man1/c++.1 delete mode 100644 static/v10/man1/c++filt.1 delete mode 100644 static/v10/man1/calendar.1 delete mode 100644 static/v10/man1/can.1 delete mode 100644 static/v10/man1/cat.1 delete mode 100644 static/v10/man1/catsim.1 delete mode 100644 static/v10/man1/cb.1 delete mode 100644 static/v10/man1/cbt.1 delete mode 100644 static/v10/man1/cc.1 delete mode 100644 static/v10/man1/cdb.1 delete mode 100644 static/v10/man1/cf.1 delete mode 100644 static/v10/man1/charge.1 delete mode 100644 static/v10/man1/chash.1 delete mode 100644 static/v10/man1/chdate.1 delete mode 100644 static/v10/man1/chdir.1 delete mode 100644 static/v10/man1/checknews.1 delete mode 100644 static/v10/man1/checknr.1 delete mode 100644 static/v10/man1/chmod.1 delete mode 100644 static/v10/man1/chown.1 delete mode 100644 static/v10/man1/chunk.1 delete mode 100644 static/v10/man1/cin.1 delete mode 100644 static/v10/man1/cite.1 delete mode 100644 static/v10/man1/clear.1 delete mode 100644 static/v10/man1/cmp.1 delete mode 100644 static/v10/man1/column.1 delete mode 100644 static/v10/man1/comm.1 delete mode 100644 static/v10/man1/compress.1 delete mode 100644 static/v10/man1/compressdir.1 delete mode 100644 static/v10/man1/con.1 delete mode 100644 static/v10/man1/cospan.1 delete mode 100644 static/v10/man1/courier.1 delete mode 100644 static/v10/man1/cp.1 delete mode 100644 static/v10/man1/cpio.1 delete mode 100644 static/v10/man1/cq.1 delete mode 100644 static/v10/man1/cray.1 delete mode 100644 static/v10/man1/cref.1 delete mode 100644 static/v10/man1/cropmarks.1 delete mode 100644 static/v10/man1/crypt.1 delete mode 100644 static/v10/man1/cscan.1 delete mode 100644 static/v10/man1/csh.1 delete mode 100644 static/v10/man1/ctags.1 delete mode 100644 static/v10/man1/cu.1 delete mode 100644 static/v10/man1/cut.1 delete mode 100644 static/v10/man1/cvt.1 delete mode 100644 static/v10/man1/d202.1 delete mode 100644 static/v10/man1/dag.1 delete mode 100644 static/v10/man1/date.1 delete mode 100644 static/v10/man1/db.1 delete mode 100644 static/v10/man1/dc.1 delete mode 100644 static/v10/man1/dcon.1 delete mode 100644 static/v10/man1/dd.1 delete mode 100644 static/v10/man1/dds.1 delete mode 100644 static/v10/man1/deroff.1 delete mode 100644 static/v10/man1/df.1 delete mode 100644 static/v10/man1/dictadd.1 delete mode 100644 static/v10/man1/dictplus.1 delete mode 100644 static/v10/man1/diff.1 delete mode 100644 static/v10/man1/dimpress.1 delete mode 100644 static/v10/man1/dired.1 delete mode 100644 static/v10/man1/dis.1 delete mode 100644 static/v10/man1/dist.1 delete mode 100755 static/v10/man1/dmdcat.1 delete mode 100755 static/v10/man1/dmdcc.1 delete mode 100755 static/v10/man1/dmddemo.1 delete mode 100755 static/v10/man1/dmdld.1 delete mode 100755 static/v10/man1/dmdman.1 delete mode 100755 static/v10/man1/dmdmemory.1 delete mode 100755 static/v10/man1/dmdpi.1 delete mode 100755 static/v10/man1/dmdversion.1 delete mode 100644 static/v10/man1/docgen.1 delete mode 100644 static/v10/man1/docsubmit.1 delete mode 100644 static/v10/man1/doctype.1 delete mode 100644 static/v10/man1/double.1 delete mode 100644 static/v10/man1/download.1 delete mode 100644 static/v10/man1/dpost.1 delete mode 100644 static/v10/man1/dsw.1 delete mode 100644 static/v10/man1/du.1 delete mode 100644 static/v10/man1/echo.1 delete mode 100644 static/v10/man1/ed.1 delete mode 100644 static/v10/man1/efl.1 delete mode 100644 static/v10/man1/eqn.1 delete mode 100644 static/v10/man1/esterel.1 delete mode 100644 static/v10/man1/exit.1 delete mode 100644 static/v10/man1/expr.1 delete mode 100644 static/v10/man1/f2c.1 delete mode 100644 static/v10/man1/f77.1 delete mode 100644 static/v10/man1/factor.1 delete mode 100644 static/v10/man1/fc.1 delete mode 100644 static/v10/man1/fed.1 delete mode 100644 static/v10/man1/fields.1 delete mode 100644 static/v10/man1/file.1 delete mode 100644 static/v10/man1/find.1 delete mode 100644 static/v10/man1/flex.1 delete mode 100644 static/v10/man1/fmt.1 delete mode 100644 static/v10/man1/form.1 delete mode 100644 static/v10/man1/forml.1 delete mode 100644 static/v10/man1/fstrip.1 delete mode 100644 static/v10/man1/ftp.1 delete mode 100644 static/v10/man1/games.1 delete mode 100644 static/v10/man1/gcc.1 delete mode 100644 static/v10/man1/getlab.1 delete mode 100644 static/v10/man1/getopt.1 delete mode 100644 static/v10/man1/gets.1 delete mode 100644 static/v10/man1/getuid.1 delete mode 100644 static/v10/man1/goto.1 delete mode 100644 static/v10/man1/grabit.1 delete mode 100644 static/v10/man1/gram.1 delete mode 100644 static/v10/man1/grap.1 delete mode 100644 static/v10/man1/graph.1 delete mode 100644 static/v10/man1/gre.1 delete mode 100644 static/v10/man1/grep.1 delete mode 100644 static/v10/man1/hang.1 delete mode 100644 static/v10/man1/hardcopy.1 delete mode 100644 static/v10/man1/hoc.1 delete mode 100644 static/v10/man1/hostname.1 delete mode 100644 static/v10/man1/hp.1 delete mode 100644 static/v10/man1/hyphen.1 delete mode 100644 static/v10/man1/ican.1 delete mode 100644 static/v10/man1/iclc.1 delete mode 100755 static/v10/man1/icon.1 delete mode 100644 static/v10/man1/icon_pi.1 delete mode 100644 static/v10/man1/icont.1 delete mode 100644 static/v10/man1/ideal.1 delete mode 100644 static/v10/man1/idiff.1 delete mode 100644 static/v10/man1/if.1 delete mode 100644 static/v10/man1/imscan.1 delete mode 100644 static/v10/man1/inews.1 delete mode 100644 static/v10/man1/init.1 delete mode 100644 static/v10/man1/intro.1 delete mode 100755 static/v10/man1/jim.1 delete mode 100644 static/v10/man1/join.1 delete mode 100755 static/v10/man1/jx.1 delete mode 100644 static/v10/man1/kill.1 delete mode 100644 static/v10/man1/kp.1 delete mode 100644 static/v10/man1/ksh.1 delete mode 100644 static/v10/man1/lab.1 delete mode 100644 static/v10/man1/langs.1 delete mode 100644 static/v10/man1/laserbar.1 delete mode 100644 static/v10/man1/lcc.1 delete mode 100644 static/v10/man1/lcoc.1 delete mode 100644 static/v10/man1/lcomp.1 delete mode 100644 static/v10/man1/ld.1 delete mode 100644 static/v10/man1/ld80.1 delete mode 100644 static/v10/man1/learn.1 delete mode 100644 static/v10/man1/lex.1 delete mode 100644 static/v10/man1/library.1 delete mode 100644 static/v10/man1/lim.1 delete mode 100644 static/v10/man1/limits.1 delete mode 100644 static/v10/man1/linkdata.1 delete mode 100644 static/v10/man1/lint.1 delete mode 100644 static/v10/man1/lisp.1 delete mode 100644 static/v10/man1/ln.1 delete mode 100644 static/v10/man1/load.1 delete mode 100755 static/v10/man1/loadfont.1 delete mode 100644 static/v10/man1/login.1 delete mode 100644 static/v10/man1/look.1 delete mode 100644 static/v10/man1/lorder.1 delete mode 100644 static/v10/man1/lp.1 delete mode 100644 static/v10/man1/lpr.1 delete mode 100644 static/v10/man1/ls.1 delete mode 100644 static/v10/man1/m.1 delete mode 100644 static/v10/man1/m4.1 delete mode 100644 static/v10/man1/m6.1 delete mode 100644 static/v10/man1/mail.1 delete mode 100644 static/v10/man1/mailalias.1 delete mode 100644 static/v10/man1/mailx.1 delete mode 100644 static/v10/man1/make.1 delete mode 100644 static/v10/man1/makeml.1 delete mode 100644 static/v10/man1/man.1 delete mode 100644 static/v10/man1/maple.1 delete mode 100644 static/v10/man1/match.1 delete mode 100644 static/v10/man1/matlab.1 delete mode 100755 static/v10/man1/mc68ar.1 delete mode 100755 static/v10/man1/mc68as.1 delete mode 100755 static/v10/man1/mc68conv.1 delete mode 100755 static/v10/man1/mc68cpp.1 delete mode 100755 static/v10/man1/mc68cprs.1 delete mode 100755 static/v10/man1/mc68dis.1 delete mode 100755 static/v10/man1/mc68dump.1 delete mode 100755 static/v10/man1/mc68ld.1 delete mode 100755 static/v10/man1/mc68lorder.1 delete mode 100755 static/v10/man1/mc68nm.1 delete mode 100755 static/v10/man1/mc68size.1 delete mode 100755 static/v10/man1/mc68strip.1 delete mode 100644 static/v10/man1/memo.1 delete mode 100644 static/v10/man1/merge.1 delete mode 100644 static/v10/man1/mesg.1 delete mode 100644 static/v10/man1/mint.1 delete mode 100644 static/v10/man1/mk.1 delete mode 100644 static/v10/man1/mkdir.1 delete mode 100644 static/v10/man1/mkdist.1 delete mode 100644 static/v10/man1/mkstand.1 delete mode 100644 static/v10/man1/mkstr.1 delete mode 100644 static/v10/man1/mkunique.1 delete mode 100644 static/v10/man1/mm.1 delete mode 100644 static/v10/man1/mmt.1 delete mode 100644 static/v10/man1/monk.1 delete mode 100644 static/v10/man1/movie.1 delete mode 100644 static/v10/man1/mp.1 delete mode 100644 static/v10/man1/mt.1 delete mode 100644 static/v10/man1/mv.1 delete mode 100644 static/v10/man1/newcrypt.1 delete mode 100644 static/v10/man1/newcsh.1 delete mode 100644 static/v10/man1/newgrp.1 delete mode 100644 static/v10/man1/newscheck.1 delete mode 100644 static/v10/man1/nice.1 delete mode 100644 static/v10/man1/nm.1 delete mode 100644 static/v10/man1/nm80.1 delete mode 100644 static/v10/man1/nohup.1 delete mode 100644 static/v10/man1/notary.1 delete mode 100644 static/v10/man1/notify.1 delete mode 100644 static/v10/man1/nroff.1 delete mode 100644 static/v10/man1/occ.1 delete mode 100644 static/v10/man1/ocdebug.1 delete mode 100644 static/v10/man1/ocr.1 delete mode 100644 static/v10/man1/od.1 delete mode 100644 static/v10/man1/olint.1 delete mode 100644 static/v10/man1/opr.1 delete mode 100644 static/v10/man1/ops5.1 delete mode 100644 static/v10/man1/org.1 delete mode 100644 static/v10/man1/osh.1 delete mode 100644 static/v10/man1/ov.1 delete mode 100644 static/v10/man1/p.1 delete mode 100644 static/v10/man1/pack.1 delete mode 100644 static/v10/man1/paper.1 delete mode 100644 static/v10/man1/paranoia.1 delete mode 100644 static/v10/man1/pascal.1 delete mode 100644 static/v10/man1/passwd.1 delete mode 100644 static/v10/man1/patch.1 delete mode 100644 static/v10/man1/pax.1 delete mode 100644 static/v10/man1/pc.1 delete mode 100644 static/v10/man1/pcopy.1 delete mode 100644 static/v10/man1/pfe.1 delete mode 100644 static/v10/man1/pic.1 delete mode 100644 static/v10/man1/picasso.1 delete mode 100644 static/v10/man1/pico.1 delete mode 100644 static/v10/man1/picpack.1 delete mode 100644 static/v10/man1/pl.1 delete mode 100644 static/v10/man1/plot.1 delete mode 100644 static/v10/man1/post.1 delete mode 100644 static/v10/man1/postbgi.1 delete mode 100644 static/v10/man1/postdaisy.1 delete mode 100644 static/v10/man1/postdmd.1 delete mode 100644 static/v10/man1/postgif.1 delete mode 100644 static/v10/man1/postio.1 delete mode 100644 static/v10/man1/postmd.1 delete mode 100644 static/v10/man1/postnews.1 delete mode 100644 static/v10/man1/postprint.1 delete mode 100644 static/v10/man1/postreverse.1 delete mode 100644 static/v10/man1/posttek.1 delete mode 100644 static/v10/man1/pp.1 delete mode 100644 static/v10/man1/pq.1 delete mode 100644 static/v10/man1/pr.1 delete mode 100644 static/v10/man1/prefer.1 delete mode 100644 static/v10/man1/printenv.1 delete mode 100644 static/v10/man1/printfont.1 delete mode 100644 static/v10/man1/priv.1 delete mode 100644 static/v10/man1/prof.1 delete mode 100644 static/v10/man1/proof.1 delete mode 100644 static/v10/man1/proofr.1 delete mode 100644 static/v10/man1/prose.1 delete mode 100644 static/v10/man1/ps.1 delete mode 100644 static/v10/man1/psencoding.1 delete mode 100644 static/v10/man1/psifile.1 delete mode 100644 static/v10/man1/psix.1 delete mode 100644 static/v10/man1/ptx.1 delete mode 100644 static/v10/man1/punct.1 delete mode 100644 static/v10/man1/push.1 delete mode 100644 static/v10/man1/pwd.1 delete mode 100644 static/v10/man1/pwintf.1 delete mode 100644 static/v10/man1/pxp.1 delete mode 100644 static/v10/man1/qed.1 delete mode 100644 static/v10/man1/qsnap.1 delete mode 100644 static/v10/man1/random.1 delete mode 100644 static/v10/man1/rates.1 delete mode 100644 static/v10/man1/ratfor.1 delete mode 100644 static/v10/man1/rc.1 delete mode 100644 static/v10/man1/rcp.1 delete mode 100644 static/v10/man1/readnews.1 delete mode 100644 static/v10/man1/readslow.1 delete mode 100644 static/v10/man1/redmail.1 delete mode 100644 static/v10/man1/refer.1 delete mode 100644 static/v10/man1/reloc.1 delete mode 100644 static/v10/man1/remshent.1 delete mode 100644 static/v10/man1/rev.1 delete mode 100644 static/v10/man1/rew.1 delete mode 100644 static/v10/man1/rm.1 delete mode 100644 static/v10/man1/rmdir.1 delete mode 100644 static/v10/man1/roff.1 delete mode 100644 static/v10/man1/route.1 delete mode 100644 static/v10/man1/rscan.1 delete mode 100644 static/v10/man1/sdb.1 delete mode 100644 static/v10/man1/sed.1 delete mode 100644 static/v10/man1/see.also.1 delete mode 100644 static/v10/man1/sendnews.1 delete mode 100644 static/v10/man1/seq.1 delete mode 100644 static/v10/man1/server.1 delete mode 100644 static/v10/man1/session.1 delete mode 100644 static/v10/man1/setlab.1 delete mode 100644 static/v10/man1/sexist.1 delete mode 100644 static/v10/man1/sh.1 delete mode 100644 static/v10/man1/shift.1 delete mode 100644 static/v10/man1/shstats.1 delete mode 100644 static/v10/man1/sign.1 delete mode 100644 static/v10/man1/size.1 delete mode 100644 static/v10/man1/size80.1 delete mode 100644 static/v10/man1/sleep.1 delete mode 100644 static/v10/man1/sml.1 delete mode 100644 static/v10/man1/sno.1 delete mode 100644 static/v10/man1/snocone.1 delete mode 100644 static/v10/man1/soelim.1 delete mode 100644 static/v10/man1/sort.1 delete mode 100644 static/v10/man1/speak.1 delete mode 100644 static/v10/man1/spell.1 delete mode 100644 static/v10/man1/spelltell.1 delete mode 100644 static/v10/man1/spellwwb.1 delete mode 100644 static/v10/man1/spin.1 delete mode 100644 static/v10/man1/spitbol.1 delete mode 100644 static/v10/man1/spline.1 delete mode 100644 static/v10/man1/split.1 delete mode 100644 static/v10/man1/splitrules.1 delete mode 100644 static/v10/man1/stat.1 delete mode 100644 static/v10/man1/stdarg.1 delete mode 100644 static/v10/man1/strings.1 delete mode 100644 static/v10/man1/strip.1 delete mode 100644 static/v10/man1/strlic.1 delete mode 100644 static/v10/man1/struct.1 delete mode 100644 static/v10/man1/stty.1 delete mode 100644 static/v10/man1/sum.1 delete mode 100644 static/v10/man1/switch.1 delete mode 100644 static/v10/man1/syl.1 delete mode 100644 static/v10/man1/tabs.1 delete mode 100644 static/v10/man1/tail.1 delete mode 100644 static/v10/man1/talk.1 delete mode 100644 static/v10/man1/tap.1 delete mode 100644 static/v10/man1/tape.1 delete mode 100644 static/v10/man1/tar.1 delete mode 100644 static/v10/man1/tbl.1 delete mode 100644 static/v10/man1/tdc.1 delete mode 100644 static/v10/man1/tee.1 delete mode 100644 static/v10/man1/telnet.1 delete mode 100644 static/v10/man1/test.1 delete mode 100644 static/v10/man1/tex.1 delete mode 100644 static/v10/man1/time.1 delete mode 100644 static/v10/man1/tk.1 delete mode 100644 static/v10/man1/tmg.1 delete mode 100644 static/v10/man1/tmpnam.1 delete mode 100644 static/v10/man1/tp.1 delete mode 100644 static/v10/man1/tr.1 delete mode 100644 static/v10/man1/tr2tex.1 delete mode 100644 static/v10/man1/track.1 delete mode 100644 static/v10/man1/troff.1 delete mode 100644 static/v10/man1/trofftable.1 delete mode 100644 static/v10/man1/true.1 delete mode 100644 static/v10/man1/tset.1 delete mode 100644 static/v10/man1/tsort.1 delete mode 100644 static/v10/man1/tss.1 delete mode 100644 static/v10/man1/tty.1 delete mode 100644 static/v10/man1/twig.1 delete mode 100644 static/v10/man1/type.1 delete mode 100644 static/v10/man1/typo.1 delete mode 100755 static/v10/man1/ucache.1 delete mode 100644 static/v10/man1/ul.1 delete mode 100644 static/v10/man1/un.1 delete mode 100644 static/v10/man1/uniq.1 delete mode 100644 static/v10/man1/uptime.1 delete mode 100644 static/v10/man1/usgmake.1 delete mode 100644 static/v10/man1/ustats.1 delete mode 100644 static/v10/man1/uucp.1 delete mode 100644 static/v10/man1/uuencode.1 delete mode 100644 static/v10/man1/uurec.1 delete mode 100644 static/v10/man1/uustat.1 delete mode 100644 static/v10/man1/uuto.1 delete mode 100644 static/v10/man1/uux.1 delete mode 100644 static/v10/man1/v6run.1 delete mode 100644 static/v10/man1/vacation.1 delete mode 100644 static/v10/man1/vi.1 delete mode 100644 static/v10/man1/view2d.1 delete mode 100644 static/v10/man1/vis.1 delete mode 100644 static/v10/man1/visi.1 delete mode 100644 static/v10/man1/vs.1 delete mode 100644 static/v10/man1/vsw.1 delete mode 100644 static/v10/man1/w.1 delete mode 100644 static/v10/man1/wait.1 delete mode 100644 static/v10/man1/wc.1 delete mode 100644 static/v10/man1/wf1.1 delete mode 100644 static/v10/man1/who.1 delete mode 100644 static/v10/man1/worduse.1 delete mode 100644 static/v10/man1/write.1 delete mode 100755 static/v10/man1/wtinit.1 delete mode 100644 static/v10/man1/wwb.1 delete mode 100644 static/v10/man1/wwbhelp.1 delete mode 100644 static/v10/man1/wwbinfo.1 delete mode 100644 static/v10/man1/wwbmail.1 delete mode 100644 static/v10/man1/wwbstand.1 delete mode 100644 static/v10/man1/wwv.1 delete mode 100644 static/v10/man1/xargs.1 delete mode 100644 static/v10/man1/xd.1 delete mode 100644 static/v10/man1/yacc.1 delete mode 100644 static/v10/man1/yes.1 delete mode 100644 static/v10/man1/zcmp.1 delete mode 100644 static/v10/man1/zero.1 delete mode 100644 static/v10/man1/zmore.1 delete mode 100644 static/v10/man2/Makefile delete mode 100644 static/v10/man2/access.2 delete mode 100644 static/v10/man2/acct.2 delete mode 100644 static/v10/man2/alarm.2 delete mode 100644 static/v10/man2/back.2 delete mode 100644 static/v10/man2/boot.2 delete mode 100644 static/v10/man2/break.2 delete mode 100644 static/v10/man2/brk.2 delete mode 100644 static/v10/man2/cemt.2 delete mode 100644 static/v10/man2/chdir.2 delete mode 100644 static/v10/man2/chmod.2 delete mode 100644 static/v10/man2/chown.2 delete mode 100644 static/v10/man2/close.2 delete mode 100644 static/v10/man2/cq.2 delete mode 100644 static/v10/man2/creat.2 delete mode 100644 static/v10/man2/csw.2 delete mode 100644 static/v10/man2/deprecated.2 delete mode 100644 static/v10/man2/dirread.2 delete mode 100644 static/v10/man2/dup.2 delete mode 100644 static/v10/man2/exec.2 delete mode 100644 static/v10/man2/exit.2 delete mode 100644 static/v10/man2/f2c.2 delete mode 100644 static/v10/man2/fields.2 delete mode 100644 static/v10/man2/fmount.2 delete mode 100644 static/v10/man2/fork.2 delete mode 100644 static/v10/man2/fpe.2 delete mode 100644 static/v10/man2/front.2 delete mode 100644 static/v10/man2/fstat.2 delete mode 100644 static/v10/man2/getflab.2 delete mode 100644 static/v10/man2/getgid.2 delete mode 100644 static/v10/man2/getplab.2 delete mode 100644 static/v10/man2/getuid.2 delete mode 100644 static/v10/man2/gtty.2 delete mode 100644 static/v10/man2/ilgins.2 delete mode 100644 static/v10/man2/indir.2 delete mode 100644 static/v10/man2/intr.2 delete mode 100644 static/v10/man2/intro.2 delete mode 100644 static/v10/man2/ioctl.2 delete mode 100644 static/v10/man2/kill.2 delete mode 100644 static/v10/man2/labmount.2 delete mode 100644 static/v10/man2/limits.2 delete mode 100644 static/v10/man2/link.2 delete mode 100644 static/v10/man2/lseek.2 delete mode 100644 static/v10/man2/m.2 delete mode 100644 static/v10/man2/makdir.2 delete mode 100644 static/v10/man2/mdate.2 delete mode 100644 static/v10/man2/mkdir.2 delete mode 100644 static/v10/man2/mknod.2 delete mode 100644 static/v10/man2/mount.2 delete mode 100644 static/v10/man2/mpx.2 delete mode 100644 static/v10/man2/nice.2 delete mode 100644 static/v10/man2/nochk.2 delete mode 100644 static/v10/man2/open.2 delete mode 100644 static/v10/man2/pipe.2 delete mode 100644 static/v10/man2/profil.2 delete mode 100644 static/v10/man2/quit.2 delete mode 100644 static/v10/man2/read.2 delete mode 100644 static/v10/man2/rele.2 delete mode 100644 static/v10/man2/seek.2 delete mode 100644 static/v10/man2/select.2 delete mode 100644 static/v10/man2/setgid.2 delete mode 100644 static/v10/man2/setuid.2 delete mode 100644 static/v10/man2/signal.2 delete mode 100644 static/v10/man2/sleep.2 delete mode 100644 static/v10/man2/stat.2 delete mode 100644 static/v10/man2/stime.2 delete mode 100644 static/v10/man2/stty.2 delete mode 100644 static/v10/man2/sync.2 delete mode 100644 static/v10/man2/syscall.2 delete mode 100644 static/v10/man2/syslog.2 delete mode 100644 static/v10/man2/time.2 delete mode 100644 static/v10/man2/times.2 delete mode 100644 static/v10/man2/udbuf.2 delete mode 100644 static/v10/man2/umask.2 delete mode 100644 static/v10/man2/umount.2 delete mode 100644 static/v10/man2/unlink.2 delete mode 100644 static/v10/man2/unsafe.2 delete mode 100644 static/v10/man2/vtimes.2 delete mode 100644 static/v10/man2/wait.2 delete mode 100644 static/v10/man2/write.2 delete mode 100644 static/v10/man3/Makefile delete mode 100644 static/v10/man3/abort.3 delete mode 100644 static/v10/man3/arith.3 delete mode 100644 static/v10/man3/assert.3 delete mode 100644 static/v10/man3/atan.3 delete mode 100644 static/v10/man3/atof.3 delete mode 100644 static/v10/man3/atoi.3 delete mode 100644 static/v10/man3/bessel.3 delete mode 100644 static/v10/man3/bits.3 delete mode 100644 static/v10/man3/block.3 delete mode 100644 static/v10/man3/buildmap.3 delete mode 100644 static/v10/man3/cbit.3 delete mode 100644 static/v10/man3/cbt.3 delete mode 100644 static/v10/man3/chrtab.3 delete mode 100644 static/v10/man3/closeshares.3 delete mode 100644 static/v10/man3/compar.3 delete mode 100644 static/v10/man3/crypt.3 delete mode 100644 static/v10/man3/ctime.3 delete mode 100644 static/v10/man3/ctype.3 delete mode 100644 static/v10/man3/curses.3 delete mode 100644 static/v10/man3/dbm.3 delete mode 100644 static/v10/man3/ddsput.3 delete mode 100644 static/v10/man3/dialout.3 delete mode 100644 static/v10/man3/directory.3 delete mode 100644 static/v10/man3/ecvt.3 delete mode 100644 static/v10/man3/end.3 delete mode 100644 static/v10/man3/erf.3 delete mode 100644 static/v10/man3/exit.3 delete mode 100644 static/v10/man3/exp.3 delete mode 100644 static/v10/man3/ferror.3 delete mode 100644 static/v10/man3/fgets.3 delete mode 100644 static/v10/man3/filebuf.3 delete mode 100644 static/v10/man3/fio.3 delete mode 100644 static/v10/man3/floor.3 delete mode 100644 static/v10/man3/fopen.3 delete mode 100644 static/v10/man3/fptrap.3 delete mode 100644 static/v10/man3/fread.3 delete mode 100644 static/v10/man3/frexp.3 delete mode 100644 static/v10/man3/fseek.3 delete mode 100644 static/v10/man3/fstream.3 delete mode 100644 static/v10/man3/ftoa.3 delete mode 100644 static/v10/man3/ftoo.3 delete mode 100644 static/v10/man3/ftw.3 delete mode 100644 static/v10/man3/ftwalk.3 delete mode 100644 static/v10/man3/galloc.3 delete mode 100644 static/v10/man3/gamma.3 delete mode 100644 static/v10/man3/gerts.3 delete mode 100644 static/v10/man3/getarg.3 delete mode 100644 static/v10/man3/getc.3 delete mode 100644 static/v10/man3/getchr.3 delete mode 100644 static/v10/man3/getdate.3 delete mode 100644 static/v10/man3/getenv.3 delete mode 100644 static/v10/man3/getfields.3 delete mode 100644 static/v10/man3/getflags.3 delete mode 100644 static/v10/man3/getflds.3 delete mode 100644 static/v10/man3/getfsent.3 delete mode 100644 static/v10/man3/getgrent.3 delete mode 100644 static/v10/man3/getlogin.3 delete mode 100644 static/v10/man3/getopt.3 delete mode 100644 static/v10/man3/getpass.3 delete mode 100644 static/v10/man3/getpw.3 delete mode 100644 static/v10/man3/getpwent.3 delete mode 100644 static/v10/man3/getshares.3 delete mode 100644 static/v10/man3/getshput.3 delete mode 100644 static/v10/man3/getstsrc.3 delete mode 100644 static/v10/man3/getwd.3 delete mode 100644 static/v10/man3/hash.3 delete mode 100644 static/v10/man3/hmul.3 delete mode 100644 static/v10/man3/huff.3 delete mode 100644 static/v10/man3/hypot.3 delete mode 100644 static/v10/man3/ierror.3 delete mode 100644 static/v10/man3/internet.3 delete mode 100644 static/v10/man3/intro.3 delete mode 100644 static/v10/man3/ios.3 delete mode 100644 static/v10/man3/ipc.3 delete mode 100644 static/v10/man3/iread.3 delete mode 100644 static/v10/man3/istream.3 delete mode 100644 static/v10/man3/itoa.3 delete mode 100644 static/v10/man3/juke.3 delete mode 100644 static/v10/man3/l3tol.3 delete mode 100644 static/v10/man3/labconst.3 delete mode 100644 static/v10/man3/labeq.3 delete mode 100644 static/v10/man3/labtoa.3 delete mode 100644 static/v10/man3/ldiv.3 delete mode 100644 static/v10/man3/log.3 delete mode 100644 static/v10/man3/malloc.3 delete mode 100644 static/v10/man3/manip.3 delete mode 100644 static/v10/man3/map.3 delete mode 100644 static/v10/man3/memory.3 delete mode 100644 static/v10/man3/mesg.3 delete mode 100644 static/v10/man3/mktemp.3 delete mode 100644 static/v10/man3/mkunique.3 delete mode 100644 static/v10/man3/mon.3 delete mode 100644 static/v10/man3/monitor.3 delete mode 100644 static/v10/man3/mp.3 delete mode 100644 static/v10/man3/mvefil.3 delete mode 100644 static/v10/man3/nargs.3 delete mode 100644 static/v10/man3/nlist.3 delete mode 100644 static/v10/man3/notary.3 delete mode 100644 static/v10/man3/openshares.3 delete mode 100644 static/v10/man3/ostream.3 delete mode 100644 static/v10/man3/perror.3 delete mode 100644 static/v10/man3/pex.3 delete mode 100644 static/v10/man3/picfile.3 delete mode 100644 static/v10/man3/pipebuf.3 delete mode 100644 static/v10/man3/pipestream.3 delete mode 100644 static/v10/man3/plot.3 delete mode 100644 static/v10/man3/poly.3 delete mode 100644 static/v10/man3/pool.3 delete mode 100644 static/v10/man3/popen.3 delete mode 100644 static/v10/man3/port.3 delete mode 100644 static/v10/man3/pow.3 delete mode 100644 static/v10/man3/print.3 delete mode 100644 static/v10/man3/printf.3 delete mode 100644 static/v10/man3/proj.3 delete mode 100644 static/v10/man3/ptime.3 delete mode 100644 static/v10/man3/putc.3 delete mode 100644 static/v10/man3/putchr.3 delete mode 100644 static/v10/man3/putshares.3 delete mode 100644 static/v10/man3/pwquery.3 delete mode 100644 static/v10/man3/qsort.3 delete mode 100644 static/v10/man3/rand.3 delete mode 100644 static/v10/man3/re.3 delete mode 100644 static/v10/man3/regex.3 delete mode 100644 static/v10/man3/regexp.3 delete mode 100644 static/v10/man3/reset.3 delete mode 100644 static/v10/man3/salloc.3 delete mode 100644 static/v10/man3/sbuf.prot.3 delete mode 100644 static/v10/man3/sbuf.pub.3 delete mode 100644 static/v10/man3/scanf.3 delete mode 100644 static/v10/man3/setbuf.3 delete mode 100644 static/v10/man3/setfil.3 delete mode 100644 static/v10/man3/setjmp.3 delete mode 100644 static/v10/man3/setlimits.3 delete mode 100644 static/v10/man3/setupgroups.3 delete mode 100644 static/v10/man3/setupshares.3 delete mode 100644 static/v10/man3/sfio.3 delete mode 100644 static/v10/man3/sharesfile.3 delete mode 100644 static/v10/man3/sin.3 delete mode 100644 static/v10/man3/sinh.3 delete mode 100644 static/v10/man3/sleep.3 delete mode 100644 static/v10/man3/sqrt.3 delete mode 100644 static/v10/man3/ssbuf.3 delete mode 100644 static/v10/man3/stak.3 delete mode 100644 static/v10/man3/stdio.3 delete mode 100644 static/v10/man3/stdiobuf.3 delete mode 100644 static/v10/man3/string.3 delete mode 100644 static/v10/man3/strstream.3 delete mode 100644 static/v10/man3/swab.3 delete mode 100644 static/v10/man3/switch.3 delete mode 100644 static/v10/man3/system.3 delete mode 100644 static/v10/man3/tcp.3 delete mode 100644 static/v10/man3/termcap.3 delete mode 100644 static/v10/man3/timec.3 delete mode 100644 static/v10/man3/tm.3 delete mode 100644 static/v10/man3/tolower.3 delete mode 100644 static/v10/man3/ttyn.3 delete mode 100644 static/v10/man3/ttyname.3 delete mode 100644 static/v10/man3/udp.3 delete mode 100644 static/v10/man3/uname.3 delete mode 100644 static/v10/man3/ungetc.3 delete mode 100644 static/v10/man3/valloc.3 delete mode 100644 static/v10/man3/varargs.3 delete mode 100644 static/v10/man3/view2d.3 delete mode 100644 static/v10/man3/vt.3 delete mode 100644 static/v10/man4/Makefile delete mode 100644 static/v10/man4/binarsys.4 delete mode 100644 static/v10/man4/bk.4 delete mode 100644 static/v10/man4/bl.4 delete mode 100644 static/v10/man4/bufld.4 delete mode 100644 static/v10/man4/cat.4 delete mode 100644 static/v10/man4/connld.4 delete mode 100644 static/v10/man4/console.4 delete mode 100644 static/v10/man4/da.4 delete mode 100644 static/v10/man4/dc.4 delete mode 100644 static/v10/man4/dh.4 delete mode 100644 static/v10/man4/dispatch.4 delete mode 100644 static/v10/man4/dk.4 delete mode 100644 static/v10/man4/dn.4 delete mode 100644 static/v10/man4/dp.4 delete mode 100644 static/v10/man4/drum.4 delete mode 100644 static/v10/man4/dz.4 delete mode 100644 static/v10/man4/ethernet.4 delete mode 100644 static/v10/man4/fd.4 delete mode 100644 static/v10/man4/fl.4 delete mode 100755 static/v10/man4/font.4 delete mode 100644 static/v10/man4/hp.4 delete mode 100644 static/v10/man4/ht.4 delete mode 100644 static/v10/man4/intro.4 delete mode 100644 static/v10/man4/ip.4 delete mode 100644 static/v10/man4/kl.4 delete mode 100644 static/v10/man4/log.4 delete mode 100644 static/v10/man4/lp.4 delete mode 100644 static/v10/man4/lpr.4 delete mode 100644 static/v10/man4/mailcnfg.4 delete mode 100644 static/v10/man4/mailsurr.4 delete mode 100644 static/v10/man4/mem.4 delete mode 100644 static/v10/man4/mesgld.4 delete mode 100644 static/v10/man4/modules.4 delete mode 100644 static/v10/man4/mt.4 delete mode 100644 static/v10/man4/newtty.4 delete mode 100644 static/v10/man4/null.4 delete mode 100644 static/v10/man4/pc.4 delete mode 100644 static/v10/man4/pex.4 delete mode 100644 static/v10/man4/proc.4 delete mode 100644 static/v10/man4/ra.4 delete mode 100644 static/v10/man4/rf.4 delete mode 100644 static/v10/man4/rk.4 delete mode 100644 static/v10/man4/rp.4 delete mode 100644 static/v10/man4/rv.4 delete mode 100644 static/v10/man4/scsi.4 delete mode 100644 static/v10/man4/stream.4 delete mode 100644 static/v10/man4/tbl.4 delete mode 100644 static/v10/man4/tc.4 delete mode 100644 static/v10/man4/tcp.4 delete mode 100644 static/v10/man4/tiu.4 delete mode 100644 static/v10/man4/tm.4 delete mode 100644 static/v10/man4/tty.4 delete mode 100644 static/v10/man4/ttyld.4 delete mode 100644 static/v10/man4/up.4 delete mode 100644 static/v10/man4/va.4 delete mode 100644 static/v10/man4/vc.4 delete mode 100644 static/v10/man4/vp.4 delete mode 100644 static/v10/man4/vs.4 delete mode 100644 static/v10/man4/vt.4 delete mode 100644 static/v10/man5/80.out.5 delete mode 100644 static/v10/man5/Makefile delete mode 100644 static/v10/man5/a.out.5 delete mode 100644 static/v10/man5/acct.5 delete mode 100644 static/v10/man5/aliases.5 delete mode 100644 static/v10/man5/ar.5 delete mode 100755 static/v10/man5/ascii.5 delete mode 100644 static/v10/man5/backup.5 delete mode 100644 static/v10/man5/cdl.10.5 delete mode 100644 static/v10/man5/config.5 delete mode 100644 static/v10/man5/core.5 delete mode 100644 static/v10/man5/cpio.5 delete mode 100644 static/v10/man5/dir.5 delete mode 100644 static/v10/man5/dist.5 delete mode 100644 static/v10/man5/dump.5 delete mode 100644 static/v10/man5/environ.5 delete mode 100644 static/v10/man5/filsys.5 delete mode 100644 static/v10/man5/fizz.10.5 delete mode 100644 static/v10/man5/font.5 delete mode 100644 static/v10/man5/fs.5 delete mode 100644 static/v10/man5/fsm.10.5 delete mode 100644 static/v10/man5/fstab.5 delete mode 100644 static/v10/man5/graw.10.5 delete mode 100644 static/v10/man5/ident.5 delete mode 100644 static/v10/man5/lde.10.5 delete mode 100644 static/v10/man5/lnode.5 delete mode 100644 static/v10/man5/log.5 delete mode 100644 static/v10/man5/map.5 delete mode 100755 static/v10/man5/math.5 delete mode 100644 static/v10/man5/mcolor.5 delete mode 100644 static/v10/man5/mds.10.5 delete mode 100644 static/v10/man5/minterm.10.5 delete mode 100644 static/v10/man5/minus.z.5 delete mode 100644 static/v10/man5/mpictures.5 delete mode 100644 static/v10/man5/mpxio.5 delete mode 100644 static/v10/man5/netnews.5 delete mode 100644 static/v10/man5/news.5 delete mode 100644 static/v10/man5/newsrc.5 delete mode 100644 static/v10/man5/paddle.10.5 delete mode 100644 static/v10/man5/passwd.5 delete mode 100644 static/v10/man5/picfile.5 delete mode 100644 static/v10/man5/plot.5 delete mode 100644 static/v10/man5/poly.5 delete mode 100644 static/v10/man5/privs.5 delete mode 100644 static/v10/man5/pwfile.5 delete mode 100644 static/v10/man5/saf.10.5 delete mode 100644 static/v10/man5/share.5 delete mode 100644 static/v10/man5/shares.5 delete mode 100644 static/v10/man5/speakm.5 delete mode 100644 static/v10/man5/src.5 delete mode 100644 static/v10/man5/stab.5 delete mode 100644 static/v10/man5/stock.10.5 delete mode 100644 static/v10/man5/tap.5 delete mode 100644 static/v10/man5/termcap.5 delete mode 100644 static/v10/man5/tp.5 delete mode 100644 static/v10/man5/troff.5 delete mode 100644 static/v10/man5/ttys.5 delete mode 100644 static/v10/man5/ttytype.5 delete mode 100644 static/v10/man5/types.5 delete mode 100644 static/v10/man5/uids.5 delete mode 100644 static/v10/man5/utmp.5 delete mode 100644 static/v10/man5/uuencode.5 delete mode 100755 static/v10/man5/values.5 delete mode 100644 static/v10/man5/vfont.5 delete mode 100644 static/v10/man5/view2d.5 delete mode 100644 static/v10/man5/whoami.5 delete mode 100644 static/v10/man5/worm.5 delete mode 100644 static/v10/man5/wtmp.5 delete mode 100644 static/v10/man6/Makefile delete mode 100644 static/v10/man6/adventure.6 delete mode 100644 static/v10/man6/arithmetic.6 delete mode 100644 static/v10/man6/ascii.6 delete mode 100644 static/v10/man6/atc.6 delete mode 100644 static/v10/man6/azel.6 delete mode 100644 static/v10/man6/back.6 delete mode 100644 static/v10/man6/banner.6 delete mode 100644 static/v10/man6/basic.6 delete mode 100644 static/v10/man6/bc.6 delete mode 100644 static/v10/man6/bcd.6 delete mode 100644 static/v10/man6/bianchi.6 delete mode 100644 static/v10/man6/bj.6 delete mode 100644 static/v10/man6/boggle.6 delete mode 100644 static/v10/man6/bridge.6 delete mode 100644 static/v10/man6/cal.6 delete mode 100644 static/v10/man6/cards.6 delete mode 100644 static/v10/man6/chess.6 delete mode 100644 static/v10/man6/ching.6 delete mode 100644 static/v10/man6/cubic.6 delete mode 100644 static/v10/man6/das.6 delete mode 100644 static/v10/man6/doctor.6 delete mode 100644 static/v10/man6/dpt.6 delete mode 100644 static/v10/man6/eqnchar.6 delete mode 100644 static/v10/man6/factor.6 delete mode 100644 static/v10/man6/festoon.6 delete mode 100644 static/v10/man6/font.6 delete mode 100644 static/v10/man6/fortune.6 delete mode 100644 static/v10/man6/hangman.6 delete mode 100644 static/v10/man6/hyphen.6 delete mode 100644 static/v10/man6/imp.6 delete mode 100644 static/v10/man6/ipa.6 delete mode 100644 static/v10/man6/latex.6 delete mode 100644 static/v10/man6/m6.6 delete mode 100644 static/v10/man6/mail.6 delete mode 100644 static/v10/man6/man.6 delete mode 100644 static/v10/man6/mars.6 delete mode 100644 static/v10/man6/maze.6 delete mode 100644 static/v10/man6/mbits.6 delete mode 100644 static/v10/man6/mcs.6 delete mode 100644 static/v10/man6/mille.6 delete mode 100644 static/v10/man6/mon.6 delete mode 100644 static/v10/man6/monop.6 delete mode 100644 static/v10/man6/moo.6 delete mode 100644 static/v10/man6/mpictures.6 delete mode 100644 static/v10/man6/mpm.6 delete mode 100644 static/v10/man6/ms.6 delete mode 100644 static/v10/man6/number.6 delete mode 100644 static/v10/man6/ogre.6 delete mode 100644 static/v10/man6/ov.6 delete mode 100644 static/v10/man6/ptx.6 delete mode 100644 static/v10/man6/quiz.6 delete mode 100644 static/v10/man6/rain.6 delete mode 100644 static/v10/man6/redcode.6 delete mode 100644 static/v10/man6/sail.6 delete mode 100644 static/v10/man6/sfs.6 delete mode 100644 static/v10/man6/sky.6 delete mode 100644 static/v10/man6/snake.6 delete mode 100644 static/v10/man6/spline.6 delete mode 100644 static/v10/man6/term.6 delete mode 100644 static/v10/man6/tmg.6 delete mode 100644 static/v10/man6/trek.man.6 delete mode 100644 static/v10/man6/ttt.6 delete mode 100644 static/v10/man6/warp.6 delete mode 100644 static/v10/man6/worms.6 delete mode 100644 static/v10/man6/wump.6 delete mode 100644 static/v10/man6/yacc.6 delete mode 100644 static/v10/man7/Makefile delete mode 100644 static/v10/man7/apnews.7 delete mode 100644 static/v10/man7/ascii.7 delete mode 100644 static/v10/man7/av.7 delete mode 100644 static/v10/man7/avw.7 delete mode 100644 static/v10/man7/cal.7 delete mode 100644 static/v10/man7/dict.7 delete mode 100644 static/v10/man7/dkname.7 delete mode 100644 static/v10/man7/dpd.7 delete mode 100644 static/v10/man7/getty.7 delete mode 100644 static/v10/man7/glob.7 delete mode 100644 static/v10/man7/greek.7 delete mode 100644 static/v10/man7/hier.7 delete mode 100644 static/v10/man7/init.7 delete mode 100644 static/v10/man7/kbd.7 delete mode 100644 static/v10/man7/library.7 delete mode 100644 static/v10/man7/login.7 delete mode 100644 static/v10/man7/map.7 delete mode 100644 static/v10/man7/me.7 delete mode 100644 static/v10/man7/msh.7 delete mode 100644 static/v10/man7/netlib.7 delete mode 100644 static/v10/man7/netnews.7 delete mode 100644 static/v10/man7/news.7 delete mode 100644 static/v10/man7/obproc.7 delete mode 100644 static/v10/man7/papers.7 delete mode 100644 static/v10/man7/poly.7 delete mode 100644 static/v10/man7/postnews.7 delete mode 100644 static/v10/man7/pq.7 delete mode 100644 static/v10/man7/qns.7 delete mode 100644 static/v10/man7/readnews.7 delete mode 100644 static/v10/man7/scat.7 delete mode 100644 static/v10/man7/sky.7 delete mode 100644 static/v10/man7/submit.7 delete mode 100644 static/v10/man7/tabs.7 delete mode 100644 static/v10/man7/tel.7 delete mode 100644 static/v10/man7/telno.7 delete mode 100644 static/v10/man7/tmheader.7 delete mode 100644 static/v10/man7/town.7 delete mode 100644 static/v10/man7/units.7 delete mode 100644 static/v10/man7/vs.7 delete mode 100644 static/v10/man7/vsp.7 delete mode 100644 static/v10/man7/weather.7 delete mode 100644 static/v10/man7/wx.7 delete mode 100644 static/v10/man8/11.8 delete mode 100644 static/v10/man8/20boot.8 delete mode 100644 static/v10/man8/Makefile delete mode 100644 static/v10/man8/ac.8 delete mode 100644 static/v10/man8/acct.8 delete mode 100644 static/v10/man8/adduser.8 delete mode 100644 static/v10/man8/analyze.8 delete mode 100644 static/v10/man8/apx.8 delete mode 100644 static/v10/man8/arcv.8 delete mode 100644 static/v10/man8/arff.8 delete mode 100644 static/v10/man8/asd.8 delete mode 100644 static/v10/man8/atalla.8 delete mode 100644 static/v10/man8/authmgr.8 delete mode 100644 static/v10/man8/backup.8 delete mode 100644 static/v10/man8/blmount.8 delete mode 100644 static/v10/man8/bproc.8 delete mode 100644 static/v10/man8/check.8 delete mode 100644 static/v10/man8/chk.8 delete mode 100644 static/v10/man8/chown.8 delete mode 100644 static/v10/man8/chuck.8 delete mode 100644 static/v10/man8/cl.8 delete mode 100644 static/v10/man8/clri.8 delete mode 100644 static/v10/man8/config.8 delete mode 100644 static/v10/man8/cpp.8 delete mode 100644 static/v10/man8/crash.8 delete mode 100644 static/v10/man8/cron.8 delete mode 100644 static/v10/man8/dcheck.8 delete mode 100644 static/v10/man8/delivermail.8 delete mode 100644 static/v10/man8/df.8 delete mode 100644 static/v10/man8/dist.8 delete mode 100644 static/v10/man8/dkmgr.8 delete mode 100644 static/v10/man8/dli.8 delete mode 100644 static/v10/man8/dmesg.8 delete mode 100644 static/v10/man8/downgrade.8 delete mode 100644 static/v10/man8/dump.8 delete mode 100644 static/v10/man8/dumpdir.8 delete mode 100644 static/v10/man8/expire.8 delete mode 100644 static/v10/man8/fsck.8 delete mode 100644 static/v10/man8/fstat.8 delete mode 100644 static/v10/man8/gacct.8 delete mode 100644 static/v10/man8/gettable.8 delete mode 100644 static/v10/man8/getty.8 delete mode 100644 static/v10/man8/halt.8 delete mode 100644 static/v10/man8/htable.8 delete mode 100644 static/v10/man8/icheck.8 delete mode 100644 static/v10/man8/inews.8 delete mode 100644 static/v10/man8/init.8 delete mode 100644 static/v10/man8/ino.8 delete mode 100644 static/v10/man8/ins.8 delete mode 100644 static/v10/man8/install.8 delete mode 100644 static/v10/man8/ipconfig.8 delete mode 100644 static/v10/man8/istat.8 delete mode 100644 static/v10/man8/kill.8 delete mode 100644 static/v10/man8/kmc.8 delete mode 100644 static/v10/man8/ldpcs.8 delete mode 100644 static/v10/man8/login.8 delete mode 100644 static/v10/man8/makekey.8 delete mode 100644 static/v10/man8/mkfs.8 delete mode 100644 static/v10/man8/mknod.8 delete mode 100644 static/v10/man8/mkpkg.8 delete mode 100644 static/v10/man8/mount.8 delete mode 100644 static/v10/man8/netfs.8 delete mode 100644 static/v10/man8/netstat.8 delete mode 100644 static/v10/man8/nosh.8 delete mode 100644 static/v10/man8/ns.8 delete mode 100644 static/v10/man8/postbgi.8 delete mode 100644 static/v10/man8/postio.8 delete mode 100644 static/v10/man8/postreverse.8 delete mode 100644 static/v10/man8/postscript.8 delete mode 100644 static/v10/man8/privserv.8 delete mode 100644 static/v10/man8/ps.8 delete mode 100644 static/v10/man8/pstat.8 delete mode 100644 static/v10/man8/pwserv.8 delete mode 100644 static/v10/man8/quot.8 delete mode 100644 static/v10/man8/rarepl.8 delete mode 100644 static/v10/man8/rc.8 delete mode 100644 static/v10/man8/reboot.8 delete mode 100644 static/v10/man8/recnews.8 delete mode 100644 static/v10/man8/reloc.8 delete mode 100644 static/v10/man8/renice.8 delete mode 100644 static/v10/man8/restor.8 delete mode 100644 static/v10/man8/route.8 delete mode 100644 static/v10/man8/sa.8 delete mode 100644 static/v10/man8/salv.8 delete mode 100644 static/v10/man8/savecore.8 delete mode 100644 static/v10/man8/scsish.8 delete mode 100644 static/v10/man8/sendcover.8 delete mode 100644 static/v10/man8/sendnews.8 delete mode 100644 static/v10/man8/ship.8 delete mode 100644 static/v10/man8/showq.8 delete mode 100644 static/v10/man8/shutdown.8 delete mode 100644 static/v10/man8/smash.8 delete mode 100644 static/v10/man8/smstat.8 delete mode 100644 static/v10/man8/smtp.8 delete mode 100644 static/v10/man8/sticky.8 delete mode 100644 static/v10/man8/su.8 delete mode 100644 static/v10/man8/svcmgr.8 delete mode 100644 static/v10/man8/swapon.8 delete mode 100644 static/v10/man8/swtmp.8 delete mode 100644 static/v10/man8/symorder.8 delete mode 100644 static/v10/man8/sync.8 delete mode 100644 static/v10/man8/syslog.8 delete mode 100644 static/v10/man8/tcpmgr.8 delete mode 100644 static/v10/man8/tm.8 delete mode 100644 static/v10/man8/tp.8 delete mode 100644 static/v10/man8/umount.8 delete mode 100644 static/v10/man8/unspk.8 delete mode 100644 static/v10/man8/upas.8 delete mode 100644 static/v10/man8/update.8 delete mode 100644 static/v10/man8/uucico.8 delete mode 100644 static/v10/man8/uucleanup.8 delete mode 100644 static/v10/man8/uurec.8 delete mode 100644 static/v10/man8/vipw.8 delete mode 100644 static/v10/man8/vmstat.8 delete mode 100644 static/v10/man8/vpac.8 delete mode 100644 static/v10/man8/wall.8 delete mode 100644 static/v10/man8/worm.8 delete mode 100644 static/v10/man8/xs.8 delete mode 100644 static/v10/man8/xstr.8 delete mode 100644 static/v10/man9/32ld.9 delete mode 100644 static/v10/man9/3cc.9 delete mode 100644 static/v10/man9/Makefile delete mode 100644 static/v10/man9/add.9 delete mode 100644 static/v10/man9/alloc.9 delete mode 100644 static/v10/man9/bitblt.9 delete mode 100644 static/v10/man9/bitfile.9 delete mode 100644 static/v10/man9/blitblt.9 delete mode 100644 static/v10/man9/blitmap.9 delete mode 100644 static/v10/man9/brfs.9 delete mode 100644 static/v10/man9/brush.9 delete mode 100644 static/v10/man9/button.9 delete mode 100644 static/v10/man9/cip.9 delete mode 100644 static/v10/man9/circle.9 delete mode 100644 static/v10/man9/cos.9 delete mode 100644 static/v10/man9/crabs.9 delete mode 100644 static/v10/man9/demo.9 delete mode 100644 static/v10/man9/face.9 delete mode 100644 static/v10/man9/faced.9 delete mode 100644 static/v10/man9/flickfile.9 delete mode 100644 static/v10/man9/flicks.9 delete mode 100644 static/v10/man9/font.9 delete mode 100644 static/v10/man9/gebaca.9 delete mode 100644 static/v10/man9/getfont.9 delete mode 100644 static/v10/man9/graphdraw.9 delete mode 100644 static/v10/man9/icon.9 delete mode 100644 static/v10/man9/intro.9 delete mode 100644 static/v10/man9/jf.9 delete mode 100644 static/v10/man9/jim.9 delete mode 100644 static/v10/man9/jioctl.9 delete mode 100644 static/v10/man9/jx.9 delete mode 100644 static/v10/man9/lens.9 delete mode 100644 static/v10/man9/libc.9 delete mode 100644 static/v10/man9/lsh.9 delete mode 100644 static/v10/man9/mcc.9 delete mode 100644 static/v10/man9/menuhit.9 delete mode 100644 static/v10/man9/mld.9 delete mode 100644 static/v10/man9/mouse.9 delete mode 100644 static/v10/man9/movie.9 delete mode 100644 static/v10/man9/mux.9 delete mode 100644 static/v10/man9/muxstring.9 delete mode 100644 static/v10/man9/newlayer.9 delete mode 100644 static/v10/man9/newproc.9 delete mode 100644 static/v10/man9/pads.9 delete mode 100644 static/v10/man9/paint.9 delete mode 100644 static/v10/man9/ped.9 delete mode 100644 static/v10/man9/pengo.9 delete mode 100644 static/v10/man9/pi.9 delete mode 100644 static/v10/man9/proof.9 delete mode 100644 static/v10/man9/psi.9 delete mode 100644 static/v10/man9/reader.9 delete mode 100644 static/v10/man9/rebecca.9 delete mode 100644 static/v10/man9/request.9 delete mode 100644 static/v10/man9/ruler.9 delete mode 100644 static/v10/man9/sam.9 delete mode 100644 static/v10/man9/samuel.9 delete mode 100644 static/v10/man9/string.9 delete mode 100644 static/v10/man9/term.9 delete mode 100644 static/v10/man9/thinkblt.9 delete mode 100644 static/v10/man9/thinkclient.9 delete mode 100644 static/v10/man9/twid.9 delete mode 100644 static/v10/man9/types.9 delete mode 100644 static/v10/man9/vismon.9 delete mode 100644 static/v10/man9/windows.9 (limited to 'static') diff --git a/static/freebsd/man1/1.1 b/static/freebsd/man1/1.1 deleted file mode 100644 index 70fd43b5..00000000 --- a/static/freebsd/man1/1.1 +++ /dev/null @@ -1,28 +0,0 @@ -e1_l1_1 -e1_l1_1 -e1_l1_2 -e1_l1_2 -e1_l1_3 -e1_l1_3 -e1_l1_4 -e1_l1_4 -e1_l1_5 -e1_l1_5 -e1_l1_6 -e1_l1_6 -e1_l1_7 -e1_l1_7 -e1_l1_8 -e1_l1_8 -e1_l1_9 -e1_l1_9 -e1_l1_10 -e1_l1_10 -e1_l1_11 -e1_l1_11 -e1_l1_12 -e1_l1_12 -e1_l1_13 -e1_l1_13 -e1_l1_14 -e1_l1_14 diff --git a/static/freebsd/man1/2.1 b/static/freebsd/man1/2.1 deleted file mode 100644 index a7c92f0e..00000000 --- a/static/freebsd/man1/2.1 +++ /dev/null @@ -1 +0,0 @@ -l1_4 diff --git a/static/freebsd/man1/3.1 b/static/freebsd/man1/3.1 deleted file mode 100644 index f963b03f..00000000 --- a/static/freebsd/man1/3.1 +++ /dev/null @@ -1,14 +0,0 @@ -l1_1 -l1_2 -l1_3 -^l1T4$ -^l1T5$ -^l1T6$ -^l1T7$ -^l1T8$ -^l1T9$ -^l1T10$ -^l1T11$ -^l1T12$ -l1_13 -l1_14 diff --git a/static/freebsd/man1/4.1 b/static/freebsd/man1/4.1 deleted file mode 100644 index 455093ce..00000000 --- a/static/freebsd/man1/4.1 +++ /dev/null @@ -1,47 +0,0 @@ -before_il1_1 -after_ibefore_il1_1 -before_il1_2 -after_ibefore_il1_2 -before_il1_3 -after_ibefore_il1_3 -before_il1_4 -after_ibefore_il1_4 -before_il1_5 -after_ibefore_il1_5 -before_il1_6 -after_ibefore_il1_6 -before_il1_7 -after_ibefore_il1_7 -before_il1_8 -after_ibefore_il1_8 -before_il1_9 -after_ibefore_il1_9 -before_il1_10 -after_ibefore_il1_10 -before_il1_11 -after_ibefore_il1_11 -before_il1_12 -after_ibefore_il1_12 -before_il1_13 -after_ibefore_il1_13 -before_il1_14 -after_ibefore_il1_14 -before_il2_1 -after_ibefore_il2_1 -before_il2_2 -after_ibefore_il2_2 -before_il2_3 -after_ibefore_il2_3 -before_il2_4 -after_ibefore_il2_4 -before_il2_5 -after_ibefore_il2_5 -before_il2_6 -inserted -after_ibefore_il2_6 -before_il2_7 -after_ibefore_il2_7 -before_il2_8 -after_ibefore_il2_8 -before_il2_9 -after_ibefore_il2_9 diff --git a/static/freebsd/man1/5.1 b/static/freebsd/man1/5.1 deleted file mode 100644 index ac9202e6..00000000 --- a/static/freebsd/man1/5.1 +++ /dev/null @@ -1,17 +0,0 @@ -label2_l1_1 -label3_label2_l1_1 -label1_l1_2 -label1_l1_3 -label1_l1_4 -label1_l1_5 -label1_l1_6 -label1_l1_7 -label1_l1_8 -label1_l1_9 -label1_l1_10 -label1_l1_11 -label1_l1_12 -label2_l1_13 -label3_label2_l1_13 -label2_l1_14 -label3_label2_l1_14 diff --git a/static/freebsd/man1/6.1 b/static/freebsd/man1/6.1 deleted file mode 100644 index 78db2a52..00000000 --- a/static/freebsd/man1/6.1 +++ /dev/null @@ -1,14 +0,0 @@ -changed -changed -changed -changed -changed -changed -changed -changed -changed -changed -changed -changed -changed -changed diff --git a/static/freebsd/man1/7.1 b/static/freebsd/man1/7.1 deleted file mode 100644 index 586cac7b..00000000 --- a/static/freebsd/man1/7.1 +++ /dev/null @@ -1,15 +0,0 @@ -\001\002\003\004\005\006\a\b\t$ -\v\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\ -\033\034\035\036\037 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF\ -GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\ -\177\200\201\202\203\204\205\206\207\210\211\212\213\214\ -\215\216\217\220\221\222\223\224\225\226\227\230\231\232\ -\233\234\235\236\237\240\241\242\243\244\245\246\247\250\ -\251\252\253\254\255\256\257\260\261\262\263\264\265\266\ -\267\270\271\272\273\274\275\276\277\300\301\302\303\304\ -\305\306\307\310\311\312\313\314\315\316\317\320\321\322\ -\323\324\325\326\327\330\331\332\333\334\335\336\337\340\ -\341\342\343\344\345\346\347\350\351\352\353\354\355\356\ -\357\360\361\362\363\364\365\366\367\370\371\372\373\374\ -\375\376\377$ -$ diff --git a/static/freebsd/man1/8.1 b/static/freebsd/man1/8.1 deleted file mode 100644 index dcf124b4..00000000 --- a/static/freebsd/man1/8.1 +++ /dev/null @@ -1,14 +0,0 @@ -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXXX -XXXXX -XXXXX -XXXXX -XXXXX diff --git a/static/freebsd/man1/9.1 b/static/freebsd/man1/9.1 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man1/9.1 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man2/1.2 b/static/freebsd/man2/1.2 deleted file mode 100644 index 7af945dc..00000000 --- a/static/freebsd/man2/1.2 +++ /dev/null @@ -1,14 +0,0 @@ -e1_l1_1 -e1_l1_2 -e1_l1_3 -e1_l1_4 -e1_l1_5 -e1_l1_6 -e1_l1_7 -e1_l1_8 -e1_l1_9 -e1_l1_10 -e1_l1_11 -e1_l1_12 -e1_l1_13 -e1_l1_14 diff --git a/static/freebsd/man2/2.2 b/static/freebsd/man2/2.2 deleted file mode 100644 index fe925b0a..00000000 --- a/static/freebsd/man2/2.2 +++ /dev/null @@ -1 +0,0 @@ -l2_6 diff --git a/static/freebsd/man2/3.2 b/static/freebsd/man2/3.2 deleted file mode 100644 index 488e94f6..00000000 --- a/static/freebsd/man2/3.2 +++ /dev/null @@ -1,14 +0,0 @@ -l1_1 -l1_2 -l1_3 -^l1_4 -^l1_5 -^l1_6$ -^l1_7$ -^l1T8$ -^l1_9$ -^l1_10$ -^l1_11 -^l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man2/4.2 b/static/freebsd/man2/4.2 deleted file mode 100644 index 4161c1c0..00000000 --- a/static/freebsd/man2/4.2 +++ /dev/null @@ -1,54 +0,0 @@ -before_al1_1 -after_abefore_al1_1 -before_al1_2 -after_abefore_al1_2 -before_al1_3 -after_abefore_al1_3 -before_al1_4 -after_abefore_al1_4 -before_a5-12l1_5 -after_abefore_a5-12l1_5 -appended -before_a5-12l1_6 -after_abefore_a5-12l1_6 -appended -before_a5-12l1_7 -after_abefore_a5-12l1_7 -appended -before_a5-12l1_8 -after_abefore_a5-12l1_8 -appended -before_a5-12l1_9 -after_abefore_a5-12l1_9 -appended -before_a5-12l1_10 -after_abefore_a5-12l1_10 -appended -before_a5-12l1_11 -after_abefore_a5-12l1_11 -appended -before_a5-12l1_12 -after_abefore_a5-12l1_12 -appended -before_al1_13 -after_abefore_al1_13 -before_al1_14 -after_abefore_al1_14 -before_al2_1 -after_abefore_al2_1 -before_al2_2 -after_abefore_al2_2 -before_al2_3 -after_abefore_al2_3 -before_al2_4 -after_abefore_al2_4 -before_al2_5 -after_abefore_al2_5 -before_al2_6 -after_abefore_al2_6 -before_al2_7 -after_abefore_al2_7 -before_al2_8 -after_abefore_al2_8 -before_al2_9 -after_abefore_al2_9 diff --git a/static/freebsd/man2/5.2 b/static/freebsd/man2/5.2 deleted file mode 100644 index ec339f43..00000000 --- a/static/freebsd/man2/5.2 +++ /dev/null @@ -1,14 +0,0 @@ -tested l2_1 -tested l2_2 -tested l2_3 -tested l2_4 -tested l2_5 -tested l2_6 -tested l2_7 -tested l2_8 -tested l2_9 -tested l2_10 -tested l2_11 -tested l2_12 -tested l2_13 -tested l2_14 diff --git a/static/freebsd/man2/6.2 b/static/freebsd/man2/6.2 deleted file mode 100644 index 77e5cc0e..00000000 --- a/static/freebsd/man2/6.2 +++ /dev/null @@ -1,13 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man2/7.2 b/static/freebsd/man2/7.2 deleted file mode 100644 index cb8d266f..00000000 --- a/static/freebsd/man2/7.2 +++ /dev/null @@ -1,32 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 -15 -l2_1 -16 -l2_2 -17 -l2_3 -18 -l2_4 -19 -l2_5 -20 -l2_6 -21 -l2_7 -22 -l2_8 -23 -l2_9 diff --git a/static/freebsd/man2/8.2 b/static/freebsd/man2/8.2 deleted file mode 100644 index dcf124b4..00000000 --- a/static/freebsd/man2/8.2 +++ /dev/null @@ -1,14 +0,0 @@ -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXXX -XXXXX -XXXXX -XXXXX -XXXXX diff --git a/static/freebsd/man2/9.2 b/static/freebsd/man2/9.2 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man2/9.2 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man3/1.3 b/static/freebsd/man3/1.3 deleted file mode 100644 index 70fd43b5..00000000 --- a/static/freebsd/man3/1.3 +++ /dev/null @@ -1,28 +0,0 @@ -e1_l1_1 -e1_l1_1 -e1_l1_2 -e1_l1_2 -e1_l1_3 -e1_l1_3 -e1_l1_4 -e1_l1_4 -e1_l1_5 -e1_l1_5 -e1_l1_6 -e1_l1_6 -e1_l1_7 -e1_l1_7 -e1_l1_8 -e1_l1_8 -e1_l1_9 -e1_l1_9 -e1_l1_10 -e1_l1_10 -e1_l1_11 -e1_l1_11 -e1_l1_12 -e1_l1_12 -e1_l1_13 -e1_l1_13 -e1_l1_14 -e1_l1_14 diff --git a/static/freebsd/man3/2.3 b/static/freebsd/man3/2.3 deleted file mode 100644 index 6165ce87..00000000 --- a/static/freebsd/man3/2.3 +++ /dev/null @@ -1 +0,0 @@ -l1_14 diff --git a/static/freebsd/man3/3.3 b/static/freebsd/man3/3.3 deleted file mode 100644 index 5b15dae5..00000000 --- a/static/freebsd/man3/3.3 +++ /dev/null @@ -1,14 +0,0 @@ -^l1T1$ -^l1T2$ -^l1T3$ -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -^l1T13$ -^l1T14$ diff --git a/static/freebsd/man3/4.3 b/static/freebsd/man3/4.3 deleted file mode 100644 index ccfa1946..00000000 --- a/static/freebsd/man3/4.3 +++ /dev/null @@ -1,56 +0,0 @@ -^l1_1 -^l1_1$ -appended -^l1_2 -^l1_2$ -appended -^l1_3 -^l1_3$ -appended -^l1_4 -^l1_4$ -appended -^l1_5 -^l1_5$ -appended -^l1_6 -^l1_6$ -appended -^l1_7 -^l1_7$ -appended -^l1_8 -appended -^l1_8 -l1_9$ -^l1_10 -appended -^l1_10 -l1_11$ -^l1_12 -^l1_12$ -appended -^l1_13 -^l1_13$ -appended -^l1_14 -^l1_14$ -appended -^l2_1 -^l2_1$ -^l2_2 -^l2_2$ -^l2_3 -^l2_3$ -^l2_4 -^l2_4$ -^l2_5 -^l2_5$ -^l2_6 -^l2_6$ -^l2_7 -^l2_7$ -^l2_8 -^l2_8$ -^l2_9 -^l2_9$ diff --git a/static/freebsd/man3/5.3 b/static/freebsd/man3/5.3 deleted file mode 100644 index e1ddb547..00000000 --- a/static/freebsd/man3/5.3 +++ /dev/null @@ -1,12 +0,0 @@ -^l1_1 -^l1_1$ -^l1_2 -^l1_2$ -^l1_3 -^l1_3$ -^l1_4 -^l1_4$ -l1_5$ -l1_6$ -l1_7$ -l1_8$ diff --git a/static/freebsd/man3/6.3 b/static/freebsd/man3/6.3 deleted file mode 100644 index e69de29b..00000000 diff --git a/static/freebsd/man3/7.3 b/static/freebsd/man3/7.3 deleted file mode 100644 index c7422505..00000000 --- a/static/freebsd/man3/7.3 +++ /dev/null @@ -1,24 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 diff --git a/static/freebsd/man3/8.3 b/static/freebsd/man3/8.3 deleted file mode 100644 index dcf124b4..00000000 --- a/static/freebsd/man3/8.3 +++ /dev/null @@ -1,14 +0,0 @@ -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXX -XXXXX -XXXXX -XXXXX -XXXXX -XXXXX diff --git a/static/freebsd/man3/9.3 b/static/freebsd/man3/9.3 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man3/9.3 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man4/1.4 b/static/freebsd/man4/1.4 deleted file mode 100644 index 7af945dc..00000000 --- a/static/freebsd/man4/1.4 +++ /dev/null @@ -1,14 +0,0 @@ -e1_l1_1 -e1_l1_2 -e1_l1_3 -e1_l1_4 -e1_l1_5 -e1_l1_6 -e1_l1_7 -e1_l1_8 -e1_l1_9 -e1_l1_10 -e1_l1_11 -e1_l1_12 -e1_l1_13 -e1_l1_14 diff --git a/static/freebsd/man4/2.4 b/static/freebsd/man4/2.4 deleted file mode 100644 index 1502f007..00000000 --- a/static/freebsd/man4/2.4 +++ /dev/null @@ -1 +0,0 @@ -l2_9 diff --git a/static/freebsd/man4/3.4 b/static/freebsd/man4/3.4 deleted file mode 100644 index 67f03ef6..00000000 --- a/static/freebsd/man4/3.4 +++ /dev/null @@ -1,14 +0,0 @@ -^l1_1 -^l1_2 -^l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -^l1_13 -^l1_14 diff --git a/static/freebsd/man4/4.4 b/static/freebsd/man4/4.4 deleted file mode 100644 index 94e9a6d3..00000000 --- a/static/freebsd/man4/4.4 +++ /dev/null @@ -1,14 +0,0 @@ -hello -hello -hello -hello -hello -hello -hello -hello -hello -hello -hello -hello -hello -hello diff --git a/static/freebsd/man4/5.4 b/static/freebsd/man4/5.4 deleted file mode 100644 index a9ec85bf..00000000 --- a/static/freebsd/man4/5.4 +++ /dev/null @@ -1,14 +0,0 @@ -^l1_1$ -^l1_2$ -^l1_3$ -^l1_4$ -^l1_5$ -^l1_6$ -^l1_7$ -^l1_8$ -l1_9$ -l1_10$ -l1_11$ -l1_12$ -l1_13$ -l1_14$ diff --git a/static/freebsd/man4/6.4 b/static/freebsd/man4/6.4 deleted file mode 100644 index e9169dc7..00000000 --- a/static/freebsd/man4/6.4 +++ /dev/null @@ -1,20 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_2 -l1_3 -l1_5 -l1_2 -l1_3 -l1_2 -l1_3 -l1_6 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man4/7.4 b/static/freebsd/man4/7.4 deleted file mode 100644 index 19a94616..00000000 --- a/static/freebsd/man4/7.4 +++ /dev/null @@ -1,23 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l2_1 -l2_2 -l2_3 -l2_4 -l2_5 -l2_6 -l2_7 -l2_8 -l2_9 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man4/8.4 b/static/freebsd/man4/8.4 deleted file mode 100644 index 3bcc601e..00000000 --- a/static/freebsd/man4/8.4 +++ /dev/null @@ -1,14 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man4/9.4 b/static/freebsd/man4/9.4 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man4/9.4 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man5/1.5 b/static/freebsd/man5/1.5 deleted file mode 100644 index dfd85f72..00000000 --- a/static/freebsd/man5/1.5 +++ /dev/null @@ -1,28 +0,0 @@ -s1_l1_1 -s1_l1_1 -s1_l1_2 -s1_l1_2 -s1_l1_3 -s1_l1_3 -s1_l1_4 -s1_l1_4 -s1_l1_5 -s1_l1_5 -s1_l1_6 -s1_l1_6 -s1_l1_7 -s1_l1_7 -s1_l1_8 -s1_l1_8 -s1_l1_9 -s1_l1_9 -s1_l1_10 -s1_l1_10 -s1_l1_11 -s1_l1_11 -s1_l1_12 -s1_l1_12 -s1_l1_13 -s1_l1_13 -s1_l1_14 -s1_l1_14 diff --git a/static/freebsd/man5/2.5 b/static/freebsd/man5/2.5 deleted file mode 100644 index e69de29b..00000000 diff --git a/static/freebsd/man5/4.5 b/static/freebsd/man5/4.5 deleted file mode 100644 index ce013625..00000000 --- a/static/freebsd/man5/4.5 +++ /dev/null @@ -1 +0,0 @@ -hello diff --git a/static/freebsd/man5/5.5 b/static/freebsd/man5/5.5 deleted file mode 100644 index 6766fea1..00000000 --- a/static/freebsd/man5/5.5 +++ /dev/null @@ -1,5 +0,0 @@ -^l1_1 -^l1_2 -^l1_4 -^l1_6 -^l1_8 diff --git a/static/freebsd/man5/6.5 b/static/freebsd/man5/6.5 deleted file mode 100644 index 3bcc601e..00000000 --- a/static/freebsd/man5/6.5 +++ /dev/null @@ -1,14 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man5/7.5 b/static/freebsd/man5/7.5 deleted file mode 100644 index 3bcc601e..00000000 --- a/static/freebsd/man5/7.5 +++ /dev/null @@ -1,14 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man5/8.5 b/static/freebsd/man5/8.5 deleted file mode 100644 index 833e1ba4..00000000 --- a/static/freebsd/man5/8.5 +++ /dev/null @@ -1,14 +0,0 @@ -l1X1 -l1X2 -l1X3 -l1X4 -l1X5 -l1X6 -l1X7 -l1X8 -l1X9 -l1X10 -l1X11 -l1X12 -l1X13 -l1X14 diff --git a/static/freebsd/man5/9.5 b/static/freebsd/man5/9.5 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man5/9.5 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man6/1.6 b/static/freebsd/man6/1.6 deleted file mode 100644 index dfd85f72..00000000 --- a/static/freebsd/man6/1.6 +++ /dev/null @@ -1,28 +0,0 @@ -s1_l1_1 -s1_l1_1 -s1_l1_2 -s1_l1_2 -s1_l1_3 -s1_l1_3 -s1_l1_4 -s1_l1_4 -s1_l1_5 -s1_l1_5 -s1_l1_6 -s1_l1_6 -s1_l1_7 -s1_l1_7 -s1_l1_8 -s1_l1_8 -s1_l1_9 -s1_l1_9 -s1_l1_10 -s1_l1_10 -s1_l1_11 -s1_l1_11 -s1_l1_12 -s1_l1_12 -s1_l1_13 -s1_l1_13 -s1_l1_14 -s1_l1_14 diff --git a/static/freebsd/man6/2.6 b/static/freebsd/man6/2.6 deleted file mode 100644 index 1502f007..00000000 --- a/static/freebsd/man6/2.6 +++ /dev/null @@ -1 +0,0 @@ -l2_9 diff --git a/static/freebsd/man6/4.6 b/static/freebsd/man6/4.6 deleted file mode 100644 index ce013625..00000000 --- a/static/freebsd/man6/4.6 +++ /dev/null @@ -1 +0,0 @@ -hello diff --git a/static/freebsd/man6/5.6 b/static/freebsd/man6/5.6 deleted file mode 100644 index 7ffbba3e..00000000 --- a/static/freebsd/man6/5.6 +++ /dev/null @@ -1,5 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 diff --git a/static/freebsd/man6/6.6 b/static/freebsd/man6/6.6 deleted file mode 100644 index e69de29b..00000000 diff --git a/static/freebsd/man6/7.6 b/static/freebsd/man6/7.6 deleted file mode 100644 index 3bcc601e..00000000 --- a/static/freebsd/man6/7.6 +++ /dev/null @@ -1,14 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -l1_5 -l1_6 -l1_7 -l1_8 -l1_9 -l1_10 -l1_11 -l1_12 -l1_13 -l1_14 diff --git a/static/freebsd/man6/8.6 b/static/freebsd/man6/8.6 deleted file mode 100644 index 47c08aeb..00000000 --- a/static/freebsd/man6/8.6 +++ /dev/null @@ -1,14 +0,0 @@ -(l)(1)(_)(1) -(l)(1)(_)(2) -(l)(1)(_)(3) -(l)(1)(_)(4) -(l)(1)(_)(5) -(l)(1)(_)(6) -(l)(1)(_)(7) -(l)(1)(_)(8) -(l)(1)(_)(9) -(l)(1)(_)(1)(0) -(l)(1)(_)(1)(1) -(l)(1)(_)(1)(2) -(l)(1)(_)(1)(3) -(l)(1)(_)(1)(4) diff --git a/static/freebsd/man6/9.6 b/static/freebsd/man6/9.6 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man6/9.6 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man7/1.7 b/static/freebsd/man7/1.7 deleted file mode 100644 index 70fd43b5..00000000 --- a/static/freebsd/man7/1.7 +++ /dev/null @@ -1,28 +0,0 @@ -e1_l1_1 -e1_l1_1 -e1_l1_2 -e1_l1_2 -e1_l1_3 -e1_l1_3 -e1_l1_4 -e1_l1_4 -e1_l1_5 -e1_l1_5 -e1_l1_6 -e1_l1_6 -e1_l1_7 -e1_l1_7 -e1_l1_8 -e1_l1_8 -e1_l1_9 -e1_l1_9 -e1_l1_10 -e1_l1_10 -e1_l1_11 -e1_l1_11 -e1_l1_12 -e1_l1_12 -e1_l1_13 -e1_l1_13 -e1_l1_14 -e1_l1_14 diff --git a/static/freebsd/man7/2.7 b/static/freebsd/man7/2.7 deleted file mode 100644 index e69de29b..00000000 diff --git a/static/freebsd/man7/4.7 b/static/freebsd/man7/4.7 deleted file mode 100644 index ce013625..00000000 --- a/static/freebsd/man7/4.7 +++ /dev/null @@ -1 +0,0 @@ -hello diff --git a/static/freebsd/man7/5.7 b/static/freebsd/man7/5.7 deleted file mode 100644 index f15f6e3e..00000000 --- a/static/freebsd/man7/5.7 +++ /dev/null @@ -1,6 +0,0 @@ -l1_1 -l1_2 -l1_3 -l1_4 -hello -l1_5 diff --git a/static/freebsd/man7/7.7 b/static/freebsd/man7/7.7 deleted file mode 100644 index 7baa9315..00000000 --- a/static/freebsd/man7/7.7 +++ /dev/null @@ -1,2814 +0,0 @@ -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -Al1_1 -Al1_2 -Al1_3 -Al1_4 -Al1_5 -Al1_6 -Al1_7 -Al1_8 -Al1_9 -Al1_10 -Al1_11 -Al1_12 -Al1_13 -Al1_14 -AaniaamaaliiaalaaaAl1_1 -AaniaamaaliiaalaaaAl1_2 -AaniaamaaliiaalaaaAl1_3 -AaniaamaaliiaalaaaAl1_4 -AaniaamaaliiaalaaaAl1_5 -AaniaamaaliiaalaaaAl1_6 -AaniaamaaliiaalaaaAl1_7 -AaniaamaaliiaalaaaAl1_8 -AaniaamaaliiaalaaaAl1_9 -AaniaamaaliiaalaaaAl1_10 -AaniaamaaliiaalaaaAl1_11 -AaniaamaaliiaalaaaAl1_12 -AaniaamaaliiaalaaaAl1_13 -AaniaamaaliiaalaaaAl1_14 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -AberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aAl1_1 -aAl1_2 -aAl1_3 -aAl1_4 -aAl1_5 -aAl1_6 -aAl1_7 -aAl1_8 -aAl1_9 -aAl1_10 -aAl1_11 -aAl1_12 -aAl1_13 -aAl1_14 -aaaAl1_1 -aaaAl1_2 -aaaAl1_3 -aaaAl1_4 -aaaAl1_5 -aaaAl1_6 -aaaAl1_7 -aaaAl1_8 -aaaAl1_9 -aaaAl1_10 -aaaAl1_11 -aaaAl1_12 -aaaAl1_13 -aaaAl1_14 -aalaaaAl1_1 -aalaaaAl1_2 -aalaaaAl1_3 -aalaaaAl1_4 -aalaaaAl1_5 -aalaaaAl1_6 -aalaaaAl1_7 -aalaaaAl1_8 -aalaaaAl1_9 -aalaaaAl1_10 -aalaaaAl1_11 -aalaaaAl1_12 -aalaaaAl1_13 -aalaaaAl1_14 -aaliiaalaaaAl1_1 -aaliiaalaaaAl1_2 -aaliiaalaaaAl1_3 -aaliiaalaaaAl1_4 -aaliiaalaaaAl1_5 -aaliiaalaaaAl1_6 -aaliiaalaaaAl1_7 -aaliiaalaaaAl1_8 -aaliiaalaaaAl1_9 -aaliiaalaaaAl1_10 -aaliiaalaaaAl1_11 -aaliiaalaaaAl1_12 -aaliiaalaaaAl1_13 -aaliiaalaaaAl1_14 -aamaaliiaalaaaAl1_1 -aamaaliiaalaaaAl1_2 -aamaaliiaalaaaAl1_3 -aamaaliiaalaaaAl1_4 -aamaaliiaalaaaAl1_5 -aamaaliiaalaaaAl1_6 -aamaaliiaalaaaAl1_7 -aamaaliiaalaaaAl1_8 -aamaaliiaalaaaAl1_9 -aamaaliiaalaaaAl1_10 -aamaaliiaalaaaAl1_11 -aamaaliiaalaaaAl1_12 -aamaaliiaalaaaAl1_13 -aamaaliiaalaaaAl1_14 -aardvarkAaniaamaaliiaalaaaAl1_1 -aardvarkAaniaamaaliiaalaaaAl1_2 -aardvarkAaniaamaaliiaalaaaAl1_3 -aardvarkAaniaamaaliiaalaaaAl1_4 -aardvarkAaniaamaaliiaalaaaAl1_5 -aardvarkAaniaamaaliiaalaaaAl1_6 -aardvarkAaniaamaaliiaalaaaAl1_7 -aardvarkAaniaamaaliiaalaaaAl1_8 -aardvarkAaniaamaaliiaalaaaAl1_9 -aardvarkAaniaamaaliiaalaaaAl1_10 -aardvarkAaniaamaaliiaalaaaAl1_11 -aardvarkAaniaamaaliiaalaaaAl1_12 -aardvarkAaniaamaaliiaalaaaAl1_13 -aardvarkAaniaamaaliiaalaaaAl1_14 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -aberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_1 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_2 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_3 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_4 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_5 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_6 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_7 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_8 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_9 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_10 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_11 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_12 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_13 -abetmentabetaberuncatoraberroscopeaberrometeraberratoraberrationalaberrationaberrateaberrantaberrancyaberranceAberiaAberdonianaberdevineAberdeenabepithymiaabentericAbencerragesabeltreeAbelonianabelmoskAbelmoschusabeliteAbeliteAbeliceaAbelianAbeliaabeleAbelabeighabedabecedaryabecedariumabecedarianabearanceabearabeamAbeabductorabductionabductabducentabducensabduceabdominovesicalabdominovaginalabdominousabdominothoracicabdominoscopyabdominoscopeabdominoposteriorabdominohysterotomyabdominohysterectomyabdominogenitalabdominocysticabdominocentesisabdominocardiacabdominoanteriorabdominallyabdominalianAbdominalesabdominalabdomenabditoryabditiveAbdielabdicatorabdicativeabdicationabdicateabdicantabdicableabdestAbderiteAbderianabdatabdalabcoulombAbbyabbreviatureabbreviatoryabbreviatorabbreviationabbreviatelyabbreviateabbotshipabbotnulliusabbotcyabbotAbbieabbeystedeabbeyabbessabbaticalabbatialAbbassideabbassiabbasiabbasAbbadideabbacyabbacomesAbbaabbabazeabaxileabaxialabaveabatureAbatuaabattoirabatorabatonabatisedabatisabaterabatementabateabatableabastardizeAbassinabaskabasicabasiaabashmentabashlesslyabashlessabashednessabashedlyabashedabashAbasgiabaserabasementabasednessabasedlyabasedabaseabasabarticulationabarticularabarthrosisAbarisAbaramboabaptistonAbantesAbanicabandonmentabandonerabandoneeabandonedlyabandonedabandonableabandonabampereAbamaabaloneabalienationabalienateabaissedabaiserabaisanceabaftabaffAbaditeabacusabaculusabactorabactionabactinallyabactinalabackabacistabaciscusabacinationabacinateabacayabacateabacaabacAbabuaAbabdehabaAbAaruAaroniticAaroniteAaronicalAaronicAaronaardwolfaardvarkAaniaamaaliiaalaaaAl1_14 diff --git a/static/freebsd/man7/8.7 b/static/freebsd/man7/8.7 deleted file mode 100644 index 0ff0b9e7..00000000 --- a/static/freebsd/man7/8.7 +++ /dev/null @@ -1,14 +0,0 @@ -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&) -(&)(&)(&)(&)(&) -(&)(&)(&)(&)(&) -(&)(&)(&)(&)(&) -(&)(&)(&)(&)(&) -(&)(&)(&)(&)(&) diff --git a/static/freebsd/man7/9.7 b/static/freebsd/man7/9.7 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man7/9.7 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man8/1.8 b/static/freebsd/man8/1.8 deleted file mode 100644 index 70fd43b5..00000000 --- a/static/freebsd/man8/1.8 +++ /dev/null @@ -1,28 +0,0 @@ -e1_l1_1 -e1_l1_1 -e1_l1_2 -e1_l1_2 -e1_l1_3 -e1_l1_3 -e1_l1_4 -e1_l1_4 -e1_l1_5 -e1_l1_5 -e1_l1_6 -e1_l1_6 -e1_l1_7 -e1_l1_7 -e1_l1_8 -e1_l1_8 -e1_l1_9 -e1_l1_9 -e1_l1_10 -e1_l1_10 -e1_l1_11 -e1_l1_11 -e1_l1_12 -e1_l1_12 -e1_l1_13 -e1_l1_13 -e1_l1_14 -e1_l1_14 diff --git a/static/freebsd/man8/2.8 b/static/freebsd/man8/2.8 deleted file mode 100644 index e69de29b..00000000 diff --git a/static/freebsd/man8/4.8 b/static/freebsd/man8/4.8 deleted file mode 100644 index e69de29b..00000000 diff --git a/static/freebsd/man8/5.8 b/static/freebsd/man8/5.8 deleted file mode 100644 index 1557318a..00000000 --- a/static/freebsd/man8/5.8 +++ /dev/null @@ -1,14 +0,0 @@ -m1_1 -m1_2 -m1_3 -m1_4 -m1_5 -m1_6 -m1_7 -m1_8 -m1_9 -m1_10 -m1_11 -m1_12 -m1_13 -m1_14 diff --git a/static/freebsd/man8/7.8 b/static/freebsd/man8/7.8 deleted file mode 100644 index 8b137891..00000000 --- a/static/freebsd/man8/7.8 +++ /dev/null @@ -1 +0,0 @@ - diff --git a/static/freebsd/man8/8.8 b/static/freebsd/man8/8.8 deleted file mode 100644 index 08bbf8cf..00000000 --- a/static/freebsd/man8/8.8 +++ /dev/null @@ -1,14 +0,0 @@ -x_x1xl1 -x_x1xl2 -x_x1xl3 -x_x1xl4 -x_x1xl5 -x_x1xl6 -x_x1xl7 -x_x1xl8 -x_x1xl9 -x_x1xl10 -x_x1xl11 -x_x1xl12 -x_x1xl13 -x_x1xl14 diff --git a/static/freebsd/man8/9.8 b/static/freebsd/man8/9.8 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man8/9.8 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/freebsd/man9/1.9 b/static/freebsd/man9/1.9 deleted file mode 100644 index 44f4ec3c..00000000 --- a/static/freebsd/man9/1.9 +++ /dev/null @@ -1,14 +0,0 @@ -s1_l1_1 -s1_l1_2 -s1_l1_3 -s1_l1_4 -s1_l1_5 -s1_l1_6 -s1_l1_7 -s1_l1_8 -s1_l1_9 -s1_l1_10 -s1_l1_11 -s1_l1_12 -s1_l1_13 -s1_l1_14 diff --git a/static/freebsd/man9/2.9 b/static/freebsd/man9/2.9 deleted file mode 100644 index 8e6f085d..00000000 --- a/static/freebsd/man9/2.9 +++ /dev/null @@ -1 +0,0 @@ -l1_7 diff --git a/static/freebsd/man9/8.9 b/static/freebsd/man9/8.9 deleted file mode 100644 index e0cd8b50..00000000 --- a/static/freebsd/man9/8.9 +++ /dev/null @@ -1,42 +0,0 @@ -l1u0 -u1 -u21 -l1u0 -u1 -u22 -l1u0 -u1 -u23 -l1u0 -u1 -u24 -l1u0 -u1 -u25 -l1u0 -u1 -u26 -l1u0 -u1 -u27 -l1u0 -u1 -u28 -l1u0 -u1 -u29 -l1u0 -u1 -u210 -l1u0 -u1 -u211 -l1u0 -u1 -u212 -l1u0 -u1 -u213 -l1u0 -u1 -u214 diff --git a/static/freebsd/man9/9.9 b/static/freebsd/man9/9.9 deleted file mode 100644 index d00491fd..00000000 --- a/static/freebsd/man9/9.9 +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/static/inferno/Makefile b/static/inferno/Makefile new file mode 100644 index 00000000..a02036df --- /dev/null +++ b/static/inferno/Makefile @@ -0,0 +1,14 @@ +SUBDIRS = man1 \ + man2 \ + man3 \ + man4 \ + man5 \ + man6 \ + man7 \ + man8 \ + man9 + +export OS="Inferno OS" + +include ../subdir.mk + diff --git a/static/inferno/man1/0intro.1 b/static/inferno/man1/0intro.1 new file mode 100644 index 00000000..4d7335a1 --- /dev/null +++ b/static/inferno/man1/0intro.1 @@ -0,0 +1,188 @@ +.TH INTRO 1 +.SH NAME +intro \- introduction to Inferno +.SH DESCRIPTION +Inferno is a virtualised operating system that can +run natively across a wide range of processor architectures +or hosted on a wide range of operating systems. +The principal components of the system are: +.IP • +The Inferno kernel which can run both native and `hosted' on a range of platforms +and which presents the same interface to programs in both cases. +.IP • +The Dis virtual machine. +.IP • +Styx - the tiny broad-spectrum file service protocol. +.IP • +Limbo - a new simple, modular, concurrent programming language. +.IP • +Tk and Prefab - graphical user interface (`GUI') primitives without a lot of goo. +.IP • +The portable cross-development suites that allow any native Inferno platform +to be cross-compiled on any hosted system. +.SS Manual conventions +Throughout this volume, manual entries are cross referenced +by a notation of the form +.IR entry ( n ), +where +.I entry +is the name of the page (in italics) and +.I n +is the manual section holding the page. +The same name may be found in more than one section. +For example, the environment variable inspection command +documented in +.IR env (1), +is quite distinct from the module interface to environment variables +which is documented in +.IR env (2), +which in turn is distinct from the component documented by +.IR env (3), +which describes the underlying device that implements environment variables. +.PP +Pathnames are understood to exist in the file system space visible from +Inferno. The root of this space when viewed from the host operating +system is the Inferno installation directory, sometimes called the +Inferno root directory. Unless otherwise enabled, the result of +changes made by Inferno programs to files in the file system space +is generally restricted to this portion of the host file system. +.SS Name spaces +One of the great strengths of Inferno is the +.I name space +interface to the resources available to a process, +a hierarchical structure +which looks very similar to a conventional file system. +Resources look like files and directories that can be read +and written, created and deleted in a way familiar to +most programmers. +.PP +While this interface +.I is +used to provide programs with access to conventional +disk-based filestore, it is also used to control devices +and user level programs +.I mounted +in a process's name space. +Once a program or a device has been attached to a process's +name space, the program or device interprets any access +to the attachment point; +it can synthesise on demand the names of new files or directories, +create their contents on the fly as the process reads from them, +and interpret written data as commands or data as appropriate +(See +.IR bind (1) +and +.IR sys-bind (2)). +.PP +Each new Inferno process inherits its parent's name space, +but it can divorce its own name space from that of its parent (see +.IR sys-pctl (2)), +giving programs the capability to attach +resources to their own name space without making them globally +visible. This per-process name space is potent +but potentially confusing, so, to help programs that might be +confused, +.IR namespace (4) +gives some conventions that should be adhered to if programs +are to work properly. (That page also gives a general overview +of the Inferno source tree.) +.SS Start up +See ``Installation of the Inferno Software'' in Volume 2 +for details of how to start up Inferno. +.SS Window/development environment +Inferno provides a powerful development environment in which to write, compile, +execute and debug programs written in the Limbo language. +It gives the developer a clean platform from which he can utilise +an operating system which contains +many new and innovative ideas and some, carefully chosen, +older concepts that have survived the test of time and are likely to be +familiar to most Plan 9 or Unix users. +.PP +Superficially, the Inferno shell +.IR sh (1) +looks and behaves much like +its Plan 9 or Unix contemporaries but, at heart, it is quite different. +The shell takes advantage of the dynamic module loading +services that Inferno provides to allow it to be dynamically extended +in appropriate and interesting ways. For example, by loading the +.IR sh-tk (1) +builtin module, a shell script can provide all the programming logic +required to manage a +.I Tk +window with full +.I Tk +functionality in, surprisingly, few lines of code; by loading the +.IR sh-file2chan (1) +builtin module, a shell script can create a file in the name space +whose properties are completely under the control of the script. +.PP +The Inferno window +manager +.IR wm (1) +allows the user to manage the order and position of a dynamic collection of application +windows in which to perform various tasks. +.IR Acme (1) +is targeted at programmers. It is an editor, a shell and window system all rolled +into one, which through thoughtful and consistent application of simple principles +results in a rich and productive programming environment with a user interface +that feels right. +.I Acme +requires a three-button mouse and +attaches distinct functions to the three mouse buttons and, indeed, to chords of buttons to +maximise the productivity of the programmer's mouse. For more details of the +.I Acme +user interface see the paper +"Acme: A User Interface for Programmers" in Volume 2. +.PP +Limbo programs are compiled with +.IR limbo (1). +This compiles Limbo source into a machine-independent format (Dis) for +execution by the Inferno Dis virtual machine. The virtual machine is designed to provide +safe execution of programs even on machines without memory protection. +Debugging is made straightforward by use of either +.IR stack (1) +, to display the execution stack of a process +or, if a finer inspection is required, +.IR deb (1), +a novel window based debugger that allows the user to identify the exact location of +problems, set break points and walk the data structures of any module loaded by the program. See "Program Development in Inferno" in Volume 2 for details on how to use the +development tools that Inferno provides. +.SH SEE ALSO +.nf +Section (1) (this section) for the commonly-used commands. +Section (2) for Limbo modules, including Inferno's system calls. +Section (3) for kernel devices (accessed by `bind'). +Section (4) for file services (accessed by `mount'). +Section (5) for the Styx file service protocol. +Section (6) for file formats and system conventions. +Section (7) for databases and database access modules. +Section (8) for administrative modules and system services. +Section (9) for the reference for Inferno's Tk variant, Limbo/Tk. +Section (10) for the build environment and device driver implementation. +.PP +Volume 2 contains papers and other documentation about Inferno. +.PP +The back of this volume contains a permuted index. +.SH DIAGNOSTICS +On successful execution, a process can simply exit. +Programs (modules) that wish to return error status to +the command interpreters +.IR sh (1) +and +.IR mash (1) +do so by raising a special exception (eg, using the +.B raise +statement in Limbo). +The exception's value is a string +beginning with the text +.RB ` fail: '. +.SH SEE ALSO +.IR intro (2), +.IR intro (3), +.IR intro (4), +.IR intro (5), +.IR intro (6), +.IR intro (7), +.IR intro (8), +.IR intro (9), +.IR intro (10) diff --git a/static/inferno/man1/9win.1 b/static/inferno/man1/9win.1 new file mode 100644 index 00000000..c3d7e70e --- /dev/null +++ b/static/inferno/man1/9win.1 @@ -0,0 +1,71 @@ +.TH 9WIN 1 +.SH NAME +9win \- create a Plan 9 window within Inferno +.SH SYNOPSIS +.B 9win +[ +-s +] +[ +.B -x width +] +[ +.B -y height +] +[ +.IR cmd +[ +.I arg ... +] +] +.SH DESCRIPTION +.I 9win +creates a window for a graphical Plan 9 command (default +.BR rio ) +to run in. If provided, +.I width +and +.I height +give a desired width and height for the new window. +.I Cmd +gives the command to run, +and +.I arg +its arguments. +.PP +The +.B -s +option tells +.I 9win +to run in server mode. Used by +.IR 9cpu (1), +it exports on its standard input +a namespace +suitable for a graphical Plan 9 program to run +within. With this option, no command may be given. +.SH SOURCE +.B /appl/cmd/9win.b +.SH SEE ALSO +.IR 9cpu (1), +.IR import (4) +.SH FILES +.B /dev/winname +.br +.B /dev/mouse +.br +.B /dev/cons +.br +.B /dev/consctl +.br + Files served by +.IR 9win . +.SH BUGS +.I 9win +does not export a full +.I rio +environment, so Plan 9 programs +that wish to create new windows will not work correctly +(unless running inside a +.I rio +started by +.IR 9win ) diff --git a/static/inferno/man1/INDEX.1 b/static/inferno/man1/INDEX.1 new file mode 100644 index 00000000..af0440d7 --- /dev/null +++ b/static/inferno/man1/INDEX.1 @@ -0,0 +1,324 @@ +intro 0intro +9win 9win +acme acme +win acme +abc alphabet-abc +alphabet-abc alphabet-abc +alphabet-fs alphabet-fs +fs alphabet-fs +alphabet-grid alphabet-grid +grid alphabet-grid +alphabet-main alphabet-main +main alphabet-main +ar ar +asm asm +disdump asm +auhdr auplay +auplay auplay +raw2iaf auplay +wav2iaf auplay +avr avr +basename basename +bind bind +mount bind +unmount bind +blur blur +brutus brutus +cal cal +calc calc +calendar calendar +cat cat +cd cd +charon charon +chgrp chgrp +chmod chmod +cleanname cleanname +cmp cmp +collab collab +connect collab +chat collab-clients +collab collab-clients +collab-clients collab-clients +poll collab-clients +poller collab-clients +whiteboard collab-clients +comm comm +cook cook +cp cp +fcp cp +cprof cprof +cpu cpu +aescbc crypt +crypt crypt +date date +dd dd +deb deb +diff diff +disdep disdep +dmview dmview +dmwm dmview +du du +ebook ebook +echo echo +emu emu +env env +fc fc +filename filename +fmt fmt +fortune fortune +freq freq +fs fs +ftest ftest +newer ftest +ftree ftree +gettar gettar +lstar gettar +puttar gettar +grep grep +grid-monitor grid-monitor +monitor grid-monitor +grid grid-ns +grid-ns grid-ns +ns grid-ns +grid grid-query +grid-query grid-query +query grid-query +grid grid-register +grid-register grid-register +register grid-register +grid grid-session +grid-session grid-session +session grid-session +gunzip gzip +gzip gzip +idea idea +itest itest +itreplay itest +keyboard keyboard +pen keyboard +broke kill +kill kill +limbo limbo +dial listen +listen listen +styxlisten listen +logon logon +logwindow logwindow +look look +lc ls +ls ls +m4 m4 +lookman man +man man +man2html man +man2txt man +wm/man man +mash mash +mash mash-make +mash-make mash-make +mash mash-tk +mash-tk mash-tk +ack math-misc +crackerbarrel math-misc +factor math-misc +fibonacci math-misc +fit math-misc +genprimes math-misc +math-misc math-misc +mersenne math-misc +parts math-misc +perms math-misc +pi math-misc +powers math-misc +primes math-misc +sieve math-misc +mc mc +mdb mdb +miniterm miniterm +mk mk +mkdir mkdir +mprof mprof +wm/mprof mprof +mux mux +mv mv +netkey netkey +netstat netstat +ns ns +nsbuild nsbuild +os os +p p +passwd passwd +plumb plumb +prof prof +wm/prof prof +ps ps +pwd pwd +rcmd rcmd +read read +rm rm +runas runas +secstore secstore +sendmail sendmail +builtin sh +exit sh +load sh +loaded sh +local sh +quote sh +run sh +set sh +sh sh +unload sh +unquote sh +whatis sh + sh-alphabet +alphabet sh-alphabet sh-alphabet +autoconvert sh-alphabet +autodeclare +declare sh-alphabet +define sh-alphabet +import sh-alphabet +sh-alphabet sh-alphabet +type sh-alphabet +typeset sh-alphabet +arg sh-arg +sh-arg sh-arg +csv sh-csv +getcsv sh-csv +sh-csv sh-csv +expr sh-expr +mpexpr sh-expr +ntest sh-expr +sh-expr sh-expr +file2chan sh-file2chan +rblock sh-file2chan +rdata sh-file2chan +rerror sh-file2chan +rget sh-file2chan +rread sh-file2chan +rreadone sh-file2chan +rwrite sh-file2chan +sh-file2chan sh-file2chan +mload sh-mload +munload sh-mload +sh-mload sh-mload +match sh-regex +re sh-regex +sh-regex sh-regex +els sh-sexprs +islist sh-sexprs +mklist sh-sexprs +mktext sh-sexprs +mktextlist sh-sexprs +sexprs sh-sexprs +sh-sexprs sh-sexprs +text sh-sexprs +textels sh-sexprs +! sh-std +and sh-std +apply sh-std +env sh-std +fn sh-std +getlines sh-std +hd sh-std +if sh-std +index sh-std +join sh-std +no sh-std +or sh-std +parse sh-std +pctl sh-std +pid sh-std +raise sh-std +rescue sh-std +sh-std sh-std +split sh-std +status sh-std +std sh-std +tl sh-std +while sh-std +~ sh-std +alen sh-string +drop sh-string +in sh-string +len sh-string +prefix sh-string +sh-string sh-string +slice sh-string +splitl sh-string +splitr sh-string +splitstrl sh-string +splitstrr sh-string +take sh-string +tolower sh-string +toupper sh-string +report sh-test +sh-test sh-test +alt sh-tk +chan sh-tk +recv sh-tk +send sh-tk +sh-tk sh-tk +tk sh-tk +pause sleep +sleep sleep +sort sort +join spree-join +spree-join spree-join +stack stack +stream stream +strings strings +md5sum sum +sha1sum sum +sum sum +tail tail +tcs tcs +tee tee +telnet telnet +time time +timestamp timestamp +rm tiny +sh tiny +tiny tiny +tkcmd tkcmd +tktester tktester +toolbar toolbar +touch touch +tr tr +tsort tsort +unicode unicode +uniq uniq +units units +uudecode uuencode +uuencode uuencode +vacget vacget +vacput vacget +wc wc +webgrab webgrab +wish wish +wm wm +about wm-misc +clock wm-misc +coffee wm-misc +colors wm-misc +date wm-misc +edit wm-misc +mand wm-misc +memory wm-misc +polyhedra wm-misc +reversi wm-misc +rt wm-misc +stopwatch wm-misc +sweeper wm-misc +task wm-misc +tetris wm-misc +unibrowse wm-misc +view wm-misc +winctl wm-misc +wm-misc wm-misc +mash wm-sh +sh wm-sh +wm-sh wm-sh +xd xd +yacc yacc +zeros zeros diff --git a/static/inferno/man1/Makefile b/static/inferno/man1/Makefile new file mode 100644 index 00000000..31e80e19 --- /dev/null +++ b/static/inferno/man1/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.1) + +include ../../mandoc.mk diff --git a/static/inferno/man1/acme.1 b/static/inferno/man1/acme.1 new file mode 100644 index 00000000..d8779336 --- /dev/null +++ b/static/inferno/man1/acme.1 @@ -0,0 +1,1203 @@ +.TH ACME 1 +.SH NAME +acme, win \- interactive text windows +.SH SYNOPSIS +.B acme +[ +.B -f +.I varfont +] +[ +.B -F +.I fixfont +] +[ +.B -c +.I ncol +] +[ +.B -b +] +[ +.B -l +.I file +| +.I file +\&... ] +.LP +.B win +[ +.I command +] +.SH DESCRIPTION +.I Acme +manages windows of text that may be edited interactively or by external programs. +The interactive interface uses the keyboard and mouse; external programs +use a set of files served by +.IR acme ; +these are discussed in +.IR acme (4). +.PP +Any named +.I files +are read into +.I acme +windows before +.I acme +accepts input. +With the +.B -l +option, the state of the entire system is loaded +from +.IR file , +which should have been created by a +.B Dump +command (q.v.), +and subsequent +.I file +names are ignored. +Plain files display as text; directories display as columnated lists of the +names of their components with the names of subdirectories having a slash appended. +.PP +The +.B -f +.RB ( -F ) +option sets the default variable-pitch (fixed-pitch) +font; the default is +.B /fonts/lucidasans/euro.8.font +.RB ( \&.../lucm/unicode.9.font ). +Tab intervals are set to the width of 4 numeral zeros in the variable-pitch font. +.PP +.SS Windows +.I Acme +windows are in two parts: a one-line +.I tag +above a multi-line +.IR body . +The body typically contains an image of a file or the output of a program. +The tag contains a number of +blank-separated words, followed by a vertical bar character, followed by anything. +The first word is the name of the window, typically the name of the associated +file or directory, and the other words are commands available in that window. +Any text may be added after the bar; examples are strings to search for or +commands to execute in that window. +Changes to the text left of the bar will be ignored, +unless the result is to change the name of the +window. +.PP +If a window holds a directory, the name (first word of the tag) will end with +a slash. +.SS Scrolling +Each window has a scroll bar to the left of the body. +Scrolling occurs when the button is pressed, rather than released, +and continues +as long as the mouse button is held down in the scroll bar. +For example, to scroll slowly through a file, +hold button 3 down near the top of the scroll bar. Moving the mouse +down the scroll bar speeds up the rate of scrolling. Scrolling backwards is performed +similarly using button 1. Button 2 allows absolute movement within the text; clicking it +at different heights within the scroll bar changes the focused text without intermediate +scrolling. +.SS Layout +.I Acme +windows are arranged in columns. By default, it creates two columns when starting; +this can be overridden with the +.B -c +option. +Placement is automatic but may be adjusted +using the +.I layout box +in the upper left corner of each window and column. +Pressing and holding any mouse button in the box drags +the associated window or column. +For windows, just +clicking in the layout box grows the window in place: button 1 +grows it a little, button 2 grows it as much as it can, still leaving all other +tags in that column visible, and button 3 takes over the column completely, +temporarily hiding other windows in the column. +(They will return +.I en masse +if any of them needs attention.) +The layout box in a window is normally white; when it is black in the center, +it records that the file is `dirty': +.I Acme +believes it is modified from its original +contents. +.PP +Tags exist at the top of each column and across the whole display. +.I Acme +pre-loads them with useful commands. +Also, the tag across the top maintains a list of executing long-running commands. +.SS Typing +The behaviour of typed text is as one would expect +except that the characters are delivered to the tag or body under the mouse; there is no +`click to type'. +(The experimental option +.B -b +causes typing to go to the most recently clicked-at or made window.) +The usual backspacing conventions apply. +The ESC key selects the text typed since the last mouse action, +a feature particularly useful when executing commands. +A side effect is that typing ESC with text already selected is identical +to a +.B Cut +command +.RI ( q.v. ). +.PP +Most text, including the names of windows, may be edited uniformly. +The only exception is that the command names to the +left of the bar in a tag are maintained automatically; changes to them are repaired +by +.IR acme . +.SS "Directory context +Each window's tag names a directory: explicitly if the window +holds a directory; implicitly if it holds a regular file +(e.g. the directory +.B /module +if the window holds +.BR /module/sys.m ). +This directory provides a +.I context +for interpreting file names in that window. +For example, the string +.B sys.m +in a window labelled +.B /module/ +or +.B /module/draw.m +will be interpreted as the file name +.BR /module/sys.m . +The directory is defined purely textually, so it can be a non-existent +directory or a real directory associated with a non-existent file +(e.g. +.BR /module/not-a-file ). +File names beginning with a slash +are assumed to be absolute file names. +.SS Errors +Windows whose names begin with +.B - +or +.B + +conventionally hold diagnostics and other data +not directly associated with files. +A window labelled +.B +Errors +receives all diagnostics produced by +.I acme +itself. +Diagnostics from commands run by +.I acme +appear in a window named +.IB directory /+Errors +where +.I directory +is identified by the context of the command. +These error windows are created when needed. +.SS "Mouse button 1 +Mouse button 1 selects text and double-clicking highlights the text for replacement text to be +typed in. +.PP +Button 1 is also useful for matching symbols. For example to match curly brackets in some limbo +source, +double click button 1 immediately after the open curly bracket. +The whole of the text up to any matching end curly bracket will be highlighted. A similar match +is made if the double click is performed immediately before the end bracket. In all, +.I acme +will match the pairs { and }, [ and ], ( and ), < and >, « and », ' and ', " and ", ` and `. +Also whole lines of text may be highlighted by double clicking at the beginning or end of the line. +.SS "Mouse button 2 +By an +action similar to selecting text with button 1, +button 2 indicates text to execute as a command. +If the indicated text has multiple white-space-separated words, +the first is the command name and the second and subsequent +are its arguments. +If button 2 is `clicked'\(emindicates a null string\(em\c +.I acme +.I expands +the indicated text to find a command to run: +if the click is within button-1-selected text, +.I acme +takes that selection as the command; +otherwise it takes the largest string of valid file name characters containing the click. +Valid file name characters are alphanumerics and +.B _ +.B . +.B - +.B + +.BR / . +This behaviour is similar to double-clicking with button 1 but, +because a null command is meaningless, only a single click is required. +.PP +Some commands, all by convention starting with a capital letter, are +.I built-ins +that are executed directly by +.IR acme : +.TF "Lineno\ \ " +.PD +.TP +.B Cut +Delete most recently selected text and place in snarf buffer. +.TP +.B Del +Delete window. If window is dirty, instead print a warning; a second +.B Del +will succeed. +.TP +.B Delcol +Delete column and all its windows, after checking that windows are not dirty. +.TP +.B Delete +Delete window without checking for dirtiness. +.TP +.B Dump +Write the state of +.I acme +to the file name, if specified, or +.B $home/acme.dump +by default. +.TP +.B Edit +Treat the argument as a text editing command in the style of Plan9's +.IR sam. +The full +.B Sam +language is implemented except for the commands +.BR k , +.BR n , +.BR q , +and +.BR ! . +The +.B = +command is slightly different: it includes the file name and +gives only the line address unless the command is explicitly +.BR =# . +The `current window' for the command is the body of the window in which the +.B Edit +command is executed. +Usually the +.B Edit +command would be typed in a tag; longer commands may be prepared in a +scratch window and executed, with +.B Edit +itself in the current window, using the 2-1 chord described below. See the later +section on editing for a full description of the commands available here. +.TP +.B Exit +Exit +.I acme +after checking that windows are not dirty. +.TP +.B Font +With no arguments, change the font of the associated window from fixed-spaced to +proportional-spaced or +.I vice versa\f1. +Given a file name argument, change the font of the window to that stored in the named file. +If the file name argument is prefixed by +.B var +.RB ( fix ), +also set the default proportional-spaced (fixed-spaced) font for future use to that font. +Other existing windows are unaffected. +.TP +.B Get +Load file into window, replacing previous contents (after checking for dirtiness as in +.BR Del ). +With no argument, use the existing file name of the window. +Given an argument, use that file but do not change the window's file name. +.TP +.B ID +Print window ID number +.RI ( q.v. ). +.TP +.B Incl +When opening `include' files with button 3, +.I acme +searches in the directories +.B /module +and +.B /include . +.B Incl +adds its arguments to a supplementary list of include directories, analogous to +the +.B -I +option to the compilers. +This list is per-window and is inherited when windows are created by actions in that window, so +.I Incl +is most usefully applied to a directory containing relevant source. +With no arguments, +.I Incl +prints the supplementary list. +.TP +.B Kill +Send a +.B kill +note to +.IR acme -initiated +commands named as arguments. +.TP +.B Lineno +Give the line number(s) of the currently selected text. +.TP +.B Load +Restore the state of +.I acme +from a file (default +.BR $home/acme.dump ) +created by the +.B Dump +command. +.TP +.B Local +When prefixed to a command +run the +command in the same file name space and environment variable group as +.IR acme . +The environment of the command +is restricted but is sufficient to run +.IR bind (1), +.IR mount , +etc., +and to set environment variables. +.TP +.B Look +Search in body for occurrence of literal text indicated by the argument or, +if none is given, by the selected text in the body. +.TP +.B New +Make new window. With arguments, load the named files into windows. +.TP +.B Newcol +Make new column. +.TP +.B Paste +Replace most recently selected text with contents of snarf buffer. +.TP +.B Put +Write window to the named file. +With no argument, write to the file named in the tag of the window. +.TP +.B Putall +Write all dirty windows whose names indicate existing regular files. +.TP +.B Redo +Complement of +.BR Undo . +.TP +.B Send +Append selected text or snarf buffer to end of body; used mainly with +.IR win . +.TP +.B Snarf +Place selected text in snarf buffer. +.TP +.B Sort +Arrange the windows in the column from top to bottom in lexicographical +order based on their names. +.TP +.B Undo +Undo last textual change or set of changes. +.TP +.B Zerox +Create a copy of the window containing most recently selected text. +.PP +A common place to store text for commands is in the tag; in fact +.I acme +maintains a set of commands appropriate to the state of the window +to the left of the bar in the tag. +.PP +If the text indicated with button 2 is not a recognized built-in, it is executed as +a shell command. For example, indicating +.B date +with button 2 runs +.IR date (1). +The standard +and error outputs of commands are sent to the error window associated with +the directory from which the command was run, which will be created if +necessary. +For example, in a window +.B /module/sys.m +executing +.B pwd +will produce the output +.B /module +in a (possibly newly-created) window labelled +.BR /adm/+Errors ; +in a window containing +.B /appl/cmd/date.b +executing +.B "limbo date.b" +will run +.IR limbo (1) +in +.BR /appl/cmd , +producing output in a window labelled +.BR /appl/cmd/+Errors . +.SS "Mouse button 3 +Pointing at text with button 3 instructs +.I acme +to locate or acquire the file, string, etc. described by the indicated text and +its context. +This description follows the actions taken when +button 3 is released after sweeping out some text. +In the description, +.I text +refers to the text of the original sweep or, if it was null, the result of +applying the same expansion rules that apply to button 2 actions. +.PP +If the text names an existing window, +.I acme +moves the mouse cursor to the selected text in the body of that window. +If the text names an existing file with no associated window, +.I acme +loads the file into a new window and moves the mouse there. +If the text is a file name contained in double quotes, +.I acme +loads the indicated include file from the directory appropriate to the +suffix of the file name of the window holding the text. +(The +.B Incl +command adds directories to the standard list.) +.PP +If the text begins with a colon, it is taken to be an address +within the body of the window containing the text. +The address is evaluated, the resulting text highlighted, and the mouse moved to it. +Thus, in +.IR acme , +one must type +.B :/regexp +or +.B :127 +not just +.B /regexp +or +.BR 127 . +(There is an easier way to locate literal text; see below.) +.PP +If the text is a file name followed by a colon and an address, +.I acme +loads the file and evaluates the address. For example, clicking button 3 anywhere +in the text +.B file.c:27 +will open +.BR file.c , +select line +27, and put the mouse at the beginning of the line. The rules about Error +files, directories, and so on all combine to make this an efficient way to +investigate errors from compilers, etc. +.PP +If the text is not an address or file, it is taken to +be literal text, which is then searched for in the body of the window +in which button 3 was clicked. If a match is found, it is selected and the mouse is +moved there. Thus, to search for occurrences of a word in a file, +just click button 3 on the word. Because of the rule of using the +selection as the button 3 action, subsequent clicks will find subsequent +occurrences without moving the mouse. +.PP +In all these actions, the mouse motion is not done if the text is a null string +within a non-null selected string in the tag, so that (for example) complex regular expressions +may be selected and applied repeatedly to the +body by just clicking button 3 over them. +.SS "Chords of mouse buttons +Several operations are bound to multiple-button actions. +After selecting text, with button 1 still down, pressing button 2 +executes +.B Cut +and button 3 executes +.BR Paste . +After clicking one button, the other undoes +the first; thus (while holding down button 1) 2 followed by 3 is a +.B Snarf +that leaves the file undirtied; +3 followed by 2 is a no-op. +These actions also apply to text selected by double-clicking because +the double-click expansion is made when the second +click starts, not when it ends. +.PP +Thus to copy a word a number of times, double click on the word with button 1 to highlight it leaving +button 1 down, press and release button 2 to cut it and save it in the snarf buffer, press and +release button 3 to paste it back and then release button 1. Now move the cursor to any selected +place in the text, press button 1 down, then button 3 and the word is copied in. +.PP +Similarly lines may be deleted by double clicking at the beginning or end of the line and then +pressing button 2 with button 1 still down. +.PP +Commands may be given extra arguments by a mouse chord with buttons 2 and 1. +While holding down button 2 on text to be executed as a command, clicking button 1 +appends the text last pointed to by button 1 as a distinct final argument. +For example, to search for literal +.B text +one may execute +.B Look text +with button 2 or instead point at +.B text +with button 1 in any window, release button 1, +then execute +.BR Look , +clicking button 1 while 2 is held down. +.PP +When an external command (e.g. +.IR echo (1)) +is executed this way, the extra argument is passed as expected and an +environment variable +.B $acmeaddr +is created that holds, in the form interpreted by button 3, +the fully-qualified address of the extra argument. +.SS "Support programs +.I win +creates a new +.I acme +window and runs a +.I command +(default +.BR /dis/sh.dis ) +in it, turning the window into a shell window in which commands may be executed. +Executing text in a +.I win +window with button +2 is similar to using +.BR Send . +.PP +Similarly +.I winm +creates a new window but runs the shell +.BR /dis/mash.dis +by default. +.I adiff +behaves as diff in finding the difference between two files but the listing uses +filename:linenumber format to allow the user to simply click on this to be sent to that line +in the file. +.I agrep +does for grep what adiff does for diff above. +.I cd +changes directory but when used in a win window for example, sends information to the +window to display a new heading reflecting the new directory. +.SS "Mail" +In the directory +.B /acme/mail +there are two mail programs that may be used under acme. These +.I Mail +and +.I Mailpop3 +can be run to display the user's current mail, read the mail, reply to mail, save or delete mail, +send mail and write the user's mail box. +.PP +The former expects the user's mail box to be in the directory and file specified as its first argument, +the latter uses the POP3 protocol to connect to a server for the user's mail and will prompt for a +password when first run. Otherwise their behaviour is the same. +.SS "Applications and guide files +In the directory +.B /acme +live several subdirectories, each corresponding to a program or +set of related programs that employ +.I acme's +user interface. +Each subdirectory includes dis files and a +.B readme +file for further information. +It also includes a +.BR guide , +a text file holding sample commands to invoke the programs. +The idea is to find an example in the guide that best matches +the job at hand, edit it to suit, and execute it. +.PP +Whenever a command is executed by +.IR acme , +the default search path includes the directory of the window containing +the command. +Also, +.I acme +binds the directory +.B /acme/dis +in front of +.B /dis +when it starts; this is where +.IR acme -specific +programs such as +.I win +reside. +.SH EDITING +This section explains the commands available when using acme's Edit command. +.PP +.SS Regular expressions +Regular expressions are as in +.IR regexp (6) +with the addition of +.BR \en +to represent newlines. +A regular expression may never contain a literal newline character. +The empty +regular expression stands for the last complete expression encountered. +A regular expression +matches the longest leftmost substring formally +matched by the expression. +Searching in the reverse direction is equivalent +to searching backwards with the catenation operations reversed in +the expression. +.SS Addresses +An address identifies a substring in a file. +In the following, `character +.IR n ' +means the null string +after the +.IR n -th +character in the file, with 1 the +first character in the file. +`Line +.IR n ' +means the +.IR n -th +match, +starting at the beginning of the file, of the regular expression +.LR .*\en? . +All files always have a current substring, called dot, +that is the default address. +.SS Simple Addresses +.PD0 +.TP +.BI # n +The empty string after character +.IR n ; +.B #0 +is the beginning of the file. +.TP +.I n +Line +.IR n ; +.B 0 +is the beginning of the file. +.TP +.BI / regexp / +.PD0 +.TP +.BI ? regexp ? +The substring that matches the regular expression, +found by looking toward the end +.RB ( / ) +or beginning +.RB ( ? ) +of the file, +and if necessary continuing the search from the other end to the +starting point of the search. +The matched substring may straddle +the starting point. +When entering a pattern containing a literal question mark +for a backward search, the question mark should be +specified as a member of a class. +.PD +.TP +.B 0 +The string before the first full line. +This is not necessarily +the null string; see +.B + +and +.B - +below. +.TP +.B $ +The null string at the end of the file. +.TP +.B . +Dot. +.TP +.B \&' +The mark in the file. +.TP +\fL"regexp"\fP +Preceding a simple address (default +.BR . ), +refers to the address evaluated in the unique file whose menu line +matches the regular expression. +.PD +.SS Compound Addresses +In the following, +.I a1 +and +.I a2 +are addresses. +.TF a1+a2 +.TP +.IB a1 + a2 +The address +.I a2 +evaluated starting at the end of +.IR a1 . +.TP +.IB a1 - a2 +The address +.I a2 +evaluated looking in the reverse direction +starting at the beginning of +.IR a1 . +.TP +.IB a1 , a2 +The substring from the beginning of +.I a1 +to the end of +.IR a2 . +If +.I a1 +is missing, +.B 0 +is substituted. +If +.I a2 +is missing, +.B $ +is substituted. +.TP +.IB a1 ; a2 +Like +.IB a1 , a2\f1, +but with +.I a2 +evaluated at the end of, and dot set to, +.IR a1 . +.PD +.PP +The operators +.B + +and +.B - +are high precedence, while +.B , +and +.B ; +are low precedence. +.PP +In both +.B + +and +.B - +forms, if +.I a2 +is a line or character address with a missing +number, the number defaults to 1. +If +.I a1 +is missing, +.L . +is substituted. +If both +.I a1 +and +.I a2 +are present and distinguishable, +.B + +may be elided. +.I a2 +may be a regular +expression; if it is delimited by +.LR ? 's, +the effect of the +.B + +or +.B - +is reversed. +.PP +It is an error for a compound address to represent a malformed substring. +Some useful idioms: +.IB a1 +- +(\f2a1-+\fP) +selects the line containing +the end (beginning) of a1. +.BI 0/ regexp / +locates the first match of the expression in the file. +(The form +.B 0;// +sets dot unnecessarily.) +.BI ./ regexp /// +finds the second following occurrence of the expression, +and +.BI .,/ regexp / +extends dot. +.SS Commands +In the following, text demarcated by slashes represents text delimited +by any printable +character except alphanumerics. +Any number of +trailing delimiters may be elided, with multiple elisions then representing +null strings, but the first delimiter must always +be present. +In any delimited text, +newline may not appear literally; +.B \en +may be typed for newline; and +.B \e/ +quotes the delimiter, here +.LR / . +Backslash is otherwise interpreted literally, except in +.B s +commands. +.PP +Most commands may be prefixed by an address to indicate their range +of operation. +Those that may not are marked with a +.L * +below. +If a command takes +an address and none is supplied, dot is used. +The sole exception is +the +.B w +command, which defaults to +.BR 0,$ . +In the description, `range' is used +to represent whatever address is supplied. +Many commands set the +value of dot as a side effect. +If so, it is always set to the `result' +of the change: the empty string for a deletion, the new text for an +insertion, etc. (but see the +.B s +and +.B e +commands). +.br +.ne 1.2i +.SS Text commands +.PD0 +.TP +.BI a/ text / +.TP +or +.TP +.B a +.TP +.I lines of text +.TP +.B . +Insert the text into the file after the range. +Set dot. +.PD +.TP +.B c\fP +.br +.ns +.TP +.B i\fP +Same as +.BR a , +but +.B c +replaces the text, while +.B i +inserts +.I before +the range. +.TP +.B d +Delete the text in the range. +Set dot. +.TP +.BI s/ regexp / text / +Substitute +.I text +for the first match to the regular expression in the range. +Set dot to the modified range. +In +.I text +the character +.B & +stands for the string +that matched the expression. +Backslash behaves as usual unless followed by +a digit: +.BI \e d +stands for the string that matched the +subexpression begun by the +.IR d -th +left parenthesis. +If +.I s +is followed immediately by a +number +.IR n , +as in +.BR s2/x/y/ , +the +.IR n -th +match in the range is substituted. +If the +command is followed by a +.BR g , +as in +.BR s/x/y/g , +all matches in the range +are substituted. +.TP +.BI m " a1 +.br +.ns +.TP +.BI t " a1 +Move +.RB ( m ) +or copy +.RB ( t ) +the range to after +.IR a1 . +Set dot. +.SS Display commands +.PD 0 +.TP +.B p +Print the text in the range. +Set dot. +.TP +.B = +Print the file name and line address of the range. +.TP +.B =# +Print the file name and character address of the range. +.PD +.SS File commands +.PD0 +.TP +.BI * " b " file-list +Set the current file to the first file named in the list +that +.I acme +has displayed. +The list may be expressed +.BI < "command" +in which case the file names are taken as words (in the shell sense) +generated by the command. +.TP +.BI * " B " file-list +Same as +.BR b , +except that file names not displayed are entered there, +and all file names in the list are examined. +.TP +.BI * " D " file-list +Delete the named files from the menu. +If no files are named, the current file is deleted. +It is an error to +.B D +a modified file, but a subsequent +.B D +will delete such a file. +.PD +.SS I/O Commands +.PD0 +.TP +.BI * " e " filename +Replace the file by the contents of the named external file. +Set dot to the beginning of the file. +.TP +.BI r " filename +Replace the text in the range by the contents of the named external file. +Set dot. +.TP +.BI w " filename +Write the range (default +.BR 0,$ ) +to the named external file. +.TP +.BI * " f " filename +Set the file name and print the resulting menu entry. +.PP +If the file name is absent from any of these, the current file name is used. +.B e +always sets the file name; +.B r +and +.B w +do so if the file has no name. +.TP +.BI < " command +Replace the range by the standard output of the command. +.TP +.BI > " command +Send the range to the standard input of the command. +.TP +.BI | " command +Send the range to the standard input, and replace it by +the standard output, of the command. +.TP +.BI * " cd " directory +Change working directory. +If no directory is specified, +.B $home +is used. +.PD +.PP +In any of +.BR < , +.BR > , +or +.BR | , +if the +.I command +is omitted the last +.I command +(of any type) is substituted. +.SS Loops and Conditionals +.PD0 +.TP +.BI x/ regexp / " command +For each match of the regular expression in the range, run the command +with dot set to the match. +Set dot to the last match. +If the regular +expression and its slashes are omitted, +.L /.*\en/ +is assumed. +Null string matches potentially occur before every character +of the range and at the end of the range. +.TP +.BI y/ regexp / " command +Like +.BR x , +but run the command for each substring that lies before, between, +or after +the matches that would be generated by +.BR x . +There is no default regular expression. +Null substrings potentially occur before every character +in the range. +.TP +.BI * " X/ regexp / " command +For each file whose menu entry matches the regular expression, +make that the current file and +run the command. +If the expression is omitted, the command is run +in every file. +.TP +.BI * " Y/ regexp / " command +Same as +.BR X , +but for files that do not match the regular expression, +and the expression is required. +.TP +.BI g/ regexp / " command +.br +.ns +.TP +.BI v/ regexp / " command +If the range contains +.RB ( g ) +or does not contain +.RB ( v ) +a match for the expression, +set dot to the range and run the command. +.PP +These may be nested arbitrarily deeply, but only one instance of either +.B X +or +.B Y +may appear in a \%single command. +An empty command in an +.B x +or +.B y +defaults to +.BR p ; +an empty command in +.B X +or +.B Y +defaults to +.BR f . +.B g +and +.B v +do not have defaults. +.PD +.SS Miscellany +.TF (empty) +.TP +.BI * " u " n +Undo the last +.I n +(default 1) +top-level commands that changed the contents or name of the +current file, and any other file whose most recent change was simultaneous +with the current file's change. +Successive +.BR u 's +move further back in time. +The only commands for which u is ineffective are +.BR cd , +.BR u , +.B w +and +.BR D . +If +.I n +is negative, +.B u +`redoes,' undoing the undo, going forwards in time again. +.TP +(empty) +If the range is explicit, set dot to the range. +If no address is specified (the +command is a newline) dot is extended in either direction to +line boundaries and printed. +If dot is thereby unchanged, it is set to +.B .+1 +and printed. +.PD +.SS Grouping and multiple changes +Commands may be grouped by enclosing them in braces +.BR {} . +Commands within the braces must appear on separate lines (no backslashes are +required between commands). +Semantically, an opening brace is like a command: +it takes an (optional) address and sets dot for each sub-command. +Commands within the braces are executed sequentially, but changes made +by one command are not visible to other commands (see the next +paragraph). +Braces may be nested arbitrarily. +.PP +When a command makes a number of changes to a file, as in +.BR x/re/c/text/ , +the addresses of all changes to the file are computed in the original file. +If the changes are in sequence, +they are applied to the file. +Successive insertions at the same address are catenated into a single +insertion composed of the several insertions in the order applied. +.SH FILES +.TF /appl/acme/acme/*/src +.TP +.B $home/acme.dump +default file for +.B Dump +and +.BR Load ; +also where state is written if +.I acme +dies unexpectedly. +.TP +.B /acme/*/guide +template files for applications +.TP +.B /acme/*/readme +informal documentation for applications +.TP +.B /appl/acme/acme/*/src +source for applications +.TP +.B /acme/dis +dis files for applications +.SH SOURCE +.B /appl/acme +.br +.B /appl/acme/acme/bin/src/win.b +.SH SEE ALSO +.IR acme (4) +.br +Rob Pike, +.IR "Acme: A User Interface for Programmers" ", Volume 2" +.SH BUGS +With the +.B -l +option or +.B Load +command, +the recreation of windows under control of external programs +such as +.I win +is just to rerun the command; information may be lost. diff --git a/static/inferno/man1/alphabet-abc.1 b/static/inferno/man1/alphabet-abc.1 new file mode 100644 index 00000000..9ab9f544 --- /dev/null +++ b/static/inferno/man1/alphabet-abc.1 @@ -0,0 +1,141 @@ +.TH ALPHABET-ABC 1 +.SH NAME +abc \- alphabet declarations +.SH SYNOPSIS +.EX +load alphabet +typeset /abc +type /abc +.EE +.SH DESCRIPTION +.B Grid +is a typeset for +.I alphabet +(see +.IR sh-alphabet (1)) +which enables +allows direct interconnection of +remote and local processing components. It defines one new type, +.BR endpoint , +which represents +a place in the network to which two parties can +connect and exchange data. +.PP +In the following descriptions, if a type +is not +.B endpoint +or a type defined in the root typeset (see +.IR alphabet-main (1)), +it is assumed to be of type +.BR /string . +.PP +Modules currently provided within +the +.B /grid +typeset include: +.TP 10 +\f5farm [\f5-lnkavA\fP] \fIendpoint\fP \fIaddr\fP \fItasktype\fP [\fIarg\fP...] -> \fIendpoint\fP +.B Farm +connects to a grid labour exchange (see +.IR scheduler (4)) +at +.IR addr , +starts a new job of type +.BR workflow , +and passes all the data read from +.I endpoint +to be processed by the currently available labour. +The data is split into records, each one of which will be +processed on a worker node by +.IR tasktype , +with its associated +.IR arg uments. +Other than +.BR -A , +which specifies unauthenticated access to the +scheduler, +the various options are all passed verbatim to +.IR workflow : +.B -l +causes it to split its input on newline-separated records; +.B -n +specifies that no record separation is necessary on output; +.B -k +specifies that intermediate data for failed tasks should +be kept around; +.B -a +specifies that intermediate data for all tasks should +be kept around, and +.B -v +specifies that +.I workflow +should produce a wordy description of what it is doing. +.TP +\f5local\fP \fIendpoint\fP -> \fI/fd\fP +.B Local +reads everything from +.IR endpoint , +and writes it to +.IR fd . +.TP +\f5remote\fP [-a \fIaddr\fP] \fIfd\fP -> \fIendpoint\fP +.B Remote +is the inverse of +.BR local : +it reads data from +.I fd +and writes it to a newly created endpoint. +If +.B -a +is given, +.I addr +specifies the network address of an endpoint server +on which to create the new endpoint. +.TP +\f5rexec\fP [\f5-A\fP] \fIendpoint\fP \fIaddr\fP \fIcmd\fP -> \fIendpoint\fP +.B Rexec +connects to a remote execution server at +.I addr +(unauthenticated if +.B -A +is specified), and arranges to execute the +.I alphabet +expression +.I cmd +there. The expression should be compatible with usage +.BR "fd -> fd" . +Data from the argument +.I endpoint +will be piped through this expression, and +made available as the resulting +.I endpoint +endpoint. +.SH EXAMPLES +The examples below that a local endpoint is available, and the following +.I alphabet +declarations: +.EX + load alphabet + typeset /grid + type /string /endpoint /fd + import /grid/local /grid/remote + autoconvert fd endpoint remote +.EE +Set up a rendering pipeline: +.EX + -{/read /tmp/somedata | + remote | + rexec tcp!node1!rexec "{(/fd); /filter $1 "{os render_stage1}} | + rexec tcp!node2!rexec "{(/fd); /filter $1 "{os render_stage2}} | + /create /tmp/somedata.result + } +.EE +.SH SOURCE +.BR /appl/alphabet/grid.b , +.BR /appl/alphabet/gridtypes.b +.br +.B /appl/cmd/grid/*.b +.SH SEE ALSO +.IR sh-alphabet (1), +.IR alphabet-main (1), +.IR sh (1) diff --git a/static/inferno/man1/alphabet-fs.1 b/static/inferno/man1/alphabet-fs.1 new file mode 100644 index 00000000..c530ef3f --- /dev/null +++ b/static/inferno/man1/alphabet-fs.1 @@ -0,0 +1,425 @@ +.TH ALPHABET-FS 1 +.SH NAME +fs \- file-hierarchy traversal +.SH SYNOPSIS +.EX +load alphabet +typeset /fs +type /fs/fs +type /fs/entries +type /fs/gate +type /fs/selector +.EE +.SH DESCRIPTION +.B Fs +is a typeset for +.I alphabet +(see +.IR sh-alphabet (1)) +which enables filtering of the contents of hierarchical filesystems. +.I Fs +defines four new types: +.TP 10 +.B fs +The complete contents of a filesystem. +.TP +.B entries +Information about the entries in a filesystem without +their content. +.TP +.B gate +A condition that can be used with conditional verbs. +A gate is open to entries satisfying particular +criteria. +.TP +.B selector +A comparator which compares two entries +and selects one, both or neither of them. +.PP +In the following description of the verbs provided, +an entry such as: +.TP 10 +.B print \fIentries\fP \fR->\fP status +.PP +describes a verb +.BR print , +which takes one argument of type +.IR entries , +and the result of which is of type +.BR status . +If the type is not one of those described above, +it should be taken to be of type +.IR string . +.PP +All types and modules names are taken to be relative to +the typeset root, +.BR /fs . +.PP +Modules defined within +.I fs +include: +.TP 10 +\f5and\fP \fIgate gate\fP [\fIgate\fP...] -> \fIgate\fP +.B And +is a gate that is open to an entry if all its arguments are open. +.TP +\f5bundle\fP \fIfs\fP -> \fIvoid\fP +.B Bundle +converts +.I fs +to an archival format and writes it to the standard output. +.TP +\f5compose\fP [\f5-d\fP] \fIop\fP -> \fIselector\fP +.B Compose +implements ``compositing''-style operators, useful when +merging filesystems. +.I Op +specifies the operator, taking its name from +the graphical Porter-Duff equivalent: +.BR AinB , +.BR AinB , +.BR BinA , +.BR AoutB , +.BR BoutA , +.BR A , +.BR AoverB , +.BR AatopB , +.BR AxorB , +.BR B , +.BR BoverA , +or +.BR BatopA. +For instance, +.B AinB +gives the intersection of A and B; +.B AatopB +gives A whereever both A and B exist, and B otherwise. +When used as a selector for +.BR merge , +operators that exclude +the union of A and B are not very useful, as they will +exclude all common directories at the top level. +Given the +.B -d +option, compose will allow through directories that +would otherwise be excluded in this way, making +operators such as +.B AxorB +(all that A does not hold in common with B) +more useful, although accurate only for regular files. +.TP +\f5depth\fP \fIn\fP -> \fIgate\fP +.B Depth +is a gate open only to entries which are within +.I n +levels of the root of the filesystem. +.TP +\f5entries\fP \fIfs\fP -> \fIentries\fP +.B Entries +produces all the entries contained within +.IR fs . +.TP +\f5filter\fP [\f5-d\fP] \fIfs\fP\fIgate\fP -> \fIfs\fP +The result of +.B filter +is a filesystem from which all entries that will +not pass through +.IR gate , +and their descendents, have been removed. +If the +.B -d +flag is given, only files are filtered \- directories bypass the gate. +.TP +\f5ls\fP [\f5-um\fP] \fIentries\fP -> \fIvoid\fP +Print each entry in the style of +.B ls -l +(see +.IR ls (1)). +If the +.B -u +flag is given, the file access time rather than the file modification time +will be printed. If the +.B -m +flag is given, the name of the user that last modified the file +is printed too. +.TP +\f5exec\fP [\f5-pP\fP] [\f5-t\fP \fIcmd\fP] [\f5-n\fP \fIn\fP] \fIentries cmd\fP -> \fIvoid\fP +Run its argument +.I cmd +for each entry in +.I entries . +If the +.B -n +flag is specified, +.B exec +will try to gather +.I n +entries together before invoking the command (default 1). +The environent variable +.B $file +is set to the names of the entries that have been gathered. +If the +.B -p +flag is given, environment variables are set giving information +about the mode, owner, modification time and size of the entry +(they are named after the equivalent field +names in the +.B Dir +structure; see +.IR sys-stat (2)). +This option is only valid when +.I n +is 1. +The +.B -P +flag causes all the other fields in the Dir structure to be included too. +Note that the command is run in the same shell context each time, +so environment variable set on one execution can +be retrieved on the next. The +.B -t +flag can be used to specify a command which will be executed +just before termination. +.TP +\f5match\fP [\f5-ar\fP] \fIpattern\fP -> \fIgate\fP +.B Match +is a gate that is open if the entry's filename +matches the +.IR pattern . +If the +.B -a +flag is given, the whole path will be used +for the match. +If +.B -r +is specified, the pattern is evaluated as a regular expression, +otherwise it is a shell-style pattern in the style of +.IR filepat (2). +.TP +\f5merge\fP [\f5-1\fP] [\f5-c\fP \fIselector\fP] \fIfs fs\fP [\fIfs\fP...] -> \fIfs\fP +Recursively merge the contents of its argument +filesystems. +.I Selector +is consulted to see which entries are chosen for the result; +if not given, entries are resolved in favour of the first filesystem +(equivalent to +.BR "{compose AoverB}"). +If the +.B -1 +flag is given, merging takes place only in the top-level directory. +.TP +\f5mode\fP \fIspec\fP -> \fIgate\fP +.B Mode +is a gate that lets through entries whose file permissions +satisfy +.IR spec , +which is a string in the style of +.IR chmod (1). +If the +.I op +field is +.BR + , +the specified permissions must be present; if +.BR - , +they must be absent, and if +.BR = , +they must be exactly as given. +The directory and auth modes are specified with +the characters ``\f5d\fP'' and ``\f5A\fP'' +respectively. +.TP +\f5not\fP \fIgate\fP -> \fIgate\fP +.B Not +is a gate open to an entry if its argument is not. +.TP +\f5or\fP \fIgate gate\fP [\fIgate\fP...] -> \fIgate\fP +.B Or +is a gate open to an entry if any argument is open. +.TP +\f5path\fP [\f5-x\fP] \fIpath\fP... -> \fIgate\fP +.B Path +is a gate open to an entry whose full pathname +is an ancestor or a descendent of any +.IR path. +If +.B -x +is specified, the gate is open to any path +.I except +descendents of the paths given. +.TP +\f5pipe\fP [\f5-1pP\fP] \fIfs cmd\fP -> \fIstatus\fP +.B Pipe +is similar to exec, except that the contents of all files +in +.I fs +are piped through +.IR cmd . +Unless the +.B -1 +option is given, +.I cmd +is started once for each file, with +.B $file +set to its name, and other environment variables +set according to the +.B -p +or +.B -P +options, as for +.BR exec . +If the +.B -1 +option is specified, +.I cmd +is started once only \- all file data is piped through that. +.TP +\f5print\fP \fIentries\fP -> \fIfd\fP +Print the path name of each entry to +.IR fd . +.TP +\f5proto\fP [\f5-r\fP \fIroot\fP] \fIprotofile\fP -> \fIfs\fP +Evaluate +.I protofile +as a +.IR mkfs (8) +.I proto +file. If +.I root +is specified, it will be used as the root of the resulting +.IR fs . +.TP +\f5query\fP \fIcmd\fP -> \fIgate\fP +.B Query +is a gate that runs +.I cmd +to determine whether it is open: an empty +exit status from the command yields an open gate. +The environment variable +.B $file +is set for the command to the path name of the entry that is being queried for. +.TP +\f5run\fP \fIcmd\fP -> \fIstring\fP +.B Run +runs +.I cmd +and substitutes the value of the environment variable +.B $s +after its invocation. +.B $s +must have exactly one element. +.TP +\f5select\fP \fIgate entries\fP -> \fIentries\fP +Select only those entries within +.I entries +that will pass through +.IR gate . +Descendents of elided entries are not affected. +.TP +\f5setroot\fP [\f5-c\fP] \fIfs\fP \fIpath\fP -> \fIfs\fP +.B Setroot +sets the name of the root directory of +.IR fs . +If the +.B -c +flag is given, the elements in the root directory +will be made explicit in the hierarchy (i.e. the +name of the top directory will not contain any +.B / +characters). +.TP +\f5size\fP \fIentries\fP -> \fIfd\fP +Print the sum of the size of all entries, in bytes to +.IR fd . +.TP +\f5unbundle\fP \fIfd\fP -> \fIfs\fP +.B Unbundle +reads an archive as produced by +.B bundle +from +.IR fd ; +its result is the contents of the filesystem that was +originally bundled. +.TP +\f5walk\fP \fIpath\fP -> \fIfs\fP +.B Walk +produces a filesystem that is the result of +traversing all the files and directories underneath +.IR path . +.TP +\f5write\fP \fIfs dir\fP -> \fIvoid\fP +Write the contents of +.I fs +to the filesystem rooted at +.I dir . +If +.I dir +is empty, +.I fs +will be written to the root directory originally associated with fs. +.SH EXAMPLES +The examples below assume the following +.I alphabet +declarations: +.EX + load alphabet + typeset /fs + type /string /fd /fs/fs /fs/entries /fs/gate + import /fs/size /fs/walk /fs/select /fs/mode /fs/merge + import /fs/compose /fs/exec /fs/bundle /fs/write /fs/unbundle + import /fs/print /fs/depth /fs/filter /fs/query + autoconvert string fs walk + autoconvert fs entries /fs/entries + autoconvert string gate /fs/match + autoconvert entries fd /fs/print + autoconvert fd /status {(/fd); /print $1 1} +.EE +Print the size of all files below the current directory: +.EX + -{size .} +.EE +Show the names of all files in x that aren't in y: +.EX + -{walk x | merge -c {compose -d AoutB} y | select {mode -d}} +.EE +Remove all files from /appl ending in +.BR .dis : +.EX + -{walk /appl | select '*.dis' | exec "{rm $file}} +.EE +Recursively copy the current directory to +.BR /tmp/foo . +.EX + -{write . /tmp/foo} +.EE +Interactively remove all regular files from one level of the current directory: +.IP +.EX + -{walk . | + filter {depth 1} | + select {mode -d} | + select { + query "{echo -n $file:; ~ `{read} y yes} + } | + exec "{rm $file} + } +.EE +.PP +Create a new archive containing those files from below the current directory +that were held in an old archive: +.EX + -{merge -c {compose AinB} . {unbundle old.bundle} | + bundle | + /create new.bundle + } +.EE +.SH SOURCE +.BR /appl/alphabet/fs.b , +.BR /appl/alphabet/fstypes.b +.BR /appl/alphabet/auxi/fsfilter.b +.br +.B /appl/cmd/fs/*.b +.br +.SH SEE ALSO +.IR sh-alphabet (1), +.IR alphabet-main (1), +.IR alphabet-fs (2), +.IR sh (1) diff --git a/static/inferno/man1/alphabet-grid.1 b/static/inferno/man1/alphabet-grid.1 new file mode 100644 index 00000000..4b1aa4ba --- /dev/null +++ b/static/inferno/man1/alphabet-grid.1 @@ -0,0 +1,141 @@ +.TH ALPHABET-GRID 1 +.SH NAME +grid \- peer-to-peer data distribution +.SH SYNOPSIS +.EX +load alphabet +typeset /grid +type /grid/endpoint +.EE +.SH DESCRIPTION +.B Grid +is a typeset for +.I alphabet +(see +.IR sh-alphabet (1)) +which enables +allows direct interconnection of +remote and local processing components. It defines one new type, +.BR endpoint , +which represents +a place in the network to which two parties can +connect and exchange data. +.PP +In the following descriptions, if a type +is not +.B endpoint +or a type defined in the root typeset (see +.IR alphabet-main (1)), +it is assumed to be of type +.BR /string . +.PP +Modules currently provided within +the +.B /grid +typeset include: +.TP 10 +\f5farm [\f5-lnkavA\fP] \fIendpoint\fP \fIaddr\fP \fItasktype\fP [\fIarg\fP...] -> \fIendpoint\fP +.B Farm +connects to a grid labour exchange (see +.IR scheduler (4)) +at +.IR addr , +starts a new job of type +.BR workflow , +and passes all the data read from +.I endpoint +to be processed by the currently available labour. +The data is split into records, each one of which will be +processed on a worker node by +.IR tasktype , +with its associated +.IR arg uments. +Other than +.BR -A , +which specifies unauthenticated access to the +scheduler, +the various options are all passed verbatim to +.IR workflow : +.B -l +causes it to split its input on newline-separated records; +.B -n +specifies that no record separation is necessary on output; +.B -k +specifies that intermediate data for failed tasks should +be kept around; +.B -a +specifies that intermediate data for all tasks should +be kept around, and +.B -v +specifies that +.I workflow +should produce a wordy description of what it is doing. +.TP +\f5local\fP \fIendpoint\fP -> \fI/fd\fP +.B Local +reads everything from +.IR endpoint , +and writes it to +.IR fd . +.TP +\f5remote\fP [-a \fIaddr\fP] \fIfd\fP -> \fIendpoint\fP +.B Remote +is the inverse of +.BR local : +it reads data from +.I fd +and writes it to a newly created endpoint. +If +.B -a +is given, +.I addr +specifies the network address of an endpoint server +on which to create the new endpoint. +.TP +\f5rexec\fP [\f5-A\fP] \fIendpoint\fP \fIaddr\fP \fIcmd\fP -> \fIendpoint\fP +.B Rexec +connects to a remote execution server at +.I addr +(unauthenticated if +.B -A +is specified), and arranges to execute the +.I alphabet +expression +.I cmd +there. The expression should be compatible with usage +.BR "fd -> fd" . +Data from the argument +.I endpoint +will be piped through this expression, and +made available as the resulting +.I endpoint +endpoint. +.SH EXAMPLES +The examples below that a local endpoint is available, and the following +.I alphabet +declarations: +.EX + load alphabet + typeset /grid + type /string /endpoint /fd + import /grid/local /grid/remote + autoconvert fd endpoint remote +.EE +Set up a rendering pipeline: +.EX + -{/read /tmp/somedata | + remote | + rexec tcp!node1!rexec "{(/fd); /filter $1 "{os render_stage1}} | + rexec tcp!node2!rexec "{(/fd); /filter $1 "{os render_stage2}} | + /create /tmp/somedata.result + } +.EE +.SH SOURCE +.BR /appl/alphabet/grid.b , +.BR /appl/alphabet/gridtypes.b +.br +.B /appl/cmd/grid/*.b +.SH SEE ALSO +.IR sh-alphabet (1), +.IR alphabet-main (1), +.IR sh (1) diff --git a/static/inferno/man1/alphabet-main.1 b/static/inferno/man1/alphabet-main.1 new file mode 100644 index 00000000..1d53323b --- /dev/null +++ b/static/inferno/man1/alphabet-main.1 @@ -0,0 +1,240 @@ +.TH ALPHABET-MAIN 1 +.SH NAME +main \- operators on the basic Alphabet types +.SH SYNOPSIS +.EX +load alphabet +type /string +type /fd +type /wfd +type /status +type /cmd +.br +.SH DESCRIPTION +.I Main +refers to operators defined +.IR Alphabet 's +(see +.IR sh-alphabet (1)) +root typeset +.RB ( / ). +.PP +In the following description of the modules provided, +an entry such as: +.TP 10 +.B echo \fIstring\fP \fR->\fP fd +.PP +describes a verb +.BR echo , +which takes one argument of type +.IR string , +and the result of which is of type +.BR fd . +If the type is not one of those described above, +it should be taken to be of type +.IR string . +.PP +All types and modules names are taken to be relative to +the typeset root, +.BR / . +.PP +Modules defined within +.I main +include: +.TP 10 +\f5auth\fP [\f5-v\fP] [\f5-k\fP \fIkeyfile\fP] [\f5-C\fP \fIalg\fP] \fIwfd\fP -> \fIwfd\fP +.B Auth +authenticates to a server connected to its argument +.IR wfd , +and optionally adds encryption to the stream. +If +.I keyfile +is given, it gives the filename of a key file (by default +.BI /usr/ user /keyring/default +is used). +If +.I alg +is given, it specifies the encryption/hash algorithm to +push (e.g. +.BR rc4_256/md5 ). +If the +.B -v +flag is given, +.B auth +will print the name of the authenticated user to its diagnostic stream. +.TP +\f5cat\fP [\fIfd\fP...] -> \fIfd\fP +.B Cat +reads all the data from each +.I fd +in sequence +and writes it to its resulting +.IR fd . +.TP +\f5create\fP \fIfd\fP \fIf\fP -> \fIstatus\fP +.B Create +creates a file named +.I f +and writes to it all the data from +.IR fd . +.I Status +will be empty if the writing has completed successfully. +.TP +\f5dial\fP \fIaddr\fP -> \fIwfd\fP +.B Dial +makes a connection to network address +.IR addr +(see +.IR dial (2) +for the address format), +and returns the resulting connection. +.TP +\f5echo\fP [-\fIn\fP] \fIstring\fP -> \fIfd\fP +.B Echo +writes its argument +.I string +to its resulting +.IR fd . +If the +.B -n +option is given, no newline will be appended. +.TP +\f5export\fP \fIdir\fP -> \fIwfd\fP +.B Export +exports the namespace rooted at +.I dir +and serves it as a styx service on +.IR wfd . +.TP +\f5fd\fP \fIn\fP -> \fIwfd\fP +.B Fd +takes file descriptor +.IR n , +and makes it available for reading and/or writing +as +.IR wfd . +.TP +\f5filter\fP \fIfd\fP \fIcmd\fP \fIarg\fP... -> \fIfd\fP +.B Filter +starts the shell command +.IR cmd , +and pipes through this all the data from its +argument +.I fd +to its resulting +.IR fd . +The provided +.IR arg uments +are accessible in the shell command as +.BR $* . +.TP +\f5mount\fP [\f5-abc\fP] [\f5-x\fP \fIaname\fP] \fIwfd\fP \fIdir\fP -> \fIstatus\fP +.B Mount +mounts a connection to a styx server (\fIwfd\fP) +onto +.IR dir . +The meaning of the +.BR -a , +.BR -b , +and +.B -c +flags is the same as for +.IR mount (1). +.IR Aname , +if given, gives the attach name that will be passed with the mount request. +'\".TP +'\"\f5par\fP \fIstatus\fP... -> \fIstatus\fP +'\".B Par +'\"allows all its arguments to run in parallel. +'\"Its exit status is that of the last argument that +'\"returned a non-clean status. +.TP +\f5parse\fP \fIstring\fP -> \fIcmd\fP +.B Parse +parses +.I string +as a shell command or alphabet expression, +and returns the result. +.TP +\f5print\fP \fIfd\fP \fIn\fP -> \fIstatus\fP +.B Print +writes all the data from +.I fd +to file descriptor +.IR n . +.TP +\f5pretty\fP \fIcmd\fP -> \fIstring\fP +.B Pretty +returns a string representation of the alphabet expression +.IR cmd +which is intended to be easier to read. +.TP +\f5read\fP \fIf\fP -> \fIfd\fP +.B Read +reads the data from file +.I f +and writes it to its resulting +.IR fd . +.TP +\f5rewrite\fP [\f5-d\fP \fIdsttype\fP] \fIcmd\fP \fIcmd\fP -> \fIcmd\fP +.B Rewrite +rewrites an alphabet expression to its canonical form, +applying all auto-conversions, expanding all definitions, +expanding pipe notation and checking that all types are compatible. +The first +.I cmd +argument +gives the +.I alphabet +expression to be rewritten; +the second +.I cmd +should contain shell commands acceptable to +.IR sh-alphabet (1), +declaring all the modules used in the expression. +If +.I dsttype +is given, it specifies the return type of the final expression; +auto-conversions will be applied to attain this type, if possible. +'\".TP +'\"\f5seq\fP [\f5-ao\fP] \fIstatus\fP... -> \fIstatus\fP +'\".B Seq +'\"allows each of its arguments to run in sequence. +'\"If the +'\".B -a +'\"flag is given, the first non-clean status it encounters +'\"will cause it to terminate all subsequent arguments. +'\"If the +'\".B -o +'\"flag is given, the first +'\".I clean +'\"status does the same. +'\"Note that some commands (e.g. +'\".BR create ) +'\"do some work regardless of sequence. +'\"The resulting status is that of the last command +'\"that was not terminated. +.TP +\f5unparse\fP \fIcmd\fP -> \fIstring\fP +.B Unparse +is the inverse operation to +.BR parse : +it converts +.I cmd +to a string, and returns the result. +.TP +\f52fd\fP \fIwfd\fP -> \fIfd\fP +.B 2fd +converts the read-write file +.I wfd +to the +read-only +.IR fd . +.SH SOURCE +.BR /appl/alphabet/alphabet.b +.br +.B /appl/alphabet/main/*.b +.SH SEE ALSO +.IR sh-alphabet (1), +.IR alphabet-main (2), +.IR sh (1) diff --git a/static/inferno/man1/ar.1 b/static/inferno/man1/ar.1 new file mode 100644 index 00000000..fcd68f98 --- /dev/null +++ b/static/inferno/man1/ar.1 @@ -0,0 +1,163 @@ +.TH AR 1 +.SH NAME +ar \- archive maintainer +.SH SYNOPSIS +.B ar +.I key +[ +.I posname +] +.I afile +[ +.I file ... +] +.SH DESCRIPTION +.I Ar +maintains groups of files +combined into a single archive file, +.IR afile . +The main use of +.I ar +is to produce and manipulate UNIX archive files, for instance to create +program packages for Debian Linux. +Note that only +.IR iar (10.1) +can manage archives used as object file libraries by the Inferno and Plan 9 loaders. +.PP +.I Key +is one character from the set +.BR drqtpmx , +optionally concatenated with +one or more of +.BR vuaibclo . +The +.I files +are constituents of the archive +.IR afile . +The meanings of the +.I key +characters are: +.TP +.B d +Delete +.I files +from the archive file. +.TP +.B r +Replace +.I files +in the archive file, or add them if missing. +Optional modifiers are +.RS +.PD0 +.TP +.B u +Replace only files with +modified dates later than that of +the archive. +.TP +.B a +Place new files after +.I posname +in the archive rather than at the end. +.TP +.BR b " or " i +Place new files before +.I posname +in the archive. +.RE +.PD +.TP +.B q +Quick. Append +.I files +to the end of the archive without checking for duplicates. +Avoids quadratic behavior in +.LR "for (i in *.v) ar r lib.a $i" . +.TP +.B t +List a table of contents of the archive. +If names are given, only those files are listed. +.TP +.B p +Print the named files in the archive. +.TP +.B m +Move the named files to the end or elsewhere, +specified as with +.LR r . +.TP +.B o +Preserve the access and modification times of files +extracted with the +.B x +command. +.TP +.B x +Extract the named files. +If no names are given, all files in the archive are +extracted. +In neither case does +.B x +alter the archive file. +.TP +.B v +Verbose. +Give a file-by-file +description of the making of a +new archive file from the old archive and the constituent files. +With +.BR p , +precede each file with a name. +With +.BR t , +give a long listing of all information about the files, +somewhat like a listing by +.IR ls (1), +showing +.br +.ns +.IP +.B + mode uid/gid size date name +.TP +.B c +Create. +Normally +.I ar +will create a new archive when +.I afile +does not exist, and give a warning. +Option +.B c +discards any old contents and suppresses the warning. +.SH EXAMPLE +.TP +.L +ar cr arch.a manifest *.tar.gz +Replace the contents of +.L arch.a +with the +.B manifest +file and all the +.IR gzip (1)'d +.I tar +files in the current directory. +.SH FILES +.TF /tmp/art.*.* +.TP +.B /tmp/art.*.* +temporaries +.SH SOURCE +.B /appl/cmd/ar.b +.SH "SEE ALSO" +.IR 2l (10.1), +.IR iar (10.1), +.IR ar (10.6) +.SH BUGS +If the same file is mentioned twice in an argument list, +it may be put in the archive twice. +.br +The file format used by this command is taken from UNIX, and +makes some invalid assumptions, +for instance that user IDs are numeric. diff --git a/static/inferno/man1/asm.1 b/static/inferno/man1/asm.1 new file mode 100644 index 00000000..27be87a8 --- /dev/null +++ b/static/inferno/man1/asm.1 @@ -0,0 +1,48 @@ +.TH ASM 1 +.SH NAME +asm, disdump \- Dis assembler, Dis disassembler +.SH SYNOPSIS +.B asm +.RB [ -l ] +.I file +.br +.B disdump +.IR file ... +.SH DESCRIPTION +.I Asm +reads one Dis assembly language +.I file +and translates it +into instructions for the Dis virtual machine. +The output is written to a file whose name is created +by taking the last element +of the input file, stripping any extension, and appending +.B \&.dis +For example, the output file for +.B abc +would be +.BR abc.dis ; +the output file for +.BR dir/def.s , +would be +.BR def.dis . +.PP +The assembler has one option: +.TP +.B -l +Generate a listing, showing the generated object code. +.PP +.I Disdump +prints to the standard output the Dis virtual machine +instructions in each of its Dis +.I file +arguments. +.SH SOURCE +.B /appl/cmd/asm +.br +.B /appl/cmd/disdump.b +.SH "SEE ALSO" +.IR emu (1), +.IR limbo (1) +.PP +``The Dis Virtual Machine'' in Volume 2. diff --git a/static/inferno/man1/auplay.1 b/static/inferno/man1/auplay.1 new file mode 100644 index 00000000..bb3a2259 --- /dev/null +++ b/static/inferno/man1/auplay.1 @@ -0,0 +1,120 @@ +.TH AUPLAY 1 +.SH NAME +auplay, auhdr, raw2iaf, wav2iaf \- basic audio output and conversion +.SH SYNOPSIS +.B auplay +.I file +\&... +.PP +.B auhdr +.I file +\&... +.PP +.B raw2iaf +[ +.I option +\&... +] [ +.B -o +.I output +] +.I input +.PP +.B wav2iaf +[ +.I input +] +.PP +.B wav2iaf +.SH DESCRIPTION +.I Auplay +plays each +.I file +in turn on the audio device +.B /dev/audio +(see +.IR audio (3)), +setting the device's characteristics in +.B /dev/audioctl +to match those of the +.IR file . +It uses +.I stream +(see +.IR sys-read (2)) +to stream the data to the device at high priority. +All files played must be in `Inferno audio format', +as defined by +.IR audio (6). +.PP +.I Auhdr +writes the header of each Inferno audio +.I input +file to the standard output. +The header describes the data in a form that can be written directly to +.BR /dev/audioctl +to set the device's characteristics. +.PP +.I Raw2iaf +converts the +.I input +file, adds an appropriate header to describe the data +in the Inferno format, and writes the result to the +.I output +file. +The options tell how the bytes in the input file should be interpreted: +.TP +.B -8 +rate is 8000 Hz +.TP +.B -1 +rate is 11025 Hz +.TP +.B -2 +rate is 22050 Hz +.TP +.B -4 +rate is 44100 Hz +.TP +.B -m +mono (one channel) +.TP +.B -s +stereo (two channels) +.TP +.B -b +each sample in each channel is one byte (unsigned) +.TP +.B -w +each sample in each channel is 16-bits (little-endian) +.TP +.B -a +input is a-law encoded +.TP +.B -u +input is \(*m-law encoded +.TP +.B -p +input is PCM encoded +.PP +.I Wav2iaf +reads the +.I input +file, which must be in Windows WAV format and encoded using PCM, +and converts the data to Inferno format +on the standard output. +.SH SOURCE +.B /appl/cmd/auplay.b +.br +.B /appl/cmd/raw2iaf.b +.br +.B /appl/cmd/wav2iaf.b +.SH SEE ALSO +.IR sys-read (2), +.IR audio (3), +.IR audio (6) +\" sets rate, chans, bits, enc +.\" raw2iaf: -8 8000 -1 11025 -2 22050 -4 44100 -m [chan=1] -s [chan=2] -b [byte] -w [16-bit] -a [alaw] -u [ulaw] -p [pcm] [-o output|-] [input|-] +.\" %s -8124 -ms -bw -aup -o out in +.\" wav2iaf [infile] + diff --git a/static/inferno/man1/avr.1 b/static/inferno/man1/avr.1 new file mode 100644 index 00000000..13f83747 --- /dev/null +++ b/static/inferno/man1/avr.1 @@ -0,0 +1,47 @@ +.TH AVR 1 +.SH NAME +avr \- Atmel AVR support +.SH SYNOPSIS +.B avr/burn +.RB [ -e ] +.RB [ -r ] +[ +.BI "-d " device +] +.I file.srec +.SH DESCRIPTION +Currently there is just one Inferno application to support Atmel AVRs +but others should appear. +.PP +.I Burn +initialises or verifies the contents of an Atmel ATmega128 AVR. +The programming board must be connected to a serial port (see +.IR eia (3)), +.B /dev/eia0 +by default. +.I File.srec +is a file containing the desired flash contents in Motorola S-record format, +as produced by +.IR ms2 (10.1). +By default, +.I burn +erases the AVR chip (both flash and EEPROM), then loads the flash with the contents of +.IR file.srec . +The +.B -e +option stops +.I burn +from erasing first, allowing additional code or data to be loaded (but only into an already-erased region). +If the +.B -r +option is given, +.I burn +instead compares the contents of the AVR with the data in +.IR file.srec . +.I Burn +supports the MIB510 programming board from Crossbow Technology Inc. +.SH SOURCE +.B /appl/cmd/avr/burn.b +.SH "SEE ALSO" +.IR eia (3), +.IR ms2 (10.1) diff --git a/static/inferno/man1/basename.1 b/static/inferno/man1/basename.1 new file mode 100644 index 00000000..914f799b --- /dev/null +++ b/static/inferno/man1/basename.1 @@ -0,0 +1,40 @@ +.TH BASENAME 1 +.SH NAME +basename \- strip file name affixes +.SH SYNOPSIS +.B basename +[ +.B -d +] +.I string +[ +.I suffix +] +.SH DESCRIPTION +.I Basename +deletes any prefix ending in slash +.RB ( / ) +and the +.IR suffix , +if present in +.IR string , +from +.IR string , +and prints the result on the standard output. +.PP +The +.B -d +option instead prints the directory component, +that is, +.I string +up to but not including the final slash. +If the string contains no slash, +the current directory name +.L . +is printed. +.SH SOURCE +.B /appl/cmd/basename.b +.SH SEE ALSO +.IR cleanname (1), +.IR pwd (1), +.IR names (2) diff --git a/static/inferno/man1/bind.1 b/static/inferno/man1/bind.1 new file mode 100644 index 00000000..4ef46a55 --- /dev/null +++ b/static/inferno/man1/bind.1 @@ -0,0 +1,283 @@ +.TH BIND 1 +.SH NAME +bind, mount, unmount \- change name space +.SH SYNOPSIS +.B bind +[ +.I option ... +] +.I source target +.PP +.B mount +[ +.I option ... +] +.I source target +[ +.I spec +] +.PP +.B unmount +[ +.I source +] +.I target +.SH DESCRIPTION +The +.IR bind +and +.IR mount +commands modify the file name space of the current process +and other processes in the same name space group +(see +.IR sys-pctl (2)). +For both calls, +.I target +is the name of an existing file or directory in the +current name space where the modification is to be made. +.PP +For +.IR bind , +.I source +is the name of an existing file or directory in the current name space. +After a successful +.IR bind , +the file name +.I target +is an alias for the object originally named by +.IR source ; +if the modification doesn't hide it, +.I source +will also still refer to its original file. +The evaluation of +.I source +(see +.IR sys-intro (2)) +happens at the time of the +.IR bind , +not when the binding is later used. +.PP +Both +.I source +and +.I target +files must be of the same type: either both directories or both files. +.PP +For +.IR mount, +.I source +can be a +shell command, +a network address, +or a file name. +If +.I source +is surrounded by brace characters +.RB ( { +and +.BR } ), +it is invoked as a +.IR sh (1) +command and its standard input is mounted (no +authentication takes place in this case). +If +.I source +contains an exclamation mark +.RB ( ! ), +or there is no file of that name, +it is assumed to be a network address for a machine acting +as a file server. +This argument should then conform to the conventions +described in +.IR dial (2). +Otherwise +.I source +should be the name of a file that when opened gives a connection +to a file server, something serving the 9P protocol +described in +.IR intro (5), +formerly called `Styx'. +The optional +.I spec +argument to +.I mount +is passed in the +.IR attach (5) +message and selects amongst different file trees offered by the server. +.PP +The effects of +.I bind +and +.I mount +can be undone by +.IR unmount . +If two arguments are given to +.IR unmount , +the effect is to undo a +.I bind +or +.I mount +with the same arguments. If only one argument is given, everything bound to or mounted on +.I target +is unmounted. +.PP +By default, +.I bind +and +.IR mount +replace the +.I target +file by the new one, +.IR source . +Henceforth, an evaluation of the pathname +.I target +will be translated to the new file. +If they are directories (for +.IR mount , +this condition is true by definition), +.I target +becomes a +.I "union directory" +consisting of one directory (the +.IR source +directory). +.PP +A union directory unites the contents of the source and target directories. +If the same name appears in both directories, the name used is the one in the +directory that is bound before the other. +In particular, if the directories have subdirectories of the same name, only +the contents of the subdirectory in the top directory will be seen. +If the subdirectory contents are themselves to be united, that must be done +first in a separate +.I bind +or +.IR mount . +.PP +Note that the +.B # +character in the name of a kernel device +must be quoted when used in a +.I bind +or +.I unmount +command, or the shell will take it as the start of a comment. +.PP +Options control aspects of the modification to the name space: +.TP +.B -b +Both files must be directories. +Add the +.IR source +directory to the beginning +of the union directory represented by the +.IR target +directory. +.TP +.B -a +Both files must be directories. +Add the +.IR +source +directory to the end +of the union directory represented by the +.IR target +directory. +.TP +.B -c +This can be used in addition to any of the above to permit +creation in a union directory. +When a new file is created in a union directory, +it is placed in the first element of the union that has been +bound or mounted with the +.B -c +option. +If that directory has not got write permission, +the create fails. +.TP +.B -q +Exit quietly without printing a diagnostic if the bind or mount fails. +.TP +.B -A +For +.I mount +only. Do not authenticate the connection to the server before proceeding with +.IR mount . +Otherwise the connection is authenticated by +.IR security-auth (2). +.TP +.BI -C " alg" +For +.I mount +only, +specify the algorithm, +.IR alg , +to be used following authentication for digesting or encryption. See +.IR ssl (3) +for the supported algorithms. +The default is +.BR none : +.IR ssl (3) +is not used after authentication. +.TP +.BI -k " kfile " +For mount only, specify the keyfile to be used when authenticating. +The default is +.BI /usr/ user /keyring/default . +See +.IR keyring-auth (2) +for more details. +(If the +.B -9 +option is given, this option is interpreted differently: see below.) +.TP +.B -9 +For +.I mount +only, and only when hosted on Plan 9. +.I Source +is a Plan 9 file server; use Plan 9's +.I factotum +as authentication agent to authenticate the mount. +(Note that a Plan 9 file service that is known not to authenticate can be mounted from +any Inferno host, by using the +.B -A +option to suppress Inferno authentication.) +The existing Plan 9 file servers do not encrypt connections, so the +.B -C +option is ignored. +The value of the +.B -k +option is added to the key specification for +.IR factotum (4) +for authentication. +.TP +.B -P +When +.I source +is a network address, use +.IR styxpersist (2) +to try to simulate a permanent connection, even should the server reboot. +Note the caveats on that page. +.TP +.B -o +For +.I mount +only, +the file server serves the 1995 version of Inferno's Styx protocol, and +.I mount +inserts a process that translates to the current version. +.SH SOURCE +.B /appl/cmd/bind.b +.br +.B /appl/cmd/mount.b +.br +.B /appl/cmd/unmount.b +.SH SEE ALSO +.IR sh (1), +.IR dial (2), +.IR keyring-auth (2), +.IR security-auth (2), +.IR sys-intro (2), +.IR sys-bind (2), +.IR intro (3), +.IR getauthinfo (8) diff --git a/static/inferno/man1/blur.1 b/static/inferno/man1/blur.1 new file mode 100644 index 00000000..3275c215 --- /dev/null +++ b/static/inferno/man1/blur.1 @@ -0,0 +1,74 @@ +.TH BLUR 1 +.SH NAME +blur \- an example program to demonstrate splitting a task over several machines. +.SH SYNOPSIS +.TP 40 +.B grid/demo/blur [imagefile] +- master process +.TP +.B grid/demo/blur +- slave process +.SH DESCRIPTION +.I Blur +is a small program that works in two parts to manipulate an +.IR image (6). +The master process takes an image file as an argument and displays the image in a window on screen whilst waiting for and displaying results from the slave processes. Each slave process takes a block of the image at a time and blurs it, reduces the contrast and overlays the result of a simple edge detection analysis. +.PP +The only requirement for a master and slave process to work together is that they both have a common +.B /tmp +directory. Within this a +.B /blur +directory is created and used by both processes. All communication and synchronisation is done through files in this directory. There can be many slave processes running concurrently in order to improve performance. + +.SH COMMUNICATION +All the communication takes place through files in the +.B /tmp/blur +directory which is common to all the processses. Once the master process has started, it creates: +.TP 17 +.B image.bit +the image being processed +.TP +.B data.dat +processing parameters e.g. block size, blur radius etc +.TP +.B working +tells slave processes to continue reading +.B todo/ +directory +.TP +.B todo/ +contains files showing which blocks still need processing +.PP +Within the +.B todo/ +directory, the master process creates a file for each block to be processed. Starting at +.BR block.0.a , +the name of each file denotes the block number and the version id. The version id is used to indicate the current version of a block being worked on. This is to allow the master process to ask another slave process to work on a block if it believes the current one has crashed or is taking too long. Once a block has been processed, the master removes the file from +.BR todo/ . +.PP +Each slave process reads the list of files in +.B todo/ +and for each block in turn, attempts to create a directory with the same name e.g. +.B block.1.a/ +in +.BR /tmp/blur . +It is not possible to create a directory if it already exists and as the slave will only process blocks for which it +.I has +been able to create a directory, no two slave processes can be simultaneously working on the same block. Once a slave has managed to create a directory, it processes the relevant block of the image and writes the result to +.B img.bit +in the directory. Having completed a block, the slave creates a file called +.B done +in order to let the master process know that it can read the completed result. +.PP +The master process keeps track of all the blocks being processed and if any of them have not been completed after a certain time, it creates a new file for that block in +.B todo/ +with a new version id. This guarantees that all blocks will be processed as long as at least one working slave process remains. Once all the blocks have been processed, the master process removes all the files created in +.BR /tmp/blur . +Each slave, upon seeing that the +.B working +file has gone, will then exit. + +.SH SOURCE +.B /appl/grid/demo/blur.b +.br +.B /appl/grid/demo/block.b diff --git a/static/inferno/man1/brutus.1 b/static/inferno/man1/brutus.1 new file mode 100644 index 00000000..a2221dca --- /dev/null +++ b/static/inferno/man1/brutus.1 @@ -0,0 +1,120 @@ +.TH BRUTUS 1 +.SH NAME +brutus \- screen editor with support for SGML +.SH SYNOPSIS +.B wm/brutus +[ +.I file +] +.SH DESCRIPTION +.I Brutus +is a multi-file editor for UTF format text files. +.PP +When editing multiple files, each file appears in its own window. +Button 1 can be used to make a window current. Within the current +window, button 1 selects text. +Double clicking selects text up to the boundaries of words, lines, +quoted text or bracketed text depending upon the text at the point of the +double click. Double clicking at the start of a line +selects the entire line. Double clicking just inside various forms of +brace selects text up to the matching brace, correctly handling nested braces. +Button 2 displays a menu of editing commands: +.TF snarf +.TP +.B cut +Delete the selected text and save it in the snarf buffer. +.TP +.B paste +Replace the selected text by the contents of the snarf buffer. +.TP +.B snarf +Save the selected text in the snarf buffer. +.TP +.B look +Search forwards and select the next occurrence of the selected text. +.PD +.PP +Mouse chording is implemented, as in +.IR acme (1). +Dragging a selection with button-1 held down and then also clicking +button-2 cuts the selected text into the Snarf buffer. +Clicking button-3 instead of button-2 replaces the selected text with the contents +of the Snarf buffer. +.PP +Clicking button 3 extracts the whitespace-bounded string around the point of the +click and plumbs it to the appropriate application (see +.IR plumber (8)). +.PP +A +.I brutus +console window is always displayed from which new files may be opened +or from which existing open files may be selected. +Typing +.IP +.EX +.BI / word +.EE +.PP +in the console window will search for the character sequence +.I word +in the file associated with the current window. Typing +.IP +.EX +.BI ? word +.EE +.PP +in the console window will search backwards for the character sequence +.IR word . +If text has been selected in the current window the search begins from the +end of the selection if searching forwards and the beginning of the selection if +searching backwards. +If no text has been selected the search begins from the current insertion point. +Typing +.IP +.EX +.I linenumber +.EE +.PP +in the console window selects all the text on line +.I linenumber +and moves the window to show the selected text. +.SS SGML +If the first line of a file is exactly: +.IP +.EX + +.EE +.PP +it is assumed to be in SGML format and the contents are displayed according +to some predefined formatting rules. Tags of the form +.BI < font . size > +are recognised and used to control the visual appearance +of text. The +.I font +may be one of: +.BR Roman , +.BR Italic , +.BR Bold , +and +.B Type +giving normal, italicised, emboldened, and constant width text. +The +.I size +may be one of +.BR 6 , +.BR 8 , +.BR 10 , +.BR 12 , +or +.BR 16 , +and determines the point size of the displayed text. +.SH PLUMBING +.B wm/brutus +listens for +.B edit +messages and plumbs text selected by button 3 +.SH SOURCE +.B /appl/wm/brutus.b +.SH SEE ALSO +.IR acme (1), +.IR cook (1) diff --git a/static/inferno/man1/cal.1 b/static/inferno/man1/cal.1 new file mode 100644 index 00000000..11626284 --- /dev/null +++ b/static/inferno/man1/cal.1 @@ -0,0 +1,46 @@ +.TH CAL 1 +.SH NAME +cal \- print calendar +.SH SYNOPSIS +.B cal +[ +.I month +] +[ +.I year +] +.SH DESCRIPTION +.I Cal +prints a calendar. +.I Month +is either a number from 1 to 12, +a lower case month name, +or a lower case three-letter prefix of a month name. +.I Year +can be between 1 +and 9999. +If either +.I month +or +.I year +is omitted, the current month or year is used. +If only one argument is given, and it is a number larger than 12, +a calendar for all twelve months of the given year is produced; +otherwise a calendar for just one month is printed. +The calendar +produced is that for England and her colonies. +.PP +Try +.EX + cal sep 1752 +.EE +.SH SOURCE +.B /appl/cmd/cal.b +.SH BUGS +The year is always considered to start in January even though this +is historically naive. +.br +Beware that +.L "cal 90" +refers to the early Christian era, +not the 20th century. diff --git a/static/inferno/man1/calc.1 b/static/inferno/man1/calc.1 new file mode 100644 index 00000000..8c59e888 --- /dev/null +++ b/static/inferno/man1/calc.1 @@ -0,0 +1,272 @@ +.TH CALC 1 +.SH NAME +calc \- calculator language +.SH SYNOPSIS +.B calc +[ +.B -s +] [ +.I file +] +.PP +.B calc +[ +.B -s +] [ +.I expression +] +.SH DESCRIPTION +.I Calc +interprets a simple language for floating-point arithmetic +with Limbo-like syntax and +functions. +.PP +If no +.I file +or +.I expression +is given +.I calc +interprets the standard input. +.PP +.I Calc +input consists of +.I expressions +and +.IR statements . +Expressions are evaluated and their results printed. +Statements, typically assignments and function +definitions, produce no output unless they explicitly call +.IR print . +.PP +Comments begin with # and extend to the end of the line as in Limbo. +.PP +Numbers may have a base specified using C or Limbo syntax. +.PP +Variable names have the usual syntax, including +.LR _ . +They may be introduced without a declaration and have an initial default value +of 0.0. +.PP +The predefined variable +.B degrees +can be set to specify angles in degrees rather than radians in the trigonometric functions below. It is initially 0 (angles in radians by default). +.PP +The predefined variable +.B printbase +can be set to any integer between 2 and 36 inclusive to specify +the base of all values output. +.PP +The constants +.BR e , +.BR Pi (π) , +.BR Phi (φ) , +.BR Gamma (γ) , +.BR Infinity (∞) , +and +.BR Nan (NaN) +are predefined. +.PP +Expressions are formed with these Limbo-like operators, listed by +decreasing precedence. +.TP +.B ! ~ + - ++ -- +.TP +.B ** +.TP +.B * / % // +.TP +.B + - +.TP +.B << >> +.TP +.B > >= < <= <-> +.TP +.B == != -> <- +.TP +.BR & " " " " ↑ +.TP +.B ^ +.TP +.BR | " " " " ↓ +.TP +.B && +.TP +.B || +.TP +.B ? : +.TP +.B = := += -= *= /= %= //= &= ^= |= <<= >>= +.TP +.B , +.PP +If the +.B -s +flag is given, a strict interpretation of the declaration rules are enforced - all variables must be declared and initialized first using the +.B := +operator. Otherwise undeclared variables are declared and initialized to 0.0 in the +current scope. In either case, +.B := +always forces a new declaration. +.PP +The extra non-Limbo operators are factorial (! when postfix), integer division (//), +conditional (? and :) comma (,), logical equivalence (<->), implication (->), reverse implication (<-), nand (↑) and nor (↓). +.PP +Unary operators, assignment operators, **, ? and : are right associative as usual. +.PP +The comma operator may be replaced by white space in expressions. +.PP +Built in functions are +.BR abs , +.BR acos , +.BR acosh , +.BR asin , +.BR asinh , +.BR atan , +.BR atanh , +.BR atan2 , +.BR cbrt , +.BR ceiling , +.BR cos , +.BR cosh , +.BR erf , +.BR exp , +.BR floor , +.BR frac , +.BR gamma (Γ) , +.BR int , +.BR log , +.BR log10 , +.BR max , +.BR min , +.BR pow , +.BR rand , +.BR round , +.BR sign , +.BR sin , +.BR sinh , +.BR sqrt , +.BR tan , +and +.BR tanh . +.PP +Functions of one argument may be written without brackets: +.sp +.EX + sin 45 + sqrt 2 +.EE +.sp +These behave as unary operators with the highest precedence. +.PP +Sum and product operators are available using sigma (Σ) and pi (Π). +For example +.sp +.EX + sigma(i = 0, 100, 1/i!) +.EE +.sp +gives the value 2.7182818284590455 . +.PP +Simple definite integration can be done: +.sp +.EX + integral(x = -1.96, 1.96, exp(-0.5*x*x)/sqrt(2*Pi)) +.EE +.sp +outputs 0.9500042096998785 . +∫ may be used in place of integral. +.PP +For the sake of completeness, the derivative of a function at a given +point can be calculated: +.sp +.EX + differential(x=1, x*x+5*x+6) +.EE +.sp +gives 7. +Δ may be used in place of differential. +.PP +There is limited support for the solution of equations. +For example +.sp +.EX + solve(x**2-5*x+6==0) +.EE +.sp +outputs the values 2 and 3. The value returned by +.B solve +is the largest of the roots. To specify the variable to solve for, if +ambiguous, simply add it as a second parameter as in, for example, +.sp +.EX + solve(x**2-5*x+6==y**3+z, x) +.EE +.sp +This will substitute the current values of +.B y +and +.B z +and solve for +.B x. +To tune the solution process, the predefined variables +.B solvelimit +(default value 100) and +.B solvestep +(default value 1) are available. +The former specifies the maximum absolute solution +to search for. The latter +specifies the interval increment to apply when searching +for sign changes. +.PP +.B Print +prints a list of expressions that may include +string constants such as +\fL"hello\en"\f1.\fP +.PP +.B Read +reads in a list of values interactively. The list of variables to assign +these values should follow. +.PP +Other files may be read in using the Limbo include statement. +.PP +Control flow statements are +.BR break , +.BR continue , +.BR exit , +.BR return , +.BR if - else , +.BR while , +.BR do - while , +and +.BR for , +with braces for grouping. +.PP +The use of semi-colon and newline is optional. +.PP +Functions are introduced by the keyword +.BR fn . +.SH EXAMPLE +.EX +fn ack(a, b) +{ + n = n+1 + if(a == 0) + return b+1; + if(b == 0) + return ack(a-1, 1); + return ack(a-1, ack(a, b-1)); +} + +for(i = 0; i < 4; i++) + for(j = 0; j < 4; j++){ + n = 0 + print "ack(", i, ",", j, ")=", ack(i, j), "\en" + print n, " calls", "\en" + } +.EE +.SH SOURCE +.B /appl/cmd/calc.b +.SH "SEE ALSO" +.IR fc (1), +.IR math-intro (2) diff --git a/static/inferno/man1/calendar.1 b/static/inferno/man1/calendar.1 new file mode 100644 index 00000000..59ee0ea2 --- /dev/null +++ b/static/inferno/man1/calendar.1 @@ -0,0 +1,47 @@ +.TH CALENDAR 1 +.SH NAME +calendar \- calendar and diary +.SH SYNOPSIS +.B wm/calendar +[ +.IR mntdir | datafile +] +.br +.SH DESCRIPTION +.B Calendar +is a simple calendar and diary program. +Its optional argument specifies either a directory +on which has been mounted a +.I rawdbfs +(see +.IR dbfs (4)) +filesystem, or a file in which to store schedule entries +(which must already exist). In the latter case, +.I calendar +starts up an instance of +.I rawdbfs +to serve the file. The default argument to +.I calendar +is +.BR /mnt/schedule . +If two instances of calendar +are using the same datafile, care should be taken to run +.I rawdbfs +.I before +running the +.I calendar +programs, otherwise the data file will be corrupted. +.SH EXAMPLE +Start +.I calendar +using +.B $home/cal +for the data entries: +.EX + rawdbfs $home/cal /mnt/schedule + wm/calendar +.EE +.SH SOURCE +.B /appl/wm/calendar.b +.SH SEE ALSO +.IR dbfs (4) diff --git a/static/inferno/man1/cat.1 b/static/inferno/man1/cat.1 new file mode 100644 index 00000000..dbd0c90d --- /dev/null +++ b/static/inferno/man1/cat.1 @@ -0,0 +1,49 @@ +.TH CAT 1 +.SH NAME +cat \- concatenate files +.SH SYNOPSIS +.B cat +[ +.B - +] +[ +.I file ... +] +.SH DESCRIPTION +.I Cat +reads each +.I file +in turn and writes it on the standard output. +Thus +.IP +.EX +cat file +.EE +.PP +prints the file to standard output, and the following +.IP +.EX +cat file1 file2 >file3 +.EE +.PP +concatenates two files onto a third. +.PP +If no +.I file +is given, or where +.B \- +is given as an argument, +.I cat +reads from the standard input. +Output is buffered in blocks matching the input. +.SH SOURCE +.B /appl/cmd/cat.b +.SH "SEE ALSO" +.IR cp (1), +.IR stream (1) +.SH BUGS +Beware of +.B "cat a b >a" +and +.B "cat a b >b" +which destroy input files before reading them. diff --git a/static/inferno/man1/cd.1 b/static/inferno/man1/cd.1 new file mode 100644 index 00000000..3bd1e489 --- /dev/null +++ b/static/inferno/man1/cd.1 @@ -0,0 +1,32 @@ +.TH CD 1 +.SH NAME +cd \- change working directory +.SH SYNOPSIS +.B cd +[ +.I directory +] +.SH DESCRIPTION +.I Cd +changes the working directory for the shell and all processes in its +name space group (see +.IR sys-pctl (2)) +to +.IR directory . +If no argument is given, +.I cd +attempts to change to +.BI /usr/ user +where +.I user +is the name read from +.BR /dev/user . +.SH FILES +.B /dev/user +.SH SOURCE +.B /appl/cmd/cd.b +.SH "SEE ALSO" +.IR pwd (1), +.IR sys-chdir (2), +.IR sys-pctl (2), +.IR cons (3) diff --git a/static/inferno/man1/charon.1 b/static/inferno/man1/charon.1 new file mode 100644 index 00000000..abfdede6 --- /dev/null +++ b/static/inferno/man1/charon.1 @@ -0,0 +1,442 @@ +.TH CHARON 1 +.SH NAME +charon \- web browser +.SH SYNOPSIS +.B charon +[ +.BI - option +.RI [ value ] +] +.RI [ url ] +.SH DESCRIPTION +.I Charon +is the Inferno graphical web browser, supporting a variety of web standards for +the download, viewing, automation and navigation of web based information and images. +.PP +The browser runs under the +.IR wm (1) +window manager, or directly on the +.IR draw (3) +and +.IR cons (3) +devices. +When +.I charon +starts, it checks to see if +.I wm +is running; if it is then +.I charon +creates a new +.I wm +window for its display, otherwise it uses the whole area of the display device. +.PP +.I Charon +implements an image cache to help reduce the overhead of revisiting pages. +The image cache resides in memory for the duration of a session. +The cache is managed by discarding least recently used images once the cache bounds +have been reached. +Currently, +.I charon +does not provide a general purpose web cache; all other resources have to be reloaded +when needed. +.SS Navigation +.I Charon +provides navigation controls familiar to any web-surfer: +back, forward, reload, home, stop and URL entry. +Navigation of web-based information is by means of following HTML +.IR links, +this is done by clicking on them using mouse button-1, or the touch-screen. +Clicking mouse button-2 on a link causes its address to be displayed in the +.I status +line of +.IR charon 's +display. +Navigation to other information is achieved by clicking on the URL entry +field and typing the address of the resource, followed by the Enter key. +.PP +The retrieval and processing of the current page +is immediately terminated by clicking the Stop button. +.PP +As resources are browsed, a history of their web addresses (URLs) is built up. +At any time you can navigate forwards and backwards through this list using +the Forward and Back buttons. +Additionally, clicking the History button, displays the entire history list as a set of +.I links +enabling the user to quickly jump to any position in the list. +.PP +Sometimes, it is not possible to retrieve all of the components of a web document at the time +that it is requested. +Often this is because the remote server is very busy or not available. +This can result in the presentation of the document being incomplete or even corrupted. +Clicking the Reload button causes +.I charon +to attempt to retrieve the current document and all of its components again. +.PP +.I Charon +displays a progress panel to indicate the download status of each of the components of the +current document. +The progress panel is displayed at the bottom of the +.I charon +window. +Each component of the current document is represented by a rectangular block in the +progress panel. +As the download of a component progresses, its corresponding block is gradually filled in. +If an error occurs while downloading or processing the component, its block is coloured red. +The component address and amount downloaded, or reason for failure, can +be obtained by clicking mouse button-1 on its progress block. +.SS "Web Standards" +Standards are the life-blood of the World-Wide-Web; +without them, the web could not exist. +Web standards are under constant review with revised editions and complete new standards +being published all of the time. +This section lists the standards supported by +.I charon +at the time of writing this manual entry. +The version of the standard is given, if appropriate, alongside any comments on its +implementation. +.PP +.TP 15 +Protocols +HTTP versions 1.0 and 1.1 +.IP +HTTPS: SSL Protocol versions 2.0 and 3.0. +X.509.v3 server certificates. +.IP +FTP: +.I charon +supports retrieval of plain text files only, directory listings are not generated. +.IP +FILE: +.I Charon +attempts to determine the file type by a combination of the filename extension and +examination of the first few bytes of the file. Directory listings are not generated. +.TP +HTML +It is intended that +.I charon +supports HTML version 3.2, but in reality there is +no single standard! +.I Charon +attempts to be as close as possible to Netscape Navigator Version 3 in terms of its +markup support. +Obvious bugs in Navigator 3 and +the Netscape security model have not been adopted. +.TP +JavaScript +.I Charon +implements ECMAscript-262 2nd Edition, which is roughly equivalent to JavaScript1.1. +The ECMA-262 standard does not define the +.I host +objects and classes that should implemented by the browser. +.I Charon +implements the set of host objects and classes of Netscape Navigator version 3. +.TP +Encodings +US_Ascii, ISO_8859_1, UTF_8, Unicode (big-endian) +.TP +Images +GIF87a and GIF89a - animated GIFs always loop. +.br +JPEG, XBitmap, +Inferno BIT +.IR image (6) +format. +.SS Configuration +While using +.IR charon , +a sub-set of the configuration options can be modified. +Clicking the Configuration button displays a config popup window, enabling the user +to modify the current values of the available options. +.PP +The full set of configuration options can be modified on the command line or in +a configuration file. +Comand line options are processed after the configuration file. +The configuration file is loaded from +.BI /usr/ user /charon/config +where +.I user +is obtained by reading the file +.BR /dev/user . +If this file does not exist, the file +.B /services/config/charon.cfg +is read instead. +Options are processed in order; some options override settings affected +by others and so the order in which they are used is important. +.PP +Options are specified using a +.IR key , +.I value +pair. +On the command line this takes the form: +.IP +.BI - key +.I value +.PP +Where +.BI - key +and +.I value +are individual items in the argument list to +.IR charon . +.PP +In the config file options take the form: +.IP +.IB key = value +.PP +Where +.I value +is the remainder of the input line after the +.BR ` = ' +character. +Any text lines in the config file that start with a +.RB ` # ' +character are ignored as comment lines. +.SH OPTIONS +.TF 10 +.TP +.B userdir +The directory where +.I charon +expects to find its configuration files such as, bookmark and cookie files. +The default value is +.BI /usr/ user /charon/ +where +.I user +is obtained by reading the file +.BR /dev/user . +.TP +.B starturl +Specifies the URL of the first document to be displayed by +.I charon +at startup. +The default value is +.B file://localhost/services/webget/start.html +.TP +.B homeurl +Specifies the URL of the document to retrieve when the Home button is clicked. +The homeurl can only be changed if the +.B change_homeurl +option is enabled. +Setting +.B homeurl +also set the value of the +.B starturl +option. +The default value is +.B file://localhost/services/webget/start.html +.TP +.B change_homeurl +Enables editing of the Home URL in the configuration popup window. +A non-zero integer value enables this option, all other values disable it +This option also enables the +.B homeurl option. +The default value is 1. +.TP +.B helpurl +Specifies the URL of the document to retrieve when the Help button is clicked. +The default value is +.B file://localhost/services/webget/help.html +.TP +.B httpproxy +Specifies the host name and port of a web proxy server. +The address is given in the form of a URL, where the optional port number +can be specified after the server name by separating them by a colon +.RB ` : '. +The default value is the empty string, specifying that no web proxy server should be used. +.TP +.BI noproxy " or " noproxydoms +Specifies a list of network domains for which a web proxy should not be used. +The domains in the list can be separated by semicolon, comma, space or tab characters. +The default value is the empty list. +.TP +.B usessl +Extends SSL support. +Accepted values are +.RB `` v2 '' +and +.RB `` v3 ''. +Initially SSL support is configured off. +Enabling version 1 or version 2 support restricts SSL support to that specific version. +Specifying the option twice, once with each of the options, enables dual version +SSL support whereby the remote server is probed to determine which version it supports. +Some servers only support one of the versions and may not tolerate the special +version2/3 probe. +.TP +.B buttons +Specifies the set of buttons that appear on the window manager title-bar. +The buttons are given as a list of button names separated by comma, space or tab characters. +Valid button names are +.BR help , +.B resize +and +.BR hide . +The default value is for all buttons to be displayed. +.TP +.BI defaultwidth " or " width +Set the initial window width. +This option is only meaningful when running under the window manager. +If the specified width exceeds the screen width then the screen width is used. +The default value is 630. +.TP +.BI defaultheight " or " height +Set the initial height of the main display panel, this does not include the height +of the control and progress panels. +This option is only meaningful when running under the window manager. +If the total height of the +.I charon +window exceeds the screen height, the main display panel height will be reduced to fit. +The default value is 450. +.TP +.BI x " and/or " y +Set the initial window position. +These options are only meaningful when running under the window manager. +The default value for both options is 0. +.TP +.B imagelvl +Specify how to handle image components of a document. +This option takes a numeric argument. +A value of 0 prevents images from being downloaded or displayed. +A value of 1 will download and display images but not animate GIFS - only the first +frame of an animated GIF will be displayed. +A value of 2 or more enables full image processing. +The default value enables full image processing. +.TP +.B imagecachenum +Specify the maximum number of images that can remain resident in the image cache. +The default value is 60. +.TP +.B imagecachemem +Specify the maximum amount of image memory available to the image cache in bytes. +The cache is managed such that neither the +.B imagecachenum +nor +.B imagecachemem +limits are exceeded. +The image cache tries to ensure that no more than 80% of available system image memory +is taken by the cache, irrespective of the value of this option. +The default value is 80% of the system image memory that was available +.I when charon was started. +.TP +.B docookies +Enable cookie handling. +A non-zero numeric value enables cookie handling, all other values disable it. +The cookie cache is maintained in the +.B cookies +file in the +.I userdir +directory. +The default value is 0, cookie handling disabled. +.TP +.B doscripts +Enable JavaScript support. +A non-zero numeric value enables JavaScript, all other values disable it. +The default value is 0, JavaScript processing disabled. +.TP +.B showprogress +A non-zero numeric value results in the progress panel being displayed. +All other values hide the progress panel, leaving more vertical space for the main +display area. +The default value is 1, causing the progress panel to be displayed +.TP +.B http +Set the version of HTTP to use when communicating with web servers. +Supported versions are 1.0 and 1.1. +Any value other than 1.1 results in HTTP1.0 being used. +The default value is 1.0. +.TP +.B nthreads +Specifies the maximum number of concurrent downloads of document components. +Generally, if this number is higher, pages will complete faster as +.I charon +will not have to wait for the download of one component to complete before another +can be started. +The downside is that a higher number of concurrent downloads will use more memory +during the download process. +The default value is 4. +.SH FILES +.TF /services/config/charon.cfg +.TP +.B /services/config/charon.cfg +The default configuration file. +.TP +.IB userdir /config +The +.I user +specific configuration file. +.I userdir +is given by the value of the +.B userdir +option. +.TP +.IB userdir /cookies +The cookie cache. +.I userdir +is given by the value of the +.B userdir +option. +.TP +.B /services/webget/start.html +The default start page. +.TP +.B /services/webget/help.html +The default help page. +.SH SOURCE +.TF /appl/lib/ecmascript/ +.TP +.B /appl/charon/ +The main +.I charon +source files. +.TP +.B /appl/lib/ecmascript/ +Javascript (ECMA-262) implementation. +.SH BUGS +.I Charon +has more than its fair share of real bugs. +The following list documents the problems that are most likely to be +encountered. +.PP +.I Charon +implements its table layout as per the algorithm described in rfc1942. +This sometimes results in table-based documents being laid out differently to other +browsers. +.PP +JavaScript is a source of many problems. +Many scripts do not specify the language version they employ. +Additionally different language versions and browsers imply +a different set of +.I host +objects and classes. +Such differences often give rise to syntax or null reference errors. +This whole situation places a great burden on the script author to write +safe and compliant scripts; unfortunately authors +are rarely aware of this burden! +.PP +The following elements of JavaScript1.1 are not fully implemented: +.PP +.BR Document.applets , +.B Document.embeds +.I and +.BR Document.plugins : +Java Applets are not supported, the arrays are always empty. +.PP +.BR Document.onunload : +The property exists and can be assigned to, but the event is never raised. +.PP +.BR Window.open() : +A new window is never opened. If a URL is specified for the new window, the +current document will be replaced with that of the new URL. +.PP +Other annoyances include: +.PP +Window resize forces a complete document reload. +.PP +Frames in a frameset are processed one at a time, not concurrently. +.PP +It is not possible to save downloaded data to file. This is particularly annoying +for MIME types that +.I charon +does not support. +.PP +The history list can get confused, especially when following links in framesets +before the complete frameset has been downloaded. diff --git a/static/inferno/man1/chgrp.1 b/static/inferno/man1/chgrp.1 new file mode 100644 index 00000000..e6e894cb --- /dev/null +++ b/static/inferno/man1/chgrp.1 @@ -0,0 +1,44 @@ +.TH CHGRP 1 +.SH NAME +chgrp \- change file's group or owner +.SH SYNOPSIS +.B chgrp +[ +.B -uo +] +.I id +.I file ... +.SH DESCRIPTION +.I Chgrp +changes the group ownership of each +.I file +to the given +.IR id , +if the file's server +permits it. +The +.B -u +and +.B -o +options are equivalent +and cause +.I chgrp +to change file ownership instead, +if the file's server permits it. +.PP +Normally, a file's group can be changed by the file's owner, if the +owner is a member of the new group, or by the leader of both +the file's current group and the new group, +but various underlying devices, file servers and host operating systems +might not permit the operation at all. +Group and ownership changes allowed by a given device are documented by +the device's manual page. +See +.IR sys-stat (2) +for the variations amongst host operating systems. +.SH SOURCE +.B /appl/cmd/chgrp.b +.SH SEE ALSO +.IR chmod (1), +.IR ls (1) +.IR sys-stat (2) diff --git a/static/inferno/man1/chmod.1 b/static/inferno/man1/chmod.1 new file mode 100644 index 00000000..6fde1eb1 --- /dev/null +++ b/static/inferno/man1/chmod.1 @@ -0,0 +1,105 @@ +.TH CHMOD 1 +.SH NAME +chmod \- change file mode (permissions) +.SH SYNOPSIS +.B chmod +.I mode +.I file ... +.SH DESCRIPTION +.I Chmod +changes the mode (permissions) of each +.I file +according to +.IR mode , +which may be an octal number or a symbolic change to the existing mode. +.PP +A +.I mode +can be numerically formed as the +.SM OR +of the following octal values (a leading +.B 8r +is ignored): +.TF 0000 +.TP +0400 +read by owner +.TP +0200 +write by owner +.TP +0100 +execute (search in directory) by owner +.TP +0070 +read, write, execute (search) by group +.TP +0007 +read, write, execute (search) by others +.PD +.PP +A symbolic +.I mode +has the form: +.IP +.RI [ who ] +.I op permission +.PP +The +.I who +part is a combination of the letters +.B u +(for user's permissions), +.B g +(group) and +.B o +(other). +The letter +.B a +stands for +.BR ugo . +If +.I who +is omitted, the default is +.BR a . +.PP +The +.I op +field can be: +.B + +to add +.I permission +to the file's mode, +.B - +to take away +.IR permission , +.B = +to assign +.I permission +absolutely (all other bits being reset). +.PP +The +.I permission +field is any combination of the letters +.B r +(read), +.B w +(write), +.B x +(execute), +.B a +(append only), +.B l +(exclusive access), and +.B t +(temporary, not archived). +.SH SOURCE +.B /appl/cmd/chmod.b +.PP +.SH "SEE ALSO" +.IR chgrp (1), +.IR ls (1), +.IR sys-stat (2) +.SH BUGS +The interpretation of the modes is limited on some host operating systems, +particularly variants of Windows. diff --git a/static/inferno/man1/cleanname.1 b/static/inferno/man1/cleanname.1 new file mode 100644 index 00000000..6c772fb9 --- /dev/null +++ b/static/inferno/man1/cleanname.1 @@ -0,0 +1,37 @@ +.TH CLEANNAME +.SH NAME +cleanname \- clean a path name +.SH SYNOPSIS +.B cleanname +[ +.BI -d " dir" +] +.I name +\&... +.SH DESCRIPTION +.I Cleanname +tidies up each file +.I name +it is given and prints the result on standard output. +It removes redundant slashes and interprets +.L . +and +.L .. +directory names lexically. +If the +.B -d +option is given, each +.I name +that does not not start with +.B / +or +.B # +will be prefixed by +.IB dir / +before processing. +.SH SOURCE +.B /appl/cmd/cleanname.b +.SH SEE ALSO +.IR basename (1), +.IR pwd (1), +.IR names (2) diff --git a/static/inferno/man1/cmp.1 b/static/inferno/man1/cmp.1 new file mode 100644 index 00000000..9615c0b7 --- /dev/null +++ b/static/inferno/man1/cmp.1 @@ -0,0 +1,50 @@ +.TH CMP 1 +.SH NAME +cmp \- compare two files +.SH SYNOPSIS +.B cmp +[ +.B \-lsL +] +.I file1 file2 +[ +.I offset1 +[ +.I offset2 +] +] +.SH DESCRIPTION +The two files are +compared. +A diagnostic results if the contents differ, otherwise +there is no output. +By default, +.B cmp +prints the byte number of the first differing byte. +.PP +The options are: +.TP +.B -l +Print the byte number (decimal) and the +differing bytes (hexadecimal) for each difference. +.TP +.B -s +Print nothing for differing files, +but set the exit status. +.TP +.B -L +Print the line number of the first differing byte. +.PP +If offsets are given, +comparison starts at the designated byte position +of the corresponding file. +Offsets that begin with +.B 0x +are hexadecimal; +with +.BR 0 , +octal; with anything else, decimal. +.SH SOURCE +.B /appl/cmd/cmp.b +.SH "SEE ALSO" +.IR diff (1) diff --git a/static/inferno/man1/collab-clients.1 b/static/inferno/man1/collab-clients.1 new file mode 100644 index 00000000..9a652fda --- /dev/null +++ b/static/inferno/man1/collab-clients.1 @@ -0,0 +1,202 @@ +.TH COLLAB-CLIENTS 1 +.SH NAME +collab: chat, poll, poller, whiteboard \- collaborative activities +.SH SYNOPSIS +.B collab/clients/chat +[ +.I servicedir +] +.I chatroom +.PP +.B collab/clients/poll +[ +.B -d +] +[ +.I servicedir +] +.I station +.PP +.B collab/clients/poller +[ +.B -d +] +[ +.I servicedir +] +.I station +.PP +.B collab/clients/whiteboard +[ +.I servicedir +] +.I id +.SH DESCRIPTION +These commands are +.IR wm (1) +programs that are clients of the services of +.IR collabsrv (8). +It must therefore be running in the network for any of them +to be usable. +Furthermore, +.IR collabsrv 's +service directory must appear somewhere in the client's name space, +for instance by using +.IR connect (1), +although plain +.I mount +(see +.IR bind (1)) +can also be used. +In all cases, +the optional parameter +.I servicedir +names the service directory +(default: +.BR /n/remote/services ). +Finally, +.I collabsrv +must be configured to provide the service. +.PP +.I Chat +is a simple multi-user chat program. +Each user that wishes to chat starts +.I chat +naming the desired +.IR chatroom , +which is an identifying string agreed amongst the clients. +(It is often convenient to use the path name of a shared file.) +.I Chat +attempts to enter the given +.IR chatroom . +It announces the results of the connection, and if successful, +displays subsequent chat room messages. +Its window provides a scrollable text area that forms a transcript +of the current conversation, and a single line of editable text at the bottom +of the window for sending messages. +Messages sent by others appear in the transcript tagged with the sender's name. +When the user types a new line (return, enter) in the text entry area, +.I chat +sends the text to all the members of the chat room, +and it subsequently appears in the user's own transcript, +tagged with +.B +in place of the user's name. +.I Chat +also notes in the transcript the arrival and departure of other users. +.PP +.I Poll +and +.I poller +together enable simple real-time polls. +One user runs +.IR poller , +which activates the given polling +.IR station . +The other users can subsequently join using +.IR poll , +naming the same +.IR station , +and can come and go as they please as long +as the +.I poller +remains. +The polling station closes when the +.I poller +leaves. +.PP +.I Poller +drives the interaction for a sequence of one or more real-time polls. +It is assumed that the poller is in the same room as those polled, allowing the +questions and answers to be read out each time, as in quiz shows and exit polls. +Alternatively, something like +.I chat +could be used to pose questions to a distant audience. +For each poll, the polling user selects, in +.IR poller 's +window, the number of possible answers (2, 3, or 4) using radio buttons, +and hits the +.B Start +button. +A bar chart shows results as they come in: each bar shows the percentage of those polled +(thus far) that have selected the corresponding alternative. +Once the polling user hits +.BR Stop , +no further results are accepted, and the bar chart represents the final result. +The +.B \-d +option causes +.I poller +to display a debugging transcript of the messages it receives. +.PP +Each user being polled runs +.IR poll , +and initially +sees an array of radio buttons with labels +.BR A , +.BR B , +.BR C +and +.BR D . +They remain disabled until the +.I poller +hits +.BR Start , +at which point +.I poll +enables as many radio buttons as allowed by the poller for this round. +If the user selects a button, +.I poll +immediately send the selection to the polling station +(and thus to the +.IR poller ), +and disables all the buttons, although the user's selection remains marked. +All buttons are also disabled when the +.I poller +says to stop, +whether or not a choice has been made. +Buttons are enabled again at the start of the next question. +The +.B \-d +option causes +.I poll +to display a debugging transcript. +.PP +.I Whiteboard +allows several users to draw on the shared canvas with the given +.IR id , +which is an identifying string agreed amongst the clients. +The whiteboard window +contains a canvas to be drawn on with stylus, or mouse button 1. +Strokes drawn in a given +.I whiteboard +appear in all others with the +same board +.IR id . +There are two controls at the bottom of the window: +the lower left-hand corner has a small pop-up menu of brush shapes, +including one for erasing; and a long coloured button showing the current drawing colour that +pops up a choice of drawing colour from a palette. +Artists can come and go as they please, but +the drawing vanishes for ever when the last artist leaves the whiteboard. +.SH FILES +.TF /n/remote/services +.TP +.B /n/remote +default mount point of collaborative resources +.br +.TP +.B /n/remote/services +.IR collabsrv (8) +collaborative activity services directory +.SH SOURCE +.B /appl/collab/clients/chat.b +.br +.B /appl/collab/clients/poll.b +.br +.B /appl/collab/clients/poller.b +.br +.B /appl/collab/clients/whiteboard.b +.SH SEE ALSO +.IR connect (1), +.IR collabsrv (8) diff --git a/static/inferno/man1/collab.1 b/static/inferno/man1/collab.1 new file mode 100644 index 00000000..1173a70d --- /dev/null +++ b/static/inferno/man1/collab.1 @@ -0,0 +1,84 @@ +.TH COLLAB 1 +.SH NAME +collab: connect \- connect to collaborative files and services +.SH SYNOPSIS +.B collab/connect +[ +.BI -C " alg" +] [ +.BI -k " keyfile" +] [ +.B -v +] [ +.I netaddress +[ +.I localdir +] ] +.SH DESCRIPTION +.I Connect +dials network address +.I netaddr +(default: +.BR "net!$collab!9999" ), +which should be served by an instance of +.IR collabsrv (8), +and mounts the resulting connection on +.BR /n/remote ; +it then binds +.BR /n/remote/collab +on +.I localdir +(default: +.BR /n/ftree/collab ). +.PP +The resulting hierarchy under +.B /n/remote +is determined by the site configuration, but usually includes the +directory +.BR /n/remote/services , +which gives access to the server side of collaborative activities, as described in +.IR collabsrv (8), +and the directory +.BR /n/remote/collab , +which contains the file hierarchy that contains all collaborative resources offered to a client device. +.PP +If an instance of +.IR wm-ftree (1) +is running in the same name space, then +after mounting the connection and adjusting the name space, +.IR connect +tells it that the name space has changed, +so any displayed view of it can be updated. +.PP +.I Connect +accepts the following options: +.TP +.BI -C " alg" +Specify the algorithm, +.IR alg , +to be used following authentication for digesting or encryption. See +.IR ssl (3) +for the supported algorithms. +The default is +.BR none : +.IR ssl (3) +is not used after authentication. +.TP +.BI -k " kfile " +Specify the keyfile to be used when authenticating. +The default is +.BI /usr/ user /keyring/ netaddr , +if that exists, and otherwise +.BI /usr/ user /keyring/default . +See +.IR keyring-auth (2) +for more details. +.TP +.B -v +Causes +.I connect +to chat about its actions on standard output. +.SH SOURCE +.B /appl/collab/connect.b +.SH SEE ALSO +.IR collabsrv (8) diff --git a/static/inferno/man1/comm.1 b/static/inferno/man1/comm.1 new file mode 100644 index 00000000..1aca9f07 --- /dev/null +++ b/static/inferno/man1/comm.1 @@ -0,0 +1,46 @@ +.TH COMM 1 +.SH NAME +comm \- select or reject lines common to two sorted files +.SH SYNOPSIS +.B comm +[ +.B -123 +] +.I file1 file2 +.SH DESCRIPTION +.I Comm +reads lines from +.I file1 +and +.IR file2 , +which are in lexicographical order, +and produces a three column output: lines only in +.IR file1 ; +lines only in +.IR file2 ; +and lines in both files. +The file name +.L - +means the standard input. +.PP +Each option digit +.LR 1 , +.LR 2 , +or +.LR 3 +suppresses printing of the corresponding +column. +.SH EXAMPLE +.TP +.EX +comm -12 file1 file2 +.EE +.IP +Print lines common to two sorted files. +.SH SOURCE +.B /appl/cmd/comm.b +.SH "SEE ALSO" +.IR sort (1), +.IR cmp (1), +.IR diff (1), +.IR uniq (1) diff --git a/static/inferno/man1/cook.1 b/static/inferno/man1/cook.1 new file mode 100644 index 00000000..55eddfa9 --- /dev/null +++ b/static/inferno/man1/cook.1 @@ -0,0 +1,97 @@ +.TH COOK 1 +.SH NAME +cook \- SGML converter +.SH SYNOPSIS +.B cook +[ +.B -f +.I format +] [ +.B -o +.I outfile +] [ +.I infile +] +.SH DESCRIPTION +.B Cook +reads a file in SGML format and produces an interpretation of the file in +either LaTex or HTML format on standard output. +.PP +If no +.I infile +argument is present, the standard input is read. +If an +.I outfile +argument is present, the results are written to that file instead +of standard output. +The +.I format +argument must be either +.B html +to produce HTML format output or one of: +.BR latex , +.BR latexbook , +.BR latexpart , +.BR latexproc , +or +.B latexslides +to produce LaTex output. +.PP +The +.B latexpart +format assumes that the resulting output is to be included in +the body of a controlling LaTex document. The other LaTex +format options result in the generation of various LaTex +wrapping commands. +.PP +.B Cook +was designed to operate on the output of the +.B Brutus +editor (See +.IR brutus (1) +) and so its mapping of SGML tags is closely linked to those +generated by +.IR brutus . +.PP +The following tags are recognised: +.BR Author , +.BR Bold. "\fIn\fR," +.BR Caption , +.BR Example , +.BR Exercise , +.BR Extension , +.BR Float , +.BR Heading , +.BR Index , +.BR Index-topic , +.BR Italic. "\fIn\fR," +.BR Label , +.BR Label-ref , +.BR List , +.BR List-elem , +.BR No-fill , +.BR Par , +.BR Roman. "\fIn\fR," +.BR SGML , +.BR Title , +and +.BR Type. "\fIn\fR," +where +.I n +is a character point size and must be one of: +.BR 6 , +.BR 8 , +.BR 10 , +.BR 12 " or" +.BR 16 . +.SH FILES +.B /dis/wm/brutus/ +.SH SOURCE +.B /appl/cmd/cook.b +.SH SEE ALSO +.IR brutus (1) +.SH DIAGNOSTICS +.BR "Not an SGML file" : +The first line of the input file must contain the SGML tag +.B +and nothing else. diff --git a/static/inferno/man1/cp.1 b/static/inferno/man1/cp.1 new file mode 100644 index 00000000..6e7f3445 --- /dev/null +++ b/static/inferno/man1/cp.1 @@ -0,0 +1,134 @@ +.TH CP 1 +.SH NAME +cp, fcp \- copy files +.SH SYNOPSIS +.B cp +[ +.B -gux +] +.I fromfile tofile +.br +.B cp +[ +.B -gux +] +.I fromfile +\&... +.I todir +.br +.B cp -r +[ +.B -gux +] +.I fromdir +\&... +.I todir +.PP +.B +fcp +[ +.BI -R " nr" +] [ +.BI -W " nw" +] +.I fromfile tofile +.br +.B fcp +[ +.BI -R " nr" +] [ +.BI -W " nw" +] +.I fromfile +\&... +.I todir +.br +.B fcp -r +[ +.BI -R " nr" +] [ +.BI -W " nw" +] +.I fromdir +\&... +.I todir +.SH DESCRIPTION +In the first form, +.I fromfile +is any name and +.I tofile +is any name except an existing directory. +In the second form, the commands copy one or more +.I fromfiles +into +.I dir +under their original file names, as if by a sequence of commands in the first form. For example: +.IP +.B "cp f1 f2 dir" +.PP +is equivalent to: +.IP +.B "cp f1 dir/f1; cp f2 dir/f2" +.PP +.I Cp +copies the contents of plain (non-directory) file +.I fromfile +to +.IR tofile . +The mode and owner of +.I tofile +are preserved if it already exists; the permissions of +.I fromfile +is used otherwise. +The +.B -x +option sets the full mode and modified time of +.I file2 +from +.IR file1 ; +.B -g +sets the group id; and +.B -u +sets the group id and user id (which is usually only possible if the file server is in an administrative mode). +.PP +The +.B -r +option directs +.I cp +to copy recursively the named directories +.I "fromdir ..." +to the target directory +.IR todir . +.PP +.I Fcp +behaves like +.IR cp , +but copies many blocks in parallel. +It works only with files that respect read and write offsets (see +.B pread +and +.B pwrite +in +.IR sys-read (2)), +which usually excludes files representing devices or services. +When it applies, however, it is often +much faster than +.IR cp . +The +.B -R +and +.B -W +options set the number of readers and writers (default for each: 8). +.SH SOURCE +.B /appl/cmd/cp.b +.br +.B /appl/cmd/fcp.b +.SH "SEE ALSO" +.IR cat (1), +.IR mv (1), +.IR sys-stat (2) +.SH DIAGNOSTICS +.I Cp +and +.I fcp +refuse to copy a file onto itself. diff --git a/static/inferno/man1/cprof.1 b/static/inferno/man1/cprof.1 new file mode 100644 index 00000000..6b90f6cf --- /dev/null +++ b/static/inferno/man1/cprof.1 @@ -0,0 +1,222 @@ +.TH CPROF 1 +.SH NAME +cprof \- coverage profiling of limbo programs +.SH SYNOPSIS +.B cprof +[ +.B -nfer +] [ +.BI -m " modname" +] ... [ +.I "cmd arg ..." +] +.PP +.B wm/cprof +[ +.B -efr +] [ +.BI -m " modname" +] ... [ +.I "cmd arg ..." +] +.SH DESCRIPTION +.I Cprof +is a coverage profiling tool which shows whether lines of limbo source have been +executed or not. It can also show the number of times a line of code has been +executed and can accumulate results over a series of runs if so desired. The source in +question should be compiled with the +.B -g +flag so that the relevant symbol table files exist. +.PP +The +.B -n +option lists the name of the file along with the line number. +.PP +The +.B -f +option shows the number of times source code is executed rather than simply +indicating coverage. +.PP +The +.B -r +options indicates that the profiling results should be recorded. Any profiled dis file +of the form .dis will have the raw profiling results stored in a file named +.prf. If this file already existed before the run, the results will be added to +this file. The profiling results are not shown when this option is given. +.PP +The +.B -m +option lists the module names which are to be profiled. If none are given, all the +modules loaded by the kernel will be profiled. The name may be the actual name of +the module or its path name. +.PP +The +.B -e +option profiles the module that is loaded first in any following command. In this case +there is no need to give a +.B -m +option as this is added automatically. +.PP +Any remaining arguments are assumed to +specify a command and set of arguments to the command. If this is the case, +.B cprof +will automatically start profiling, run the command to completion and then +stop profiling before either recording the results or showing the profile statistics. +.PP +If no command is given to profile, then +.B cprof +will show the profile statistics from any existing recorded results in .prf files instead. +.PP +.B Cprof +discriminates between different sections of code on the same line. A limbo +for statement, for example, consisting of initialization, condition and step all on the same line +of source code will be dealt with as three separate sections. +.PP +.B Cprof +displays the profile statistics as a list of the limbo source preceded by a line +number and an indication of whether the line was executed or not. For each section +of code on each line, a plus sign indicates that it was executed, a minus sign that +it was not and a question mark indicates that some of the dis instructions associated +with the section of code were executed but some were not. Lines with no +associated dis code do not have an indication. Of course, given the +.B -f +option, the number of times each section is executed is shown instead. +.PP +.I Wm/cprof +is a graphical coverage profiling tool which shows which lines of limbo source have not been +executed. It can accumulate results over a series of runs if so desired. +.PP +The +.B -r +options indicates that the profiling results should be recorded. Any profiled dis file +of the form .dis will have the raw profiling results stored in a file named +.prf. If this file already existed before the run, the results will be added to +this file. +.PP +The +.B -m +option lists the module names which are to be profiled. If none are given, all the +modules loaded by the kernel will be profiled. The name may be the actual name of +the module or its path name. +.PP +The +.B -e +option profiles the module that is loaded first in any following command. In this case +there is no need to give a +.B -m +option as this is added automatically. +.PP +The +.B -f +option allows a view of the execution profile rather than coverage profile. Each source +line is preceded by the number of times it was executed and the text is coloured according +to this: the darker the colour the more times the section of code was executed. +.PP +Any remaining arguments are assumed to +specify a command and set of arguments to the command. If this is the case, +.B wm/cprof +will automatically start profiling, run the command to completion and then +stop profiling before optionally recording the results and showing the profile statistics. +.PP +If no command is given to profile, then +.B wm/cprof +will show the profile statistics from any existing recorded results in .prf files instead. +.PP +.B Wm/cprof +displays the profile statistics graphically. When the +.B -f +option is not present, code that has not been executed is shown +in white against a red background. Code whose corresponding dis instructions have +not been wholly executed are shown in red against a white background. Typically a +line of code such as +.EX + x = !x; +.EE +might show only partial execution if x has changed value from 1 to 0 but not +vice-verse. +.PP +The top of the text window names the module along with any modules before and +after it in the list. If a module has 100% coverage this is stated as well. To help find +unexecuted code, use the find icon in the menu bar. To move to the next or go back to +any other profiled modules, use the arrow icons in the menu bar. The last icon, the reload +icon, pops up a menu of profiled modules to choose from. +.PP +.B wm/cprof +calls +.I cprof +to do the actual work. +.SH EXAMPLE +To profile a particular command +.IP +.EX +cprof /dis/math/sieve 100 +.EE +.PP +To profile the same command but restrict attention to its own module (Sieve). +.IP +.EX +cprof -m Sieve /dis/math/sieve 100 +.EE +.PP +A shorter version of the above: +.IP +.EX +cprof -e /dis/math/sieve 100 +.EE +.PP +Make 3 runs recording results as we go: +.IP +.EX +cprof -e -r /dis/math/sieve 100 +cprof -e -r /dis/math/sieve 1000 +cprof -e -r /dis/math/sieve 10000 +.EE +.PP +Now look at the cumulative results: +.IP +.EX +cprof -m /dis/math/sieve.dis +.EE +.PP +To profile a particular command: +.IP +.EX +wm/cprof /dis/math/sieve 100 +.EE +.PP +To profile the same command but restrict attention to its own module (Partitions). +.IP +.EX +wm/cprof -m Sieve /dis/math/sieve 100 +.EE +.PP +A shorter version of the above: +.IP +.EX +wm/cprof -e /dis/math/sieve 100 +.EE +.PP +Make 3 runs recording results as we go using cprof for simplicity: +.IP +.EX +cprof -e -r /dis/math/sieve 100 +cprof -e -r /dis/math/sieve 1000 +cprof -e -r /dis/math/sieve 10000 +.EE +.PP +Now look at the cumulative results graphically: +.IP +.EX +wm/cprof -m /dis/math/sieve.dis +.EE +.SH SOURCE +.B /appl/cmd/cprof.b +.br +.B /appl/wm/cprof.b +.SH SEE ALSO +.IR mprof (1), +.IR prof (1), +.IR prof (2), +.IR prof (3) +.SH BUGS +Neither command can profile compiled limbo programs. diff --git a/static/inferno/man1/cpu.1 b/static/inferno/man1/cpu.1 new file mode 100644 index 00000000..fe13c09c --- /dev/null +++ b/static/inferno/man1/cpu.1 @@ -0,0 +1,64 @@ +.TH CPU 1 +.SH NAME +cpu \- execute a remote command +.SH SYNOPSIS +.B cpu +[ +.B -C +.I alg +] +.RI [ net\fB!\fP ] host +[ +.I command +[ +.IR arg ... +] +] +.SH DESCRIPTION +.B Cpu +dials +.I host +(using network +.B tcp +if +.I net +is not given), exports the local namespace and executes the given +.I command +on that machine. The local namespace is visible to the +command in +.BR /n/client ; +local device files are bound into the remote device directory. +If +.I command +is not given, then +.B /dis/sh +is run. +.PP +The +.B -C +option sets the algorithm +to be used following authentication for digesting or encryption, to +.IR alg . +See +.IR ssl (3) +for the supported algorithms. +The default is +.BR none : +.IR ssl (3) +is not used after authentication. +.SH SOURCE +.B /appl/cmd/cpu.b +.SH SEE ALSO +.IR dial (2), +.IR keyring-auth (2), +.IR security-auth (2) +.SH BUGS +Although the draw device files are visible +to the remote command, the original implementation +of Tk meant that windowing applications could not +receive events when +run remotely. +That has been fixed in this release, but +.I cpu +has not yet been updated to take advantage. +A later update will do that. diff --git a/static/inferno/man1/crypt.1 b/static/inferno/man1/crypt.1 new file mode 100644 index 00000000..6ec1e2ef --- /dev/null +++ b/static/inferno/man1/crypt.1 @@ -0,0 +1,98 @@ +.TH CRYPT 1 +.SH NAME +crypt, aescbc \- data encryption +.SH SYNOPSIS +.B crypt +[ +.B -d +] [ +.BI -a " alg\fP\fR[\f5/\fP\fIalg\fP\fR]\fP" +] [ +.BI -f " keyfile" +] [ +.BI -k " key" +] [ +.B -? +] +.PP +.B auth/aescbc +[ +.B -d +] [ +.B -e +] [ +.BI -f " keyfile" +] [ +.BI -k " key" +] +.SH DESCRIPTION +.I Crypt +reads a data stream from its standard input and writes it encrypted to standard output, +preceded by a header that gives details of the algorithm used. +If the +.B -d +option is given, +.I crypt +decrypts the standard input instead, writing the clear text on standard output. +The options are: +.TP +.BI -a " alg..." +Specifies one or two algorithms, for encryption and/or digests. +The algorithms are those supported by +.IR ssl (3). +If two algorithms are given, they should be separated by a slash +.RB ( / ) +or space, following the conventions of +.IR ssl (3). +.TP +.BI -f " keyfile" +Read the encryption key from the given file, which obviously should be carefully protected. +Trailing newlines are ignored. +.TP +.BI -k " key" +Use +.I key +as the encryption key. +.TP +.B -? +Print a list of the available encryption and digest algorithms. +.PP +If the secret +.I key +is not otherwise supplied, +.I crypt +prompts for it on +.BR /dev/cons . +There is no need to give algorithms when decrypting, because they are taken from the header. +The default algorithm is +.BR md5/ideacbc . +It might be necessary to change that when using +.I crypt +for commercial purposes, as noted in +.IR keyring-crypt (2). +.PP +.I Aescbc +encrypts and decrypts using AES (Rijndael) in cypher +block chaining (CBC) mode. +It uses input and output formats compatible with Plan 9's +.I aescbc +command; it also +accepts input in the format used by +.IR keyfs (4) +and Plan 9's +.IR secstore . +The +.B -e +option causes it to encrypt; the +.B -d +option to decrypt. +The other options are just as for +.IR crypt . +.SH SOURCE +.B /appl/cmd/crypt.b +.br +.B /appl/cmd/auth/aescbc.b +.SH SEE ALSO +.IR ssl (3), +.IR keyfs (4) + diff --git a/static/inferno/man1/date.1 b/static/inferno/man1/date.1 new file mode 100644 index 00000000..c2dc870c --- /dev/null +++ b/static/inferno/man1/date.1 @@ -0,0 +1,55 @@ +.TH DATE 1 +.SH NAME +date \- print the date +.SH SYNOPSIS +.B date +[ +.B -u +] [ +.B -n +] [ +.I seconds +] +.SH DESCRIPTION +Prints the date to standard output, in the format: +.IP +.EX +Wed Jan 12 11:54:06 GMT 2002 +.EE +.PP +The options are +.TP +.B -u +Report Greenwich Mean Time (GMT) rather than local time. +.TP +.B -n +Report the date as the number of seconds since the +epoch, 00:00:00 GMT, January 1, 1970. +.PP +Current time is obtained +by reading +.BR /dev/time . +The conversion from Greenwich Mean Time to local time depends on the contents of +.BR /locale/timezone . +.PP +If the optional argument +.I seconds +is present, it is used as the time to convert rather than +the real time. +.SH FILES +.TF "/locale/timezone " +.TP +.B /locale/timezone +Current time zone name and adjustments +.TP +.B /locale +A directory containing time zone tables +.TP +.B /dev/time +microseconds since the epoch, 00:00:00 GMT, 1 January 1970 +.SH SOURCE +.B /appl/cmd/date.b +.SH "SEE ALSO" +.IR time (1), +.IR daytime (2), +.IR cons (3) diff --git a/static/inferno/man1/dd.1 b/static/inferno/man1/dd.1 new file mode 100644 index 00000000..17dd66d3 --- /dev/null +++ b/static/inferno/man1/dd.1 @@ -0,0 +1,182 @@ +.TH DD 1 +.SH NAME +dd \- convert and copy a file +.SH SYNOPSIS +.B dd +[ +.I option value +] +\&... +.SH DESCRIPTION +.I Dd\^ +copies the specified input file +to the specified output with +possible conversions. +The standard input and output are used by default. +The input and output block size may be +specified to take advantage of raw physical I/O. +The options are +.TF "oseek\ \ " +.PD +.TP +.BI -if\ f +Open file +.I f +for input. +.TP +.BI -of\ f +Open file +.I f +for output. +.TP +.BI -ibs\ n\^ +Set input block size to +.I n\^ +bytes (default 512). +.TP +.BI -obs\ n\^ +Set output block size (default 512). +.TP +.BI -bs\ n\^ +Set both input and output block size, +superseding +.I ibs\^ +and +.IR obs . +If no conversion is specified, +preserve the input block size instead of packing short blocks +into the output buffer. +This is particularly efficient since no in-core copy need be done. +.TP +.BI -cbs\ n\^ +Set conversion buffer size. +.TP +.BI -skip\ n\^ +Skip +.I n +input records before copying. +.TP +.BI -iseek\ n\^ +Seek +.I n +records forward on input file +before copying. +.TP +.BI -files\ n\^ +Catenate +.I n +input files (useful only for magnetic tape or similar input device). +.TP +.BI -oseek\ n\^ +Seek +.I n\^ +records from beginning of output file before copying. +.TP +.BI -count\ n\^ +Copy only +.I n +input records. +.HP +\fL-conv\ ascii\ \ \ \ \fRConvert +.SM EBCDIC +to +.SM ASCII. +.PD0 +.RS "\w'\fL-conv\ \fP'u" +.TP "\w'\fLunblock\ \ \fP'u" +.B ebcdic +Convert +.SM ASCII +to +.SM EBCDIC. +.TP +.B ibm +Like +.B ebcdic +but with a slightly different character map. +.TP +.B block +Convert variable length +.SM ASCII +records to fixed length. +.TP +.B unblock +Convert fixed length +.SM ASCII +records to variable length. +.TP +.B lcase +Map alphabetics to lower case. +.TP +.B ucase +Map alphabetics to upper case. +.TP +.B swab +Swap every pair of bytes. +.TP +.B noerror +Do not stop processing on an error. +.TP +.B sync +Pad every input record to +.I ibs\^ +bytes. +.RE +.PD +.PP +.fi +Where sizes are specified, +a number of bytes is expected. +A number may end with +.L k +or +.LR b +to specify multiplication by +1024 or 512 respectively; +a pair of numbers may be separated by +.L x +to indicate a product. +Multiple conversions may be specified in the style: +.LR "-conv ebcdic,ucase" . +.PP +.L Cbs\^ +is used only if +.LR ascii\^ , +.LR unblock\^ , +.LR ebcdic\^ , +.LR ibm\^ , +or +.L block\^ +conversion is specified. +In the first two cases, +.I n +characters are copied into the conversion buffer, any specified +character mapping is done, +trailing blanks are trimmed and new-line is added +before sending the line to the output. +In the latter three cases, characters are read into the +conversion buffer and blanks are added to make up an +output record of size +.IR n . +If +.L cbs\^ +is unspecified or zero, the +.LR ascii\^ , +.LR ebcdic\^ , +and +.L ibm\^ +options convert the character set without changing the block +structure of the input file; the +.L unblock\^ +and +.L block\^ +options become a simple file copy. +.SH SOURCE +.B /appl/cmd/dd.b +.SH DIAGNOSTICS +.I Dd +reports the number of full + partial input and output +blocks handled. +.SH "SEE ALSO" +.IR cat (1), +.IR cp (1) diff --git a/static/inferno/man1/deb.1 b/static/inferno/man1/deb.1 new file mode 100644 index 00000000..3f8f8923 --- /dev/null +++ b/static/inferno/man1/deb.1 @@ -0,0 +1,172 @@ +.TH DEB 1 +.SH NAME +deb \- graphical Limbo debugger +.SH SYNOPSIS +.B wm/deb +.RB [ -f +.IR file ] +.RB [ -p +.IR pid ] +.SH DESCRIPTION +.B Wm/deb +displays two windows, the main debugging window and +a stack window for browsing the data values of the thread +currently being debugged. +.PP +Debugging is performed using the facilities of the +.B prog +device bound to the local +.B /prog +directory (see +.IR prog (3)). +Debugging of code running on a remote machine can be performed by +binding the remote +.B /prog +directory in place of the local one. (See +.IR bind (1)). +.PP +In order to display source code and set breakpoints accurately, an up to date +symbol file +.RB ( .sbl ) +must be available as well as the limbo source file +.RB ( .b ). +.SS "Main window" +The main window is comprised of a menu bar, an icon bar and three text panels. +One panel, labelled +.IR Threads , +lists the process IDs (PIDs) of the threads being debugged. +Another panel, labelled +.IR Break , +lists the set of breakpoints, each given a unique number. +The third and largest panel displays the source code of the thread being debugged. +.PP +Breakpoint positions are shown by red text in the source code display. +Clicking on a breakpoint number in the +.I Break +panel results in the source code panel being scrolled or updated to show +the breakpoint. +Breakpoints are toggled by clicking on the statement or sub-expression in the source +code window and clicking the breakpoint +button on the icon bar. +A breakpoint can be hit by any of the threads being debugged - +breakpoints are set on source code, not on individual threads. +.PP +Clicking on a PID in the +.I Threads +panel results in the source code panel being scrolled or updated to highlight +where in the code the thread is blocked, broken or halted on a breakpoint. +.PP +A running thread can be halted by clicking the stop button on the icon bar. +A thread will also halt when it hits a breakpoint. +Once a thread is halted (not blocked or broken) its execution can be advanced +a step at a time by means of the +buttons on the icon bar. +The thread can be stepped one operation at a time or a statement at a time. +Normally when single stepping, function calls are stepped into. +Stepping commands allow for stepping over function calls, whereby the function is still +called but its whole execution is treated as a single step. +Stepping out of a function is also provided, whereby execution continues unabated +until returning from the function. +Execution of the halted thread can be continued, running until it terminates, breaks +or hits another breakpoint. +.PP +Any of the threads being debugged can be killed or detached from the debugger +using buttons on the icon bar. +Detaching a halted thread resumes its execution. +.PP +The main window provides a set of menus for viewing source files, attaching to +other threads, setting debugger options and searching for text in the source code window. +.SS "Stack Window" +The stack window is used to inspect the values of local and global variables and function +arguments. +Items are displayed in a hierarchical manner. +Any item that contains other items, such as a variable of an ADT type, can be expanded +to show the values of the sub-items. +The sub-items are displayed by clicking on the expand button on the left of the +containing item, they can be hidden by pressing the button again. +The sub-item list is displayed indented from its container as a visual cue to their +association. +.PP +The stack window shows the full stack trace of the current thread. +The stack trace is displayed as a list of frames, the current frame displayed +at the top of the window. +Each frame is given by the function name and source location of the code being +executed in the frame. +Each frame has the following sub-items: +.TP 10 +.B locals +Local variables declared in the function of the frame. +.TP +.B args +The arguments passed to the frame function. +.TP +.B module +The module global variables in the implementation module +of the frame function. +.PP +Clicking on the name of a variable or function argument highlights the declaration of +that name in the source panel of the main debug window. +Clicking on the function name of a stack frame causes the main window source panel to +display the current statement of the frame. +.PP +The debugger has a stack button which simply brings +that window to the front of the display. +.PP +The options menu has a layout configuration which +allows the user to have a horizontal scroll bar or to wrap long +lines (the default); and an option to strip carriage return characters that precede newlines (for the benefit of those using Windows' editors). +The state of the options is saved in the file +.BI /usr/ username /lib/deb +if that file can be created. The debugger attempts to read +this file on startup to set the user's preferred options. +.SH OPTIONS +.TP 10 +.BI -f " file" +Specifies a source file +.RB ( .b ) +to load. +The associated executable file +.RB ( .dis ) +is not launched until the continue +.RI ( "run to breakpoint" ) +button is pressed. +This option takes precedence over the +.B -p +option. +.TP +.BI -p " pid" +Attach to the already running thread given by +.IR pid . +.SH PLUMBING +.B wm/deb +plumbs the address of text selected using +button 3 in the source display panel, as +.B text +of the form +.IP +.IB "file-name" : "line-number" +.SH FILES +.BI /prog/ n /* +.br +.BI /usr/ username /lib/deb +.SH SOURCE +.B /appl/wm/deb.b +.br +.B /appl/wm/debdata.b +.br +.B /appl/wm/debsrc.b +.SH "SEE ALSO" +.IR limbo (1), +.IR prog (3) +.SH BUGS +Displaying large arrays in the Stack window can use excessive amounts of +memory. +.PP +When setting breakpoints there is no visual cue for the selected statement or operation until +the breakpoint is actually set. +.PP +It is only possible to debug modules executed by the interpreter. +Code that has been JITed, the compilation execution method, yields +stack information that does not correspond to information in the symbol +.RB ( .sbl ) +file. diff --git a/static/inferno/man1/diff.1 b/static/inferno/man1/diff.1 new file mode 100644 index 00000000..494dacfb --- /dev/null +++ b/static/inferno/man1/diff.1 @@ -0,0 +1,136 @@ +.TH DIFF 1 +.SH NAME +diff \- differential file comparator +.SH SYNOPSIS +.B diff +[ +.B -efbwr +] file1 ... file2 +.SH DESCRIPTION +.I Diff +tells what lines must be changed in two files to bring them +into agreement. +If one file +is a directory, +then a file in that directory with basename the same as that of +the other file is used. +If both files are directories, similarly named files in the +two directories are compared by the method of +.I diff +for text +files and +.IR cmp (1) +otherwise. +If more than two file names are given, then each argument is compared +to the last argument as above. +The +.B -r +option causes +.I diff +to process similarly named subdirectories recursively. +The normal output contains lines of these forms: +.IP "" 5 +.I n1 +.B a +.I n3,n4 +.br +.I n1,n2 +.B d +.I n3 +.br +.I n1,n2 +.B c +.I n3,n4 +.PP +These lines resemble Plan 9 or Unix +.I ed +commands to convert +.I file1 +into +.IR file2 . +The numbers after the letters pertain to +.IR file2 . +In fact, by exchanging `a' for `d' and reading backward +one may ascertain equally how to convert +.I file2 +into +.IR file1 . +As in +.IR ed , +identical pairs where +.I n1 += +.I n2 +or +.I n3 += +.I n4 +are abbreviated as a single number. +.PP +Following each of these lines come all the lines that are +affected in the first file flagged by `<', +then all the lines that are affected in the second file +flagged by `>'. +.PP +The +.B -b +option causes +trailing blanks (spaces and tabs) to be ignored +and other strings of blanks to compare equal. +The +.B -w +option causes all white-space to be removed from input lines +before applying the difference algorithm. +.PP +The +.B -e +option produces a script of +.I "a, c" +and +.I d +commands for the Plan 9 or Unix editor +.IR ed , +which will recreate +.I file2 +from +.IR file1 . +The +.B -f +option produces a similar script, +not useful with +.IR ed , +in the opposite order. It may, however, be +useful as input to a stream-oriented post-processor. +.PP +Except in rare circumstances, +.I diff +finds a smallest sufficient set of file +differences. +.SH FILES +.B /tmp/diff[12] +.SH SOURCE +.B /appl/cmd/diff.b +.SH DIAGNOSTICS +Exit status is the empty string +for no differences, +.L some +for some, +and +.L error +for trouble. +.SH "SEE ALSO" +.IR cmp (1) +.SH BUGS +Editing scripts produced under the +.BR -e " or" +.BR -f " option are naive about" +creating lines consisting of a single `\fB.\fR'. +.br +When running +.I diff +on directories, the notion of what is a text +file is open to debate. +.br +Nothing directly interprets the +.I ed +scripts within the Inferno environment. diff --git a/static/inferno/man1/disdep.1 b/static/inferno/man1/disdep.1 new file mode 100644 index 00000000..1107cd98 --- /dev/null +++ b/static/inferno/man1/disdep.1 @@ -0,0 +1,68 @@ +.TH DISDEP 1 +.SH NAME +disdep \- print load dependencies for Dis file +.SH SYNOPSIS +.B disdep +[ +.B -a +] +[ +.B -d +] +[ +.B -o +] +[ +.B -p +] +[ +.B -s +] +.I file +\&... +.SH DESCRIPTION +.B Disdep +reads each +.IR file , +which must be a Dis object file, +and finds all unique strings in it that end in +.BR .dis . +It takes each such string as the name of a Dis file, and +if the file exists, it does the same for it, and so on, recursively. +It writes each unique name to the standard output. +The result is a list of all statically-named Dis files that might be referenced by +an application, typically as the operand of a Limbo +.B load +operator. +Several options change or extend the output: +.TP +.B -a +Print all names as they are encountered in the search, including duplicates. +.TP +.B -d +Indent to show the dependency structure. +.TP +.B -o +Show only the immediate (outermost) dependencies of each +.IR file . +.TP +.B -p +Print the dependency relation as pairs: +a file, a space, and the name of a file on which it depends. +Only the the first name is printed when a file depends on no other. +This format is useful as input to +.IR mk (10.1) +dependency generators, or dependency graphing programs. +.TP +.B -s +Include strings of the form +.B +\&"$[A-Z].*" +on the assumption +they are the names of system modules loaded by the application. +.SH SOURCE +.B /appl/cmd/disdep.b +.SH "SEE ALSO" +.IR limbo (1) +.SH BUGS +It cannot see file names that the program calculates. diff --git a/static/inferno/man1/dmview.1 b/static/inferno/man1/dmview.1 new file mode 100644 index 00000000..01405695 --- /dev/null +++ b/static/inferno/man1/dmview.1 @@ -0,0 +1,41 @@ +.TH DMVIEW 1 +.SH NAME +dmview, dmwm \- view remote displays +.SH SYNOPSIS +.B wm/dmview +.I address +.PP +.B wm/dmwm +[ +.BI -p " port" +] +.SH DESCRIPTION +.I Dmwm +is run in place of the usual Inferno window manager +.IR wm (1), +to allow the display's contents to be viewed elsewhere. +.I Dmwm +waits for incoming viewing requests on the given TCP/IP +.I port +(default: 9998). +On each connection attempt, +.I dmwm +prompts the user to accept or reject the request for a remote view. +.PP +.I Dmview +opens a connection to an instance of +.I dmwm +at the given network +.I address +and, if the remote user accepts the connection, +opens a new window on +.IR dmview 's +own display that contains a replica of the remote display. +.SH SOURCE +.B /appl/wm/drawmux/dmview.b +.br +.B /appl/wm/drawmux/dmwm.b +.br +.B /appl/wm/drawmux/drawmux.b +.SH SEE ALSO +.IR drawmux (2) diff --git a/static/inferno/man1/du.1 b/static/inferno/man1/du.1 new file mode 100644 index 00000000..6129dde4 --- /dev/null +++ b/static/inferno/man1/du.1 @@ -0,0 +1,66 @@ +.TH DU 1 +.SH NAME +du \- disk usage +.SH SYNOPSIS +.RB du " [ \-anstu ] +[ +.BI -b " blocksize" +] +.RI [ "file ..." ] +.SH DESCRIPTION +.I Du +writes to standard output the total size of files specified as arguments. +Directories are recursively tallied. +A summary line is produced for each argument +.I file +and subdirectory. +If no filenames are provided, +the command operates on the current directory. +.PP +Output sums are rounded up to the nearest 1k unit (1024 bytes). +By default, storage is assumed to be quantised in units of 1024 bytes. +The +.B -b +option sets a different +.I blocksize +for quantisation, +optionally suffixed by +.B k +for units of kilobytes; +output is still in 1k units. +.PP +.I Du +accepts the following options: +.TP +.B \-a +Output usage information for all subordinate files, +not just directories. +.TP +.B \-n +Output just the filenames (but see the +.B -t +option below); implies +.BR -a . +.TP +.B \-s +Print only the summary line for each +.IR file . +.TP +.B \-t +Display the last-modified time for each file, not its size; +when used with the +.B \-n +option, +outputs the filename, +modification time (seconds since the epoch), +size (in bytes), +and checksum. +The checksum field is always 0; it is a place-holder for a value computed by another command in a pipeline. +.TP +.B \-u +Display the last-accessed time for each file, not its size. +.SH SOURCE +.B /appl/cmd/du.b +.SH SEE ALSO +.IR sh (1), +.IR sys-stat (2) diff --git a/static/inferno/man1/ebook.1 b/static/inferno/man1/ebook.1 new file mode 100644 index 00000000..8c8c85c1 --- /dev/null +++ b/static/inferno/man1/ebook.1 @@ -0,0 +1,73 @@ +.TH EBOOK 1 +.SH NAME +ebook \- Open Ebook browser +.SH SYNOPSIS +.B ebook/ebook +[ +.B -m +] +.I file +.SH DESCRIPTION +.I Ebook +provides a graphical browser for a set of files in Open eBook (OEB) version 1.0.1 +format. It takes some care to try to ensure that memory usage does +not grow proportionally to the size of the book that is being viewed. +.I File +names either an OEB package file (conventional suffix +.BR .opf ) +or an OEB document (conventional suffix +.B .html +or +.BR .xml ). +The +.B -m +option causes the window to be created in ``mini'' size +as suitable for display on a 240x320 pixel device. +.SS "GUI controls" +Controls at the top of the window enable the user to move +forward and backwards by pages through the document. +A ``Guide'' menu provides access to the guide as found in +the ebook package (if there is one). If the links in this are +followed, or if the reader follows links embedded within +the document, the up and down arrows enable moving +backwards and forwards in the ``link history''. +Arrows on the keyboard mimic the actions of the buttons +at the top of the window. +.PP +Clicking in the text allows an annotation to made on the +text; a text window is popped up and any text typed in +it will appear in a label attached to that text. +Annotations are stored in persistent storage and will +last from view to view of the document. +.SH FILES +.TF /lib/ebook/default.css +.TP +.B /lib/ebook/default.css +Initial stylesheet settings. +.TP +.B \fIdocument\fP.index +Index file for the OEB +.IR document , +one display size only. +.TP +.B \fIdocument\fP.annot +Annotations for the OEB +.IR document . +.TP +.B /lib/ebooks +Standard place to keep ebooks. +.SH SOURCE +.B /appl/ebook +.SH SEE ALSO +.IR xml (2), +``The Open eBook Publication Structure 1.0.1'' +.SH BUGS +Does not do floats. +.br +Does not do borders & backgrounds properly. +.br +Large top-level constructs are not bounded in memory usage. +.br +Does not do links to external documents. +.br +Does not do fallbacks. diff --git a/static/inferno/man1/echo.1 b/static/inferno/man1/echo.1 new file mode 100644 index 00000000..e7c96413 --- /dev/null +++ b/static/inferno/man1/echo.1 @@ -0,0 +1,32 @@ +.TH ECHO 1 +.SH NAME +echo \- print arguments +.SH SYNOPSIS +.B echo +.RB [ \-n ] +.RI [ "arg ..." ] +.PP +.B load echo +.br +.B echo +.RB [ \-n ] +.RI [ "arg ..." ] +.SH DESCRIPTION +.I Echo +writes its arguments separated by blanks +and terminated by a newline on the standard output. +Option +.B \-n +suppresses the newline. +.PP +A version of +.I echo +can optionally be loaded into the Shell +.IR sh (1) +if need be, to make shell scripts a little faster. +.SH SOURCE +.B /appl/cmd/echo.b +.br +.B /appl/cmd/sh/echo.b +.SH SEE ALSO +.IR sh (1) diff --git a/static/inferno/man1/emu.1 b/static/inferno/man1/emu.1 new file mode 100644 index 00000000..80e3a5f5 --- /dev/null +++ b/static/inferno/man1/emu.1 @@ -0,0 +1,285 @@ +.TH EMU 1E +.SH NAME +emu \- Inferno emulator (hosted Inferno) +.SH SYNOPSIS +.B emu +[ +.BI \-g " Xsize x Ysize" +] +[ +.BI \-c n +] +[ +.BI -d " daemon" +] +.RB [ \-s ] +[ +.BI \-p " pool=maxsize" +] +[ +.BI \-f " font" +] +[ +.BI \-r " rootpath" +] +.RB [ \-7 ] +[ +.RB \-C " channel" +] +[ +.RB \-S +] +[ +.B -v +] +[ +.I cmd +.RI [ " arg ... " ] +] +.SH DESCRIPTION +.I Emu +provides the Inferno emulation environment, +otherwise known as `hosted Inferno'. +The emulator runs as an application under the +machine's native operating system, and +provides system services and a Dis virtual machine for Inferno applications. +.PP +.I Emu +starts an Inferno initialisation program +.BR /dis/emuinit.dis , +whose path name is interpreted in the +Inferno file name space, +not in +the native operating system's name space. +It in turn invokes the shell +.BR /dis/sh.dis +by default or the optional +.I cmd +and its arguments. +If the +.B \-d +option is specified, +.I emu +instead invokes +.BR daemon , +turning the +.I emu +instance into an Inferno service process on the network, +running the given +.I daemon +service or services. +.PP +The emulator supports the following options: +.TP +.BI \-c n +Unless specified otherwise by the module (see +.B wm/rt +in +.IR wm-misc (1)), +.I emu +uses an interpreter to execute Dis instructions. +Setting +.I n +to 1 (the default value is 0) +makes the default behaviour +to compile Dis +into native instructions when a module is loaded, +resulting in faster execution but larger run-time size. +Setting +.I n +to values larger than 1 enables increasingly detailed traces of the compiler. +.TP +.BI \-d " daemon" +Run +.I emu +as a server, invoking +.I daemon +instead of +.BR /dis/emuinit.dis , +and disabling +input from +.B cons +(see +.IR cons (3)). +.TP +.BI \-g Xsize x Ysize +Define screen width and height in pixels. +The default values are 640x480 and the minimum values are 64x48. +Values smaller than the minimum or greater than the +available display size are ignored. +.TP +.BI \-f font +Specify the default font for the +.B tk +module. +The path is interpreted in the Inferno name space. +If unspecified, the +.B font +variable has value +.BR /fonts/lucm/unicode.9.font . +.TP +.BI \-r rootpath +Specify the host system directory that +.I emu +will serve as its root. +The default value is +.B /usr/inferno +on most systems, but +.BR \einferno +on Windows. +.TP +.B \-s +Specify how the emulator deals with traps reported by the operating system. +By default, they suspend execution of the offending thread within the virtual machine +abstraction. +The +.B \-s +option causes +.I emu +itself to trap, permitting debugging of the +broken host operating system process that results when a trap occurs. +(This is intended to allow debugging of +.IR emu , +not Inferno applications.) +.TP +.BI \-p pool = maxsize +Specify the maximum size in bytes of the named memory allocation pool. +The pools +are: +.RS +.TP \w'imagexxx'u +.B main +the general malloc arena +.TP +.B heap +the Dis virtual machine heap +.TP +.B image +image storage for the display +.RE +.TP +.B \-7 +When host graphics is provided by X11, request a 7-bit colour map; +use this option only if X11 refused to allow +.I emu +to configure the normal (default) 8-bit Inferno colour map. +.TP +.B \-C channel +Use the given +.I channel +for the display, if possible. +See +.IR image (6) +for the full range of channel descriptors. +For example, +.B k8 +gives 8 bit greyscale, and +.B x8r8g8b8 +gives 24 bit colour on a PC. +The set of channels supported is platform-dependent. +.TP +.B \-S +Force stylus input behaviour for Tk mouse events: +motion events are received only when a button is down +(just as a stylus produces no events until it touches the screen). +This option only affects the behaviour of Tk mouse events, it does not +affect the behaviour of +.B /dev/pointer +as described in +.IR cons (3). +.TP +.B \-v +Print version data: edition and revision date. +.PP +Options may also be set in the host operating system's environment variable +.BR EMU ; +they are overridden by options supplied on the command line. +.PP +.I Emu +finds the host system directory that will serve as its Inferno root directory +as the last value found as follows: +it is the value built-in to the executable, by default; or +the value of the host system's environment variable +.BR INFERNO ; +or the value of the environment variable +.BR ROOT ; +or the value of a +.B -r +option in the environment variable +.BR EMU ; +or the +.I rootpath +set by a +.B -r +option to the +.I emu +command itself. +.PP +.I Emu +sets several Inferno environment variables: +.TF emuwdirxxx +.PD +.TP +.B cputype +host processor architecture: +.B 386 +(for any x86), +.BR arm , +.BR mips , +.B power +(any Power or PowerPC), +.BR sparc , +and +.BR spim +(little-endian MIPS). +.TP +.B emuargs +arguments with which +.I emu +was invoked +.TP +.B emuhost +host operating system type, such as: +.BR FreeBSD , +.BR Irix , +.BR Linux , +.BR MacOSX , +.BR NetBSD , +.BR Nt +(used for Windows generally), +.BR OpenBSD , +.BR Plan9 , +.B Solaris +and +.BR Unixware . +.TP +.B emuroot +name of directory in host file system that acts as Inferno's root directory +.TP +.B emuwdir +name in host file system of directory where +.I emu +was invoked +.PD +.SH EXAMPLE +To start +.B wm/logon +directly: +.IP +.EX +EMU='-g800x600 -c1' +emu /dis/wm/wm.dis wm/logon -u inferno +.EE +.SH FILES +.TF /dis/emuinit.dis +.TP +.B /dis/emuinit.dis +The default initialisation program. +.TP +.B /dis/sh.dis +The default Inferno shell. +.SH SOURCE +.B /emu +.SH "SEE ALSO" +.IR limbo (1), +.IR wm-misc (1) diff --git a/static/inferno/man1/env.1 b/static/inferno/man1/env.1 new file mode 100644 index 00000000..c933084b --- /dev/null +++ b/static/inferno/man1/env.1 @@ -0,0 +1,27 @@ +.TH ENV 1 +.SH NAME +env \- display environment variables +.SH SYNOPSIS +.B env +.SH DESCRIPTION +.I Env +prints on standard output the current process's environment +(see +.IR sh (1) +and +.IR env (3)) +listing each variable and its current value. +.PP +Individual variable values can be set by assignment in +.IR sh (1). +.SH SOURCE +.B /appl/cmd/env.b +.SH SEE ALSO +.IR acme (1), +.IR sh (1), +.IR env (2) +.SH BUGS +.I Env +does not understand that environment variables as stored by +.IR sh (1) +are lists. diff --git a/static/inferno/man1/fc.1 b/static/inferno/man1/fc.1 new file mode 100644 index 00000000..cf3b543d --- /dev/null +++ b/static/inferno/man1/fc.1 @@ -0,0 +1,183 @@ +.TH FC 1 +.SH NAME +fc \- command-line floating point calculator +.SH SYNOPSIS +.B fc +[ +.I base +] +.I expression +.br +.SH DESCRIPTION +.B Fc +calculates the result of its argument +.I expression +and prints the result in the format indicated by +the optional base argument. +.I Base +can be one of: +.TP +.B -d +Decimal, as produced by the +.B %g +format of +.IR sys-print (2). +.br +.TP +.B -x +Hexadecimal, prefixed with +.BR 0x . +.TP +.B -o +Octal, prefixed with +.BR 0 . +.TP +.B -b +Binary, prefixed with +.BR 0b . +.TP +.B -B +As +.BR -b , +but with extra lines to help bit-counting. +.TP +.BI -r\ radix +In base +.IR radix , +prefixed with +.IB \fR``\fPradix r\fR'',\fP +as understood by Limbo (e.g. +.BR 16r3fff ). +.TP +.B -c +As a unicode character, prefixed with +.BR @ . +.RE +.PP +.I Expression +is in reverse polish notation: +each command line argument is either an operand (number) or an operator. +Operands are pushed on a stack; operators pop items from +the stack (the number of items depends on the operator) +and push their result. All operands are converted to double precision +floating point numbers before being pushed. +Integer operations convert their operands to big (64-bit) integers. +When all arguments are exhausted, all the values currently +on the stack are printed, first-pushed first, in the specified +output format. +.PP +Operands can be given in any of the formats that +.I fc +can print, as detailed above. +.PP +When an operation is not commutative, the argument values +will be taken from the stack first-pushed first. +Most functions from from +.IR math-elem (2), +.IR math-fp(2) +are provided. +In addition, other provided operators include: +.TP +.B + - / x +Representing the four rules. Note the use of +.B x +rather than +.BR * , +to avoid clashes with shell metacharacters. +.br +.TP +.B xx +To the power. (equivelant to 'pow') +.br +.TP +.B rad deg +Convert value to or from radians. +.br +.TP +! +Factorial. +.br +.TP +.B _ +Unary minus. +.br +.TP +.B and or xor not +Bitwise operations. +.br +.TP +.B shl shr +Bitwise shift left/right. +.TP +.B p +Print the current top value on the stack. +.br +.TP +.B sum +Sum all the values currently pushed on the stack. +.br +.TP +.B swap +Swap the top two stack items. +.br +.TP +.B dup +Duplicate the top item on the stack. +.br +.TP +.B rep +Repeatedly execute the last operator until +there is only only one item left on the stack. +This is only valid for operators that take exactly two +arguments. +.RE +.PP +A few symbolic names for operands are recognised, including +.B pi +(or +.BR π ), +.BR e , +and +.BR macheps . +.SH EXAMPLES +.PP +fc 22 7 / +.PP +.nf + gives 3.1428571429 +.fi +.PP +fc -b 1 2 3 4 sum +.PP +.nf + gives 0b00001010 +.fi +.PP +fc 10 0b10 010 0x10 x rep 0xa00 swap - +.PP +.nf + gives 0 +.fi +.PP +fc -help +.PP +.nf + gives a usage summary, including a list of + the names of all the operators. +.fi +.ne 5 +.SH SEE ALSO +.IR calc (1), +.IR math-fp (2), +.IR math-elem (2), +.IR sh-expr (1) +.SH DIAGNOSTICS +An error message is displayed if +an operator is called on a stack with +too few elements. This also causes +.I fc +to yield a non-null exit status. +.SH BUGS +The +.B -B +option will only work for fixed-width fonts. diff --git a/static/inferno/man1/filename.1 b/static/inferno/man1/filename.1 new file mode 100644 index 00000000..b5be9908 --- /dev/null +++ b/static/inferno/man1/filename.1 @@ -0,0 +1,61 @@ +.TH FILENAME 1 +.SH NAME +filename \- interactively select a file +.SH SYNOPSIS +.B wm/filename +[ +.B -d +.I startdir +] +[ +.B -g +.I geom +] +[ +.B -t +.I title +] +[ +.IR pattern ... +] +.SH DESCRIPTION +.B Filename +pops up a file browser window, allows the user to select +a file and prints the name of that file to the standard output. +The optional list of patterns gives a list of wildcard patterns +as understood by +.IR filepat (2); +the file browser will initially show only files matching one +or more of the patterns. (N.B. patterns must be quoted to +prevent the shell from interpreting them). The following options +are recognised: +.TP 10 +.B -d +.I Startdir +gives the initial directory shown by the file browser. +.TP +.B -g +.I Geom +is given as a tk argument to the file browser window. +.TP +.B -t +.I Title +specifies the title of the file browser window. +.SH EXAMPLE +The following +.IR sh (1) +command compiles an interactively chosen Limbo source file, +placing the file browser window at a particular spot on the screen +and starting at joe's home directory. +.EX +limbo `{wm/filename -t 'Select a source file' -g '-x 50 -y 50' + -d/usr/joe '*.b' '*.m'} +.EE +.SH SOURCE +.B /appl/wm/filename.b +.SH SEE ALSO +.IR wmlib (2), +.IR sh (1) +.SH BUGS +The file browser window actually appears 20 pixels below and to the right +of the position specified. diff --git a/static/inferno/man1/fmt.1 b/static/inferno/man1/fmt.1 new file mode 100644 index 00000000..d3def7c2 --- /dev/null +++ b/static/inferno/man1/fmt.1 @@ -0,0 +1,47 @@ +.TH FMT 1 +.SH NAME +fmt \- simple text formatter +.SH SYNOPSIS +.B fmt +[ +.BI -l " n" +] [ +.BI -i " n" +] [ +.B -j +] +[ +.I file ... +] +.SH DESCRIPTION +.I Fmt +copies the given +.I files +(standard input by default) +to its standard output, filling and indenting lines. +The options are +.TP +.BI -l " n +Output line length is +.IR n , +including indent (default 70). +.TP +.BI -w " n +A synonym for +.BR -l . +.TP +.BI -i " n +Indent +.I n +spaces (default 0). +.TP +.BI -j +Do not join short lines: only fold long lines. +.PP +Empty lines and initial white space in input lines are preserved. +Empty lines are inserted between input files. +.PP +.I Fmt +is idempotent: it leaves already formatted text unchanged. +.SH SOURCE +.B /appl/cmd/fmt.b diff --git a/static/inferno/man1/fortune.1 b/static/inferno/man1/fortune.1 new file mode 100644 index 00000000..6b612925 --- /dev/null +++ b/static/inferno/man1/fortune.1 @@ -0,0 +1,23 @@ +.TH FORTUNE 1 +.SH NAME +fortune \- sample lines from a file +.SH SYNOPSIS +.B fortune +[ +.I file +] +.SH DESCRIPTION +.I Fortune +prints a one-line aphorism chosen at random. +If a +.I file +is specified, the saying is taken from that file; +otherwise it is selected from +.BR /lib/games/fortunes . +.SH FILES +.B /lib/games/fortunes +.br +.B /lib/games/fortunes.index +\ \ fast lookup table, maintained automatically +.SH SOURCE +.B /appl/cmd/fortune.b diff --git a/static/inferno/man1/freq.1 b/static/inferno/man1/freq.1 new file mode 100644 index 00000000..9071a67e --- /dev/null +++ b/static/inferno/man1/freq.1 @@ -0,0 +1,40 @@ +.TH FREQ 1 +.SH NAME +freq \- print histogram of character frequencies +.SH SYNOPSIS +.B freq +[ +.B -dxocr +] +[ +.I file ... +] +.SH DESCRIPTION +.I Freq +reads the given files (default standard input) +and prints histograms of the character frequencies. +By default, +.I freq +counts the value of each byte; +under the +.B -r +option it instead counts +.SM UTF +byte sequences, that is, runes. +.PP +Each non-zero entry of the table is printed preceded by the byte value, +in decimal, octal, hex, and +Unicode +character (if printable). +If any options are given, the +.BR -d , +.BR -x , +.BR -o , +.B -c +flags specify a subset of value formats: decimal, hex, octal, and +character, respectively. +.SH SOURCE +.B /appl/cmd/freq.b +.SH SEE ALSO +.IR utf (6), +.IR wc (1) diff --git a/static/inferno/man1/fs.1 b/static/inferno/man1/fs.1 new file mode 100644 index 00000000..aaf1cc35 --- /dev/null +++ b/static/inferno/man1/fs.1 @@ -0,0 +1,449 @@ +.TH FS 1 +.SH NAME +fs \- file-hierarchy traversal +.SH SYNOPSIS +.B fs +.I verb arg +... +.br +.SH DESCRIPTION +.B Fs +evaluates an expression whose values represent +the contents of a hierarchical filesystem. +There are six types of value: +.TP 10 +.B fs +The complete contents of a filesystem. +.TP +.B entries +Information about the entries in a filesystem without +their content. +.TP +.B gate +A condition that can be used with conditional verbs. +A gate is open to entries satisfying particular +criteria. +.TP +.B selector +A comparator which compares two entries +and selects one, both or neither of them. +.TP +.B string +A simple string literal, represented by itself, +or quoted according to the usual shell quoting rules. +.TP +.B command +A shell command, represented by an +.RB `` @ '' +character followed by a braced block +containing the shell commands. +.TP +.B void +No value. An expression of this type +cannot be used as an argument to any verb. +.PP +A value is represented either by a literal (a string or shell command), +or by a braced block, +.BI { verb +.RI [ arg ...]\f5}\fP, +whose value is the result of evaluating +.I verb +with the given arguments. +.PP +In the following description of the verbs provided, +an entry such as: +.TP 10 +.B print \fIentries\fP \fR->\fP void +.PP +describes a verb +.BR print , +which takes one argument of type +.IR entries , +and the result of which is of type +.BR void . +If the type is not one of those described above, +it should be taken to be of type +.IR string . +.PP +With no arguments, +.I fs +prints a summary of the available verbs. +Verbs understood by +.I fs +include: +.TP 10 +\f5and\fP \fIgate gate\fP [\fIgate\fP...] -> \fIgate\fP +.B And +is a gate that is open to an entry if all its arguments are open. +.TP +\f5bundle\fP \fIfs\fP -> \fIvoid\fP +.B Bundle +converts +.I fs +to an archival format and writes it to the standard output. +.TP +\f5compose\fP [\f5-d\fP] \fIop\fP -> \fIselector\fP +.B Compose +implements ``compositing''-style operators, useful when +merging filesystems. +.I Op +specifies the operator, taking its name from +the graphical Porter-Duff equivalent: +.BR AinB , +.BR AinB , +.BR BinA , +.BR AoutB , +.BR BoutA , +.BR A , +.BR AoverB , +.BR AatopB , +.BR AxorB , +.BR B , +.BR BoverA , +or +.BR BatopA. +For instance, +.B AinB +gives the intersection of A and B; +.B AatopB +gives A whereever both A and B exist, and B otherwise. +When used as a selector for +.BR merge , +operators that exclude +the union of A and B are not very useful, as they will +exclude all common directories at the top level. +Given the +.B -d +option, compose will allow through directories that +would otherwise be excluded in this way, making +operators such as +.B AxorB +(all that A does not hold in common with B) +more useful, although accurate only for regular files. +.TP +\f5depth\fP \fIn\fP -> \fIgate\fP +.B Depth +is a gate open only to entries which are within +.I n +levels of the root of the filesystem. +.TP +\f5entries\fP \fIfs\fP -> \fIentries\fP +.B Entries +produces all the entries contained within +.IR fs . +.TP +\f5eval\fP \fIexpr\fP -> \fIany\fP +.B Eval +evaluates an +.I fs +expression and yields its result. +.TP +\f5filter\fP [\f5-d\fP]\fIgate fs\fP -> \fIfs\fP +The result of +.B filter +is a filesystem from which all entries that will +not pass through +.IR gate , +and their descendents, have been removed. +If the +.B -d +flag is given, only files are filtered \- directories bypass the gate. +.TP +\f5ls\fP [\f5-um\fP] \fIentries\fP -> \fIvoid\fP +Print each entry in the style of +.B ls -l +(see +.IR ls (1)). +If the +.B -u +flag is given, the file access time rather than the file modification time +will be printed. If the +.B -m +flag is given, the name of the user that last modified the file +is printed too. +.TP +\f5exec\fP [\f5-pP\fP] [\f5-t\fP \fIcommand\fP] [\f5-n\fP \fIn\fP] \fIcommand entries\fP -> \fIvoid\fP +Run its argument +.I command +for each entry in +.I entries . +If the +.B -n +flag is specified, +.B exec +will try to gather +.I n +entries together before invoking the command (default 1). +The environent variable +.B $file +is set to the names of the entries that have been gathered. +If the +.B -p +flag is given, environment variables are set giving information +about the mode, owner, modification time and size of the entry +(they are named after the equivalent field +names in the +.B Dir +structure; see +.IR sys-stat (2)). +This option is only valid when +.I n +is 1. +The +.B -P +flag causes all the other fields in the Dir structure to be included too. +Note that the command is run in the same shell context each time, +so environment variable set on one execution can +be retrieved on the next. The +.B -t +flag can be used to specify a command which will be executed +just before termination. +.TP +\f5match\fP [\f5-ar\fP] \fIpattern\fP -> \fIgate\fP +.B Match +is a gate that is open if the entry's filename +matches the +.IR pattern . +If the +.B -a +flag is given, the whole path will be used +for the match. +If +.B -r +is specified, the pattern is evaluated as a regular expression, +otherwise it is a shell-style pattern in the style of +.IR filepat (2). +.TP +\f5merge\fP [\f5-1\fP] [\f5-c\fP \fIselector\fP] \fIfs fs\fP [\fIfs\fP...] -> \fIfs\fP +Recursively merge the contents of its argument +filesystems. +.I Selector +is consulted to see which entries are chosen for the result; +if not given, entries are resolved in favour of the first filesystem +(equivalent to +.BR "{compose AoverB}"). +If the +.B -1 +flag is given, merging takes place only in the top-level directory. +.TP +\f5mode\fP \fIspec\fP -> \fIgate\fP +.B Mode +is a gate that lets through entries whose file permissions +satisfy +.IR spec , +which is a string in the style of +.IR chmod (1). +If the +.I op +field is +.BR + , +the specified permissions must be present; if +.BR - , +they must be absent, and if +.BR = , +they must be exactly as given. +The directory and auth modes are specified with +the characters ``\f5d\fP'' and ``\f5A\fP'' +respectively. +.TP +\f5not\fP \fIgate\fP -> \fIgate\fP +.B Not +is a gate open to an entry if its argument is not. +.TP +\f5or\fP \fIgate gate\fP [\fIgate\fP...] -> \fIgate\fP +.B Or +is a gate open to an entry if any argument is open. +.TP +\f5path\fP [\f5-x\fP] \fIpath\fP... -> \fIgate\fP +.B Path +is a gate open to an entry whose full pathname +is an ancestor or a descendent of any +.IR path. +If +.B -x +is specified, the gate is open to any path +.I except +descendents of the paths given. +.TP +\f5pipe\fP [\f5-1pP\fP] \fIcommand fs\fP -> \fIvoid\fP +.B Pipe +is similar to exec, except that the contents of all files +in +.I fs +are piped through +.IR command . +Unless the +.B -1 +option is given, +.I command +is started once for each file, with +.B $file +set to its name, and other environment variables +set according to the +.B -p +or +.B -P +options, as for +.BR exec . +If the +.B -1 +option is specified, +.I command +is started once only \- all file data is piped through that. +.TP +\f5print\fP \fIentries\fP -> \fIvoid\fP +Print the path name of each entry. +.TP +\f5proto\fP [\f5-r\fP \fIroot\fP] \fIprotofile\fP -> \fIfs\fP +Evaluate +.I protofile +as a +.IR mkfs (8) +.I proto +file. If +.I root +is specified, it will be used as the root of the resulting +.IR fs . +.TP +\f5query\fP \fIcommand\fP -> \fIgate\fP +.B Query +is a gate that runs +.I command +to determine whether it is open: an empty +exit status from the command yields an open gate. +The environment variable +.B $file +is set for the command to the path name of the entry that is being queried for. +.TP +\f5run\fP \fIcommand\fP -> \fIstring\fP +.B Run +runs +.I command +and substitutes the value of the environment variable +.B $s +after its invocation. +.B $s +must have exactly one element. +.TP +\f5select\fP \fIgate entries\fP -> \fIentries\fP +Select only those entries within +.I entries +that will pass through +.IR gate . +Descendents of elided entries are not affected. +.TP +\f5setroot\fP [\f5-c\fP] \fIpath\fP \fIfs\fP -> \fIfs\fP +.B Setroot +sets the name of the root directory of +.IR fs . +If the +.B -c +flag is given, the elements in the root directory +will be made explicit in the hierarchy (i.e. the +name of the top directory will not contain any +.B / +characters). +.TP +\f5size\fP \fIentries\fP -> \fIvoid\fP +Print the sum of the size of all entries, in bytes. +.TP +\f5unbundle\fP \fIfile\fP -> \fIfs\fP +.B Unbundle +reads an archive as produced by +.B bundle +from +.IR file ; +its result is the contents of the filesystem that was +originally bundled. +If +.I file +is +.IB `` - '', +the standard input is read. +.TP +\f5walk\fP \fIpath\fP -> \fIfs\fP +.B Walk +produces a filesystem that's the result of +traversing all the files and directories underneath +.IR path . +.TP +\f5write\fP \fIdir fs\fP -> \fIvoid\fP +Write the contents of +.I fs +to the filesystem rooted at +.I dir . +If +.I dir +is empty, +.I fs +will be written to the root directory originally associated with fs. +.PP +As a convenience, +.I fs +carries out some automatic type conversions +(conversions are applied recursively, so for instance, +an +.BR fs -valued +expression at the top level will converted +to void by applying +.B {print {entries +.IB fs }}\fR. +.TP +.BR string -> fs +The result is \f5{walk\fP \fIstring\f5}\fP. +.TP +.BR fs -> entries +The result is \f5{entries\fP \fIfs\f5}\fP. +.TP +.BR string -> gate +The result is \f5{match\fP \fIstring\f5}\fP. +.TP +.BR entries -> void +The result is \f5{print\fP \fIentries\f5}\fP. +.TP +.BR command -> string +The result is \f5{run\fP \fIcommand\f5}\fP. +.SH EXAMPLES +Print the size of all files below the current directory: +.EX + fs size . +.EE +Show the names of all files in x that aren't in y: +.EX + fs select {mode -d} {merge -c {compose -d AoutB} x y} +.EE +Remove all files from /appl ending in +.BR .dis : +.EX + fs exec @{rm $file} {select *.dis /appl} +.EE +Recursively copy the current directory to +.BR /tmp/foo . +.EX + fs bundle . | fs write /tmp/foo {unbundle -} +.EE +A simpler method of the above: +.EX + fs write /tmp/foo . +.EE +Interactively remove all regular files from one level of the current directory: +.IP +.EX +fs exec @{rm $file} {select {query + @{echo -n $file:; ~ `{read} y yes}} + {select {mode -d} {filter {depth 1} .}}} +.EE +.PP +Create a new archive containing those files from below the current directory +that were held in an old archive: +.EX + fs bundle {merge -c {compose AinB} . {unbundle old.bundle}} > new.bundle +.EE +.SH SOURCE +.B /appl/cmd/fs.b +.br +.B /appl/cmd/fs/*.b +.br +.B /appl/lib/fslib.b +.SH SEE ALSO +.IR sh (1) diff --git a/static/inferno/man1/ftest.1 b/static/inferno/man1/ftest.1 new file mode 100644 index 00000000..f46b6121 --- /dev/null +++ b/static/inferno/man1/ftest.1 @@ -0,0 +1,82 @@ +.TH FTEST 1 +.SH NAME +ftest, newer \- test file attributes +.SH SYNOPSIS +.B ftest +.I test +.I arg +.PP +.B newer +.I file1 +.I file2 +.SH DESCRIPTION +.I Ftest +checks the specified attribute of +.I arg +according to +.I test +and yields an exit status signifying the result. +For all +.IR test s +apart from +.BR -t , +.I arg +is the name of the file to be tested; +for +.BR -t , +it is the number of a file descriptor. +Available tests are: +.TP +.B -d +True if the file exists and is a directory. +.TP +.B -e +True if the file exists. +.TP +.B -f +True if the file exists and is a regular file. +.TP +.B -r +True if the file exists and is readable. +.TP +.B -s +True if the file exists and has non-zero size. +.TP +.B -t +True if the open file represented by +the number +.I arg +represents the same file as +.BR /dev/cons . +.TP +.B -w +True if the file exists and is writable. +.TP +.B -x +True if the file exists and is executable. +.LP +.I Newer +checks whether +.I file1 +exists and is no older than +.IR file2 , +which must also exist; +if so, it yields a true exit status. +Otherwise, it yields an error status. +Neither file may be a directory. +.SH SOURCE +.B /appl/cmd/ftest.b +.br +.B /appl/cmd/newer.b +.SH SEE ALSO +.IR sys-stat (2) +.SH BUGS +These commands +work only with +.IR sh (1) +as none of the other Inferno shells +can check the exit status of a command. +.PP +Checking for read, write and execute capabilities +is speculative - the file server has the last say. +Group permissions are ignored. diff --git a/static/inferno/man1/ftree.1 b/static/inferno/man1/ftree.1 new file mode 100644 index 00000000..6d16c828 --- /dev/null +++ b/static/inferno/man1/ftree.1 @@ -0,0 +1,95 @@ +.TH FTREE 1 +.SH NAME +ftree \- file tree browser +.SH SYNOPSIS +.B wm/ftree +[ +.B [-e +] [ +.B -E +] [ +.B -p +] [ +.B -d +] [ +.I root +] +.SH DESCRIPTION +.I Ftree +displays the given +.I root +directory +(default: +.BR / ) +in a graphical form as a tree. +Files and subdirectories are listed +beneath the directory that contains them. +Initially, the contents of a subdirectory are not displayed, but selecting the +.B ⊕ +symbol next to its name with button 1 causes its contents to be displayed there, and +the +.B ⊕ +symbol changes to +.BR ⊖ ; +clicking that collapses the subdirectory display back to its name. +(If the directory is empty, the circle will be empty.) +Selecting a file or directory name with button 1 pops up a menu of +operations: +.BR Open , +.BR Copy , +.BR "Paste into" , +and +.BR Remove . +.B Open +plumbs the full path name of the file or directory; it is up to the +.IR plumber (8) +to act appropriately based on the structure of the file name, +as controlled by the user's +.IR plumbing (6) +file. +Typically images will be displayed in a separate window, source files will be opened in an editor, +and so on. +Directory structure can be copied by invoking +.B Copy +on the source, then +.B "Paste into" +on the destination directory. +The +.B -d +option disallows all operations except +.BR Open . +.PP +Normally, +.I ftree +displays the usual +.IR wm (1) +controls, and interprets them as usual. +The other options change that behaviour: +.TP +.B -e +Ignore `exit' but offer move or resize. +.TP +.B -E +Ignore exit, and do not offer move or resize. +.TP +.B -p +Do exit, but do not offer move or resize. +.PP +The different options are used to program a user interface for handheld touch screen devices. +For instance, a start panel can be created by invoking +.I ftree +with the +.B -E +option, ensuring that the +.I ftree +screen is always there, and all subsequent interaction can be controlled +by the construction of the +.I root +namespace and suitable choice of plumbing rules. +.SH SOURCE +.B /appl/wm/ftree +.SH SEE ALSO +.IR filename (1), +.IR wm (1), +.IR plumbing (6), +.IR plumber (8) diff --git a/static/inferno/man1/gettar.1 b/static/inferno/man1/gettar.1 new file mode 100644 index 00000000..3b71ce08 --- /dev/null +++ b/static/inferno/man1/gettar.1 @@ -0,0 +1,86 @@ +.TH GETTAR 1 +.SH NAME +gettar, lstar, puttar \- tar archive utilities +.SH SYNOPSIS +.B gettar +[ +.B -k +] [ +.B -v +] [ +.B -R +] +[ +.IR name " ..." +] +.br +.B lstar +.br +.B puttar +[ +.I file ... +] +.SH DESCRIPTION +These commands manage POSIX.1 tar archives in Inferno. +.PP +.I Gettar +reads a tar file from standard input and unpacks the contents into the current directory tree. +By default, +.I gettar +converts absolute path names, including names starting with +.LR # , +into names relative to the current directory; the +.B -R +option extracts such names as-is. +The +.B -k +option tells +.I gettar +to keep existing files rather than overwriting them with files from the archive. +The +.B -v +option causes +.I gettar +to print on standard error the names of files extracted. +Finally, listing one or more +.I names +as arguments will extract only those files. +.PP +.I Lstar +reads a tar file from standard input and lists the files contained therein, +one per line, with four space-separated fields giving the file name, modification time (in seconds since the epoch), +size (in bytes), and a constant 0 (the place holder for a checksum). +The format is the same as that produced by +.BR "du -n -t" . +.PP +.I Puttar +writes a tar file to standard output that contains each +.IR file , +and its substructure if it is a directory. +Given no arguments, +.I puttar +instead reads a list of file names from standard input and includes +each file or directory named; it does not copy directory substructure. +.SH EXAMPLE +The following commands create a tar file with two files +.B test.b +and +.BR srv.b : +.IP +.EX +$ cat tarlist +test.b +srv.b +$ puttar test.tar +$ lstar keyboard +in +.IR tk (2). +The +.B -t +option causes it to put itself on the +.IR wm (1) +task bar from the start. +The +.B -e +option causes it to treat the `exit' button on the title bar as +a request to put itself back on the task bar. +.PP +.B Wm/pen +provides character input using single-stroke gestures with the stylus +(or mouse button 1). +The +.B -r +option allows the pen window to be reshaped. +Options are otherwise the same as for +.BR wm/keyboard . +.SH FILES +.TF "/lib/strokes/*.clx" +.TP +.B /lib/strokes/*.cl +Raw sample data for different stroke sets (eg, letters, digits) +.TP +.B /lib/strokes/*.clx +Compact canonical versions of the stroke sets +.SH SOURCE +.B /appl/wm/keyboard.b +.br +.B /appl/wm/pen.b diff --git a/static/inferno/man1/kill.1 b/static/inferno/man1/kill.1 new file mode 100644 index 00000000..992a773f --- /dev/null +++ b/static/inferno/man1/kill.1 @@ -0,0 +1,72 @@ +.TH KILL 1 +.SH NAME +kill, broke \- terminate process(es) +.SH SYNOPSIS +.B kill +[ +.B -g +] +[ +.I pid ... +] +[ +.I module ... +] +.PP +.B broke +[ +.I user +] +.SH DESCRIPTION +.I Kill +terminates each process (for a numeric +process ID +.IR pid ) +or +process running a given +.I module +(for a non-numeric module name), +by writing a +.L kill +message to the corresponding process's control file +in +.IR prog (3). +The +.B -g +option causes +.I kill +to write a +.L killgrp +message instead, killing all processes in the given process's process group +(see +.IR sys-pctl (2)). +Processes running a +.I module +are identified by their +.L status +file, and the process ID of each such process is printed on standard output. +.PP +A process that incurs an exception (eg, array bounds check) +is normally suspended in the `broken' state to allow debugging. +.I Broke +finds all such processes owned by +.I user +(default: the current user), and +prints +.IR sh (1) +commands to kill them. +The commands can be piped to the shell or selectively run, +releasing back to the system any resources owned by those processes. +.SH FILES +.TF "/prog/pid/status " +.TP +.BI /prog/ pid /ctl +.TP +.BI /prog/ pid /status +.SH SOURCE +.B /appl/cmd/kill.b +.br +.B /dis/broke +.SH "SEE ALSO" +.IR ps (1), +.IR prog (3) diff --git a/static/inferno/man1/limbo.1 b/static/inferno/man1/limbo.1 new file mode 100644 index 00000000..63b7e945 --- /dev/null +++ b/static/inferno/man1/limbo.1 @@ -0,0 +1,218 @@ +.TH LIMBO 1E +.SH NAME +limbo \- Limbo compiler +.SH SYNOPSIS +.EX +limbo [ \f2option ...\fP ] [ \f2file ...\fP ] +.EE +.SH DESCRIPTION +.B Limbo +compiles the named Limbo +.I files +into machine-independent object files for the Dis virtual machine. +Depending on the options, the compiler may create output +files or write information to its standard output. +Conventional files and their extensions include the following. +.TP 10 +.IB file .b +Limbo source file. +.TP +.IB file .dis +Object code for the Dis virtual machine. +.TP +.IB file .m +Limbo source file for +.B module +declarations. +.TP +.IB file .s +Assembly code. +.TP +.IB file .sbl +Symbolic debugging information. +.PP +With no options, +.B limbo +produces a +.B \&.dis +file for each +source file. +.PP +The compiler options are: +.TP 1i +.B -a +Print on standard output +type definitions and call frames +useful for writing C language implementations of Limbo modules. +Suppresses normal output file generation. +.TP +.B -C +Mark the Dis object file to prevent run-time compilation. +.TP +.B -c +Mark the Dis object file to guarantee run-time compilation. +.TP +.BI -D " flags" +Turn on debugging +.IR flags . +Flags include +.B A +for arrays, +.B a +for +.B alt +statements, +.B b +for booleans, +.B C +for +.B case +body statements, +.B c +for +.B case +statements, +.B D +for use descriptors, +.B d +for declarations, +.B e +for expressions, +.B E +for extended expressions, +.B F +for function information, +.B f +for constant folding, +.B m +for modules, +.B n +for +.B nil +references, +.B P +for program counter manipulations, +.B r +for reference types, +.B S +for type signatures, +.B s +for a code generation summary, +.B T +for tuples, +.B t +for type checking, +and +.B v +for variable initialization. +.TP +.B -e +Increase the number of errors the compiler will report before exiting. +.TP +.B -G +Annotate assembly language output with debugging information. +A no-op unless +.B -S +is set. +.TP +.B -g +Generate debugging information for the input files and place it in a file +named by stripping any trailing +.B \&.b +from the input file name and appending +.BR .sbl . +.TP +.B -i +Disable inlining of functions. Currently functions containing a +single return statement or two return statements and an if clause are candidates for inlining. +.TP +.BI \-I " dir" +An +.B include +file whose name does not begin with slash +is sought first relative to the working directory, +regardless of the source +.I file +argument. +If this fails, +.B limbo +sequences through directories named in +.B \-I +options, +then searches in +.BR /module . +An +.B include +file contains Limbo source code, normally holding one or more +.B module +declarations. +.TP +.BI \-o " obj" +Place output in file +.I obj +(allowed only if there is a single input +.IR file ). +The output file will hold either object or assembly code, +depending on +.BR \-S . +Default is to take the last element of the input file name, +strip any trailing +.BR .b , +and append +.B .dis +for object code and +.B .s +for assembly code. +Thus, the default output file for +.B dir/mod.b +would be +.BR mod.dis . +.TP +.B \-S +Create assembly language output instead of object code. +.TP +\f5\-T\fP\ \f2module +Print on standard output C stub functions, +useful for implementing Limbo modules in the C language for linkage +with the interpreter. +.TP +\f5\-t\fP\ \f2module +Print on standard output +a table of runtime functions, +to link C language implementations of modules with the Limbo interpreter. +Suppresses normal output file generation. +.TP +.B \-w +Print warning messages about unused variables, etc. +More \f5w\fP's (e.g., \f5\-ww\fP) increase the pedantry of the checking. +.PP +.SH FILES +.TF /module +.TP +.B /module +directory for Limbo +.B include +modules +.SH SOURCE +.TF /appl/limbo +.TP +.B /appl/limbo +compiler source in Limbo +.TP +.B /limbo +compiler source in C for host +.SH "SEE ALSO" +.IR asm (1), +.IR emu (1), +.IR mk (10.1), +.IR intro (2), +.IR sys-intro (2), +.IR tk (2) +.PP +``The Limbo Programming Language'' +.br +``Program Development in Inferno'' +.br +``A Descent into Limbo'' +.br +in Volume 2. diff --git a/static/inferno/man1/listen.1 b/static/inferno/man1/listen.1 new file mode 100644 index 00000000..42dc1bac --- /dev/null +++ b/static/inferno/man1/listen.1 @@ -0,0 +1,237 @@ +.TH LISTEN 1 +.SH NAME +listen, styxlisten, dial \- network connections +.SH SYNOPSIS +.B listen +[ +.B -Ats +] [ +.B -a +.I alg +]... [ +.B -k +.I keyfile +] [ +.B -i +.BI { initscript } +] +.I addr +.I command +[ +.IR arg ... +] +.br +.B styxlisten +[ +.B -Ats +] [ +.B -a +.I alg +]... [ +.B -k +.I keyfile +] +.I addr +.I command +[ +.IR arg ... +] +.br +.B dial +[ +.B -A +] [ +.B -a +.I alg +] [ +.B -k +.I keyfile +] +.I addr +.I command +[ +.IR arg ... +] +.SH DESCRIPTION +.I Listen +waits for an incoming network connection on +.IR addr , +(as accepted by +.B announce +in +.IR dial (2)) +and then invokes +.IR sh (1) +to run the associated +.IR command . +If the +.B -A +option is specified, no authentication or encryption will +take place on the connection; otherwise +.I listen +will attempt to authenticate the party at the other +end of the connection, allowing any given +.I alg +to be used to encrypt and/or digest the +connection's data. If neither +.B -A +or any +.B -a +option is given, then +.I listen +will allow any algorithm allowed by the local +.IR ssl (3) +device. +If +.I keyfile +is specified, then that will be used as the server's certificate; +otherwise +.BI /usr/ user /keyring/default +will be used. +.PP +If an +.I initscript +is provided, it is executed by each listener +after announcing its network connection, +with the shell variable +.B net +set to the name of the corresponding network directory +(see +.IR dial (2)), +before listening for incoming calls. +This can be used to change, or find out the characteristics +of an announced port (for instance to find out +the actual port number that has been announced). +.PP +By default, +.I listen +backgrounds itself (after checking that the port +announcement proceeded ok); giving it the +.B -s +option causes it to run synchronously. +.PP +.I Listen +currently makes available the whole of its current name space visible to the command, +which might be undesirable, and perhaps should be optional, with a new name space +constructed for an incoming call. +The +.B -t +option declares the command to be `trusted' giving it access to +elements of the current name space such as +.B /mnt/keys +on an authentication server. +By default it has not got that access. +.PP +.I Styxlisten +is similar to +.IR listen , +except that it multiplexes a single +.I styx +(see +.IR intro (5)) +server between multiple clients. +.I Styxlisten +starts its +.I cmd +only once; it assumes it will serve styx messages +through file descriptor 0 when started. For each client that attaches to +.IR address , +the command will see a new +.IR attach (5) +message indicating the new connection. +Unless the +.B -A +option has been given, the +.B uname +field in the attach message will be the name of the +authenticated user. +When the command exits, the process listening +on +.I address +is stopped. +.PP +.I Dial +is the complement of +.IR listen . +It tries to make a connection to +.IR addr . +If the +.B -A +option is given, no authentication or encryption will +take place; otherwise Inferno authentication and encryption +will be performed as usual, using +.I alg +if given, or a default algorithm otherwise. +.I Keyfile +is used for the certificate if given, otherwise +.BI /usr/ user /keyring/ addr\fR,\fP +if it exists, and failing that, +.BI /usr/ user /keyring/default\fR.\fP +.I Alg +is used for the encryption/digest algorithm +on the connection. +When the connection is made, +.I command +is run in the context of that connection, as described below. +.PP +For both +.I dial +and +.IR listen , +when the command is run, +.B $user +is set to the name of the authenticated user at the other +end of the connection (if authentication +is being used), and +.B $net +is set to the +.B /net +directory corresponding to the connection. +The standard input and output of the command +is redirected to the network connection (standard +error is unaffected). +.SH EXAMPLES +Run a custom login daemon and an echo server that +logs incoming connections: +.IP +.EX +listen 'tcp!*!echo' { + echo connection from `{cat $net/remote} >[1=2] + echo user is $user >[1=2] + cat & +} +.EE +.PP +Dial up the above echo server: +.IP +.EX +dial tcp!somehost!echo { + echo made connection >[1=2]; echo hello; cat >[1=2] +} +.EE +.PP +Make the current name-space available to all: +.IP +.EX +styxlisten 'tcp!*!styx' export / +.EE +.SH SOURCE +.B /appl/cmd/dial.b +.br +.B /appl/cmd/listen.b +.SH BUGS +The way that +.I styxlisten +is implemented means that the +.B aname +from the remote +.IR mount (2) +request cannot be passed through to the +attach message seen by the command that +has been started by +.IR styxlisten . +.SH "SEE ALSO" +.IR dial (2), +.IR ssl (3), +.IR auth (6), +.IR svc (8) diff --git a/static/inferno/man1/logon.1 b/static/inferno/man1/logon.1 new file mode 100644 index 00000000..46ec01d6 --- /dev/null +++ b/static/inferno/man1/logon.1 @@ -0,0 +1,77 @@ +.TH LOGON 1 +.SH NAME +logon \- log on to Inferno +.SH SYNOPSIS +[ +.B wm/wm +] +.B wm/logon +[ +.B -l +] [ +.BI "-n nsfile" +] [ +.BI "-u user" +] +.SH DESCRIPTION +.I Logon +logs a user in to the Inferno environment. +It requires +.IR wm (1) +to be started first. +If no +.I user +name is specified by the +.B -u +option, +.I logon +displays a login panel to prompt for one. +The user name must have a directory +.BI /usr/ user, +which will become the current directory. +(Otherwise, +.I logon +will display a diagnostic panel and prompt again.) +The user name is written to +.B /dev/user +(see +.IR cons (3)), +which is the name presented on subsequent attaches to file servers. +.PP +Normally, +.I logon +expects keyboard input to provide a name, +but if the +.B -l +option is given, +.I logon +displays a list of the names in +.BR /usr , +allowing one to be selected using a mouse or touch screen. +.PP +Once the current directory has been set, +.I logon +creates a new name space for the user using the contents of +.I nsfile +(default: +.BR namespace ), +as described in +.IR namespace (6). +It then starts +.IR toolbar (1) +to provide the initial application environment. +.SH FILES +.TF /dev/userxx +.TP +.B /dev/user +Inferno user name +.TP +.BI /usr/ user +.IR user 's +home directory +.SH SOURCE +.B /appl/wm/logon.b +.SH SEE ALSO +.IR toolbar (1), +.IR wm (1), +.IR namespace (6) diff --git a/static/inferno/man1/logwindow.1 b/static/inferno/man1/logwindow.1 new file mode 100644 index 00000000..1cc17a54 --- /dev/null +++ b/static/inferno/man1/logwindow.1 @@ -0,0 +1,23 @@ +.TH LOGWINDOW 1 +.SH NAME +logwindow \- window that pops up when data becomes available. +.SH SYNOPSIS +.B wm/logwindow +.RI [ title ] +.BI < logfile +.SH DESCRIPTION +.I Logwindow +reads data from its standard input (often a file served by +.IR logfile (4)) +and shows it in a text widget. +If the window is hidden (it is hidden initially), +it will reappear when +data appears on its standard input. If +.I title +is given, it will be used as the title of the window. +.SH SOURCE +.B /appl/wm/logwindow.b +.SH SEE ALSO +.IR logfile (4) +.SH BUGS +The text buffer grows without bound. diff --git a/static/inferno/man1/look.1 b/static/inferno/man1/look.1 new file mode 100644 index 00000000..2830f196 --- /dev/null +++ b/static/inferno/man1/look.1 @@ -0,0 +1,90 @@ +.TH LOOK 1 +.SH NAME +look \- find lines in a sorted list +.SH SYNOPSIS +.B look +[ +.BI -dfnix +] [ +.BI -r " endkey" +] [ +.BI -t c +] [ +.I string +] +[ +.I file +] +.SH DESCRIPTION +.I Look +consults a sorted +.I file +and prints all lines that begin with +.IR string . +It uses binary search. +.PP +The following options are recognised: +.TP +.B -i +Interactive. +There is no +.I string +argument; instead +.I look +takes lines from the standard input as strings to be looked up. +.TP +.B -x +Exact. +Print only lines of the file whose key matches +.I string +exactly. +.TP +.B -d +`Directory' order: +only letters, digits, +tabs and blanks participate in comparisons. +.TP +.B -f +Fold. +Upper case letters compare equal to lower case. +.TP +.B -n +Numeric comparison with initial string of digits, optional minus sign, +and optional decimal point. +.TP +.BI -r " endkey" +Limit the range of matching values, to include +the word +.I endkey +but no larger values. +.TP +.BR -t [ \f2c\f1 ] +Character +.I c +terminates the sort key in the +.IR file . +By default, tab terminates the key. If +.I c +is missing the entire line comprises the key. +.PP +If no +.I file +is specified, +.B /lib/words +is assumed, with collating sequence +.BR df . +.SH FILES +.B /lib/words +.SH SOURCE +.B /appl/cmd/look.b +.SH "SEE ALSO" +.IR sort (1), +.IR grep (1) +.SH DIAGNOSTICS +The exit status is +.B \&"not found" +if no match is found, and +.B \&"no dictionary" +if +.I file +or the default dictionary cannot be opened. diff --git a/static/inferno/man1/ls.1 b/static/inferno/man1/ls.1 new file mode 100644 index 00000000..2b6cc4d1 --- /dev/null +++ b/static/inferno/man1/ls.1 @@ -0,0 +1,173 @@ +.TH LS 1 +.SH NAME +ls, lc \- list files +.SH SYNOPSIS +.B ls +[ +.B -lpmnqduntscrFT +] [ +.IR file ... +] +.LP +.B lc +[ +.B -lpmnqduntscrFT +] [ +.IR file ... +] +.SH DESCRIPTION +.I Ls +lists the named +.IR file s +in an order and format determined by its options. +The options determining the output format are: +.TP 10 +.B -l +Produce output in long format. The information given in +each column is as follows: +.RS +.IP 1. +The permission mode of the file. This is formatted as 11 characters; +the first is +.RB ` d ' +if the file is a directory, +.RB ` a ' +if the file is append-only, +.RB ` A ' +if it is an authentication file, +or +.RB ` - ' +otherwise. +The next character is +.RB ` l ' +if the file is exclusive-use, +or +.RB ` - ' +otherwise. +The remaining characters are in three groups +of three, each representing one permission bit. Each character +is either +.RB ` r ' +(read permission), +.RB ` w ' +(write permission), +.RB ` x ' +(execute permission) +or +.RB ` - ' +(no permission). +The three groups represent permissions granted for that file +to the file's owner, members of the file's group and anybody else +respectively. +.IP 2. +The device type (this is the `#' device letter for local devices +or `M' for files mounted over a 9P connection). +.IP 3. +The device instance number (this distinguishes between +separately mounted instances of the same device). +.IP 4. +The file's owner. +.IP 5. +The file's group. +.IP 7. +The size of the file in bytes. +.IP 8. +The date and time the file was last modified (see also the +.B -u +and the +.B -e +options). +.IP 9. +The name of the file. +.RE +.TP +.B -m +Print the name of the user who most recently modified +the file. +.TP +.B -q +Print the file's +.I qid +(see +.IR sys-stat (2)) +at the beginning of each line; +the printed fields are in the order +path, version, and type. +.TP +.B -u +Applicable only to the +.B -l +and +.B -t +options: causes time-sorted listings to be listed by +time of last access, and the access time to be printed +in long-format listings instead of the modification time. +.TP +.B -e +Applicable only to the +.B -l +and +.B -u +options: causes the time to be displayed as seconds since the epoch. +.TP +.B -p +Print each filename as a bare name, without the name +of the containing directory. +.PP +The other options relate to the order in which the listed files +are printed, and which files are selected. Usually, each +.I file +that is a directory has its contents printed. The +.B -d +option causes the directory itself to be listed. +In a union directory, it is possible for there to be +two or more instances of a file with the same name. +The +.B -c +option causes only the first one occurring to be +listed. The options relating to ordering are: +.TP 10 +.B -n +Do not sort the files at all. +.TP +.B -t +Sort by modification time (most recent first) +or access time if the +.B -u +option is also specified. +.TP +.B -s +Sort by size (smallest first). +.TP +.B -r +Reverse the sort order. +.TP +.B -F +Add the character +.B / +after all directory names +and the character +.B * +after all executable files. +.TP +.B -T +Print the character +.B t +before each file if it has the temporary flag set, and +.B - +otherwise. +.PP +.I Lc +is the same as +.IR ls , +but sets the +.B -p +option and pipes the output through +.IR mc (1). +.SH SOURCE +.B /appl/cmd/ls.b +.br +.B /dis/lc +.SH SEE ALSO +.IR readdir (2), +.IR mc (1) diff --git a/static/inferno/man1/m4.1 b/static/inferno/man1/m4.1 new file mode 100644 index 00000000..748aa275 --- /dev/null +++ b/static/inferno/man1/m4.1 @@ -0,0 +1,291 @@ +.TH M4 1 +.SH NAME +m4 \- macro processor +.SH SYNOPSIS +.B m4 +[ +.BI -p prefix +] +[ +.B -t +] +[ +.BI -D name = value +] [ +.BI -Q name = value +] [ +.BI -U name +] [ +.I file +\&... +] +.SH DESCRIPTION +.I M4 +is a general-purpose macro processor. +It copies text from each of the input +.I files +in order (or standard input by default), and writes the processed text to the standard output. +.PP +Macro calls +have the form +.IP +.IB name ( arg1,\ arg2,\ ...,\ argn ) +.PP +The `(' must immediately follow the name of the macro. +If a defined macro name is not followed by a `(', +it is deemed to have no arguments. +Leading unquoted blanks, tabs, and newlines are ignored while collecting arguments. +A comma within a nested parenthesis is part of an argument value, not an argument separator. +Potential macro names consist of alphabetic letters, Unicode characters, +digits, and underscore `\_', where the first character is not a digit. +.PP +Comments begin with the +.B # +character and extend to the end of that line; the characters in a comment are copied to the current +output stream unchanged. +The comment start and end sequences may be changed using the +.B changecom +call described below. +.PP +The left and right single quotes (ie, grave and acute accents \`\|\' ) are used to quote strings. +Because the left and right quotes are distinct, quoted strings may nest. +The value of a quoted string is the string stripped of the outermost quotes. +The left and right quote characters may be changed using the +.B changequote +call described below. +.PP +When +.I m4 +recognises a macro name, followed by a `(', it collects arguments up to a matching right parenthesis. +Macro evaluation proceeds normally during this collection, and the text produced by those macro calls +is interpreted exactly as if it had been in the original input stream (in place of the corresponding macro call). +Thus, any commas or right parentheses within the value of a nested +call are as effective as those in the original input text. +(Remember however that commas within +.I nested +parentheses are not argument separators.) +After argument collection, +the value of the macro is pushed back onto the input stream +and rescanned. +.PP +.I M4 +makes available the following built-in macros. +They may be redefined, but once this is done the original meaning is lost. +Their values are null unless otherwise stated. +.TF changequote +.TP +changecom +Change the starting and ending delimiters for subsequent comments to the first and second arguments. +If the second argument is missing or an empty string, comments will be ended by newline. +If there are no arguments, there are no comments. +.TP +changequote +Change quote characters to the first and second arguments. +.I Changequote +without arguments restores the original values of +.BR `\|' . +.TP +copydef +The second argument is installed with the value of the macro +named by the first argument, +which may be a built-in macro. +Typically both arguments are quoted to prevent too early expansion. +A macro can be renamed using +.B copydef +followed by +.BR undefine . +.TP +define +The second argument is installed as the value of the macro +named by the first argument. +When the macro is later called (expanded), +each occurrence in the replacement text of +.BI $ n, +where +.I n +is a digit, +is replaced by the +.IR n -th +argument of that macro call. +Argument 0 is the name of the macro; +missing arguments are replaced by the null string. +If the macro value is the same as its name, or the value is +.BR $0 , +the result is the macro name. +To prevent expansion of a name when redefining a macro, quote the first argument. +.TP +divert +.I M4 +maintains 10 output streams, +numbered 0-9. +The final output is the concatenation of the streams +in numerical order; +initially stream 0 is the current stream. +The +.I divert +macro changes the current output stream to its (digit-string) +argument. +Output diverted to a stream other than 0 through 9 +is discarded. +.TP +divnum +Returns the value of the current output stream. +.TP +dnl +Reads and discards characters up to and including the next newline. +.TP +dumpdef +Prints current names and definitions, +for the named items, or for all if no arguments are given. +.TP +errprint +Prints its argument +on the diagnostic output file. +.TP +eval +Evaluates its argument as an arithmetic expression, using 64-bit arithmetic, +and returns the result as a signed decimal integer. +The only literals are decimal integers. +Operators are those of Limbo: the binary operators +.BR || , +.BR && , +.BR | , +.BR ^ , +.BR & , +.BR "== !=" , +.BR "< > >= <=" , +.B "<< >>" +(arithmetic shifts), +.BR "+ -" , +.BR "* / %" , +.BR "**" " (power)"; +the unary operators +.BR + , +.BR - , +.BR ~ , +.BR ! ; +and parenthesis. +Operator precedence is the same as in Limbo. +Right shifts are signed. +.TP +ifdef +If the first argument is defined, the value is the second argument, otherwise the third. +If there is no third argument, the value is null. +The word +.B inferno +is predefined with +.RB ` inferno ' +as its replacement text. +.TP +ifelse +Has three or more arguments. +If the first argument is the same string as the second, +then the value is the third argument. +If not, the process is repeated with arguments 4, 5, 6 and so on, in groups of three. +If no match is found, the result is the remaining argument (not part of a group of three), +or null if none is present. +.TP +include +Returns the contents of the file named in the argument. +.TP +incr +Returns the value of its argument incremented by 1. +The value of the argument is calculated +by interpreting an initial digit-string as a decimal number. +.TP +index +Returns the position in its first argument where the second argument begins (zero origin), +or \-1 if the second argument does not occur. +.TP +len +Returns the number of characters in its argument. +.TP +maketemp +Returns its first argument after replacing any trailing XXXs by the current host name, process ID, and a unique letter. +Normally used to create unique temporary file names. +.TP +sinclude +The same as +.I include, +except that it +says nothing if the file is inaccessible. +.TP +substr +Returns a substring of its first argument. +The second argument is a zero origin +number selecting the first character; +the third argument indicates the length of the substring. +A missing third argument is taken to be large enough to extend to +the end of the first string. +.TP +syscmd +Runs the first argument as an +.IR sh (1) +command. +No value is returned. +Note that the output of a command can be redirected to a temporary file named by +.BR maketemp , +included, and then removed. +.TP +translit +Transliterates the characters in its first argument +from the set given by the second argument to the set given by the third. +No abbreviations are permitted. +.TP +undefine +Removes the definition of the macro named in its argument. +.TP +undivert +Causes immediate output of text from diversions named as +arguments, or all diversions if no argument. +Text may be undiverted into another diversion. +Undiverting discards the diverted text. +.PD +.PP +The +.B -p +option causes +.I m4 +to add the given prefix character to the names of predefined macros; +typically the +.I prefix +is a Unicode character, to reduce the chance of a clash with macro names in the input text. +The +.B -t +option produces a trace on standard error. +.PP +.I M4 +otherwise +interprets its command line options after installing the predefined macro set. +The +.B -D +option defines +.I name +as a macro with the given +.IR value ; +.B -Q +defines +.I name +as a macro with the given +.IR value +that is regarded as always quoted (ie, is never rescanned). +Neither +.B -D +nor +.B -Q +may change a predefined macro. +The +.B -U +option +.I undefines +the given macro +.IR name , +which may be one of the predefined macros. +.PP +.I M4 +in Inferno is more closely related to the original +.I m4 +in Seventh Edition UNIX than its more elaborate relatives in System V and POSIX. +.SH "SEE ALSO" +B. W. Kernighan and D. M. Ritchie, +.I The M4 Macro Processor diff --git a/static/inferno/man1/man.1 b/static/inferno/man1/man.1 new file mode 100644 index 00000000..62ac927b --- /dev/null +++ b/static/inferno/man1/man.1 @@ -0,0 +1,244 @@ +.TH MAN 1 +.SH NAME +man, wm/man, man2html, man2txt, lookman, sig \- +print or find manual pages +.SH SYNOPSIS +.B man +[ +.B -b +] [ +.B -n +] [ +.B -p +] [ +.B -S +] [ +.B -w +] +[ +.I section ... +] +.I title ... +.br +.B man -f +.I file ... +.br +.B wm/man +[ +.I section ... +] +.I title ... +.br +.B wm/man -f +.I file ... +.br +.B man2html +[ +.BI -h " header" +] [ +.BI -i " initial" +] [ +.BI -t " trailer" +] +.I file +[ +.I section +] +.br +.B man2txt +[ +.B -p +.I width +] +[ +.I file ... +] +.br +.B lookman +[ +.B -f +] +.I keyword ... +.PP +.B sig +.I function ... +.SH DESCRIPTION +Both +.I man +and +.BI wm/ man +locate entries in this manual and display them. +The pages for entries named +.I title +within each specified +.IR section +are displayed. +If no sections are specified, matching pages +from all sections are printed. +Sections are given by number. +.PP +The +.B -f +option to +.I man +and +.I wm/man +prevent lookup in the manual index. +Instead, the remaining arguments are treated as +filenames. +.I Man +processes each file in turn. +.I Wm/man +adds each file to its page history and displays the first document in the list. +.PP +The +.I man +command prints the manual pages as formatted plain text to standard output. +Manual pages are written using Plan9 +.I "troff -man" +macros for their markup and so +some detail is lost in conversion to plain text. +.BI Wm/ man +displays the pages in a graphical Wm window, providing a more faithful +reproduction of the intended layout. +.PP +.I Man +also accepts the following options: +.TP +.B -b +Print the pages and send them to +.IR plumber (1) +for display in an editor. +.TP +.B -n +Use +.I man2txt +to format the pages (default). +.TP +.B -p +Display the pages using +.IR wm/man . +.TP +.B -S +Do not search the manual indices for the names: only print pages whose file names match the +.IR titles . +.TP +.B -w +Print the names of the man page source files instead of formatting them. +.PP +.I Man2html +converts +.B "troff -man" +macro markup to an approximation in HTML on standard output. +Only one file is processed at a time. +It is assumed the input +.I file +is a manual page, in the given +.I section +(default: 1). +The optional +.I header +string replaces the default header +.BR "" . +The optional +.I initial +text will appear immediately after +.BR "" . +The optional +.I trailer +string replaces the default trailer +.BR "" . +.PP +.I Man2txt +converts +.B "troff -man" +macro markup +to plain text. +Each file is processed separately. +If no arguments are given, text from standard input is processed. +The converted text is written to standard output. +The +.B -p +option to +.I man2txt +specifies the page width in characters. +.PP +.I Lookman +finds the manual pages, in any section, that +contain all of the +.I keywords +given as arguments, and prints +.I man +commands and manual references for them, one per line. +In a +.IR wm-sh (1) +window, +any of the +.I man +commands can be selected with mouse button 2 and +sent +as a command; a manual reference can simply be +.IR plumb (1)'d +using mouse button 3. +The +.B -f +option causes +.I lookman +just to list the file names. +.PP +.I Sig +prints the type signature \- parameters and return types \- of +each +.I function +found in section 2 of this manual. +.SH FILES +.TF /man/1/INDEX +.TP +.B /man/?/* +Source files of manual pages. +.TP +.B /man/1/man +The source file for this manual page. +.TP +.B /man/?/INDEX +Used by +.I man +and +.BI wm/ man +to locate the source file containing a particular title. +.TP +.B /man/index +The +.I lookman +index. +.SH SOURCE +.B /appl/wm/man.b +.br +.B /dis/man +.IR sh (1) +script +.br +.B /appl/cmd/man2txt.b +.br +.B /dis/lookman +.IR sh (1) +script +.br +.B /dis/sig +.IR sh (1) +script +.br +.B /appl/lib/parseman.b +.SH "SEE ALSO" +.IR wm (1) +.SH BUGS +.I Man2txt +only knows about +.I "troff -man" +macros. +Other troff macro packages or output from preprocessors +such as +.I pic +or +.I tbl +will not be presented correctly. diff --git a/static/inferno/man1/mash-make.1 b/static/inferno/man1/mash-make.1 new file mode 100644 index 00000000..f2e95033 --- /dev/null +++ b/static/inferno/man1/mash-make.1 @@ -0,0 +1,182 @@ +.TH MASH-MAKE 1 +.SH NAME +mash-make \- builtin `make' functionality +.SH SYNOPSIS +.B load make + +.B make +[ +.I -clear +] +.br +.B depends +[ +.I target +] +.br +.B match +.I pattern +.br +.B rules +[ +.I pattern +] +.br +.SH DESCRIPTION +.I Make +is a loadable builtin for +.IR mash . +It can be taught about dependencies that exist between components of a program and +rules for reconstructing the components of a program. +.PP +.I Make +will examine file modification times to determine which components need +to be updated and will +issue commands to reconstruct them in the correct sequence. +It will update a target if any of its prerequisites are more up to date than the target +or if the target does not exist. +.PP +Typically, dependencies and rules are kept in a file called +.BR mashfile . +The sequence +.PP +.EX + load make + run mashfile +.EE +.PP +is used to load the +.I make +builtin and read the rules from +.BR mashfile . +Thereafter, the command +.IP +.B make +.I target +.PP +will perform the correct sequence of operations to reconstruct +.I target +and its dependents. +.PP +A dependency is specified in +.I mash +with a line of the form: +.IP +.IB target-list " : " dependent-list " ; " +.PP +or +.IP +.IB target-list " : " dependent-list " { " rules " } ;" +.PP +Each of the targets in +.I target-list +depends upon each of the dependents in +.IR dependent-list . +The optional +.I rules +specify how to build the targets. For example +.EX + lflags = -Cg; + rotta.dis : rotta.b rotta.m { limbo $lflags rotta.b }; +.EE +If the rules are omitted +.I make +must be able to infer them from implicit rules. +.PP +An implicit rule is defined with a line of the form: +.IP +.I pattern +.B :~ +.I dependency +.B { +.I rules +.B } +.PP +If +.I pattern +matches a target that +.I make +needs to build then +.I make +will build the target by first making the +.I dependency +and then applying the +.IR rules . +The wildcard components of the matched target are available in +the +.I dependency +and the +.I rules +as variables +.BR $1 , +.BR $2 , +.BR $3 ... +with +.B $1 +containing the text matched by the first wildcard, +.B $2 +the second wildcard +and so on. The whole of the target is available in the variable +.BR $0 . +For example, +.PP +.EX + /*/*.m :~ $2.m { cp $2.m /$1/$2.m }; + /module/rotta.m: rotta.m; + /altmodule/frame.m: frame.m; +.EE +.PP +More commonly, implicit rules are defined to provide +.I make +with knowledge of how to compile +.I limbo +source to produce +.I Dis +format binaries. +Typically, +.PP +.EX + *.dis :~ $1.b { limbo $lflags $1.b}; + /dis/*.dis :~ $1.dis { cp $1.dis /dis}; +.EE +.PP +A target is built with the command +.IP +.B make +.I target +.PP +The list of rules can be reset with +.IP +.B make -clear +.PP +The list of dependencies for a target or for all targets can be +displayed with the command +.IP +.B depends +[ +.I target +] +.PP +The rules that match a pattern and the components of the pattern +can be displayed with +.IP +.B match +.BI ' pattern ' +.PP +Taking care to hide the pattern from +.I mash +file name pattern matching with quotes. +The command +.IP +.B rules +[ +.I pattern +] +.PP +will display all the rules or the rules that apply to pattern +.I pattern +(if given). +.SH SOURCE +.B /appl/cmd/mash/make.b +.SH "SEE ALSO" +.IR mash (1) diff --git a/static/inferno/man1/mash-tk.1 b/static/inferno/man1/mash-tk.1 new file mode 100644 index 00000000..c2047813 --- /dev/null +++ b/static/inferno/man1/mash-tk.1 @@ -0,0 +1,212 @@ +.TH MASH-TK 1 +.SH NAME +mash-tk \- control visual elements of mash window +.SH SYNOPSIS +.B load tk +.br +.B tk clear +.br +.B tk def button +.I name value +.br +.B tk def ibutton +.I name value image +.br +.B tk def menu +.I name +.br +.B tk def item +.I menu name value +.br +.B tk dialog +.I title mesg default label ... +.br +.B tk dump [ +.I name ... +.B ] +.br +.B tk env +.br +.B tk file +.I title dir pattern ... +.br +.B tk geom +.br +.B tk layout [ +.I name ... +.B ] +.br +.B tk notice +.I message +.br +.B tk sel +.br +.B tk sget +.br +.B tk sput +.I string +.br +.B tk string +.I mesg +.br +.B tk taskbar +.I string +.br +.B tk text +.br +.SH DESCRIPTION +.I Tk +is a loadable builtin for +.IR mash. +It provides a set of primitives for customizing a +.I mash +window and building fairly sophisticated graphical functions. It is currently implemented as a single command with a variety of subcommands. For the +.I tk +command to work, +.I mash +must have been started using +.BR wm/wmmash . +In the following descriptions, references to return values indicate strings put on a command's standard output. +.SS Creating a Menu Bar +The +.B def +subcommand is used to define graphical pushbuttons and menus. The +.B def button +and +.B def ibutton +commands are used to define pushbuttons labelled with text or graphical icons, respectively. +The +.I name +parameter is used to label buttons, and to layout both buttons and ibuttons. +.I Value +is a command to be executed when the button is clicked, and must be quoted if it contains white space. +.I Image +is the name of a bitmap file; it is looked for in +.BR /icon/tk , +unless the name begins with +.BR@ , +which suppresses prepending +.BR /icon/tk . +.br +.B Def menu +is used to name and label menu buttons, and +.B def item +specifies items within the corresponding pulldown menus. In +.BR "def item" , +.I menu +is a name supplied on a +.B def menu +subcommand, +.I name +is the label for this menu item, and +.I value +is a command to execute when this menu item is selected. +All the items in a menu are simple command buttons; +there is no provision for any other kind of control, or for cascading menus. +.br +The +.B layout +subcommand creates and makes visible a menu bar, using menus and buttons defined with +.B def +subcommands. The current components, if any, are removed first, +so layout with no parameters just removes all the current buttons and menus from the +.I mash +window. The components are laid out from left to right, in the order presented in the +.B layout +subcommand. A copy of the current +.I mash +environment is made, and commands executed as a result of clicking buttons +or selecting menu items are executed in that environment. +For example, variables will have the values they had when the layout was done. +.br +The +.B env +subcommand can be used to make a new copy of the environment for use by button +or menu actions. +.SS Displaying Popup Widgets +The +.B notice +subcommand pops up a window containing +.I message +and a single button to dismiss the window. The icon displayed in the window is +.BR /icons/tk/error . +No value is returned by +.BR notice . +.br +The +.B dialog +subcommand is more complex; +.I title +is used to name the window, and multiple buttons labelled according to the +.B label +parameter(s) are provided. +.I Default +is the number of the button which is the default choice. The leftmost button is numbered 0. +When the user selects one of the buttons, the dialog box is popped down and the +number of the button selected is returned. +.br +The +.B file +subcommand pops up a standard Inferno file selection box. +.I Dir +specifies the initial directory to display, and pattern specifies which non-directory files to include in the list of files. If the Cancel button in the file dialog is clicked, no value is returned. If a file is selected and the Exit button is clicked, the full pathname of the file is returned, complete with final +.B / +if the file is a directory. Double clicking on a non-directory file in the list will likewise return that file's path. Double clicking on a directory in the list will display the contents of that directory. +.br +The +.B string +subcommand pops up a small window with +.I mesg +as the label of a text field. Characters typed into the text field, up to but not including ENTER, are returned. +.SS Dealing With the Selection +.br +The +.B sel +subcommand returns whatever is currently selected. When typing into the shell's window, nothing is selected, so nothing is returned. However, if invoked via a pushbutton and there is a selection, it is returned. +.br +The +.B sput +subcommand puts +.I string +into the snarf buffer maintained by the window manager, and the +.B sget +subcommand retrieves and returns the current contents of the snarf buffer. This provides a way to pass text between the shell and other applications. The Snarf and Paste buttons on the popup menu associated with mouse button two can also be used to do this. + +.SS Miscellaneous Tk Subcommands +The +.B taskbar +subcommand lets you put +.I string +in the title bar of the +.I mash +window. The old value is returned. +.br +The +.B text +subcommand returns the contents of the +.I mash +window. +.br +The +.B clear +subcommand removes all text from the window. +.br +The +.B dump +subcommand returns the +.I mash-tk +commands needed to define the buttons and menus currently defined, +and to recreate the currently visible set of buttons and menus, or, if +.B dump +has parameters, the commands needed to define the buttons and menus named by the parameters. +.br +The +.B geom +subcommand returns the position of the upper left corner of the +.I mash +window relative to the upper left corner of the Inferno screen. + +.SH SOURCE +.B /appl/cmd/mash/tk.b +.SH "SEE ALSO" +.IR mash (1) diff --git a/static/inferno/man1/mash.1 b/static/inferno/man1/mash.1 new file mode 100644 index 00000000..ed305553 --- /dev/null +++ b/static/inferno/man1/mash.1 @@ -0,0 +1,635 @@ +.TH MASH 1 +.SH NAME +mash \- programmable shell +.SH SYNOPSIS +.B mash +[ +.B -denx +][ +.BI -c command +] [ +.I file +[ +.I arg ... +]] +.SH DESCRIPTION +.I Mash +is an older alternative to the original Inferno shell +(now +.IR tiny (1)). +.I Mash +is a programmable shell that also allows the definition of simple dependency +rules, resembling those of Unix +.IR make . +It executes commands read from standard input +or a file or, with the +.B -c +flag, from +.IR mash 's +argument list. Its syntax and +semantics are similar to that of Plan 9's +.IR rc . + +.SS Invocation +If +.I mash +is started with no arguments it reads commands from standard +input. Otherwise its first non-flag argument is the name of a file from +which to read commands (but see +.B -c +below). Subsequent arguments +become the initial value of +.BR $args . +Mash accepts the following +command-line flags. +.PD 0 +.TF "-c string" +.TP +.BI -c " string" +Commands are read from string. +.TP +.B -d +Dump parsed commands before execution. +.TP +.B -e +Fail if a top level command does. +.TP +.B -n +Parse but do not execute. +.TP +.B -x +Print each simple command before executing it. +.PD +.PP +If invoked without arguments +.I mash +first runs the commands found in +.BR /lib/mashinit . + +.SS "Command Lines" +Each command is terminated with an ampersand or a semicolon (& or ;). +When reading from +.B /dev/cons +a newline +not escaped with a backslash (\\) is treated as a semicolon. +.I Mash +does not +wait for a command followed by +.B & +to finish executing before starting the +following command. +.PP +A number-sign (#) and any following characters up to (but not including) the next newline are +ignored, except in quotation marks. + +.SS "Simple Commands" +A simple command is a sequence of words interspersed with I/O +redirections. If the first word is the name of a +.I mash +function or of one of +.IR mash 's +built-in commands, it is executed by +.IR mash . +Otherwise, if the name +starts with a slash +.RB ( / ), +it must be the path name of a Dis +file to be loaded +and executed. Names containing no initial slash are searched for in the +current directory and then in +.BR /dis . +The +.B .dis +extension need not be +supplied. +.PP +The keywords are +.EX + case else fn for hd if in len rescue tl while +.EE + +.SS Words and Variables +A number of constructions may be used where +.IR mash 's +syntax requires a +word to appear. In many cases a construction's value will be a list of +strings rather than a single string. +.PP +The simplest kind of word is the unquoted word: a sequence of one or +more characters none of which is a blank, tab, newline, or any of the +following: +.EX + # : ; ! ~ @ & | ^ $ = " ` ' { } ( ) < > +.EE +An unquoted word that contains any of the characters +.BR * ,\ ? +or +.B [ +is a pattern +for matching against file names. The character +.B * +matches any sequence of +characters, +.B ? +matches any single character, and +.B [ +.I class +.B ] +matches any +character in the class. The class may also contain pairs of characters +separated by +.BR \- , +standing for all characters lexically between the two. The +character +.B / +must appear explicitly in a pattern. A pattern is replaced by a +list of words, one for each path name matched, except that a pattern +matching no names is not replaced by the empty list, but rather stands for +itself. Pattern matching is done after all other operations. Thus, +.EX + x=/tmp; echo $x^/*.c; +.EE +matches +.BR /tmp/*.c , +rather than matching +.B /*.c +and then prefixing +.BR /tmp . +.PP +A quoted word is a sequence of characters surrounded by single quotes +.RB ( ' ). +A single quote is escaped with a backslash. +.PP +Each of the following is a word. +.PD 0 +.HP +.BI $ identifier +.br +The identifier after the +.B $ +is the name of a variable whose value is +substituted. Variable values are lists of strings. It is an error if the +named variable has never been assigned a value. +.HP +.BI $ number +.br +See the description of rules for the +.IR mash-make (1) +builtin. +.HP +.B $"\c +.I identifier +.br +The value is a single string containing the components of the named +variable separated by spaces. +.HP +.BI `{ commands } +.br +.I mash +executes the commands and reads the standard output, splitting +it into a list of words, using the whitespace characters (space, tab, +newline and carriage return) as separators. +.HP +.B +"{\c +.IB commands } +.br +.I mash +executes the commands and reads the standard output, splitting +it into a list of words, using the whitespace characters (space, tab, +newline and carriage return) as separators. +.HP +.BI <{ commands } +.HP +.BI >{ commands } +.br +The commands are executed asynchronously with their standard +output or standard input connected to a pipe. The value of the word +is the name of a file referring to the other end of the pipe. This +allows the construction of non-linear pipelines. For example, the +following runs two commands +.B old +and +.B new +and uses +.B cmp +to compare their outputs +.EX + cmp <{old} <{new}; +.EE +.TP +.BI ( expr ) +.I mash +evaluates +.I expr +as an expression. The value is a (possibly null) list of words. +Expressions are described in detail below. +.HP +.IB word ^ word +.br +The +.B ^ +operator concatenates its two operands. If either operand is a +singleton, the concatenation is distributive. Otherwise the lists are +concatenated pairwise. + +.PD +.SS Free Carets +In most circumstances, +.I mash +will insert the +.B ^ +operator automatically +between words that are not separated by white space. Whenever one of +.B $ +.BR ' or +.B ` +(dollar, single quote or back quote) +follows a quoted or unquoted word or an unquoted word follows a +quoted word with no intervening blanks or tabs, a +.B ^ +is inserted between +the two. If an unquoted word immediately follows a +.B $ +and contains a +character other than an alphanumeric, or underscore, a +.B ^ +is inserted before +the first such character. Thus +.IP +.B limbo -$flags $stem.b +.LP +is equivalent to +.IP +.B limbo -^$flags $stem^.b + +.SS I/O Redirections +The sequence +.BI > file +redirects the standard output file (file descriptor 1, +normally +.BR /dev/cons ) +to the named +.IR file ; +.BI >> file +appends standard +output to the file. The standard input file (file descriptor 0, also normally +.BR /dev/cons ) +may be redirected from a file by the sequence +.BR file +opens the file for read/write and associates both file +descriptor 0 and 1 with it. + +.SH Compound Commands +A pair of commands separated by a pipe operator +.RB ( | ) +is a command. The +standard output of the left command is sent through a pipe to the +standard input of the right command. +.PP +Each of the following is a command. +.PD 0 +.HP +.B if ( +.I expr +.B ) +.I command1 +.HP +.B if ( +.I expr +.B ) +.I command1 +.B else +.I command2 +.br +The +.I expr + is evaluated and if the result is not null, then +.I command1 +is executed. In the second form +.I command2 +is executed if +the result is null. +.HP +.B for ( +.I name +.B in +.I list +.BI ) command +.br +The +.I command +is executed once for each word in +.I list +with that +word assigned to +.IR name . +.HP +.B while ( +.I expr +.B ) +.I command +.br +The +.I expr +is evaluated repeatedly until its value is null. Each time it +evaluates to non-null, the command is executed. +.HP +.B case +.I expr +.B { +.I pattern-list +.B => +.I command ... +.B } +.br +.HP +.B case +.I expr-list +.B { +.I pattern +.B => +.I command ... +.B } +.br +In the first form of the command the +.I expr +is matched against a series of lists of regular expressions (See +.IR regex (2)). +The command associated with the matching expression is executed. +In the second form the +.I command +associated with the first pattern to match one of the words in +.I expr-list +is executed. An +.I expr-list +will never match a +.IR pattern-list . +.HP +.BI { commands } +.HP +.BI @{ commands } +.br +Braces serve to alter the grouping of commands implied by operator +priorities. The body is a sequence of commands separated by +.B & +or +.BR ; . +The second form is executed with a new scope. Either form can be +followed by redirections. +.HP +.BI fn name { list } +.HP +.BI fn name +.br +The first form defines a function with the given +.IR name . +Subsequently, +whenever a command whose first word is +.I name +is encountered, the +current value of the remainder of the command's word list will be +assigned to the local variable +.BR args , +in a new scope, and +.I mash +will execute the list. The second form removes +.IR name 's +function definition. +.HP +.IB name = list +.HP +.IB name := list +.br +The first form is an assignment to a variable. If the name is currently +defined as a local variable its value will be updated. Otherwise a +global variable with the given name will be defined or updated. The +second form is an explicit definition or update of a local variable. +.HP +.IB list : list +.HP +.IB list : list { commands } +.HP +.IB word :~ word { commands } +.br +These forms define dependencies and rules for the +.I make +loadable +builtin. The first form defines a simple dependency, the second a +dependency with an explicit rule. The third form defines an implicit +rule where the left-hand word is a file pattern, the right-hand word is +the prerequisite. The right-hand word and the commands can +contain references to the characters matched by the +.B * +meta-character +in the pattern +.RB ( $1 +evaluates to the characters matched by the first +.BR * , +.B $2 +the second and so on; +.B $0 +is the entire match). +.PD + +.SS Expressions +Expressions evaluate to possibly null lists of strings. A word is an +expression. An expression may take one of the following forms +.PD 0 +.HP +.BI ( " expr " ) +.br +Parentheses are used for grouping. +.HP +.BI hd " expr" +.HP +.BI tl " expr" +.HP +.BI len " expr" +.HP +.BI ! " expr" +.br +.I hd +is the first element of a list, +.I tl +the remainder. +.I len +is the length of +a list. Both evaluate to the null list if their operand is a null list. +.B ! +is the not operator and evaluates to true for a null list or to a null list +otherwise. +.HP +.IB expr " ^ " expr +.HP +.IB expr " :: " expr +.HP +.IB expr " == " expr +.HP +.IB expr " != " expr +.HP +.IB expr " ~ " expr +.br +.B ^ +is concatenation (as defined above), +.B :: +is list concatenation, +.B == +and +.B != +are the equality operators evaluating to true or the null list, +depending on the equality or inequality of the two operands. +.B ~ +is the match operator, true if a singleton string matches one of a list of +regular expressions, or one of a list of strings matches a regular +expression. (If neither operand is a singleton it evaluates to the null +list.) +.B ^ +has the highest precedence, followed by +.B :: +followed by the +other three. All associate to the left except +.BR :: . + +.SS Built-in Commands + +.I Mash +supports loadable modules of builtins. The +.I Mashbuiltin +module definition and description is in +.BR mash.m . +One such module, +.IR builtins , +is loaded before +.I mash +begins parsing. This module defines the following commands +.PD 0 +.HP +.B env +.br +Print global and local variables. Global variables are displayed using a +.IB name = value +format, and local variables using a +.IB name := value +format. +.HP +.B eval +.br +Concatenate arguments and use as mash input. +.HP +.B exit +.br +Cause +.I mash +to raise an +.B "exit" +exception. +.HP +.B load +.I file +.br +Load a builtin module. The +.I file +must be a module with type +.BR Mashbuiltin . +The argument +.I file +is assumed to contain a path to the loadable module. If no such module +is found then the string +.B /dis/lib/mash/ +is prepended to +.I file +and the load is retried. +.HP +.B prompt +.HP +.BI prompt text +.HP +.BI prompt "text contin" +.br +When called with no arguments causes the current value of the +.I mash +prompt to be printed to standard output. The default value is +.BR mash% . +The second form sets a new prompt. The final form sets a new prompt +and additionally a continuation string. Initially the continuation +string is set to a single tab character. +.I Mash +uses the continuation string in place of the prompt string to indicate that +the preceding line has been continued by escaping with a final backslash +.RB ( \e ) +character. +.HP +.BI quote args... +.br +Print arguments quoted as input for +.IR mash . +.HP +.BI "run -" [ denx "] file [arg...]" +.br +Interpret a file as input to +.IR mash . +.HP +.BI time "cmd [arg...]" +.br +Time the execution of a command. The total execution time is reported +in seconds and on standard error when the command completes. +.HP +.BI whatis name +.br +Print variable, function or builtin. The object given by +.I name +is described on standard output in a format that reflects its type. +.PP +The +.I make +loadable builtin provides `make` functionality. +The +.I tk +loadable builtin provides control over some of the visual elements of a +.I mash +window. + +.SS Adding Builtins +New builtins can be added to +.I mash +by creating a +.I Dis +module that can be loaded with a +.B Mashbuiltin +module interface (defined in mash.m). +The new module is loaded with the builtin +.B load +command which calls its +.B mashinit +function to initialise it with an argument containing the +.B load +command line. The function should use this call to register the set of builtins +that the module will provide using the +.B Env.defbuiltin +function. Thereafter, each time one of the registered builtins is invoked +the module's +.B mashcmd +function is called passing as an argument a list containing the invoked +builtin name and its arguments. See the examples in +.BR mash/builtins.b , +.BR mash/make.b ", and" +.BR mash/tk.b . +.SH FILES +.B /lib/mashinit +.br +.B /dis/lib/mash +.SH SOURCE +.B /appl/cmd/mash +.SH SEE ALSO +.IR mash-tk (1), +.IR mash-make (1), +.IR regex (2) +.PP +Tom Duff, +``Rc \- The Plan 9 Shell'', in the +.I "Plan 9 Programmer's Manual", Second Edition, +Volume 2. diff --git a/static/inferno/man1/math-misc.1 b/static/inferno/man1/math-misc.1 new file mode 100644 index 00000000..42003f64 --- /dev/null +++ b/static/inferno/man1/math-misc.1 @@ -0,0 +1,223 @@ +.TH MATH-MISC 1 +.SH NAME +ack, crackerbarrel, factor, fibonacci, fit, genprimes, mersenne, parts, perms, pi, powers, primes, sieve \- miscellaneous mathematical applications +.SH SYNOPSIS +.B math/ack +[ +.IR m +] +[ +.IR n +] +.br +.B math/crackerbarrel +[ +.IR n +] +.br +.B math/factor +[ +.IR n +] +.br +.B math/fibonacci +.br +.B math/fit +[ +.BI -d deg +] +[ +.B -v +] +[ +.IR file +] +.br +.B math/genprimes +[ +.IR lim +] +.br +.B math/mersenne +[ +.IR num +] +.br +.B math/parts +[ +.B -a +] +[ +.IR num ... +] +.br +.B math/perms +[ +.IR n +] +.br +.B math/pi +[ +.IR dp +] +.br +.B math/powers +[ +.B -p num +] +[ +.B -n num +] +[ +.B -f num +] +[ +.B -l num +] +[ +.B -m num +] +[ +.B -v +] +.br +.B math/primes +[ +.IR m +] +[ +.IR n +] +.br +.B math/sieve +[ +.B -a alg +] +[ +.IR lim +] +.SH DESCRIPTION +A collection of simple mathematical utilities. +.PP +.TP +.B math/ack +Calculates and times Ackermann's function A(m, n). +.TP +.B math/crackerbarrel +Solves the crackerbarrel puzzle +.B n +times and outputs the time taken. See the source for details of the puzzle. +.TP +.B math/factor +Factors the number n. +.TP +.B math/fibonacci +Generates the first few terms of the Fibonacci series using recursion +and user defined exceptions. +.TP +.B math/fit +Fits a polynomial of degree +.I deg +to a set of points (x, y) where x is the independent variable, y the dependent one. +All x and y values should be seperated by white space +and can be real or integer. The values are read from +.IR file +or standard input if none is given. The +.B -v +option prints a table of actual and expected y values. +.TP +.B math/genprimes +Generates primes numbers up to and including +.B lim +using spawned processes and buffered channels. +.TP +.B math/mersenne +Tests the primality of the Mersenne numbers ie numbers of the form 2^n-1. +The argument +.IR num +is the power of 2 in the above. +.TP +.B math/parts +Calculates the number of partitions of the given number(s). The +.B -a +option will print out a table of the number of partitions of all numbers up to the +given number(s). +.TP +.B math/perms +Prints out all permutations of +.B n +elements. +.TP +.B math/pi +Calculates the value of pi to +.B dp +decimal places. +.TP +.B math/powers +Investigates the number of representations of an integer as a sum of +powers. +The +.B -p +option denotes the power of use (default 2). The +.B -n +option denotes the number of powers to sum (default 2). The +.B -f +option denotes the minimum number of such representations found before +reporting them (default 2). The +.B -l +and +.B -m +options denote the smallest and largest numbers to consider respectively (defaults 0 and 8192). Finally the +.B -v +option prints various statistics during the search. +.TP +.B math/primes +Prints out all primes between +.B m +and +.B n . +.TP +.B math/sieve +Prints out prime numbers up to +.B lim +using a sieve algorithm. The +.B -a +option indicates the level of sophistication of the algorithm (0-4). +.PP +.SH EXAMPLE +.EX + + math/powers -p 3 -m 30000 +gives + [2] 1729 = 1**3 + 12**3 = 9**3 + 10**3 + [2] 4104 = 2**3 + 16**3 = 9**3 + 15**3 + [2] 20683 = 10**3 + 27**3 = 19**3 + 24**3 +The number of representations found for each integer is indicated in +square brackets. +.EE +.SH SOURCE +.B /appl/math/ack.b +.br +.B /appl/math/crackerbarrel.b +.br +.B /appl/math/factor.b +.br +.B /appl/math/fibonacci.b +.br +.B /appl/math/fit.b +.br +.B /appl/math/genprimes.b +.br +.B /appl/math/mersenne.b +.br +.B /appl/math/parts.b +.br +.B /appl/math/perms.b +.br +.B /appl/math/pi.b +.br +.B /appl/math/powers.b +.br +.B /appl/math/primes.b +.br +.B /appl/math/sieve.b diff --git a/static/inferno/man1/mc.1 b/static/inferno/man1/mc.1 new file mode 100644 index 00000000..465338b3 --- /dev/null +++ b/static/inferno/man1/mc.1 @@ -0,0 +1,40 @@ +.TH MC 1 +.SH NAME +mc \- multicolumn print +.SH SYNOPSIS +.B mc +[ +.BI -c " columns" +] +[ +.I file ... +] +.SH DESCRIPTION +.I Mc +formats the contents of +.I files +(standard input by default) into columns. +.I Columns +is an integer specifying the number of +character widths into which +.IR mc 's +output is formatted. +If run in an +.IR acme (1) +window, the default +.I columns +is the number of zeros that will fit across the window; +otherwise the default +.I columns +is 65. +.SH SOURCE +.B /appl/cmd/mc.b +.SH "SEE ALSO" +.IR acme (1) +.SH BUGS +The columns are not aligned properly +if the input contains tabs. +.br +The output doesn't fit the width of a +.IR wm-sh (1) +window by default. diff --git a/static/inferno/man1/mdb.1 b/static/inferno/man1/mdb.1 new file mode 100644 index 00000000..13b479a5 --- /dev/null +++ b/static/inferno/man1/mdb.1 @@ -0,0 +1,251 @@ +.TH MDB 1 +.SH NAME +mdb - binary file editor +.SH SYNOPSIS +.B mdb +[ +.B -w +] +.I file +[ +.I command +] +.SH DESCRIPTION +.I Mdb +allows inspection of the contents +of +.IR file . +If the +.B -w +option is given, then modification of the contents is also +allowed. +.I Mdb +accepts commands of the form +.IP +.RI [ address ] +.RB [ , +.IR count ] +.RI [ command ] +.PP +If a +.I command +is given as an argument, then +.I mdb +will execute that command, otherwise +it will read and execute commands from the standard input. +If +.I address +is present then the current position, called `dot', is +set to +.IR address. +Initially dot is set to 0. +.I Command +is repeated +.I count +times with dot advancing between repetitions. The default +count is 1. +.I Address +and +.I count +are expressions. +.SS Expressions +Expressions take one of the following forms: +.TP 10 +\&. +The value of dot. +.TP ++ +The value of dot. +.TP +^ +The value of dot. +.TP +" +The value of the last address typed. +.TP +.I integer +A number, decimal by default. A +.RB ` 0 ' +prefix causes +it to be interpreted as octal; a +.RB ` 0x ' +prefix causes it to be interpreted as hexadecimal. +.TP +.BI ( expr ) +The value of the expression +.IR expr . +.PP +.I Operators +.RS +.TP +.IB e1 + e2 +Integer addition. +.TP +.IB e1 - e2 +Integer subtraction. +.TP +.IB e1 * e2 +Integer multiplication. +.TP +.IB e1 % e2 +Integer division. (N.B. +.I not +modulus). +.TP +.IB e1 | e2 +Bitwise disjunction. +.TP +.IB e1 & e2 +Bitwise conjunction. +.RE +.SS Commands +Commands have the following syntax: +.TP +.BI / f +Locations starting at +.I address +in +.I file +are printed according to the format +.IR f . +.TP +.BI ? f +Same as +.RB ` / '. +.TP +.BI = f +The value of +.I address +itself is printed according to the format +.IR f . +.PP +A +.I format +consists of one or more characters that specify +a style of printing. Each +.I format +fetches some data, prints it, and if the +.I command +is not +.RB ` = ', +advances dot by the amount of data fetched. +All data is assumed to be held in little-endian +form (least significant byte first). +.RS +.TP +.PD 0 +.B o +Print a two-byte integer in octal. +.TP +.B O +Print a four-byte integer in octal. +.TP +.B d +Print a two-byte integer in decimal. +.TP +.B D +Print a four-byte integer in decimal. +.TP +.B u +Print a two-byte integer in unsigned decimal. +.TP +.B U +Print a four-byte integer in unsigned decimal. +.TP +.B b +Print a single byte in hexadecimal. +.TP +.B x +Print a two-byte integer in hexadecimal. +.TP +.B X +Print a four-byte integer in hexadecimal. +.TP +.B n +Prints a newline. No data is fetched. +.TP +.B + +Increments dot by 1. No data is printed. +.TP +.B - +Decrements dot by 1. No data is printed. +.TP +.B ^ +Increments dot by the size of the last format encountered. +.TP +.B c +Prints a single byte as a character. +.TP +.B C +Prints a single byte as a printable character, converting +it to backslash escaped hex if necessary. +.RE +.PD +Other commands include: +.TP 10 +.RB [ ?/ ] w\ \fIvalue\fP +Write the two-byte +.I value +to the addressed location. +.TP +.RB [ ?/ ] W\ \fIvalue\fP +Write the four-byte +.I value +to the addressed location. +.TP +.RB [ ?/ ] i +Disassemble +.I count +instructions starting at +.I address +.RI ( dot +by default). +.TP +.BI $ modifier +.I File +must be a +.IR dis (6) +file. +.I Modifier +is one of the following subcommands: +.RS +.TP +.PD 0 +.B D +Print the descriptor section. +.TP +.B h +Print the file header. +.TP +.B l +Print the links section. +.TP +.B i +Print the import section. +.TP +.B d +Print the data section. +.TP +.B H +Print exception handler tables. +.TP +.B s +Print the name of the source file. +.PD +.RE +.SH SOURCE +.B /appl/cmd/mdb.b +.SH SEE ALSO +.IR dis (6) +.SH BUGS +Most of the more useful features of +.IR mdb 's +antecedent +.I db +are unimplemented. +.PP +It is not possible to print strings or UTF-8 characters. +.PP +As there is no ``native'' word format in Inferno, +the assumption that all words are little-endian is hard +to justify. diff --git a/static/inferno/man1/miniterm.1 b/static/inferno/man1/miniterm.1 new file mode 100644 index 00000000..1a1b0381 --- /dev/null +++ b/static/inferno/man1/miniterm.1 @@ -0,0 +1,142 @@ +.TH MINITERM 1 +.SH NAME +miniterm \- Minitel® emulator +.SH SYNOPSIS +.B wm/minitel/miniterm +[ +.I address +] +.SH DESCRIPTION +.I Miniterm +connects to the Minitel® service at the given +.IR address , +by default the France Telecom Internet gateway +to its Minitel® service, +.BR tcp!pdc.minitelfr.com!513 . +The +.I address +can be any form acceptable to +.IR dial (2). +.I Miniterm +opens a new window that mimics a Minitel display. +An array of buttons on the right hand side (in 40 character mode) +or bottom (in 80 character mode) offer the special Minitel functions, +with French abbreviations. +Characters typed on the keyboard are sent to the server; +typing the return key acts as +.B Suite +or +.B Envoi +as required. +Clicking on a word with the mouse sends it to the server. +.PP +The France Telecom gateway offers a demonstration service +using ID +.B ZXNET1 +with password +.BR DEMFTD . +Once connected, the services +.B PAGESM +(a directory of all Minitel services) and +.B FT +(France Telecom's information service) +are available without charge. +See +.B www.minitelfr.com +for further information. +.PP +On certain native Inferno hardware, +.I miniterm +can also connect directly via a modem connection, using +an address of the form +.BI modem! modeminit ! number, +which sends the string +.I modeminit +to the modem to initialise it, +then dials the given +.IR number . +For example: +.IP +.EX +wm/minitel/miniterm modem!F3!00133836431414 +.EE +.PP +Here, the +.L F3 +is a code that tells the modem to enable V.23, which must be used when +connecting to the France Telecom servers. +To use pulse dialing instead of tone dialing the phone number +can be prefixed with a +.LR P , +as in: +.IP +.EX +wm/minitel/miniterm modem!F3!P3614 +.EE +.PP +If the parameter specifies a network connection or a direct connection +with a phone number the software will attempt to connect immediately. +If the on-screen button +.B Cx/Fin +is used to disconnect and then re-connect, +.I miniterm +will use the +same address if it is a network connection but prompt for a new +phone number for a direct connection. When prompting +for a new number the top row of the screen is used to allow the user +to edit the last used number. Simple editing is available, and the minitel +keys do the obvious things. +.PP +The Minitel function keys are displayed on the right hand side of the screen +in 40 column mode on a network connection +and can be swapped to the left hand side by hitting the +.L <- +key. +In direct dial mode and 80 column network mode the keys are +displayed at the bottom of the screen. +In network mode they are redisplayed as appropriate on 40 to 80 +column mode changes. +.PP +.I Miniterm +provides a software keyboard, activated by the +.B Clavier +button, which understands some of +the Minitel keyboard mappings. For example, hitting +.RB ` A ' +results +in a capital +.L A +on the screen in spite of the Videotex case mapping. +.SH FILES +.TF /fonts/minitel +.TP +.B /dev/modem +soft modem (no longer supported) +.TP +.B /dev/modemctl +.TP +.B /fonts/minitel +text and semigraphic characters +.SH SOURCE +.B /appl/wm/miniterm +.SH SEE ALSO +.IR charon (1), +.IR telnet (1) +.SH BUGS +There is no button to control use of error correction in direct dial mode; +it will be enabled only if the server requests it, but not all do. +Without it direct dial screens are occasionally corrupted. +.PP +The software keyboard is not AZERTY. +Worse, it does not always come to the top on a mode change. +.PP +Some screens look wrong in 80 column +mode. +.PP +On a network connection, choosing +.B USA +displays +.LR iC +at the bottom left hand +corner of the screen. The server really is sending this sequence. +Both the FT emulator and their explorer plug-in suffer from it too. diff --git a/static/inferno/man1/mk.1 b/static/inferno/man1/mk.1 new file mode 100644 index 00000000..c18eceb7 --- /dev/null +++ b/static/inferno/man1/mk.1 @@ -0,0 +1,579 @@ +.TH MK 1 +.SH NAME +mk \- maintain (make) related files +.SH SYNOPSIS +.B mk +[ +.B -f +.I mkfile +] ... +[ +.I option ... +] +[ +.I target ... +] +.SH DESCRIPTION +.I Mk +uses the dependency rules specified in +.I mkfile +to control the update (usually by compilation) of +.I targets +(usually files) +from the source files upon which they depend. +The +.I mkfile +(default +.LR mkfile ) +contains a +.I rule +for each target that identifies the files and other +targets upon which it depends and a +.IR sh (1) +script, a +.IR recipe , +to update the target. +The script is run if the target does not exist +or if it is older than any of the files it depends on. +.I Mkfile +may also contain +.I meta-rules +that define actions for updating implicit targets. +If no +.I target +is specified, the target of the first rule (not meta-rule) in +.I mkfile +is updated. +.PP +The environment variable +.B $NPROC +determines how many targets may be updated simultaneously; + the default value is 1. +.PP +Options are: +.TP \w'\fL-d[egp]\ 'u +.B -a +Assume all targets to be out of date. +Thus, everything is updated. +.PD 0 +.TP +.BR -d [ egp ] +Produce debugging output +.RB ( p +is for parsing, +.B g +for graph building, +.B e +for execution). +.TP +.B -e +Explain why each target is made. +.TP +.B -i +Force any missing intermediate targets to be made. +.TP +.B -k +Do as much work as possible in the face of errors. +.TP +.B -n +Print, but do not execute, the commands +needed to update the targets. +.TP +.B -s +Make the command line arguments sequentially rather than in parallel. +.TP +.B -t +Touch (update the modified date of) file targets, without +executing any recipes. +.TP +.BI -w target1 , target2,... +Pretend the modify time for each +.I target +is the current time; useful in conjunction with +.B -n +to learn what updates would be triggered by +modifying the +.IR targets . +.PD +.SS The mkfile +A +.I mkfile +consists of +.I assignments +(described under `Environment') and +.IR rules . +A rule contains +.I targets +and a +.IR tail . +A target is a literal string +and is normally a file name. +The tail contains zero or more +.I prerequisites +and an optional +.IR recipe , +which is a +.B sh +script. +Each line of the recipe must begin with white space. +A rule takes the form +.IP +.EX +target: prereq1 prereq2 + sh \f2recipe using\fP prereq1, prereq2 \f2to build\fP target +.EE +.PP +When the recipe is executed, +the first character on every line is elided. +.PP +After the colon on the target line, a rule may specify +.IR attributes , +described below. +.PP +A +.I meta-rule +has a target of the form +.IB A % B +where +.I A +and +.I B +are (possibly empty) strings. +A meta-rule acts as a rule for any potential target whose +name matches +.IB A % B +with +.B % +replaced by an arbitrary string, called the +.IR stem . +In interpreting a meta-rule, +the stem is substituted for all occurrences of +.B % +in the prerequisite names. +In the recipe of a meta-rule, the environment variable +.B $stem +contains the string matched by the +.BR % . +For example, a meta-rule to compile a limbo program anmd install it +might be: +.IP +.EX +%.dis: %.b + limbo $stem.b + cp $stem.dis /dis +.EE +.PP +Meta-rules may contain an ampersand +.B & +rather than a percent sign +.BR % . +A +.B % +matches a maximal length string of any characters; +an +.B & +matches a maximal length string of any characters except period +or slash. +.PP +The text of the +.I mkfile +is processed as follows. +Lines beginning with +.B < +followed by a file name are replaced by the contents of the named +file. +Blank lines and comments, which run from unquoted +.B # +characters to the following newline, are deleted. +The character sequence backslash-newline is deleted, +so long lines in +.I mkfile +may be folded. +Non-recipe lines are processed by substituting for +.BI `{ command } +the output of the +.I command +when run by +.IR sh . +References to variables are replaced by the variables' values. +Special characters may be quoted using single quotes +.BR \&'' +as in +.IR sh (1). +.PP +Assignments and rules are distinguished by +the first unquoted occurrence of +.B : +(rule) +or +.B = +(assignment). +.PP +A later rule may modify or override an existing rule under the +following conditions: +.TP +\- +If the targets of the rules exactly match and one rule +contains only a prerequisite clause and no recipe, the +clause is added to the prerequisites of the other rule. +If either or both targets are virtual, the recipe is +always executed. +.TP +\- +If the targets of the rules match exactly and the +prerequisites do not match and both rules +contain recipes, +.I mk +reports an ``ambiguous recipe'' error. +.TP +\- +If the target and prerequisites of both rules match exactly, +the second rule overrides the first. +.SS Environment +Rules may make use of +.B sh +environment variables. +A legal reference of the form +.B $OBJ +or +.B ${name} +is expanded as in +.IR sh (1). +A reference of the form +.BI ${name: A % B = C\fL%\fID\fL}\fR, +where +.I A, B, C, D +are (possibly empty) strings, +has the value formed by expanding +.B $name +and substituting +.I C +for +.I A +and +.I D +for +.I B +in each word in +.B $name +that matches pattern +.IB A % B\f1. +.PP +Variables can be set by +assignments of the form +.I + var\fL=\fR[\fIattr\fL=\fR]\fIvalue\fR +.br +Blanks in the +.I value +break it into words, as in +.I sh +but without the surrounding parentheses. +Such variables are exported +to the environment of +recipes as they are executed, unless +.BR U , +the only legal attribute +.IR attr , +is present. +The initial value of a variable is +taken from (in increasing order of precedence) +the default values below, +.I mk's +environment, the +.IR mkfiles , +and any command line assignment as an argument to +.IR mk . +A variable assignment argument overrides the first (but not any subsequent) +assignment to that variable. +The variable +.B MKFLAGS +contains all the option arguments (arguments starting with +.L - +or containing +.LR = ) +and +.B MKARGS +contains all the targets in the call to +.IR mk . +.PP +Dynamic information may be included in the mkfile by using a line of the form +.I + \fR<| \fIcommand\fR \fIargs\fR +.br +This runs the command +.I command +with the given arguments +.I args +and pipes its standard output to +.I mk +to be included as part of the mkfile. For instance, the file +.B /os/sa1100/mkfile +uses this technique +to run a shell command with an awk script and a configuration file as arguments in order for +the +.I awk +script to process the file and output a set of variables and their values. +.SS Execution +.PP +During execution, +.I mk +determines which targets must be updated, and in what order, +to build the +.I names +specified on the command line. +It then runs the associated recipes. +.PP +A target is considered up to date if it has no prerequisites or +if all its prerequisites are up to date and it is newer +than all its prerequisites. +Once the recipe for a target has executed, the target is +considered up to date. +.PP +The date stamp +used to determine if a target is up to date is computed +differently for different types of targets. +If a target is +.I virtual +(the target of a rule with the +.B V +attribute), +its date stamp is initially zero; when the target is +updated the date stamp is set to +the most recent date stamp of its prerequisites. +Otherwise, if a target does not exist as a file, +its date stamp is set to the most recent date stamp of its prerequisites, +or zero if it has no prerequisites. +Otherwise, the target is the name of a file and +the target's date stamp is always that file's modification date. +The date stamp is computed when the target is needed in +the execution of a rule; it is not a static value. +.PP +Nonexistent targets that have prerequisites +and are themselves prerequisites are treated specially. +Such a target +.I t +is given the date stamp of its most recent prerequisite +and if this causes all the targets which have +.I t +as a prerequisite to be up to date, +.I t +is considered up to date. +Otherwise, +.I t +is made in the normal fashion. +The +.B -i +flag overrides this special treatment. +.PP +Files may be made in any order that respects +the preceding restrictions. +.PP +A recipe is executed by supplying the recipe as standard input to +the command +.B + $SHELL -e -I +.br +where the +.I SHELL +variable is the appropriate shell on the current platform - typically +.B /dis/sh +. +The appropriate value is automatically supplied in the Inferno build environment. +The +.B -e +is omitted if the +.B E +attribute is set. +The environment is augmented by the following variables: +.TP 14 +.B $alltarget +all the targets of this rule. +.TP +.B $newprereq +the prerequisites that caused this rule to execute. +.TP +.B $nproc +the process slot for this recipe. +It satisfies +.RB 0≤ $nproc < $NPROC . +.TP +.B $pid +the process id for the +.I mk +executing the recipe. +.TP +.B $prereq +all the prerequisites for this rule. +.TP +.B $stem +if this is a meta-rule, +.B $stem +is the string that matched +.B % +or +.BR & . +Otherwise, it is empty. +For regular expression meta-rules (see below), the variables +.LR stem0 ", ...," +.L stem9 +are set to the corresponding subexpressions. +.TP +.B $target +the targets for this rule that need to be remade. +.PP +These variables are available only during the execution of a recipe, +not while evaluating the +.IR mkfile . +.PP +Unless the rule has the +.B Q +attribute, +the recipe is printed prior to execution +with recognizable environment variables expanded. +Commands returning error status +cause +.I mk +to terminate. +.PP +Recipes and backquoted +.B sh +commands in places such as assignments +execute in a copy of +.I mk's +environment; changes they make to +environment variables are not visible from +.IR mk . +.PP +Variable substitution in a rule is done when +the rule is read; variable substitution in the recipe is done +when the recipe is executed. For example: +.IP +.EX +bar=a.b +foo: $bar + limbo -o foo $bar +bar=b.b +.EE +.PP +will compile +.B b.b +into +.BR foo , +if +.B a.b +is newer than +.BR foo . +.SS Aggregates +Names of the form +.IR a ( b ) +refer to member +.I b +of the aggregate +.IR a . +Currently, there are no aggregates supported under Inferno. +.SS Attributes +The colon separating the target from the prerequisites +may be +immediately followed by +.I attributes +and another colon. +The attributes are: +.TP +.B D +If the recipe exits with a non-null status, the target is deleted. +.TP +.B E +Continue execution if the recipe draws errors. +.TP +.B N +If there is no recipe, the target has its time updated. +.TP +.B n +The rule is a meta-rule that cannot be a target of a virtual rule. +Only files match the pattern in the target. +.TP +.B P +The characters after the +.B P +until the terminating +.B : +are taken as a program name. +It will be invoked as +.B "sh -c prog 'arg1' 'arg2'" +and should return a null exit status +if and only if arg1 is not out of date with respect to arg2. +Date stamps are still propagated in the normal way. +.TP +.B Q +The recipe is not printed prior to execution. +.TP +.B R +The rule is a meta-rule using regular expressions. +In the rule, +.B % +has no special meaning. +The target is interpreted as a regular expression as defined in +.IR regexp (6). +The prerequisites may contain references +to subexpressions in form +.BI \e n\f1, +as in the substitute command of +.IR sed (1). +.TP +.B U +The targets are considered to have been updated +even if the recipe did not do so. +.TP +.B V +The targets of this rule are marked as virtual. +They are distinct from files of the same name. +.PD +.SH EXAMPLES +A simple mkfile to compile and install limbo programs: +.IP +.EX +O=dis +prog: a.$O b.$O c.$O + cp $prereq /dis + +%.$O: %.b + limbo $stem.b +.EE +.PP +String expression variables to derive names from a master list: +.IP +.EX +NAMES=alloc arc bquote builtins expand main match mk var word +OBJ=${NAMES:%=%.$O} +.EE +.PP +Regular expression meta-rules: +.IP +.EX +([^/]*)/(.*)\e.dis:R: \e1/\e2.b + cd $stem1; limbo $stem2.b +.EE +.SH SOURCE +.B /appl/cmd/mk +.SH SEE ALSO +.IR sh (1), +.IR regexp (6) +.br +A. Hume, +``Mk: a Successor to Make''. +.br +Bob Flandrena, +``Plan 9 Mkfiles''. +.SH BUGS +Identical recipes for regular expression meta-rules only have one target. +.br +The recipes printed by +.I mk +before being passed to +.I sh +for execution are sometimes erroneously expanded +for printing. Don't trust what's printed; rely +on what +.I sh +does. diff --git a/static/inferno/man1/mkdir.1 b/static/inferno/man1/mkdir.1 new file mode 100644 index 00000000..77641845 --- /dev/null +++ b/static/inferno/man1/mkdir.1 @@ -0,0 +1,49 @@ +.TH MKDIR 1 +.SH NAME +mkdir \- make a directory +.SH SYNOPSIS +.B mkdir +[ +.B -p +] +[ +.I dirname ... +] +.SH DESCRIPTION +.I Mkdir +creates the specified directories. It requires write permission in the parent directory. +.PP +The +.B -p +option causes +.I mkdir +to create the whole path +.IR dirname , +including any missing parent directories; it also will not +complain if +.I dirname +already exists and is a directory. +.PP +The new directories are created with permissions starting with +.B 8r777 +but masked with the permissions of the parent directory according to the +procedure followed by +.IR sys-open (2). +For example, if the parent directory lacks write permission for group +and has no permissions for others, +so will the newly created directory. +.SH SOURCE +.B /appl/cmd/mkdir.b +.SH "SEE ALSO" +.IR chmod (1), +.IR cd (1), +.IR rm (1), +.IR sys-open (2) +.SH DIAGNOSTICS +If any directory cannot be created successfully, +.I mkdir +prints a warning, and continues with any remaining directories, +but returns +.B +\&"error" +exit status at the end. diff --git a/static/inferno/man1/mprof.1 b/static/inferno/man1/mprof.1 new file mode 100644 index 00000000..c6aaf5cc --- /dev/null +++ b/static/inferno/man1/mprof.1 @@ -0,0 +1,169 @@ +.TH MPROF 1 +.SH NAME +mprof, wm/mprof \- memory profiling limbo programs +.SH SYNOPSIS +.B mprof +[ +.B -bcMflnve123 +] [ +.BI -m " modname" +] ... +[ +.BI "cmd arg ..." +] +.PP +.B wm/mprof +[ +.B -e12 +] [ +.BI -m " modname" +] ... +[ +.BI "cmd arg ..." +] +.PP +.SH DESCRIPTION +.I Mprof +is a simple memory profiling tool which calculates the amount of main, heap and image memory +used on a +particular line of limbo source or in a particular limbo function or module. The main memory +in question covers the space taken by dis code, jit code, runtime stacks and dynamic C module text, data and relocation areas. The heap memory covers all other limbo data structures. The source in +question should be compiled with the +.B -g +flag so that the relevant symbol table files exist. In its simplest form, the memory +profiler shows a line number, the current memory in bytes allocated +when executing this line, the high water memory in bytes allocated when executing +this line and the limbo source. This information is also available at the function and +module level. +.PP +The tk version of the profiler +.I wm/mprof +shows this information in a text widget and colours the lines of source according +to the amount of memory allocated by the line. The darker the colour, the +more memory used. +.PP +The +.B -b +option starts profiling. +.PP +The +.B -c +option clears all profiling statistics and state in the memory profiling device. If any commands are specified to +.B mprof +, this is done automatically. It's specific +use is to end the accumulation of statistics when profiling interactively. See the +example below. +.PP +The +.B -M +option shows the memory statistics for each module +The +.B -f +option shows the memory statistics for each function. +.PP +The +.B -l +option shows the memory statistics for each line. If neither this option nor the +.B -M +and +.B -f +options are given, +.B -M +and +.B -l +are assumed. +.PP +The +.B -n +option lists the name of the file along with the line number. +.PP +The +.B -v +option outputs all functions and/or lines even when they do not involve memory +allocating or freeing operations. +.PP +The +.B -m +option lists the module names which are to be profiled. If none are given, all the +modules loaded by the kernel will be profiled. The name may be the actual name of +the module or its path name. +.PP +The +.B -e +option profiles the module that is loaded first in any following command. In this case +there is no need to give a +.B -m +option as this is added automatically. +.PP +The +.B -1 +option profiles only main memory (pool number 1 in the kernel). The default is +to profile main, heap and image memory. +.PP +The +.B -2 +option profiles only heap memory (pool number 2 in the kernel). The default is +to profile main, heap and image memory. +.PP +The +.B -3 +option profiles only image memory (pool number 3 in the kernel). The default is +to profile main, heap and image memory. +.PP +Any remaining arguments are assumed to +specify a command and set of arguments to the command. If this is the case, +.B mprof +will automatically start profiling, run the command to completion and then +stop profiling before showing the profile statistics. +.PP +.B Mprof +displays the profile statistics (unless the +.B -b +option is being used) according to the output format required. +.PP +.SH EXAMPLE +.EX +To profile a particular command + mprof /dis/math/parts 10000 + wm/mprof /dis/math/parts 10000 +To profile the same command but restrict attention to its own module (Partitions). + mprof -m Partitions /dis/math/parts 10000 + wm/mprof -m Partitions /dis/math/parts 10000 +A shorter version of the above + mprof -e /dis/math/parts 10000 + wm/mprof -e /dis/math/parts 10000 +To profile interactively + mprof -b -m Polyhedra + wm/polyhedra & + mprof -M -f -l -n + + mprof -M -f -l -n + wm/mprof + mprof -c +.EE +.PP +Note that the output format options ( +.B -M +, +.B -f +, +.B -l +, +.B -n +, +.B -v +) are ignored when +.B -b +is present. +.SH SOURCE +.B /appl/cmd/mprof.b +.PP +.B /appl/wm/mprof.b +.SH BUGS +Can take quite a time to present statistics when profiling all modules in the +system. +.SH SEE ALSO +.IR cprof (1), +.IR prof (1), +.IR prof (2), +.IR prof (3) diff --git a/static/inferno/man1/mux.1 b/static/inferno/man1/mux.1 new file mode 100644 index 00000000..4fc8c85f --- /dev/null +++ b/static/inferno/man1/mux.1 @@ -0,0 +1,149 @@ +.TH MUX 1 +.SH NAME +mux \- interactive television demo +.SH SYNOPSIS +.B mux/mux +.SH DESCRIPTION +.I Mux +is a standalone application environment run from the Inferno console +in +.IR emu (1) +or started +automatically by +.IR init (8) +in a native environment. +It directly uses the +.IR draw (3) +device and either keyboard or Infrared, +and cannot be run under +.IR wm (1). +It is included in this release only as an example of the use of the Prefab graphics +module described by +.IR prefab-intro (2). +The simpler style of graphics and interaction provided by Prefab and +demonstrated by +.I mux +might be more appropriate than Tk +on devices that use infrared remote control +for interaction, such as televisions, +or devices with limited screen space, such as pocket devices or portable telephones. +.SS Configuration +.I Mux +produces a menu derived from the configuration file +.BR /services/basic . +Each line in the file has three fields, separated by +.BR : , +of the following form: +.IP +.IB icon : app : label +.PP +The +.I icon +is the name of a bitmap file to displayed in the menu alongside the textual +.I label +(which is the rest of the line). +When the item is selected, as described below, +.I mux +runs the Dis file +.IP +.BI /dis/mux/ app .dis +.SS Applications +The following applications are available: +.TF audioctl +.TP +.B fnn +Financial reports: +a scrolling `ticker tape' along the bottom of the screen. +.TP +.B movie +Movies: select a film from a menu of categories +.TP +.B news +Today's Newspaper: on-screen newspapers +.TP +.B tv +Television +.TP +.B tvlist +TV Timetable +.TP +.B pizza +Order Pizza +.TP +.B email +Internet mail +.TP +.B web +Internet Web Browser: simplistic web browser +.TP +.B register +Register with a service provider +.TP +.B ovid +Presentations +.TP +.B audioctl +Audio Control +.PD +.PP +.SS Interaction +.I Mux +can be controlled using an infrared device, but for demonstration purposes +under +.IR emu (1) +the infrared is emulated using the keyboard (see +.IR ir (2)). +The following are the common controls: +.TF newline +.TP +.B r +channel up +.TP +.B c +channel down +.TP +.B t +volume up +.TP +.B v +volume down +.TP +.B i +cursor up +.TP +.B m +cursor down +.TP +.B j +cursor left; rewind +.TP +.B k +cursor right; fast forward +.TP +.B x +return to main menu leaving application running; recall +.TP +.B newline +select item +.TP +.B space +exit and return to the previous screen or menu +.SH FILES +.B /services/basic +.br +.B /icons/*.bit +.SH SOURCE +.B /appl/mux +.SH SEE ALSO +.IR wm (1), +.IR ir (2), +.IR prefab-intro (2), +.IR virgil (2), +.IR manufacture (8), +.IR register (8), +.IR signer (8), +.IR virgild (8) +.SH BUGS +The video demonstrations currently work only on native machines with specific hardware. +.br +For copyright reasons, some databases are not distributed, or have randomly-generated content. diff --git a/static/inferno/man1/mv.1 b/static/inferno/man1/mv.1 new file mode 100644 index 00000000..1c3309f3 --- /dev/null +++ b/static/inferno/man1/mv.1 @@ -0,0 +1,43 @@ +.TH MV 1 +.SH NAME +mv \- move files +.SH SYNOPSIS +.B mv +.I fromfile +.I tofile +.br +.B mv +.I fromfile ... +.I todir +.SH DESCRIPTION +.I Mv +moves +.I fromfile +to +.IR tofile . +If the files are in the same directory, +.I fromfile +is simply renamed; +a previously existing file named +.I tofile +will be (silently) removed. +Otherwise, +.I mv +copies +.I fromfile +to +.IR tofile , +then removes +.IR fromfile . +This requires write permission for the parent directories involved. +.PP +If the last argument is a directory, the earlier arguments (all files) will be moved into that directory. Any previously existing files of the same name will be overwritten. +Directories can only be renamed: +.I mv +refuses to move one into another. +.SH SOURCE +.B /appl/cmd/mv.b +.SH "SEE ALSO" +.IR cp (1), +.IR rm (1), +.IR sys-stat (2) diff --git a/static/inferno/man1/netkey.1 b/static/inferno/man1/netkey.1 new file mode 100644 index 00000000..f9986abf --- /dev/null +++ b/static/inferno/man1/netkey.1 @@ -0,0 +1,18 @@ +.TH NETKEY 1 +.SH NAME +netkey \- calculate response to authentication challenge +.SH SYNOPSIS +.B netkey +.SH DESCRIPTION +.I Netkey +calculates a response to a challenge made by a system to authenticate a user, +based on a shared secret (password), using +the same algorithm as a SecureNet device. +It reads and writes +.BR /dev/cons . +It prompts once for the secret (echo is turned off). +It then repeatedly prompts for a remote system's challenge, +and once given it, calculates and prints the corresponding response. +It exits on an empty challenge or end of file. +.SH SOURCE +.B /appl/cmd/netkey.b diff --git a/static/inferno/man1/netstat.1 b/static/inferno/man1/netstat.1 new file mode 100644 index 00000000..239cb323 --- /dev/null +++ b/static/inferno/man1/netstat.1 @@ -0,0 +1,42 @@ +.TH NETSTAT 1 +.SH NAME +netstat \- summarize network connections +.SH SYNOPSIS +.B netstat +.SH DESCRIPTION +.I Netstat +prints information about network connections. +The following is presented for each connection: +.IP +connection name: the protocol and conversation directory in +.B /net +(eg. +.BR tcp/8 ) +.br +user name +.br +status of the connection +.br +address of each end of the connection (eg host and port if IP) +.PP +The information is obtained from the +.B status +file of each entry under the network directories +.BR /net/tcp , +.BR /net/udp +and +.BR /net/il . +.PP +.I Netstat +relies on a populated +.B /net +directory; the +.B #I +device must therefore +have previously been bound there. +.SH FILES +.B /net/*/status +.SH SOURCE +.B /appl/cmd/netstat.b +.SH "SEE ALSO" +.IR ip (3) diff --git a/static/inferno/man1/ns.1 b/static/inferno/man1/ns.1 new file mode 100644 index 00000000..5095b0cb --- /dev/null +++ b/static/inferno/man1/ns.1 @@ -0,0 +1,42 @@ +.TH NS 1 +.SH NAME +ns \- display current namespace +.SH SYNOPSIS +.B ns +[ +.B -r +] [ +.I pid +] +.SH DESCRIPTION +.I Ns +displays the construction of the namespace of the given +.IR pid , +or its own (as inherited) by default. +Based on the contents of +.BI /prog/ pid /ns , +it prints on standard output a sequence of bind and mount commands +(see +.IR bind (1)) +that might reconstruct the same name space if executed. +In practice, mounts of services such as +.IR ftpfs (4) +often refer to the names of pipe ends that are now inaccessible. +Furthermore, if any file involved has been renamed since the +mount or bind, the original name of the file is shown. +.PP +Mounts of file services on a network show the network address as +given to +.IR dial (2) +instead of the name of the data file for the connection; the +.B -r +option causes +.I ns +to show the raw file name instead. +.SH SOURCE +.B /appl/cmd/ns.b +.SH "SEE ALSO" +.IR bind (1), +.IR prog (3), +.IR namespace (4), +.IR namespace (6) diff --git a/static/inferno/man1/nsbuild.1 b/static/inferno/man1/nsbuild.1 new file mode 100644 index 00000000..f2acf7d2 --- /dev/null +++ b/static/inferno/man1/nsbuild.1 @@ -0,0 +1,49 @@ +.TH NSBUILD 1 +.SH NAME +nsbuild \- build Inferno namespace +.SH SYNOPSIS +.B nsbuild +[ +.B file +] +.SH DESCRIPTION +.B Nsbuild +builds a file name space for Inferno. +It reads a +.I file +(by default, a file called +.B namespace +in the current directory) +and interprets the +name space commands found in that file. +.PP +The commands executed by +.B nsbuild +include +.B bind +and +.BR mount . +See +.IR namespace (6) +for details on the format of the file. +.SH FILES +.TP 1.5i +.B namespace +The default namespace file. +.SH SOURCE +.B /appl/cmd/nsbuild.b +.SH "SEE ALSO" +.IR bind (1), +.IR cd (1), +.IR newns (2), +.IR namespace (6) +.SH BUGS +The +.BR new +and +.BR fork +operations of +.IR namespace (6) +are ineffective because +.I nsbuild +runs as a separate process. diff --git a/static/inferno/man1/os.1 b/static/inferno/man1/os.1 new file mode 100644 index 00000000..38e8a8ba --- /dev/null +++ b/static/inferno/man1/os.1 @@ -0,0 +1,101 @@ +.TH OS 1 hosted +.SH NAME +os \- interface to host OS commands (hosted Inferno only) +.SH SYNOPSIS +.B bind -a '#C' / +.br +.B os +[ +.B -b +] [ +.B -m +.I mountpoint +] [ +.BI -d " dir" +] [ +.B -n +] [ +.BI -N " level" +] +.I cmd +[ +.IR arg ... +] +.SH DESCRIPTION +.I Os +uses a +.IR cmd (3) +device to execute a command, +.IR cmd , +on a host system. +If the +.B -m +option is given, +.I os +uses the device at +.IR mountpoint , +otherwise it is asssumed to be at +.BR /cmd , +and is bound into the local namespace if necessary. +.PP +The +.B -d +option causes the command to run in directory +.IR dir ; +an error results and the command will not run if +.I dir +does not exist or is inaccessible. +The standard output and standard error of the command appear on the standard output +and standard error streams of the +.I os +command itself. +.I Os +copies the standard input to the remote command's standard input; redirect +.IR os 's +input to +.B /dev/null +if there is no input to the command. +.I Os +terminates when +.I cmd +does, and its exit status reflects the status of +.I cmd +(if available). +.PP +If the +.I os +command is killed or exits (eg, for lack of input and output), +the host's own process control operations are used to (attempt to) kill +.IR cmd , +if it is still running. +The +.B -b +(background) option suppresses that behaviour. +.PP +The +.B -n +option causes +.I cmd +to run with less than normal priority (`nice'). +The +.B -N +option sets low priority to a particular +.I level +from 1 to 3. +.SH FILES +.B /cmd/clone +.SH SOURCE +.B /appl/cmd/os.b +.SH "SEE ALSO" +.IR cpu (1), +.IR rcmd (1), +.IR cmd (3) +.SH DIAGNOSTICS +The exit status of +.I os +reflects any error that occurs when starting +.I cmd +and, if it starts successfully, the status of +.I os +is the exit status of +.IR cmd . diff --git a/static/inferno/man1/p.1 b/static/inferno/man1/p.1 new file mode 100644 index 00000000..dfbf4c8d --- /dev/null +++ b/static/inferno/man1/p.1 @@ -0,0 +1,33 @@ +.TH P 1 +.SH NAME +p \- paginate +.SH SYNOPSIS +.B p +[ +.BI - number +] +[ +.I file ... +] +.SH DESCRIPTION +.I P +copies its standard input, or the named files if given, +to its standard output, +stopping at the end of every page, +to wait for a newline from the user. +The option sets the +.I number +of lines on a page (default: 22). +.PP +While waiting for a newline, +.I p +interprets the commands: +.TP +.B ! +Pass the rest of the line to the shell as a command. +.TP +.B q +Quit. +.PP +.SH SOURCE +.B /appl/cmd/p.b diff --git a/static/inferno/man1/passwd.1 b/static/inferno/man1/passwd.1 new file mode 100644 index 00000000..759397e0 --- /dev/null +++ b/static/inferno/man1/passwd.1 @@ -0,0 +1,75 @@ +.TH PASSWD 1 +.SH NAME +passwd \- change user password +.SH SYNOPSIS +.B auth/passwd +[ +.BI -u " user" +] [ +.BI -s " signer" +] [ +.I keyfile +] +.SH DESCRIPTION +.I Passwd +changes the secret shared between the invoker +and the authentication server +.I signer +(default: +.BR $SIGNER ). +The +.I signer +must offer the +.IR keysrv (4) +service. +.PP +The secret is associated with a remote user name that need not be +the same as the name of the invoking user on the local system. +That remote user name is specified by a certificate signed by +.IR signer , +and obtained from +.IR keyfile . +.I Keyfile +identifies a file containing a certificate (default: +.LR default ). +If +.I keyfile +is not an absolute pathname, +the file used will be +.BI /usr/ user /keyring/ keyfile. +.I User +by default is the invoking user's name (read from +.BR /dev/user ), +but the +.B -u +option can name another. +.PP +.I Passwd +connects to the +.IR signer , +authenticating using the certificate in +.IR keyfile , +and checks that the user in the certificate +is registered there with an existing secret. +.I Passwd +then prompts for the (remote) user's old secret, to double-check identity, then prompts for a new one, which must be confirmed. +.PP +Secrets must be at least eight characters long. +Try to make them hard to guess. +.SH FILES +.TF /mnt/keysrv +.TP +.B /dev/user +current user name +.TP +.B /mnt/keysrv +local mount point for connection to +remote +.IR keysrv (4) +.SH SOURCE +.B /appl/cmd/auth/passwd.b +.SH SEE ALSO +.IR keyfs (4), +.IR keysrv (4), +.IR changelogin (8), +.IR logind (8) diff --git a/static/inferno/man1/plumb.1 b/static/inferno/man1/plumb.1 new file mode 100644 index 00000000..1fa93544 --- /dev/null +++ b/static/inferno/man1/plumb.1 @@ -0,0 +1,92 @@ +.TH PLUMB 1 +.SH NAME +plumb \- send message to plumber +.SH SYNOPSIS +.B plumb +[ +.BI -s " src" +] [ +.BI -d " dest" +] [ +.BI -w " wdir" +] [ +.BI -t " type" +] [ +.BI -a " name value" +] [ +.B -i +] +.I data +\&... +.SH DESCRIPTION +.I Plumb +sends a message to the plumber, +.IR plumber (8), +which is normally started by +.IR wm (1)'s +start up script. +.PP +The options and arguments are used as components of the message. +See +.IR plumbing (6) +for their interpretation. +The options are: +.TP +.BI -s " src" +Set the source to +.I src +(default: unspecified). +.TP +.BI -d " dest" +Set the destination to +.I dest +(default: unspecified). +.TP +.BI -w " wdir" +Set the working directory to +.I wdir +(default: current directory as reported by +.IR pwd (1) +or +.IR workdir (2)). +.TP +.BI -t " type" +Set the type of data to +.I type +(default: +.BR text ) +.TP +.BI -a " name value" +Include an attribute +.RI ` name = value '; +there can be more than one. +.TP +.B -i +Take the +.I data +from the standard input not from the argument strings. +If an +.B action +attribute is not otherwise specified, +.I plumb +will add an +.B action=showdata +attribute to the message. +.PP +The remaining arguments are sent, separated by spaces, as the +.I data +of the message. +The plumber +will apply its rules to the resulting message to decide how to route it. +.SH FILES +.TF /chan/plumb.input +.TP +.B /chan/plumb.input +.IR plumber (8) +input channel +.SH SOURCE +.B /appl/cmd/plumb.b +.SH SEE ALSO +.IR plumbmsg (2), +.IR plumbing (6), +.IR plumber (8) diff --git a/static/inferno/man1/prof.1 b/static/inferno/man1/prof.1 new file mode 100644 index 00000000..04689662 --- /dev/null +++ b/static/inferno/man1/prof.1 @@ -0,0 +1,135 @@ +.TH PROF 1 +.SH NAME +prof, wm/prof \- profiling limbo programs +.SH SYNOPSIS +.B prof +[ +.B -bflnve +] [ +.BI -m " modname" +] ... [ +.BI -s " rate" +] [ +.BI "cmd arg ..." +] +.PP +.B wm/prof +[ +.B -e +] [ +.BI -m " modname" +] ... [ +.BI -s " rate" +] [ +.BI "cmd arg ..." +] +.SH DESCRIPTION +.I Prof +is a simple profiling tool which calculates the percentage of time spent on a +particular line of limbo source or spent in a particular limbo function. It can +determine where a module or set of modules is spending its time. The source in +question should be compiled with the +.B -g +flag so that the relevant symbol table files exist. +.PP +The tk version of the profiler +.I wm/prof +shows this information in a text widget and colours the lines of source according +to the amount of time spent on each line. The darker the colour, the longer +spent. +.PP +The +.B -b +option starts profiling. +.PP +The +.B -f +option shows the function profile. +.PP +The +.B -l +option shows the line profile. If neither this option nor the +.B -f +option are given, +.B -l +is assumed. +.PP +The +.B -n +option lists the name of the file along with the line number. +.PP +The +.B -v +option outputs all functions and/or lines even when the percentage +of time spent in them is zero. +.PP +The +.B -m +option lists the module names which are to be profiled. If none are given, all the +modules loaded by the kernel will be profiled. The name may be the actual name of +the module or its path name. +.PP +The +.B -e +option profiles the module that is loaded first in any following command. In this case +there is no need to give a +.B -m +option as this is added automatically. +.PP +The +.B -s +option sets the sample interval +.I rate +and is expressed in ms. The default is 100 ms. +.PP +Any remaining arguments are assumed to +specify a command and set of arguments to the command. If this is the case, +.B prof +will automatically start profiling, run the command to completion and then +stop profiling before showing the profile statistics. +.PP +.B Prof +displays the profile statistics (unless the +.B -b +option is being used) according to the output format required. +.PP +.SH EXAMPLE +.EX +To profile a particular command + prof /dis/math/parts 10000 + wm/prof /dis/math/parts 10000 +To profile the same command but restrict attention to its own module (Partitions). + prof -m Partitions /dis/math/parts 10000 + wm/prof -m Partitions /dis/math/parts 10000 +A shorter version of the above + prof -e /dis/math/parts 10000 + wm/prof -e /dis/math/parts 10000 +To profile interactively + prof -b -m Partitions -s 10 + /dis/math/parts 10000 + prof -f -l -n +.EE +.PP +Note that the output format options ( +.B -f +, +.B -l +, +.B -n +, +.B -v +) are ignored when +.B -b +is present. +.SH SOURCE +.B /appl/cmd/prof.b +.PP +.B /appl/wm/prof.b +.SH SEE ALSO +.IR cprof (1), +.IR mprof (1), +.IR prof (2), +.IR prof (3) +.SH BUGS +.I Prof +cannot profile compiled limbo programs. diff --git a/static/inferno/man1/ps.1 b/static/inferno/man1/ps.1 new file mode 100644 index 00000000..13e298d2 --- /dev/null +++ b/static/inferno/man1/ps.1 @@ -0,0 +1,45 @@ +.TH PS 1 +.SH NAME +ps \- process (thread) status +.SH SYNOPSIS +.B bind '#p' /prog +.PP +.B ps +.SH DESCRIPTION +.I Ps +prints to the standard output information about all current Inferno processes. +It looks in +.B /prog +for process status files; +normally that requires that the +.IR prog (3) +device has previously been bound there (as shown above), +but it is also possible to import +.B /prog +from a remote machine. +.PP +Each line of information printed consists of seven columns: +the process id, the process group id, the owner of the +process, cpu time used by the process, the run state of the process, the amount of memory used +by the process, and the name of the module containing the +currently running function. +.SH FILES +.B /prog/*/status +.SH SOURCE +.B /appl/cmd/ps.b +.SH "SEE ALSO" +.IR deb (1), +.IR kill (1), +.IR stack (1), +.I wm/task +and +.I wm/memory +in +.IR wm-misc (1), +.IR prog (3) +.SH BUGS +The amount reported as ``memory used'' does not accurately +reflect the amount of memory referred to by the process, +because the heap is shared. +.br +The cpu time used is currently shown as zero in most hosted implementations. diff --git a/static/inferno/man1/pwd.1 b/static/inferno/man1/pwd.1 new file mode 100644 index 00000000..34f087bf --- /dev/null +++ b/static/inferno/man1/pwd.1 @@ -0,0 +1,18 @@ +.TH PWD 1 +.SH NAME +pwd \- print working directory +.SH SYNOPSIS +pwd +.SH DESCRIPTION +.I Pwd +prints the path name of the working (current) directory. +It is guaranteed to return the same path that was used to enter the directory. +Note that if meanwhile the name space has changed, or directories in the path have been renamed, +the path name may no longer be valid. +.SH SOURCE +.B /appl/cmd/pwd.b +.SH "SEE ALSO" +.IR cd (1), +.IR bind (1), +.IR sys-fd2path (2), +.IR workdir (2) diff --git a/static/inferno/man1/rcmd.1 b/static/inferno/man1/rcmd.1 new file mode 100644 index 00000000..c0a8702a --- /dev/null +++ b/static/inferno/man1/rcmd.1 @@ -0,0 +1,72 @@ +.TH RCMD 1 +.SH NAME +rcmd \- remote command execution +.SH SYNOPSIS +.B rcmd +[ +.B -e +.I cryptoalg +] [ +.B -x +.I exportpath +] +.I host +[ +.I cmd +.I arg ... +] +.SH DESCRIPTION +.I Rcmd +executes +.I cmd +on the given +.IR host . +If no +.I cmd +is given, +.IR sh (1) +is assumed. +The +.I host +must have enabled the +.L rstyx +service (typically started via +.IR svc (8)). +.PP +For authentication, +.I rcmd +will use the certificate in the file +.IP +.BI /usr/ username /keyring/ net ! machine +.PP +if it exists, and otherwise it will use the certificate in +.IP +.BI /usr/ username /keyring/default . +.PP +The +.B -e +option sets the algorithm +.I cryptoalg +to be used following authentication for digesting or encryption. +See +.IR ssl (3) +for the supported algorithms. +The default is +.BR none : +.IR ssl (3) +is not used after authentication. +.PP +The +.B -x +option sets the path to be exported as root from the local machine (defaults to +.B / +if not specified). +.SH SOURCE +.B /appl/cmd/rcmd.b +.SH "SEE ALSO" +.IR security-intro (2), +.IR security-auth (2), +.IR security-login (2), +.IR getauthinfo (8), +.IR rstyxd (8), +.IR svc (8) diff --git a/static/inferno/man1/read.1 b/static/inferno/man1/read.1 new file mode 100644 index 00000000..09594f86 --- /dev/null +++ b/static/inferno/man1/read.1 @@ -0,0 +1,62 @@ +.TH READ 1 +.SH NAME +read \- read from standard input with optional seek +.SH SYNOPSIS +.B read +[ +.BR - [ eor ] +.I offset +] [ +.I count +] +.SH DESCRIPTION +.I Read +does a single read of +.I count +bytes (default: +8192 bytes) +from the standard input and writes +the result to the standard output. +If the optional +.I offset +argument is given, +.I read +will first apply +.IR sys-seek (2): +.TP +.BI -o " offset" +seek +.I offset +bytes from the start of the file +.TP +.BI -e " offset" +seek +.I offset +bytes from the end of the file +.TP +.BI -r " offset" +seek +.I offset +bytes from the standard input's current file offset +.PP +In all cases the file offset changes to +reflect the result of the seek, and the number of bytes +read. +.SH SOURCE +.B /appl/cmd/read.b +.SH DIAGNOSTICS +.I Read +prints a diagnostic and returns a non-empty exit +status +.L fail:error +on an I/O error; +it quietly returns status +.L fail:eof +if the read returns zero bytes (conventionally, end of file). +.SH SEE ALSO +.IR cat (1), +.I getline +in +.IR sh-std (1), +.IR stream (1), +.IR sys-read (2) diff --git a/static/inferno/man1/rm.1 b/static/inferno/man1/rm.1 new file mode 100644 index 00000000..47b34d07 --- /dev/null +++ b/static/inferno/man1/rm.1 @@ -0,0 +1,28 @@ +.TH RM 1 +.SH NAME +rm \- remove file(s) +.SH SYNOPSIS +.B rm +[ +.B -fr +] +.I file ... +.SH DESCRIPTION +.I Rm +removes the specified files or directories. +A directory is removed only if it is empty (but +see the +.B -r +option). +Removal of a file requires write permission in its directory, but requires neither read nor write permission on the file itself. The options are: +.TP +.B -f +Suppress diagnostics +.TP +.B -r +Recursively remove a directory's substructure before removing the directory. +.SH SOURCE +.B /appl/cmd/rm.b +.SH "SEE ALSO" +.IR tiny (1), +.IR sys-remove (2) diff --git a/static/inferno/man1/runas.1 b/static/inferno/man1/runas.1 new file mode 100644 index 00000000..9fa6c4f6 --- /dev/null +++ b/static/inferno/man1/runas.1 @@ -0,0 +1,23 @@ +.TH RUNAS 1 +.SH NAME +runas \- run command as another user +.SH SYNOPSIS +.B runas +.I user +.I cmd +[ +.IR arg ... +] +.SH DESCRIPTION +.I Runas +writes +.I user +to /dev/user and invokes +.I cmd +with the given arguments. +The command is only invoked if setting of the user name succeeds. +.SH SOURCE +.B /appl/cmd/runas.b +.SH "SEE ALSO" +.IR cons (3), +. \ No newline at end of file diff --git a/static/inferno/man1/secstore.1 b/static/inferno/man1/secstore.1 new file mode 100644 index 00000000..c59a711c --- /dev/null +++ b/static/inferno/man1/secstore.1 @@ -0,0 +1,141 @@ +.TH SECSTORE 1 +.SH NAME +secstore \- retrieve files from secure store +.SH SYNOPSIS +.B auth/secstore +[ +.B -iv +] [ +.BI -k " key" +] [ +.BI -p " pin" +] [ +.BI -s " address" +] [ +.BI -u " user" +] [ +.I op +[ +.I file +] ... ] +.SH DESCRIPTION +.I Secstore +manages files on the eponymous Plan 9 secure storage service. +It holds a set of files for each of its users. +The service is most often used to store a file +.B factotum +containing user credentials in a form ready to be loaded into +.IR factotum (4). +.I Op +is one of the following operations: +.TP +.B d +Delete the given files on the server. +.TP +.B p +Print the contents of each file on standard output. +Each line is written separately, so that files of keys will be received correctly when written to +.IR factotum (4). +.TP +.B r +Replace the contents of files on the server by the contents of the named files, +after encrypting them. +In each case, the file name on the server is the last component of the local file name +(ie, everything after the final +.RB ` / '). +.TP +.B t +List a table of contents of +.IR user 's +collection on the the server. +By default, only the names are listed, one per line, but +given the +.B -v +option, each line displays name, file size in bytes, date last stored, and SHA-1 hash of the file's contents. +.TP +.B x +Extract the named files into files of the same name in the current directory. +By default, they are decrypted (ie, in clear text). +.PP +If no +.I op +is specified, +.I secstore +connects to the server (thus checking the connection and the validity +of both +.I key +and +.IR user ), +but does nothing with it. +.PP +By default, +.I secstore +prompts for a secret key to authenticate the user and the +.B secstore +service. +The service might be configured to demand an extra authentication code, such as a `pin', in which case +.I secstore +will then prompt for that as well. +The options are: +.TP +.B -i +Read one or two lines from the standard input: +the first line contains the secret; the optional second line contains the extra authentication code. +.TP +.BI -k " key" +Use +.I key +as the secret to authenticate with the +.B secstore +service. +.TP +.BI -p " pin" +Supply +.I pin +as the extra authentication code if the server demands it. +.TP +.BI -s " address" +Connect to the server at the given network +.IR address , +as defined by +.IR dial (2), +and translated by +.IR cs (8). +The default is +.BR net!$auth!secstore . +.TP +.BI -u " user" +Authenticate as +.I user +(default: the Inferno user name contained in +.BR /dev/user ) +.TP +.B -v +Make the output more verbose: +display the name announced by the remote server; and use the long form of the table of contents. +.SH EXAMPLE +Retrieve the +.B factotum +file and feed the keys therein to +.IR factotum (4): +.IP +.EX +auth/secstore p factotum >/mnt/factotum/ctl +.EE +.SH SOURCE +.B /appl/cmd/auth/secstore.b +.SH SEE ALSO +.IR crypt (1), +.IR secstore (2), +.IR factotum (4), +.br +``Plan 9 Security'', +.IR "Plan 9 Programmer's Manual" , +Fourth Edition, +Volume 2, 2003. +.SH BUGS +Perhaps +.I secstore +should allow several +.B -s +options as a simple way to replicate the same files on different servers. diff --git a/static/inferno/man1/sendmail.1 b/static/inferno/man1/sendmail.1 new file mode 100644 index 00000000..cc6758c5 --- /dev/null +++ b/static/inferno/man1/sendmail.1 @@ -0,0 +1,48 @@ +.TH SENDMAIL 1 +.SH NAME +sendmail \- send mail messages +.SH SYNOPSIS +.B sendmail +[ +.I recipient ... +] +.SH DESCRIPTION +.B Sendmail +sends mail to each +.I recipient +named as an argument. It reads its standard input to +get the text of the message. +If no +.I recipient +is named, the recipient(s) will be taken from the message header. +.PP +The mail message is scanned for lines beginning +.RL ` From: ', +.RL ` To: ' +and +.RL ` Cc: '. +.br +If no `from' +line is found, the sender is assumed to be the current user. The recipient(s) of the message +can be mentioned as arguments or in a list of names in a +.RL ` To: ' +line but not as both. +If the sender's name is unqualified (is just a user name), +.I sendmail +appends the value of the environment variable +.LR DOMAIN . +.PP +.B Sendmail +delivers the mail using the module +.IR smtp (2), +which +connects to a mail server running the Simple Mail Transport Protocol (SMTP), +using the symbolic host name +.B $MAILSERVER +(see +.IR db (6)). +.SH SOURCE +.B /appl/cmd/sendmail.b +.SH SEE ALSO +.IR smtp (2), +.IR db (6) diff --git a/static/inferno/man1/sh-alphabet.1 b/static/inferno/man1/sh-alphabet.1 new file mode 100644 index 00000000..fd73e20f --- /dev/null +++ b/static/inferno/man1/sh-alphabet.1 @@ -0,0 +1,417 @@ +.TH SH-ALPHABET 1 +.SH NAME +alphabet, typeset, declare, import, type, define, autodeclare, +autoconvert, -, rewrite, modules, types, usage, info, clear \- typed shell interface +.SH SYNOPSIS +.B load alphabet + +.B type +.IR qname ... +.br +.B declare +.I name +[ +.I usage +] +.br +.B undeclare +.IR name ... +.br +.B define +.I name +.I expr +.br +.B import +.IR qname ... +.br +.B typeset +.I qname +.br +.B autoconvert +.I srctype dsttype expr +.br +.B autodeclare +.BR "" 0 | 1 +.br +.B - +.BI { expression } +.br +.B ${rewrite {\fIexpression\fP} +[ +.I dsttype +] +.B } +.br +.B ${modules} +.br +.B ${types +.I typeset +.B } +.br +.B ${usage +.I qname +.B } +.br +.B info +.br +.B clear +.SH DESCRIPTION +.I Alphabet +is a loadable +.IR sh (1) +module providing an interface to a simple, experimental, typed shell. +It initially provides a small set of basic types, which can be added +to by loading new +.IR typeset s. +Types are atomic; +.I alphabet +provides no support for higher-order +types. +The +.IR "root typeset" , +named +.BR / , +consists of the following kinds of value: +.TP 10 +.B string +A simple string literal, represented by itself, +or quoted according to the usual shell quoting rules. +.TP +.B cmd +A shell command or uninterpreted +.I alphabet +expression, represented by the syntax \f5"{\fIblock\f5}\fR. +.TP +.B fd +A file open for reading. +.TP +.B wfd +A file open for reading and writing. +.TP +.B status +The status of a completed command. +.PP +Each typeset implements a set of +types, and has an associated set of +.IR module s. +Initially, types may only be referred to by their +.IR "qualified name" s, +consisting of the name of the type prefixed with +the name of its typeset; for instance +.B /string +for the string type, +or +.B /grid/data +for a type named +.B data +in the typeset +.BR /grid . +An +.I "unqualified name" +is the qualified name without the typeset prefix; +for instance +.B string +or +.BR data . +.PP +To make a type available as its unqualified name, +use the +.B type +command, which imports the type named +by the qualified name +.I qname +from its parent typeset. +This is a no-op if the type has previously been imported +from the same typeset; an error is raised if the type +has previously been imported from a different typeset. +.PP +.B Declare +declares the module +.IR name +with type +.IR usage . +If +.I name +is a qualified name, the module must exist in the +specified typeset and be compatible with the specified usage. +If +.I usage +is not given, the module itself will be loaded and queried +to find it out. +If +.I name +is not qualified, the declaration is +.IR virtual : +the module cannot actually be used, but is available +for typechecking and expression rewriting. +.B Declare +is a no-op if the module has already been declared +with a compatible usage, otherwise an error is raised. +The syntax of +.I usage +is similar to the usage messages printed by normal +shell commands, and defines the argument types expected +by a module. For example: +.IP +.EX +declare /foo/bar '[-a] [-x string] fd string [string...] -> fd' +.EE +.PP +The above declares the module +.B bar +from typeset +.BR /foo , +which takes +two possible options (one of which requires a single +associated argument of type +.BR string ), +two mandatory arguments, +of type +.B fd +and +.B string +respectively, +and any number of additional arguments of +type +.BR string . +The module returns a value of type +.BR fd . +.PP +When first loaded, +.I alphabet +is lax about declaration requirements: +if a module is referred to by its qualified name, +and is not currently declared, the module will automatically +be declared and used as appropriate (as long as the module +actually exists). +Use +.B autodeclare +to change this behaviour. +.B "Autodeclare 0" +turns off all automatic declaration: all modules used in an +expression must have previously been declared; +.B "autodeclare 1" +reverts to the original behaviour. +.PP +Once a module is declared, it may be referred to +by its qualified name. +.B Import +makes the module available under its unqualified name. +It is an error if a module of the same name has +already been imported from a different typeset. +For instance: +.IP +.EX +declare /read 'string -> fd' +import /read +.EE +.PP +This would declare a module named +.B read +from the root typeset (checking that it +accepts a single string argument and returns a file), +and make it available under the name +.BR read . +.PP +.B Undeclare +removes the previously declared +.IR name . +Note that an imported module has two names: +its qualified name and its unqualified name. +.PP +.B Typeset +loads the new typeset +.IR qname . +Typesets are hierarchical in the same +way that types and modules are: a typeset adds some +types to its parent typeset, and has an associated set of +modules that provide transformations between those types +and between those of its parent. +.PP +.B Autoconvert +specifies an automatic conversion between +.I srctype +and +.IR dsttype , +i.e. whereever a module expects an argument +of type +.IR dsttype , +and the argument is actually of type +.IR srctype , +the module block (see below for definition) +.I expr +(which must be compatible with type +.IB srctype -> dsttype\fR), +will be invoked to convert between the two. +Several conversions will be applied +atop one another if necessary. +It is an error if adding the auto-conversion +creates an ambiguous conversion path +between two types. +As a convenience, +.I expr +may simply be the name of a module, +in which case the expression will be rewritten as +its identity module block: \f5{(\fIsrctype\fP); \fIexpr\fP}\fR. +.PP +The +.B - +command evaluates the +.I alphabet +.IR expression , +of the form: +.IP +.EX +{\fIcommand arg\fR...\f5} +.EE +.PP +Usually, +.I command +is the name of a previously declared module, +which must also have been imported if it is not a qualified name. +The arguments must conform to those expected by +the module. Each argument is either a literal string or shell-command, +as described earlier, or a subexpression of the same form as above. +All subexpressions are evaluated fully before +.I command +is invoked. +The result of the outermost expression must be convertible to the type +.BR /status ; +the shell status of the +.B - +command will reflect this when the command has completed. +.PP +As a convenience, +.I alphabet +provides a pipe-like syntax. It will rewrite any expression of the +form \fIm1 m1args\f5|\fIm2 m2args\fR +as \fIm2 \f5{\fIm1 m1args\f5}\fIm2args\fR. +This occurs before any auto-conversions have been applied. +.PP +.I Command +may also be a +.IR "module block" , +of the form: +.IP +.EX +{(\fIargtype\fR...\f5); \fIcommand arg\fR...\f5} +.EE +.PP +The +.I argtype +values given in the brackets +specify the types of the arguments expected by the module block; +these can be referred to in the arguments to +.I command +(and subexpressions thereof) with values of the form +.BR $1 , +.BR $2 , +etc. +For instance, +.IP +.EX +{(/string); echo $1} hello} +.EE +.PP +is exactly equivalent to: +.IP +.EX +{echo hello} +.EE +.PP +In a module block with no arguments, the argument declaration +section may be omitted. +.PP +.B Define +defines a new module in terms of previously declared +modules. +.I Name +(which must be an unqualified name) +gives the name of the +module to define, and +.I expr +is a module block giving the expression to evaluate when +.I name +is used. The usage of the module is taken from the types declared +in the module block; its return type is inferred from the return type +of +.IR expr . +All modules used in the evaluation of +.I expr +are evaluated when the definition takes place, so evaluation of +.I name +is unaffected if any modules it uses are later undeclared. +.PP +To show the complete form of an expression, after pipe +transformations and auto-conversions have been applied, and +module definitions expanded, use +.BR ${rewrite} , +which returns the expression's canonical form +without actually executing it. +If +.I dsttype +is given, auto-conversions will be applied to try to +convert the result of +.I expression +to +.IR dsttype . +.B Rewrite +raises an error if it finds any declarations incompatible with +.IR expression +or if the final type cannot be converted successfully. +.PP +.I Alphabet +also provides some shell operations that give information +on its current state: +.B ${modules} +yields a list of all the currently declared module names +(including entries for both qualified and unqualified names); +.B ${types} +yields a list of all currently available types +(giving only the types in +.I typeset +if specified); +and +.B ${usage} +provides usage information on module +.IR qname , +which need not be declared. +Additionally, +.B info +searches the module directories on all currently loaded typesets, +and prints usage information for everything it can find there, +along with information on all currently installed auto-conversions. +.PP +Finally, +.B clear +clears all existing declarations and definitions, and starts again +with a clean slate. +.SH EXAMPLE +.EX +load alphabet +type /string +type /fd +type /status +import /cat /filter +autoconvert string fd /read +autoconvert fd status {(fd); /print $1 1} +define wc {(fd); /filter $1 "{wc}} +- {cat /lib/polyhedra /dis/sh.dis | wc} +echo ${rewrite {cat /lib/polyhedra /dis/sh.dis | wc} status} +.EE +.SH SOURCE +.B /appl/alphabet/*.b +.br +.B /appl/alphabet/*/*.b +.SH BUGS +.I Alphabet +expressions involving external typesets and file descriptors cannot have +their I/O +redirected at the shell level. Unfortunately it is not possible +to provide a diagnostic when this occurs. +.SH SEE ALSO +.IR sh (1), +.IR alphabet (2), +.IR alphabet-main (1), +.IR alphabet-fs (1), +.IR alphabet-grid (1) diff --git a/static/inferno/man1/sh-arg.1 b/static/inferno/man1/sh-arg.1 new file mode 100644 index 00000000..17f3d505 --- /dev/null +++ b/static/inferno/man1/sh-arg.1 @@ -0,0 +1,129 @@ +.TH SH-ARG 1 +.SH NAME +arg \- shell command-line argument parsing +.SH SYNOPSIS +.B load arg +.br +.B arg +[ +.I opts command +]... +.B - +.I args +.SH DESCRIPTION +.I Arg +is a loadable module for +.IR sh (1) +that parses command-line arguments in the same +form as +.IR arg (2). +It accepts a list of +.RI ( opts ,\ command ) +pairs, where +each character in +.I opts +is an acceptable option, and +.I command +is a shell command to be run if any character +in +.I opts +is found. +Any trailing plus +.RB ( + ) +characters in +.I opts +cause +.I arg +to extract the same number of arguments associated +with the option before running +.IR command . + +For the duration of +.IR command , +the environment variable +.B $opt +will be set to the option that has been found, +and +.B $arg +will be set to the option's arguments (if the correct number +of arguments have been extracted; +otherwise a message will be printed, and a +.B usage +exception raised). +The option character asterisk +.RB ( * ) +matches any option letter (this must +be quoted, to avoid the usual special interpretation +by the shell). +Only one command will be run for any option found; +if there is no matching option letter, then +a default error message will be printed, and a +.B usage +exception raised. +.PP +The list of option specifications is terminated with a single +minus +.RB ( - ); +the arguments to be parsed follow this. +When the argument parsing has finished +the environment variable +.B $* +is set to the remaining list of arguments. +.SH EXAMPLE +The following shell script, +.BR script , +takes options +.BR b , +.B c +and +.BR f , +where +.B f +takes a file name argument. +.EX +#!/dis/sh +load arg +bflag := cflag := 0 +file := () +args := $* +(arg + bc {$opt^flag = 1} + f+ {file=$arg} + r++++ {rect=$arg} + '*' {echo unknown option $opt} + - $args +) +echo $0 $bflag $cflag $file +echo rect $rect +echo arguments are $* +.EE +.PP +When invoked as follows: +.IP +.B "script -bc -r 0 10 50 100 -ffile a b c" +.PP +the output is: +.IP +.EX +\&./script 1 1 file +rect 0 10 50 100 +arguments are a b c +.EE +.PP +and when invoked by: +.IP +.B "script -b -f file -z -- -bc" +.PP +the output is: +.IP +.EX +unknown option z +\&./script 1 0 file +arguments are -bc +.EE +.SH SOURCE +.B /appl/cmd/sh/arg.b +.SH SEE ALSO +.IR sh (1), +.IR arg (2), +.IR sh-std (1) diff --git a/static/inferno/man1/sh-csv.1 b/static/inferno/man1/sh-csv.1 new file mode 100644 index 00000000..830efe21 --- /dev/null +++ b/static/inferno/man1/sh-csv.1 @@ -0,0 +1,66 @@ +.TH SH-CSV 1 +.SH NAME +csv, getcsv \- parse ``comma-separated values'' +.SH SYNOPSIS +.B load csv + +.B getcsv +.I command +.br +.B ${csv +.IB list } +.br + +.SH DESCRIPTION +.B Csv +is a loadable module for +.IR sh (1) +that provides the facility to parse and generate +``comma-separated value'' lists, a widely used +data exchange format. +Data in this format is usually in the form of a table, +each row of which contains one or more items, +each separated by a comma +.RB ( , ). +Items that contain +a comma or a newline are surrounded with double-quotes +(\f5"\fP). +A double-quote within an item is represented by a pair +of double-quotes. +Two primitives are provided: +.TP 10 +.B getcsv +.B Getcsv +works similiarly to +.B getlines +in +.IR sh-std (1). +It reads from the standard input, and for every line read, +invokes +.I command +with +.B $line +set to the items found on that line (one element per item). +.B Getcsv +recognises the usual loop +.B break +and +.B continue +exceptions. +.TP +.B ${csv} +.B Csv +yields a single element containing all the items in +.IR list , +comma-separated and quoted as necessary. +.SH SOURCE +.B /appl/cmd/sh/csv.b +.SH SEE ALSO +.IR sh (1), +.IR sh-std (1) +.SH BUGS +Empty lines are ambiguous: +.B csv +treats an empty line as containing a single, +empty element; there is thus no way of +representing a line containing no elements at all. diff --git a/static/inferno/man1/sh-expr.1 b/static/inferno/man1/sh-expr.1 new file mode 100644 index 00000000..8ad03dac --- /dev/null +++ b/static/inferno/man1/sh-expr.1 @@ -0,0 +1,188 @@ +.TH SH-EXPR 1 +.SH NAME +expr, ntest, mpexpr \- shell module for simple arithmetic. +.SH SYNOPSIS +.B load expr +OR +.B load mpexpr + +.B ${expr +[ +-r +.I radix +] +[ +.I arg... +] +.B } +.br +.B ntest +.I num +.br +.SH DESCRIPTION +.I Expr +and +.I mpexpr +are loadable modules for +.IR sh (1) +that provide support for integer arithmetic. +.I Expr +uses 64-bit signed integers; +.I mpexpr +uses arbitrary-precision signed integers. +They each provide the same interface: +a command +.IR ntest , +which performs a simple boolean test +on its integer argument, and the +substitution operator +.IR expr , +which takes an expression in Reverse Polish +notation, and yields its result. +.PP +.I Ntest +returns true if its argument +.I num +is non-zero, +and false otherwise. +.PP +.I Expr +evaluates each +.I arg +in turn; if it is an integer it gets pushed onto +the stack; otherwise it should name +one of the operators below, whereupon +the appropriate number of operands are +popped off the stack, evaluated as arguments +to the operator, and the result pushed back onto +the stack. Arguments are passed to the operator +first-pushed first, so, for instance, +.B ${expr 2 1 -} +yields 1, not -1. +Alternative names are given for some operators; +this is to avoid the necessity of quoting operators +that contain +.IR sh (1) +metacharacters. Integers are given in the same form acceptable +to Limbo. The relational operators yield either +1 (true) or 0 (false). If the +.B -r +option is given, +.I radix +specifies an output base for printed numbers. +It may be from 2 to 36; +.I mpexpr +also allows 64 to specify base64 notation. +Numbers are printed in a form suitable for re-interpretation +by +.IR expr . +.PP +When all its arguments have been evaluated, +.B expr +yields all the values remaining on its stack, first pushed +first. Note that bitwise operators treat their operands as if they +were stored in two's complement form. The operators supported by expr are as follows (the number +of operands required in is given parentheses). +.TP 15 +.BR + \ (2) +Addition +.TP +.BR - \ (2) +Subtraction +.TP +.BR x ,\ * \ (2) +Multiplication +.TP +.BR / \ (2) +Division. Division by zero raises a +.B divide by zero +exception. +.TP +.BR % \ (2) +Modulus. A zero modulus will cause a +.B divide by zero +exception to be raised. +.TP +.BR and \ (2) +Bitwise-and. +.TP +.BR or \ (2) +Bitwise-or. +.TP +.BR xor \ (2) +Bitwise-xor. +.TP +.BR ~ \ (1) +Bitwise-complement.. +.TP +.BR _ \ (1) +Unary minus. +.TP +.BR << ,\ shl \ (2) +Shift left. +.TP +.BR >> ,\ shr \ (2) +Shift right. +.TP +.BR = ", " == ", " eq " (2)" +Equality. +.TP +.BR != ", " neq " (2)" +Inequality. +.TP +.BR > ", " gt " (2)" +Greater than. +.TP +.BR < ", " lt " (2)" +Less than. +.TP +.BR <= ", " le " (2)" +Less than or equal to. +.TP +.BR >= ", " ge " (2)" +Greater than or equal to. +.TP +.BR ! ", " not " (1)" +Logical negation. +.TP +.BI rep \ \f1(\fPn\f1)\fP +.B Rep +repeats the last operation (which must +have been a two-operand operation other +than +.BR seq ) +until the values in the stack are exhausted. +.TP +.BR seq \ (2) +.B Seq +pushes on the stack a sequence of numbers ranging +numerically from its first argument up to and including +its second argument. If its second argument is +less than its first, the sequence will descend. +.TP +.BR rand \ (1) +(\fImpexpr\fP only). Push a secure random number; +the argument value gives the size of the number, in bits. +.TP +.BR bits \ (1) +(\fImpexpr\fP only). Push the size, in bits, of the argument. +.TP +.BR expmod ", " invert " (2)" +(\fImpexpr\fP only). See +.IR keyring-ipint (2). +.TP +.BR exp ", " xx ", " ** +(\fImpexpr\fP only). Exponentiation. +.SH SOURCE +.B /appl/cmd/sh/expr.b +.SH SEE ALSO +.IR sh (1), +.IR sh-std (1), +.IR sh-tk (1), +.IR keyring-ipint (2) +.SH BUGS +Postfix notation can be confusing. +Any operators that contain shell metacharacters (e.g. ``*'', ``>'') +must be quoted to avoid interpretation by the shell. +Base64 notation can contain # characters, which need +quoting to avoid interpretation by the shell. diff --git a/static/inferno/man1/sh-file2chan.1 b/static/inferno/man1/sh-file2chan.1 new file mode 100644 index 00000000..27115a8e --- /dev/null +++ b/static/inferno/man1/sh-file2chan.1 @@ -0,0 +1,263 @@ +.TH SH-FILE2CHAN 1 +.SH NAME +file2chan, rblock, rdata, rerror, rget, rread, rreadone, rwrite \- shell interface to file2chan +.SH SYNOPSIS +.B load file2chan + +.B file2chan +.I filename +.I readcmd writecmd +[ +.I closecmd +] +.br +.B rblock +[ +.I tag +] +.br +.B fetchwdata +[ +.I tag +] +.br +.B putrdata +[ +.I tag +] +.br +.B rerror +[ +.I tag +] +.I errmsg +.br +.B rread +[ +.I tag +] +.I readdata +.br +.B rreadone +[ +.I tag +] +.I readdata +.br +.B rwrite +[ +.I tag +[ +.I count +] ] +.br +.B ${rget +.RB ( data\fP|\fPcount\fP|\fPoffset\fP|\fPfid ) +[ +.I tag +] +.B } +.br +.SH DESCRIPTION +.I File2chan +is a loadable module for +.IR sh (1) +that provides facilities to create a file in the namespace +with properties determined by a shell script. +.B File2chan +creates +.I filename +in the namespace and spawns a new thread to serve the file. +If the creation succeeds and the thread is spawned successfully, +then the environment variable +.B $apid +is set to the process id of the new thread; otherwise an error (non-nil) +status is returned. +.IR Readcmd , +.IR writecmd +and +.I closecmd +should be +executable +.IR sh (1) +command blocks. +Subsequently, whenever a process reads from +.IR filename , +.I readcmd +will be invoked; whenever a process writes +to +.IR filename , +.I writecmd +will be invoked; whenever an open file on +.I filename +is closed, then +.I closecmd +will be invoked, if present. +.PP +When a read or write request arrives, +it is added to a list of currently outstanding +.I tags +maintained by +.IR file2chan . +If the request is not replied to or acknowledged by the time +the invoked command has finished, then a reply +will be made automatically (the default is to accept +all writes and to give an error on all reads). +Each tag is assigned a unique +.I tag id +which is stored in the environment variable +.B $tag +for the duration of the invoked command. +Most commands take an optional +.I tag +argument which should be the +.I tag id +of a currently outstanding request; if omitted, +the value of +.B $tag +will be used. +The following commands are provided to reply to requests +and obtain information about requests: +.TP 10 +.B rblock +.B Rblock +marks +.I tag +as a blocking request - no automatic reply will be made when +the currently invoked command has terminated; the +process making the request will block until a reply is made. +.TP +.B fetchwdata +.B Fetchwdata +writes the data associated with +.I tag +(which must be a write request) to its standard output. +It is useful if an uncorrupted version of binary data is +wanted, as it avoids the data being interpreted as a utf-8 +string. +.TP +.B putrdata +.B Putrdata +is the converse of +.BR fetchwdata : +it reads data from its standard input and replies to +.I tag +(which must be a read request) with the data read. +Any data in excess of that requested will be lost. +.TP +.B rerror +.B Rerror +replies to +.I tag +with an error code; the remote read +or write request will return an +error, with the description +.IR errmsg . +.TP +.B rread +.B Rread +replies to the read request +.I tag +with the data in +.IR readdata . +If +.I readdata +is longer than the number of bytes requested, +then only the requested number of bytes of +.I readdata +will +be sent. The offset of the read request is ignored. +.TP +.B rreadone +.B Rreadone +is similar to +.B rread +except that it honours the offset of the client's +read request, so the client can use consecutive +reads to retrieve all of +.IR readdata . +.TP +.B rwrite +.B Rwrite +replies to the write request +.IR tag . +If +.I count +is given, then the client's write request will return +that number (it is usually considered an error if the return +from +.I write +(see +.IR sys-read (2)) +is not the same as the number of bytes written). +If +.I count +is omitted, all the bytes are assumed to have been written. +.TP +.B ${rget} +.B Rget +retrieves information associated with +.IR tag . +The information it yields depends on its first argument, +which must be one of: +.RS +.TP +.B data +The data associated with write request +.IR tag . +.TP +.B count +The number of bytes requested by read request +.IR tag . +.TP +.B fid +The client's file identifier associated with +.IR tag . +A unique +.I fid +is associated with all client requests emanating from +the same open file. This is the only +.B rget +request valid with the +.I tag +associated with a close operation. +.TP +.B offset +The file offset associated with the request +.IR tag . +.RE +.SH EXAMPLES +The following code creates a very simple +memory-based file called +.BR /tmp/memfile . +.EX + file2chan /tmp/memfile {rreadone $data} {data = ${rget data}} +.EE +It is, however, very limited, as binary data stored in the file +will be corrupted, and the size of the file is limited to the amount +of data that can be transmitted in a single write +(see +.IR sys-read (2)). +.PP +The following code implements a single-threaded logfile +which can support multiple concurrent writers: +.EX + {file2chan /chan/log {} {fetchwdata}} >> /tmp/logfile +.EE +.PP +The following code makes the command +.B cmd +available to external programs, and defines a shell function +to use it. Note that there's an approximate 8K limit on the size of the argument +list that can be passed in this way. +.EX + load std + file2chan /chan/cmdchan {} {cmd ${unquote ${rget data}}} + fn runcmd {echo -n ${quote $*} > /chan/cmdchan} +.EE +.SH SOURCE +.B /appl/cmd/sh/file2chan.b +.SH SEE ALSO +.IR sys-file2chan (2), +.IR sh (1), +.IR intro (5), diff --git a/static/inferno/man1/sh-mload.1 b/static/inferno/man1/sh-mload.1 new file mode 100644 index 00000000..e56cb92a --- /dev/null +++ b/static/inferno/man1/sh-mload.1 @@ -0,0 +1,68 @@ +.TH SH-MLOAD 1 +.SH NAME +mload, munload \- namespace separation for shell modules +.SH SYNOPSIS +.B load mload + +.B mload +.I name +[ +.IR path ... +] +.br +.B munload +.I name +[ +.IR path ... +] +.br +.SH DESCRIPTION +.I Mload +is a loadable module for +.IR sh (1) +that allows the simultaneous use of shell modules with +potentially clashing command name spaces. +.B Mload +creates a new namespace +.I name +and loads each +.I path +as a builtin module in the same way as +.B load +(see +.IR sh (1)). +Any commands or substitution builtins defined +by the modules are accessible by giving +the command and its arguments as arguments to +the +.I name +command. +.PP +.B Munload +unloads a module from the namespace +.IR name . +If no modules remain in the namespace, +.I name +is undefined as a command. +.SH EXAMPLE +Load +.I mpexpr +in a different namespace from +.I expr +(see +.IR sh-expr (1)): +.EX +load expr +mload mp mpexpr +echo ${expr 1 2 +} +echo ${mp expr 2 300 xx} +.EE +.SH SOURCE +.B /appl/cmd/sh/mload.b +.SH SEE ALSO +.IR sh (1), +.SH BUGS +Because of the way shell modules are implemented, +the namespaces are global across all processes that +share an instance of +.IR mload . diff --git a/static/inferno/man1/sh-regex.1 b/static/inferno/man1/sh-regex.1 new file mode 100644 index 00000000..9fe4f820 --- /dev/null +++ b/static/inferno/man1/sh-regex.1 @@ -0,0 +1,178 @@ +.TH SH-REGEX 1 +.SH NAME +re, match \- shell script regular expression handling +.SH SYNOPSIS +.B load regex + +.B match +.I regex +[ +.IR arg ... +] +.br +.B ${re +.I op +.IR arg... +.B } +.br +.SH DESCRIPTION +.I Regex +is a loadable module for +.IR sh (1) +that provides access to regular-expression +pattern matching and substitution. +For details of regular expression syntax in Inferno, +see +.IR regexp (6). +.I Regex +defines one builtin command, +.BR match , +and one builtin substitution operator, +.BR re . +.B Match +gives a false exit status if its argument +.I regex +fails to match any +.IR arg . +.B Re +provides several operations, detailed below: +.TP 10 +\f5${re g\fP \fIregexp\fP \fR[\fP \fIarg\fP\fR...\fP\fR]\fP\f5}\fP +Yields a list of each +.I arg +that matches +.IR regexp . +.TP +\f5${re v\fP \fIregexp\fP \fR[\fP \fIarg\fP\fR...\fP\fR]\fP\f5}\fP +Yields a list of each +.I arg +that does not match +.IR regexp . +.TP +\f5${re m\fP \fIregexp\fP \fIarg\fP\f5}\fP +Yields the portion of +.I arg +that matches +.IR regexp , +or an empty list if there was no match. +.TP +\f5${re M\fP \fIregexp\fP \fIarg\fP\f5}\fP +Yields a list consisting of the portion +of +.I arg +that matches +.IR regexp , +followed by list elements giving the portion +of +.I arg +that matched each parenthesized subexpression +in turn. +.TP +\f5${re mg\fP \fIregexp\fP \fIarg\fP\f5}\fP +Similar to +.B re m +except that it applies the match consecutively +through +.IR arg , +yielding a list of all the portions of +.I arg +that match +.IR regexp . +If a match is made to the null string, +no subsequent substitutions will take place. +.TP +\f5${re s\fP \fIregexp\fP \fIsubs\fP [ \fIarg\fP... ]\f5}\fP +For each +.IR arg , +.B re s +substitutes the first occurrence of +.I regexp +(if any) by +.IR subs . +If +.I subs +contains a sequence of the form +.BI \e d +where +.I d +is a single decimal digit, +the +.IR d th +parenthesised subexpression in +.I regexp +will be substituted in its place. +.B \e0 +is substituted by the entire match. +If any other character follows a +backslash +.RB ( \e ), +that character will be substituted. +Arguments which contain no match to +.I regexp +will be left unchanged. +.TP +\f5${re sg\fP \fIregexp\fP \fIsubs\fP [ \fIarg\fP... ]\f5}\fP +Similar to +.B re s +except that all matches of +.I regexp +within each +.I arg +will be substituted for, rather than just the +first match. Only one occurrence of the null string is +substituted. +.PP +.SH EXAMPLES +List all files in the current directory that +end in +.B .dis +or +.BR .sbl : +.EX + ls -l ${re g '\e.(sbl|dis)$' *} +.EE +.PP +Break +.I string +up into its constituent characters, +putting the result in shell variable +.BR x : +.EX + x = ${re mg '.|\en' \fIstring\fP} +.EE +.PP +Quote a string +.B s +so that it can be used as +a literal regular expression without worrying +about metacharacters: +.EX + s = ${re sg '[*|[\e\e+.^$()?]' '\e\e\e0' $s} +.EE +.PP +Define a substitution function +.B pat2regexp +to convert shell-style +patterns into equivalent regular expressions +(e.g. +.RB `` ?.sbl* '' +would become +.RB `` ^.\e.sbl.*$ ''): +.EX + load std + subfn pat2regexp { + result = '^' ^ ${re sg '\e*' '.*' + ${re sg '\?' '.' + ${re sg '[()+\e\e.^$|]' '\e\e\e0' $*} + } + } ^ '$' + } +.EE +.SH SOURCE +.B /appl/cmd/sh/regex.b +.SH SEE ALSO +.IR regexp (6), +.IR regex (2), +.IR sh (1), +.IR string (2), +.IR sh-std (1) diff --git a/static/inferno/man1/sh-sexprs.1 b/static/inferno/man1/sh-sexprs.1 new file mode 100644 index 00000000..b73f08bd --- /dev/null +++ b/static/inferno/man1/sh-sexprs.1 @@ -0,0 +1,131 @@ +.TH SH-SEXPRS 1 +.SH NAME +sexprs, islist, els, text, textels, mktext, mklist, mktextlist \- parse and generate S-expressions +.SH SYNOPSIS +.B load sexprs + +.B getsexprs +.I command +.br +.B islist +.I sexpr +.br +.B ${els +.IB sexpr } +.br +.B ${text +.IB sexpr } +.br +.B ${textels +.IB sexpr } +.br +.B ${mktext +.IB val } +.br +.B ${mklist +[ +.IR val ... +.BR "" ] } +.br +.B ${mktextlist +[ +.IR val ... +.BR "" ] } +.br +.SH DESCRIPTION +.B Sexprs +is a loadable module for +.IR sh (1) +that provides the facility to parse and generate +S-expressions (see +.IR sexprs (2)). +The following primitives are provided: +.TP 10 +.B getsexprs +.B Getsexprs +works similiarly to +.B getlines +in +.IR sh-std (1). +It reads S-expressions from the standard input, and for expression read, it +invokes +.I command +with +.B $sexp +set to the text representation of that expression. +.B Getsexprs +recognises the usual loop +.B break +and +.B continue +exceptions. +.TP +.BI islist\ sexp +.B Islist +yields a nil (true) status if +.IR sexp , +which must be a well-formed S-expression, +is a list element. +.TP +.BI ${els\ sexp } +If +.I sexp +is an S-expression containing a list, +then +.B els +returns a list of the S-expressions it contains. +It is an error if +.I sexp +is not a valid S-expression. +.TP +.BI ${text\ sexp } +If +.I sexp +is an S-expression containing a simple element, +then +.B text +returns the value of that element. If +.I sexp +is a list, the return value will be an empty string. +Note that elements +containing binary data will likely be corrupted +by conversion to utf-8. +It is an error if +.I sexp +is not a valid S-expression. +.TP +.BR ${textels\ sexp } +If +.I sexp +is an S-expression containing a list, then +.B textels +returns a list of the text values in that S-expression, +converted as with +.BR ${text} . +It is an error if +.I sexp +is not a valid S-expression. +.TP +.BR ${mktext\ val } +.B Mktext +returns a text representation of the S-expression +containing the simple value +.IR val . +.TP +.BR ${mklist\ \fR[\fPsexp\fR...]\fP } +.B Mklist +returns a text representation of the S-expression list +containing its arguments, which must be well-format +S-expressions. +.TP +.BR ${mktextlist\ \fR[\fPval\fR...]\fP } +.B Mktextlist +returns a text representation of the S-expression list +containing one simple element for each +.IR val . +.SH SOURCE +.B /appl/cmd/sh/sexprs.b +.SH SEE ALSO +.IR sh (1), +.IR sh-std (1), +.IR sexprs (2) diff --git a/static/inferno/man1/sh-std.1 b/static/inferno/man1/sh-std.1 new file mode 100644 index 00000000..148e5f47 --- /dev/null +++ b/static/inferno/man1/sh-std.1 @@ -0,0 +1,532 @@ +.TH SH-STD 1 +.SH NAME +std, if, while, ~, no, !, apply, getlines, status, pctl, fn, and, or, raise, rescue, hd, tl, index, split, join, pid, parse, pipe, env \- standard shell builtins module. +.SH SYNOPSIS +.B load std + +.B ! +.I command +.br +.B ~ +.I value +[ +.IR pattern ... +] +.br +.B no +[ +.IR arg ... +] +.br +.B and +.IR command ... +.br +.B apply +.I command +[ +.IR arg ... +] +.br +.B getlines +[ +.I separators +] +.I command +.br +.B flag +.I f +[ +.B +- +] +.br +.B for +.I var +.B in +[ +.IR arg ... +] +.I command +.br +.B fn +.I name command +.br +.B if +.I condition action +[ +.I condition action +]... [ +.I elseaction +] +.br +.B or +.IR command ... +.br +.B pctl +.IR flag... +.br +.B raise +.I name +.br +.B rescue +.I pattern rescueblock command +.br +.B status +.I value +.br +.B subfn +.I name command +.br +.B while +.I condition command +.br +.B ${hd +.IB list } +.br +.B ${index +.I number +.IB list } +.br +.B ${pid} +.br +.B ${split +[ +.I separators +] +.IB arg } +.br +.B ${join +.I separator +.IB list } +.br +.B ${tl +.IB list } +.br +.B ${parse +.IB arg } +.br +.B ${pipe +( +.B from +| +.B to +| +.I fdnum +) +.IB command } +.br +.B ${env} +.SH DESCRIPTION +.B Std +is a loadable module for +.IR sh (1) +that provides the equivalent of a +``standard library'' for the shell, including +a set of control-flow constructs and some +other miscellaneous commands. +In the following descriptions, if an argument is +executed, then it should be a braced block +suitable for executing by +.IR sh . +A true exit status is defined to be nil; +any non-nil exit status is false. +Unless otherwise stated, the return value +of a command is that of the last command that +it executed. +If invalid arguments are passed to any command, +a +.B usage +exception is raised, and a message printed to stderr. +.PP +Each of the looping commands +.BR for , +.BR apply , +.BR while , +and +.B getlines +installs an exception handler for the duration of the +loop to catch the exceptions +.B break +and +.BR continue . +If a +.B break +exception is caught, the loop is terminated; if a +.B continue +exception is caught, the loop will continue executing as +usual. +The commands are as follows: +.TP 10 +.B ! +.B ! +inverts the exit status of a command (non-null is changed to null, +null is changed to non-null). +.TP +.B ~ +.B ~ +matches +.I value +against each +.I pattern +in turn, returning true if any of them match and false otherwise. +The patterns are of the same form as those accepted by +the shell for filename pattern matching except that / is +not treated specially. (see +.IR filepat (2)). +Patterns +must be quoted to stop the shell from interpreting them. +.TP +.B no +True if there are no arguments. Useful for testing if there are any items in a list +without counting the items with +.BR $# . +.TP +.BI and +.B And +evaluates each +.I command +in turn until one returns false. +.TP +.B apply +.B Apply +evaluates +.I command +once for each +.IR arg , +passing it in the variable +.BR $1 . +.TP +.B getlines +.B Getlines +reads lines from the standard input, +executing +.I command +for each line, setting the environment variable +.B $line +to the line read, with any terminating character +removed. If +.I separators +is given, a line is terminated when any character +in +.I separators +is found; the default separator string +is a single newline character. +.TP +.B flag +Either set +.RB ( + ), +clear +.RB ( - ), +or test (neither +.B + +or +.BR - ) +the flag +.IR f , +where +.I f +is a single character, one of the +command line flags to +.I sh +(see +.IR sh (1)). +.TP +.B fn +.B Fn +defines a new builtin command named +.IR name ; +when run, this command evaluates +.IR command . +The command is stored in the environment +variable +.BI fn- name\f1;\fP +any variables of this form found when +when +.B std +is loaded will be defined in this way. +If +.I command +is not given, then the builtin will be removed. +.TP +.B subfn +.B Subfn +is similar to +.B fn +except that it defines a new substitution builtin +.IR name . +When +.I name +is invoked, it creates a new local variable +.B result +and executes +.IR command . +The value of +.B $result +when +.I command +has terminated is the value yielded by the substitution builtin +.IR name . +.I Command +is stored in and restored from the environment in a similar +way to +.BR fn , +except that +.BI sfn- name +is used as the name of the environment variable. +.TP +.B if +.B If +executes +.IR condition ; +if it returns true, then +.I action +is executed, otherwise each of the next +.IR condition - action +pairs is evaluated in the same way; if no +.I condition +is satisfied, then +.I elseaction +will be executed, if present. +.TP +.B for +.B For +is similar to +.BR apply ; +it runs +.I command +once for each +.IR arg , +but it performs a local assignment of +.I arg +to +.I var +each time. +.TP +.B or +.B Or +evaluates each +.I command +in turn until one returns true. +.TP +.B pctl +.B Pctl +is an interface to the Inferno system call +.IR sys-pctl (2); +each argument specifies one bit in the bitmask +passed to that function. The possible flags are +.BR newfd , +.BR forkfd , +.BR newns , +.BR forkns , +.BR newpgrp +and +.BR nodevs . +See +.IR sys-pctl (2) +for details of the meaning of these flags. +.B Pctl +returns true. +.TP +.B raise +.B Raise +raises the exception +.IR name ; +.I name +will be truncated if it is longer than +that allowed by +.I raise +(128 bytes in +.IR utf (6) +representation). +Control will be transferred to the innermost +rescue block in the same process that +matches +.IR name . +If there is no rescue block in place, +the current process will exit, yielding +.I name +as its exit status. +If no +.I name +is given, the exception named in +.B $exception +is raised; if this is null, a +.B bad raise context +exception is raised. +The default command prompt catches all +exceptions. +.TP +.B rescue +.B Rescue +executes +.I command +with an exception handler installed for the duration +of the call. It will catch all exceptions with a name +matching +.IR pattern , +where +.I pattern +is of the same form accepted by +Limbo's +.B exception +handling statement. +Specifically, the pattern is a string that matches literally, +except that a trailing +.RB ` * ' +character will match any sequence of characters. +If an exception is caught, +.B rescue +executes +.IR rescueblock , +setting +.B $exception +to the name of the exception raised. +.TP +.B status +returns its first argument word as its exit status, +or nil if none is given. +.TP +.B while +.B While +repeatedly executes +.I condition +and then +.I action +until +.I condition +does not return true. +.TP +.B ${env} +.B Env +yields a list of the names of all +currently set non-nil environment variables. +.TP +.B ${hd} +.B Hd +yields the first of its arguments, or nil if there +are no arguments. +.TP +.B ${index} +.B Index +yields the +.IR n 'th +element in its argument list, indexed from 1. +.I N +must be a decimal integer. +.TP +.B ${join} +.B Join +yields a single element which is the concatenation of all +the elements in +.I list +separated by +.IR separator . +If there are no elements in +.IR list , +it yields an empty string. +The shell operator +\f5$"\f2var\f1 +is exactly equivalent to +.BI "${join ' ' $" var }\f1.\fP +.TP +.B ${parse} +.B Parse +parses +.I arg +according to the usual syntax rules, raising a +.B parse error +exception if it fails. +.I Arg +must be a well-formed command block +surrounded by braces. +.B Parse +yields a functionally equivalent version +of +.IR arg . +.TP +.B ${pid} +.B Pid +yields the process id of the current process. +.TP +.B ${pipe} +.B Pipe +runs +.I command +asynchronously, with one of its file descriptors connected +to a bidirectional pipe. The first argument to +.B pipe +determines which file descriptor is connected: if +the argument is +.BR from , +its standard output is connected; if the argument is +.BR to , +its standard input is connected; otherwise file descriptor +.I fdnum +is connected. +.B Pipe +yields the name of a file that can be opened to access +the other end of the pipe. Note that this command is now +deprecated in favour of the +.B <{} +redirection operator built in to the shell. +.TP +.B ${split} +.B Split +splits +.I arg +into list elements at every point where one or +more characters in +.I separators +appear. If +.I separators +is not given, the value of +.B $ifs +is used. +.TP +.B ${tl} +.B Tl +yields all but the first of its arguments, +or nil if there are no arguments. +.SS Syntactic considerations +It is worth being aware of a few pitfalls that await the user of +some of these commands. Unlike other shells, the syntax of +.I sh +does not include the syntax of the control flow commands, +so it is important to be aware of the rules that govern +the gathering of the arguments for a command. +In particular, the following code, written to print a message +a filename ends in +.B .b +will not work: it will always print ``file is Limbo source''. +.EX + and + {~ $filename '*.b'} + {echo file is Limbo source} +.EE +This is because newlines separate shell commands, so +the above code first invokes +.B and +with no arguments, and then each of the braced block +commands on each subsequent line. +It is usual to use round brackets in order to group together arguments +on separate lines, e.g. +.EX + and ( + {~ $filename '*.b'} + {echo file is Limbo source} + ) +.EE +This has the originally intended meaning. +.SH FILES +.TF /tmp/pipes/* +.TP +.B /tmp/pipe.*d +Temporary placeholder directory for named pipes. +.TP +.B /tmp/pipes/* +Mount point for named pipes. +.SH SOURCE +.B /appl/cmd/sh/std.b +.SH SEE ALSO +.IR sh (1), +.IR sh-expr (1), +.IR sh-tk (1) diff --git a/static/inferno/man1/sh-string.1 b/static/inferno/man1/sh-string.1 new file mode 100644 index 00000000..4b0c0860 --- /dev/null +++ b/static/inferno/man1/sh-string.1 @@ -0,0 +1,186 @@ +.TH SH-STRING 1 +.SH NAME +prefix, in, splitl, splitr, drop, take, splitstrl, splitstrr, tolower, toupper, len, alen, slice \- shell script string manipulation +.SH SYNOPSIS +.B load string + +.B prefix +.I pre s +.br +.B in +.I c cl +.br +.B ${splitl +.IB "s cl" } +.br +.B ${splitr +.IB "s cl" } +.br +.B ${splitstrl +.IB "s t" } +.br +.B ${splitstrr +.IB "s t" } +.br +.B ${take +.IB "s cl" } +.br +.B ${tolower +.IB s } +.br +.B ${toupper +.IB s } +.br +.B ${len +.IB s } +.br +.B ${alen +.IB s } +.br +.B ${slice +.IB "start end s" } +.br +.B ${fields +.IB "cl s" } +.br +.B ${padl +.I n +[ +.IR s ... +.RB ] } +.br +.B ${padr +.I n +[ +.IR s ... +.RB ] } +.br +.SH DESCRIPTION +.I String +is a loadable module for +.IR sh (1) +that provides a shell-script interface to the string +manipulation commands found in +.IR string (2), +with a couple of other facilities thrown in for good +measure. Each of the substitution builtins +.BR splitl , +.BR splitr , +.BR drop , +.BR take , +.BR splitstrl , +.BR splitstrr , +.BR tolower , +and +.BR toupper +implements the same functionality as that provided by +the function of the same name in +.IR string (2). +Where a function in the +.IR string (2) +module returns a tuple, the equivalent builtin yields +a two-element list; the others yield a list with a single +element. +.PP +In all +.I string +commands, the number of arguments provided must +be exactly that required by the command so, for instance, +giving an undefined variable (a zero element list) as +an argument will cause a +.B usage +exception to be generated. +.PP +The two builtins +.B prefix +and +.B in +are again similar to their +.IR string (2) +counterparts - their return value is true (an empty string) +if the equivalent +.IR string (2) +function would be non-zero. +.PP +.B Len +returns the length of its argument +.IR s . +.B Alen +returns the length of its argument +.IR s +when converted to a byte-array. (This will be +different from the result of +.B len +when +.I s +contains non-ASCII characters). +.B Slice +is similar to the string-slicing operator in Limbo; +it returns the section of +.I s +starting at index +.I start +and ending just before index +.IR end . +.I End +may be the literal string +.BR end , +in which +.BI "${slice " start " end}" +is the same as +.BI "${slice " start " ${len " s "}}"\fR.\fP +Unlike in Limbo, nothing untoward happens if +an out-of-range slice is taken: any out of +range indices are trimmed to within the bounds +of +.IR s . +.PP +.B Fields +is similar to +.B ${split} +in +.IR sh (1), +but does not merge field separator characters. +It splits +.I s +into fields separated by characters in class +.IR cl ; +if there are +.I n +characters matching +.I cl +inside +.IR s , +.B fields +will yield +.IR n +1 +items in its result. +.PP +.B Padl +and +.B padr +widen the string +.I s +to +.I n +characters, padding it with spaces on the +right (for +.BR padl ) +or the left (for +.BR padr ) +as necessary. +If +.I s +is already at least +.I n +characters wide, it is left unchanged. +If several arguments are given, they +are concatenated, separated with spaces, before +padding takes place. +.SH SOURCE +.B /appl/cmd/sh/string.b +.SH SEE ALSO +.IR string (2), +.IR sh (1), +.IR sh-std (1), +.IR sh-expr (1) diff --git a/static/inferno/man1/sh-test.1 b/static/inferno/man1/sh-test.1 new file mode 100644 index 00000000..fb4ed49d --- /dev/null +++ b/static/inferno/man1/sh-test.1 @@ -0,0 +1,46 @@ +.TH SH-TEST 1 +.SH NAME +report \- shell module for test reporting. +.SH SYNOPSIS +.B load test + +.br +.B report +.I severity verbosity message[...] +.br +.SH DESCRIPTION +.B Its +is a loadable module for +.IR sh (1) +that provides a simple error reporting facility for tests which can be run +by +.IR itest (1) . +It provides one command, +.BR report , +which is used by a test to report a message with specified severity and verbosity. +.I Severity +must be one of INF, WRN, ERR or FTL for Information, warnings, errors and fatal errors +respectively. +.I Verbosity +is an integer between 0 and 9. +For informatory messages (severity INF), the message will only be +displayed if the current +verbosity level is greater than or equal to +.I verbosity. +.SH EXAMPLE +.EX +#!/dis/sh + +load std test + +echo 1 > /tmp/a +echo 2 >/tmp/b +report INF 5 testing cmp command +if {cmp /tmp/a /tmp/b} { + report ERR 0 'cmp failed - reported different files as the same' +}{ + report INF 6 'cmp ok - reported different files as different' +} +.EE +.SH SEE ALSO +.IR itest (1) diff --git a/static/inferno/man1/sh-tk.1 b/static/inferno/man1/sh-tk.1 new file mode 100644 index 00000000..e45bd9a6 --- /dev/null +++ b/static/inferno/man1/sh-tk.1 @@ -0,0 +1,281 @@ +.TH SH-TK 1 +.SH NAME +tk, chan, send, recv, alt \- loadable tk module for sh. +.SH SYNOPSIS +.B load tk + +.B chan +.IR name ... +.br +.B send +.I chan value +.br +.B tk window +.I title +[ +.I args... +] +.br +.B tk winctl +.I winid cmd +.br +.B tk wintitle +.I winid title +.br +.B tk namechan +.I chan +[ +.I name +] +.br +.B tk del +.I name +.br +.B tk +.I winid tkcmd +.br +.B ${tk window +.I title +[ +.I args... +] +.B } +.br +.B ${tk onscreen +.I winid +[ +.I how +] +.B } +.br +.B ${tk +.I winid tkcmd +.B } +.br +.B ${recv +.I chan +.B } +.br +.B ${alt +.I chan +\& ... +.B } +.br +.SH DESCRIPTION +.B Tk +is a loadable module for +.IR sh (1) +that provides access to Inferno Tk graphics +and string channels. +Most of the builtin commands that it defines map +closely to primitives within +.IR wmlib (2) +and +.IR tk (2). +Unless otherwise stated, if a command requires +a +.I winid +argument, if no window with that id is found, a +.B bad win +exception is raised. Similarly, a reference to +an unknown channel name will raise a +.B bad chan +exception. +There is no requirement that this module be used in +a windowing context: although window creation will +fail if there is no context, the channel communication +primitives will work regardless. +.TP 10 +.B chan +For each +.I name +in turn, +.B chan +creates a new channel called +.I name +within the tk module. +.I Name +henceforth represents a Limbo +.B chan +.B of +.B string +and can be used to send string values between +.I sh +processes running in parallel. A +.I chan +is also used to receive events arriving from the window +manager. It is illegal to create a channel whose name +consists entirely of numeric digits. +.TP +.B send +.B Send +sends its argument +.I value +down the channel +.IR chan , +blocking until a corresponding receive operation +takes place on the channel. +.TP +.B tk window +.B Tk window +creates a new top-level window with the text of +.I title +in the titlebar at the top. Each window created by the +tk module is assigned a unique numeric id. This id +is printed by this command; to get access to the value +of the +.I winid +in a script, use +.BR "${tk window}" . +All the remaining arguments are joined together +by spaces and passed as the tk options for the window. +When a window is created, a corresponding +channel of the same name is created. Events from +the window manager arrive on this channel, and +should be responded to appropriately using +.BR "tk winctl" . +.TP +.B tk onscreen +.B Tk onscreen +must be called to make window +.I winid +visible for the first time, the same as +.I onscreen +in +.IR tkclient (2). +.I How +is the same as for that call - if given, it must be one of +.BR place , +.BR onscreen +or +.BR exact . +.BR +.TP +.B tk winctl +.B Tk winctl +is used to communicate requests to the window manager. +(see +.B winctl() +in +.IR wmlib (2)). +If an event arriving on a window's channel is passed +to +.BR "tk winctl" , +a suitable default action will take place. +The set of possible actions include: +.RS +.TP +.B exit +A request to close the window. +.TP +.B size +A request to resize the window. +.TP +.B task +A request to miniaturise the window. +.TP +.B move +A request to move the window. +.RE +.TP +.B tk wintitle +.B Tk wintitle +changes the title of the window +.I winid +to +.IR title . +.TP +.B tk del +.B Tk del +deletes a channel or a window. If +.I name +is the +.I winid +of an existing window, then both the +window and its associated channel are destroyed. +A +.B del +of a non-existent channel or window is ignored. +.TP +.B tk namechan +.B Tk namechan +invokes the Tk module's +.B namechan() +function to give a tk name to a +channel within the tk module. +If +.I name +is omitted, then the tk name given will be +the same as +.IR chan . +.TP +.BI tk \ winid +If +.I winid +is the id of an existing window, the rest of the +arguments joined together by spaces +and sent as a tk command to be interpreted +in that window. If the shell is in interactive mode, +then the string returned by tk will be printed. +The exit status of +.B tk +is false if the string returned by tk begins with +a bang +.RB ( ! ) +character. +.TP +.B ${tk window} +.B Tk window +is the same as its command counterpart, except +that it yields the +.I winid +of the newly created window rather than printing +it. +.TP +.BI ${tk \ winid } +This command is the same as its command counterpart, +except that it yields the return value from the +Tk command as its result. +.TP +.B ${recv} +.B Recv +receives a string value from +.I chan +and yields that value. It will block until a corresponding +send operation takes place on the channel. +.TP +.B ${alt} +.B Alt +waits until a value is available on any of the +named +.IR chan s. +It yields a list containing two elements, +the name of the channel from which the value was +received, and the actual value received. +.SH EXAMPLE +The following code creates a window and allows +normal window manager operations on it. Another +shell in a new process group is created in order to prevent +the shell window from +disappearing when the tk window is deleted. +.IP +.EX +sh +load std tk +pctl newpgrp +wid=${tk window 'My window'} +tk onscreen $wid +tk $wid update +while {} {tk winctl $wid ${recv $wid}} & +.EE +.SH SOURCE +.B /appl/cmd/sh/tk.b +.SH SEE ALSO +.IR sh (1), +.IR sh-std (1), +.IR sh-expr (1), +.IR tkcmd (1), +.IR tk (2), +.IR tkclient (2), +.IR wmlib (2), +``The Tk Reference Manual'' diff --git a/static/inferno/man1/sh.1 b/static/inferno/man1/sh.1 new file mode 100644 index 00000000..18ecaf04 --- /dev/null +++ b/static/inferno/man1/sh.1 @@ -0,0 +1,980 @@ +.TH SH 1 +.SH NAME +sh, builtin, exit, load, loaded, local, whatis, quote, run, set, unload, unquote \- command language +.SH SYNOPSIS +.B sh +[ +.B -ilxvn +] +[ +.B -c command +] +[ +.I file +[ +.I arg ... +] +.SH DESCRIPTION +.I Sh +is a programmable user level interface (a shell) for Inferno. +It executes command lines read from a terminal or a file or, with the +.B -c +flag, from +.IR sh 's +argument list. It can also be used to give programmable functionality +to Limbo modules (see +.IR sh "" "" (2)). +.SS Command Lines +A command line is a sequence of commands, separated by ampersands or semicolons +.RB ( & +or +.BR ; ), +terminated by a newline. +The commands are executed in sequence +from left to right. +.I Sh +does not wait for a command followed by +.B & +to finish executing before starting +the following command. +Whenever a command followed by +.B & +is executed, its process id is assigned to the +.I sh +variable +.BR $apid . +Whenever a command +.I not +followed by +.B & +exits or is terminated, the +.I sh +variable +.B $status +gets the process's wait message (see +.IR prog (3)); +it will be the null string if the command was successful. +.PP +A number-sign +.RB ( # ) +and any following characters up to (but not including) the next newline +are ignored, except in quotation marks. +.SS Simple Commands +A simple command is a sequence of arguments interspersed with I/O redirections. +If the first argument is the name of a +.I sh +builtin or it is a braced command block (see +.IR "Compound Commands", +below), it is executed by +.IR sh . +If the first character of the name is a brace +.RB ( { ), +the shell tries to parse it and execute it as a braced command block; +if the parsing fails, an exception is raised. +Otherwise +.I sh +looks for an external program to execute. +.PP +If the name ends in +.BR .dis , +.I sh +looks for a Dis module of that name; otherwise +it tries first to find a Dis module of +that name with +.B .dis +appended and failing that, it looks for +an executable file of the same name, which should +be a readable, executable script file. +If the name does not start with a slash +.RB ( / ) +or dot-slash +.RB ( ./ ), +then the name is first looked for relative to +.BR /dis , +and then relative to the current directory. +A Dis module will be executed only if it +implements the +.B Command +interface (see +.IR command (2)); +a script file will be executed only if it +starts with the characters +.RB `` #! '' +followed by the name of a file executable +under the rules above. In this case the +command will be executed with any following arguments mentioned +in the +.B #! +header, followed by the path of the script file, +followed by any arguments originally given to the command. +.PP +For example, to execute the simple command +.BR "ls" , +.I sh +will look for one of the following things, in order, +stopping the search when one is found: +.RS +.IP 1) +a built-in command named +.RB `` ls ''. +.IP 2) +a Dis module named +.RB `` /dis/ls.dis '', +.IP 3) +an executable script file named +.RB `` /dis/ls '', +.IP 4) +a Dis module named +.RB `` ./ls.dis '', +.IP 5) +an executable script file named +.RB `` ./ls ''. +.RE +.SS Arguments and Variables +A number of constructions may be used where +.I sh's +syntax requires an argument to appear. +In many cases a construction's +value will be a list of arguments rather than a single string. +.PP +The simplest kind of argument is the unquoted word: +a sequence of one or more characters none of which is a blank, tab, +newline, or any of the following: +.EX + # ; & | ^ $ ` ' { } ( ) < > " = +.EE +An unquoted word that contains any of the characters +.B * +.B ? +.B [ +is a pattern for matching against file names. +The character +.B * +matches any sequence of characters, +.B ? +matches any single character, and +.BI [ class ] +matches any character in the +.IR class . +If the first character of +.I class +is +.BR ^ , +the class is complemented. (As this character +is special to the shell, it may only be included in a pattern +if this character is quoted, as long as the leading +.B [ +is not quoted). +The +.I class +may also contain pairs of characters separated by +.BR - , +standing for all characters lexically between the two. +The character +.B / +must appear explicitly in a pattern. +A pattern is replaced by a list of arguments, one for each path name matched, +except that a pattern matching no names is not replaced by the empty list, +but rather stands for itself. +Pattern matching is done after all other +operations. +Thus, +.EX + x=/tmp; echo $x^/*.b +.EE +matches +.BR /tmp/*.b , +rather than matching +.B "/*.b +and then prefixing +.BR /tmp . +.PP +A quoted word is a sequence of characters surrounded by single quotes +.RB ( ' ). +A single quote is represented in a quoted word by a pair of quotes +.RB ( '' ). +.PP +.ne 3 +Each of the following is an argument. +.PD 0 +.HP +.BI ( arguments ) +.br +The value of a sequence of arguments enclosed in parentheses is +a list comprising the members of each element of the sequence. +Argument lists have no recursive structure, although their syntax may +suggest it. +The following are entirely equivalent: +.EX + echo hi there everybody + ((echo) (hi there) everybody) + echo (hi + there + everybody + ) +.EE +Newlines within parentheses count as simple white space; +they do not terminate the command. This can be useful to give +some more freedom of layout to commands that take several +commands as arguments, for instance several of the commands +defined in +.IR sh-std (1). +.HP +.BI $ argument +.br +The +.I argument +after the +.B $ +is the name of a variable whose value is substituted. +Multiple levels +of indirection are possible. +Variable values +are lists of strings. +If +.I argument +is a number +.IR n , +the value is the +.IR n th +element of +.BR $* , +unless +.B $* +doesn't have +.I n +elements, in which case the value is empty. +Assignments to variables are described under +.I "Assignment" , +below. +.HP +.BI $# argument +.br +The value is the number of elements in the named variable. +A variable +never assigned a value has zero elements. +.HP +\f5$"\fP\fIargument\fP +.br +The value is a single string containing the components of the named variable +separated by spaces. A variable with zero elements yields the empty string. +.HP +.BI `{ command } +.HP +.I +\f5"{\fPcommand\f5}\fP +.br +.I Sh +executes the +.I command +and reads its standard output. If backquote +.RB ( ` ) +is used, it is split into a list of arguments, +using characters in +.B $ifs +as separators. +If +.B $ifs +is not otherwise set, its value is +.BR "'\ \et\en'" . +If doublequote (\f5"\fP) +is used, no tokenization takes place. +.HP +.IB argument ^ argument +.br +The +.B ^ +operator concatenates its two operands. +If the two operands +have the same number of components, they are concatenated pairwise. +If not, +then one operand must have one component, and the other must be non-empty, +and concatenation is distributive. +.HP +.BI ${ command } +.br +.I Command +must be a simple command with no redirections; +its first word +must be the name of a builtin substitution operator. +The operator is invoked and its value substituted. +See +.IR "Built-in Commands" , +below, for more information on builtins. +.HP +.BI <{ command } +.HP +.BI >{ command } +.br +The +.I command +is executed asynchronously with its standard output or standard input +connected to a pipe. +The value of the argument is the name of a file +referring to the other end of the pipe. +This allows the construction of +non-linear pipelines. +For example, the following runs two commands +.B old +and +.B new +and uses +.B cmp +to compare their outputs +.EX + cmp <{old} <{new} +.EE +.PD +.SS Free Carets +In most circumstances, +.I sh +will insert the +.B ^ +operator automatically between words that are not separated by white space. +Whenever one of +.B $ +.B ' +.B ` +follows a quoted or unquoted word or an unquoted word follows a quoted word +with no intervening blanks or tabs, +a +.B ^ +is inserted between the two. +If an unquoted word immediately follows a +.BR $ +and contains a character other than an alphanumeric, underscore, +or +.BR * , +a +.B ^ +is inserted before the first such character. +Thus +.IP +.B limbo -$flags $stem.b +.LP +is equivalent to +.IP +.B limbo -^$flags $stem^.b +.SS Assignment +A command of the form +.IB name = value +or +.IB name := value +assigns +.I value +to the environment variable named +.IR name . +.I Value +is either a list of arguments or an assignment statement. In +the latter case +.I value +is taken from the value assigned in the assignment statement. +If +.B := +is used, the value is stored in the innermost local scope. +A local scope is created every time a braced block is entered, +and destroyed when the block is left. If +.B = +is used, the value is stored in the innermost scope +that contains any definition of +.IR name . +.PP +A list of names can also be used in place of +.IR name , +which causes each element of +.I value +in turn to be assigned the respective variable name in +the list. The last variable in the list is assigned any elements +that are left over. If there are more variable names than +elements in +.IR value , +the remaining elements are assigned the null list. +For instance, after the assignment: +.EX + (a b c) = one two three four five +.EE +.B $a +is +.BR one , +.B $b +is +.BR two , +and +.B $c +contains the remaining three elements +.BR "(three four five)" . +.SS I/O Redirections +The sequence +.BI > file +redirects the standard output file (file descriptor 1, normally the +terminal) to the named +.IR file ; +.BI >> file +appends standard output to the file. +The standard input file (file descriptor 0, also normally the terminal) +may be redirected from a file by the sequence +.BI < file \f1, +or by the sequence +.BI <> file \f1, +which opens the file for writing as well as reading. +Note that if +.I file +is in fact a parsed braced block, the redirection will be treated as +pipe to the given command - it is identical to the +.B "<{}" +operator mentioned above. +.PP +Redirections may be applied to a file-descriptor other than standard input +or output by qualifying the redirection operator +with a number in square brackets. +For example, the diagnostic output (file descriptor 2) +may be redirected by writing +.BR "limbo junk.b >[2] junk" . +.PP +A file descriptor may be redirected to an already open descriptor by writing +.BI >[ fd0 = fd1 ] +or +.BI <[ fd0 = fd1 ]\f1. +.I Fd1 +is a previously opened file descriptor and +.I fd0 +becomes a new copy (in the sense of +.IR sys-dup (2)) +of it. +.PP +Redirections are executed from left to right. +Therefore, +.B limbo junk.b >/dev/null >[2=1] +and +.B limbo junk.b >[2=1] >/dev/null +have different effects: the first puts standard output in +.BR /dev/null +and then puts diagnostic output in the same place, where the second +directs diagnostic output to the terminal and sends standard output to +.BR /dev/null . +.SS Compound Commands +A pair of commands separated by a pipe operator +.RB ( | ) +is a command. +The standard output of the left command is sent through a pipe +to the standard input of the right command. +The pipe operator may be decorated +to use different file descriptors. +.BI |[ fd ] +connects the output end of the pipe to file descriptor +.I fd +rather than 1. +.BI |[ fd0 = fd1 ] +connects output to +.I fd1 +of the left command and input to +.I fd0 +of the right command. +.PP +A sequence of commands separated by +.BR & , +.BR ; , +or newline +may be grouped by surrounding +them with braces +.RB ( {} ), +elsewhere referred to as a +.IR "braced block" . +A braced block may be used anywhere that a simple word +is expected. If a simple command is found with +a braced block as its first word, the +variable +.B $* +is set to any following arguments, +.B $0 +is set to the block itself, and the commands +are executed in sequence. If a braced block +is passed as an argument, no execution takes place: +the block is converted to a functionally equivalent +string, suitable for later re-interpretation by the shell. +The null command +.RB ( {} ) +has no effect and always gives a nil status. For instance +the following commands all produce the same result: +.EX + echo hello world + {echo hello world} + '{echo hello world}' + {echo $*} hello world + sh -c {echo hello world} + {$*} {echo hello world} + {$*} {{$*} {echo hello world}} + "{echo {echo hello world}} + '{echo hello' ^ ' world}' + x := {echo hello world}; $x +.EE +It is important to note that the value of +.B $* +is lost every time a braced block is entered, so +for instance, the following command prints an empty string: +.EX + {{echo $*}} hello world +.EE +.PD +.SS Built-in Commands +The term ``built-in command'', or just ``builtin'', is used somewhat loosely +in this document to refer to any command that is executed +directly by the shell; most built-in commands are defined +by externally loaded modules; there are a few that are not, +known as ``internal'' builtins, listed below. +.PP +Given +.IR sh 's +ability to pass compound commands (braced blocks) as +arguments to other commands, most control-flow +functionality that is traditionally hard-wired into a shell +is in +.I sh +implemented by loadable modules. See +.IR sh-std (1), +.IR sh-expr (1), +and +.IR sh-tk (1) +for more details. +.PP +There are two classes of built-in commands; +the first class, known simply as ``builtins'', are used in +the same way as normal commands, the only difference +being that builtins can raise exceptions, while external +commands cannot, as they are run in a separate process. +The second class, known as +``builtin substitutions'' can only be used as the first +word of the command in the +.B ${} +operator. The two classes exist in different name-spaces: +a builtin may do something quite different from a +builtin substitution of the same name. +.PP +In general, normal builtins perform some action +or test some condition; +the return status of a normal builtin usually +indicates error status or conditional success. The +rôle of a substitution builtin is to yield a value, +(possibly a list) +which is substituted directly into place as part +of the argument list of a command. +.PP +.PD 0 +.HP +.BI @ " command ..." +.br +Execute +.I command +in a subshell, allowing (for instance) the name-space to be +forked independently of main shell. +.HP +.BI run " file ..." +.br +Execute commands from +.IR file . +.B $* +is set for the duration to the remainder of the argument list following +.IR file . +.HP +.BI builtin " command ..." +.br +Execute +.I command +as usual except that any command defined by an external +module is ignored in favour of the original meaning. +This command cannot be redefined by an external module. +.HP +.B exit +.br +Terminate the current process. +.HP +.BI load " path..." +.br +.B Load +tries to load each of its arguments as a builtin module +into +.IR sh . +If a module load succeeds, each builtin +command defined by that module is +added to the list of builtin commands. +If there was a previous definition of the command, +it is replaced, with the exception of internal +.I sh +builtins, which are covered up and reappear when +the module is unloaded. If a module with +the same +.I path +has already been loaded, +.I sh +does not try to load it again. +Unless the path begins with +.B / +or +.BR ./ , +the shell looks in the standard builtins directory +.B /dis/sh +for the module. +If a load fails, a +.B bad module +exception is raised. +The environment variable +.B $autoload +can be set to a list of Shell modules that +each instance of +.I sh +should load automatically during its initialisation. +(More precisely, the modules are loaded +when a new +.B Sh->Context +is created: see +.IR sh (2) +for details.) +.HP +.BI unload " path..." +.br +.B Unload +undoes previous load commands. To succeed, +.I path +must be the same as that given to a previous +invocation of +.BR load . +.HP +.B loaded +.br +.B Loaded +prints all the builtin commands currently +defined, along with the name of the module that defined them. +Internally defined commands are tagged with +module +.BR builtin . +.HP +.BI whatis " name ..." +.br +Print the value of each +.I name +in a form suitable for input to +.IR sh . +The forms are: +.RS 10 +.TP +.I varname = "value..." +.I Varname +is a non-nil environment variable. +.TP +.BI load\ module ;\ name +.I Name +has been defined as a builtin by the externally loaded +.IR module . +.TP +.BI load\ module ;\ ${ name } +.I Name +has been defined as a builtin substitution by the externally loaded +.IR module . +.TP +.BI builtin\ name +.I Name +is defined as a builtin internally by +.IR sh . +.TP +.BI ${ name } +.I Name +is defined as a builtin substitution +internally by the shell. +.TP +.I pathname +The completed pathname of an external file. +.RE +.HP +.B ${builtin +.I command +... +.B } +.br +Does for substitution builtin commands +what +.B builtin +does for normal commands. +.HP +.B ${loaded} +.br +The +.B loaded +builtin substitution yields a list of the names of all +the modules currently loaded, as passed to +.BR load . +.HP +.BI ${quote \ list } +.br +.B Quote +yields a single element +list which if reparsed by the shell +will recreate +.IR list . +.HP +.BI ${bquote \ list } +.br +Same as +.B quote +except that items in +.I list +that are known to be +well-formed command blocks are not quoted. +.HP +.BI ${unquote \ arg} +.br +.B Unquote +reverses the operation of +.BR quote , +yielding the original list of values. For example, +.BI "${unquote ${quote " list }} +yields +.IR list . +A list quoted with +.B bquote +can only be unquoted by parsing. +.PD +.SS Environment +The +.I environment +is a list of strings made available to externally executing commands by the +.B env +module +(see +.IR env (2)). +If the +.B env +module does not exist or cannot be loaded, no error will be +reported, but no variables can be exported to external commands. +.I Sh +creates an environment entry for each variable whose value is non-empty. +This is formatted as if it had been run through +.BR ${quote} . +Note that in order for a variable to be exported, its +name must conform to the restrictions imposed +by +.IR env (3); +names that do not will not be exported. +.PP +When +.I sh +starts executing it reads variable definitions from its +environment. +.PP +Internally, the shell holds a +.IR context , +which holds a stack of environment variables, the +current execution flags and the list of built-in modules. +A copy is made whereever parallel access to the context might +occur. This happens for processes executing +in a pipeline, +processes run asynchronously with +.BR & , +and in any builtin command that runs a shell command +asynchronously. +.SS Exceptions +When +.I sh +encounters an error processing its input, an exception is raised, +and if the +.B -v +flag is set, an error message is printed to +standard error. +An exception causes processing of the current command to terminate +and control to be transferred back up the invocation stack. +In an interactive shell, the central command processing loop +catches all exceptions and sets +.B $status +to the name of the exception. +Exceptions are not propagated between processes. Any +command that requires I/O redirection is run in a separate +process, namely pipes +.RB ( | ), +redirections +.RB ( > , +.BR < , +.BR >> , +and +.BR <> ), +backquote substitution +(\f5`\fP, \f5"\fP) +and background processes +.RB ( & ). +Exceptions can be raised and rescued using +the +.B raise +and +.B rescue +functions in the standard builtins module, +.BR std . +(See +.IR sh-std (1)). +Names of exceptions raised by +.I sh +include: +.TP 10 +.B parse error +An error has occurred trying to parse a command. +.TP +.B usage +A builtin has been passed an invalid set of arguments; +.TP +.B bad redir +An error was encountered trying to open files prior +to running a process. +.TP +.B bad $ arg +An invalid name was given to the $ or ${} operator. +.TP +.B no pipe +.I Sh +failed to make a pipe. +.TP +.B bad wait read +An error occurred while waiting for a process to exit. +.TP +.B builtin not found +A substitution builtin was named but not found. +.SS Special Variables +The following variables are set or used by +.IR sh . +.PD 0 +.TP \w'\fL$promptXX'u +.B $* +Set to +.IR sh 's +argument list during initialization. +Whenever a +braced block +is executed, the current value is saved and +.B $* +receives the new argument list. +The saved value is restored on completion of the +.BR block . +.TP +.B $apid +Whenever a process is started asynchronously with +.BR & , +.B $apid +is set to its process id. +.TP +.B $ifs +The input field separators used in backquote substitutions. +If +.B $ifs +is not set in +.IR sh 's +environment, it is initialized to blank, tab and newline. +.TP +.B $prompt +When +.I sh +is run interactively, the first component of +.B $prompt +is printed before reading each command. +The second component is printed whenever a newline is typed and more lines +are required to complete the command. +If not set in the environment, it is initialized by +.BR "prompt=('%\ '\ '')" . +.TP +.B $status +Set to the wait message of the last-executed program, +the return status of the last-executed builtin +(unless started with +.BR &), +or the name of the last-raised exception, whichever +is most recent. +When +.I sh +exits at end-of-file of its input, +.B $status +is its exit status. +.PD +.SS Invocation +If +.I sh +is started with no arguments it reads commands from standard input. +Otherwise its first non-flag argument is the name of a file from which +to read commands (but see +.B -c +below). +Subsequent arguments become the initial value of +.BR $* . +.I Sh +accepts the following command-line flags. +.PD 0 +.TP \w'\fL-c\ \fIstring\fLXX'u +.BI -c " string" +Commands are read from +.IR string . +.TP +.B -i +If +.B -i +is present, or +.I sh +is given no arguments and its standard input is a terminal, +it runs interactively. +Commands are prompted for using +.BR $prompt . +This option implies +.BR -v . +.TP +.B -l +If +.B -l +is given or the first character of argument zero is +.BR - , +.I sh +reads commands from +.BR /lib/sh/profile , +if it exists, and then +.BR ./lib/profile , +if it exists, before reading its normal input. +.TP +.B -n +Normally, +.I sh +forks its namespace on startup; if +.B -n +is given, this behaviour is suppressed. +.TP +.B -v +Within a non-interactive shell, informational messages +printed to standard error are usually disabled; +giving the +.B -v +flag enables them. +.TP +.B -x +Print each simple command to stderr before executing it. +.PD +.SH SOURCE +.B /appl/cmd/sh/sh.y +.SH "SEE ALSO" +.IR sh (1), +.IR sh-std (1), +.IR sh-expr (1), +.IR sh-file2chan (1), +.IR sh-tk (1), +.IR sh-arg (1), +.IR sh-regex (1), +.IR sh-string (1), +.IR sh-csv (1), +.IR sh (2), +.IR env (2) +.SH BUGS +Due to lack of system support, appending to +a file with +.B >> +will not work correctly when there are +multiple concurrent writers (but see the +examples section of +.IR sh-file2chan (1) +for one solution to this). +.PP +While it +.I is +possible to use the shell as a general +purpose programming language, it is a very slow one! +Intensive tasks are best done in Limbo, which is a much +safer language to boot. diff --git a/static/inferno/man1/sleep.1 b/static/inferno/man1/sleep.1 new file mode 100644 index 00000000..047220f5 --- /dev/null +++ b/static/inferno/man1/sleep.1 @@ -0,0 +1,24 @@ +.TH SLEEP 1 +.SH NAME +sleep, pause \- suspend execution for an interval +.SH SYNOPSIS +.B sleep +.I n +.PP +.B pause +.SH DESCRIPTION +.I Sleep +suspends its own execution for +.I n +seconds before returning. +.PP +.I Pause +never returns, +and is typically used to stop a command +interpreter reading any more from the standard input. +.SH SOURCE +.B /appl/cmd/sleep.b +.br +.B /appl/cmd/pause.b +.SH "SEE ALSO" +.IR sys-sleep (2) diff --git a/static/inferno/man1/sort.1 b/static/inferno/man1/sort.1 new file mode 100644 index 00000000..afb6f6ad --- /dev/null +++ b/static/inferno/man1/sort.1 @@ -0,0 +1,33 @@ +.TH SORT 1 +.SH NAME +sort \- sort file +.SH SYNOPSIS +.B sort +[ +.B -nr +] [ +.I file +] +.SH DESCRIPTION +.I Sort +sorts the lines of +.I file +(default: standard input) +and writes the sorted output to +standard output. +.PP +Whole lines are sorted into increasing order, using lexicographic ordering of Unicode characters +by default. +The sort is stable, so that lines that compare equal will appear in the output +in the same order as in the original file. +The sort order is affected by the following options: +.TP +.B -n +Each line is assumed to have an initial numeric string representing an integer, +with optional plus or minus sign, and the lines +are sorted by those numeric values into increasing order. +.TP +.B -r +Reverses the sense of comparisons. +.SH BUGS +The entire file is read into memory to be sorted. diff --git a/static/inferno/man1/spree-join.1 b/static/inferno/man1/spree-join.1 new file mode 100644 index 00000000..9d71b6c3 --- /dev/null +++ b/static/inferno/man1/spree-join.1 @@ -0,0 +1,45 @@ +.TH SPREE-JOIN 1 +.SH NAME +join \- join a spree clique. +.SH SYNOPSIS +.B spree/join +[ +.B -d +.I mntdir +] [ +.B -j +.I joinrequest +] +.I name +.SH DESCRIPTION +When a +.IR spree (4) +instance has been mounted from somewhere on the +network, +.B join +can be used to join a clique and fire up the appropriate +module to perform the client-side display. +.I Mntdir +gives the directory where the spree +instance is mounted (default +.BR /n/remote ); +.I joinrequest +gives the initial join request to be passed to the clique +(default +.IR join ). +.I Name +is the name of the clique's directory within the spree +directory. +.SH EXAMPLE +When spree is started, it creates a ``lobby'' engine +that keeps a record of what cliques have been started, who +is a member of which, etc. +.EX + spree/join 0 +.EE +will connect to this session. +.SH SOURCE +.B /appl/spree/join.b +.SH "SEE ALSO" +.IR spree (4), +.IR spree (2) diff --git a/static/inferno/man1/stack.1 b/static/inferno/man1/stack.1 new file mode 100644 index 00000000..503af96e --- /dev/null +++ b/static/inferno/man1/stack.1 @@ -0,0 +1,166 @@ +.TH STACK 1 +.SH NAME +stack, stackv \- examine call stack +.SH SYNOPSIS +.B "bind '#p' /prog" +.br +.B stack +[ +.B -v +] +[ +.B -p +.I dispath +.I sblpath +]... +.I pid +.br +.B stackv +[ +.B -Tlm +] [ +.B -r +.I maxdepth +] [ +.I pid\fR[\f5.\fIsym\fR] ...] ... +.SH DESCRIPTION +.I Stack +writes to the standard output a stack trace for process +.IR pid , +by +decoding the stack traceback data contained in the file +.BI /prog/ pid /stack . +The +.B -v +option causes +.I stack +to print values of arguments and variables. +The output is most useful when the Limbo program +was compiled with the +.B -g +option to produce a +.B .sbl +symbol file. +.PP +.I Stack +has a built-in list of associations between +.B dis +directories and their associated source directories +(e.g. it can automatically map from +.B /dis/ls.dis +to +.BR /appl/cmd/ls.sbl ). +Giving the +.B -p +option adds a new association to the head of this list: +if a module path prefix matches +.IR dispath , +.I stack +will search for a symbol file in +.IR sblpath . +If the environment variable +.B $sblpath +is set, pairs of items from it are added to the +association list, as given as +.B -p +options. +The +.B -p +options take precedence over +.BR $sblpath . +.PP +.I Stackv +recursively traverses the symbols it finds, printing +values as it goes. Repeated identical structure is not +shown \- only the pointer value is printed, followed by +.BR (qv) . +Each argument gives a starting point +for the traversal, rooted by a process id, +.IR pid . +If an unadorned process id is given, all values in all +stack frames in the process will be printed; adding names +specifies the starting point. For instance, +.B 123.init.ctxt.display +might specify the +.B display +field inside the +.B ctxt +adt inside the +.B init +function inside the process +.BR 123 . +.I Stackv +understands the following options: +.TP 10 +.B -l +Show source line information with each item. +.TP +.B -m +Show module variables accessible from each stack frame. +.TP +.B -T +Do not show the Limbo types of value encountered. +.TP +.BI -r \ maxdepth +Restrict the maximum traversal depth to +.I maxdepth +levels. +.SH EXAMPLE +Run +.I stack +on process with ID 1: +.IP +.EX +$ stack 1 +unknown fn() Module $Sys PC 742103 +waitfor() shnew.b:105.7, 38 +runpipeline() shnew.b:483.2, 14 +runit() shnew.b:552.3, 29 +init() shnew.b:83.3, 28 +.EE +.PP +The process is executing in the +.B Sys +module, a call to +.B sys->read +that originated at line 105 (characters 7 to 38) of the +.B waitfor +function in +.BR shnew.b . +.PP +Once again, with the +.B -v +option to reveal more: +.IP +.EX +$ stack -v 1 +unknown fn() Module $Sys PC 742103 +waitfor(pid=18) shnew.b:105.7, 38 + status=[0] "" + buf=[64] @b419a4 + n=-1 + who=-1 +runpipeline(ctx=nil, pipeline=@b41454) shnew.b:483.2, 14 + pid=18 +runit(ctx=nil, pipes=nil) shnew.b:552.3, 29 + pipeline=@b41454 +init(ctxt=nil, argv=nil) shnew.b:83.3, 28 + buf=[1024] @b40f04 + n=4 + arg=@b41634 + prompt=[21] "$ " +$ +.EE +.SH FILES +.BI /prog/ pid /stack +.br +.BI /prog/ pid /status +.SH SOURCE +.B /appl/cmd/stack.b +.br +.B /appl/cmd/stackv.b +.SH "SEE ALSO" +.IR deb (1), +.IR ps (1), +.IR prog (3), +.IR debug (2) diff --git a/static/inferno/man1/stream.1 b/static/inferno/man1/stream.1 new file mode 100644 index 00000000..8c8ca875 --- /dev/null +++ b/static/inferno/man1/stream.1 @@ -0,0 +1,54 @@ +.TH STREAM 1 +.SH NAME +stream \- stream data between source and sink +.SH SYNOPSIS +.B stream +.RB [ \-a ] +.RB [ \-b +.IR bufsize ] +.I file1 +[ +.I file2 +] +.SH DESCRIPTION +.I Stream +creates a process that uses +.I stream +(see +.IR sys-read (2)) +to stream data in chunks of at most +.I bufsize +bytes (default: +.LR Sys->ATOMICIO , +or 8192 bytes) from +.I file1 +to the standard output. +If +.I file2 +is provided, +the two files are instead cross-connected by two streaming processes: +one process streams data from +.I file1 +to +.IR file2 , +and the other streams data from +.I file2 +to +.IR file1 . +In all cases, +.I stream +writes data to the destination file in full buffers of +.I bufsize +bytes. +.PP +.I Stream +waits for all streaming processes to stop before returning, +unless the +.B -a +(asynchronous) option is given, which causes it to +return after spawning the streamers. +.SH SOURCE +.B /appl/cmd/stream.b +.SH SEE ALSO +.IR cat (1), +.IR sys-read (2) diff --git a/static/inferno/man1/strings.1 b/static/inferno/man1/strings.1 new file mode 100644 index 00000000..af1eb29f --- /dev/null +++ b/static/inferno/man1/strings.1 @@ -0,0 +1,27 @@ +.TH STRINGS 1 +.SH NAME +strings \- extract printable strings +.SH SYNOPSIS +.B strings +[ +.I file ... +] +.SH DESCRIPTION +.I Strings +finds and prints strings containing 6 or more +consecutive printable UTF-encoded characters +in a (typically) binary file, default +standard input. +Printable characters are taken to be +.SM ASCII +characters from blank through tilde (hexadecimal 20 through 7E), inclusive, +and +all other characters from value 00A0 to FFFF. +Strings reports +the decimal offset within the file at which the string starts and the text +of the string. If the string is longer than 70 runes the line is +terminated by three dots and the printing is resumed on the next +line with the offset of the continuation line. +.SH SOURCE +.B /appl/cmd/strings.b + diff --git a/static/inferno/man1/sum.1 b/static/inferno/man1/sum.1 new file mode 100644 index 00000000..37922d6a --- /dev/null +++ b/static/inferno/man1/sum.1 @@ -0,0 +1,47 @@ +.TH SUM 1 +.SH NAME +sum, md5sum, sha1sum \- calculate file's checksum +.SH SYNOPSIS +.B sum +.IR file " ..." +.PP +.B md5sum +[ +.I file " ..." +] +.SH DESCRIPTION +.I Sum +prints the 32-bit checksum (actually a CRC), length in bytes, and name of each +.IR file , +one per line. +It ignores directories. +.PP +.I Md5sum +prints the MD5 message digest (as 32 hexadecimal digits) and the name of each +.IR file , +separated by a tab, +one per line. +If no files are given, the standard input is read. +.PP +.I Sha1sum +is similar, but uses the US National Institute of Standards and Technology's secure +hash algorithm SHA1 instead of MD5. +For each +.IR file , +it prints its SHA1 secure hash (as 40 hexadecimal digits) and the file's name, +separated by a tab, +one per line. +If no files are given, +.I sha1sum +reads the standard input. +.SH SOURCE +.B /appl/cmd/sum.b +.br +.B /appl/cmd/md5sum.b +.br +.B /appl/cmd/sha1sum.b +.SH SEE ALSO +.IR cmp (1), +.IR wc (1), +.IR crc (2), +.IR keyring-sha (2) diff --git a/static/inferno/man1/tail.1 b/static/inferno/man1/tail.1 new file mode 100644 index 00000000..0ae2ca74 --- /dev/null +++ b/static/inferno/man1/tail.1 @@ -0,0 +1,79 @@ +.TH TAIL 1 +.SH NAME +tail \- deliver the last part of a file +.SH SYNOPSIS +.B tail +[ +.RB [\f5+-\fP] \fInumber\fP [\f5lbc\fP][ rf ] +] +[ +.I file +] +.PP +.B tail +[ +.B -fr +] +[ +.B -n +.I nlines +] +[ +.B -c +.I ncharacters +] +[ +.I file +] +.SH DESCRIPTION +.I Tail +copies the named file to the standard output beginning +at a designated place. +If no file is named, the standard input is copied. +.PP +Copying begins at position +.BI + number +measured from the beginning, or +.BI - number +from the end of the input. +.I Number +is counted in lines, 1K blocks or characters, +according to the appended flag +.LR l , +.LR b , +or +.LR c . +Default is +.B -10l +(ten ell). +.PP +The further flag +.L r +causes tail to print lines from the end of the file in reverse order; +.L f +(follow) causes +.I tail, +after printing to the end, to keep watch and +print further data as it appears. +.PP +The second syntax is that promulgated by POSIX, where the +numbers of lines (-n) or characters (-c) are specified separately as signed +integers. Note than an unsigned value is treated as negative, +ie '-n 2' is equivalent to '-n -2'. +.PP +.SH EXAMPLES +.TP +.B tail file +Print the last 10 lines of a file. +.TP +.B tail +0f file +Print a file, and continue to watch +data accumulate as it grows. +.br +According to custom, option +.BI + number +counts lines from 1, and counts +blocks and characters from 0. +.TP +.B tail -nlines +3 file +Print a file starting at line number 3 diff --git a/static/inferno/man1/tcs.1 b/static/inferno/man1/tcs.1 new file mode 100644 index 00000000..c5abf95b --- /dev/null +++ b/static/inferno/man1/tcs.1 @@ -0,0 +1,67 @@ +.TH TCS 1 +.SH NAME +tcs \- translate character sets +.SH SYNOPSIS +.B tcs +.B -l +.RB [ -v ] +[ +.I csname +] +.PP +.B tcs +[ +.B -f +.I ics +] [ +.B -t +.I ocs +] [ +.I file ... +] +.SH DESCRIPTION +.I Tcs +converts its input from the +.I ics +character set encoding into Unicode runes and then outputs the data in the +encoding of the +.I ocs +character set. +The default values of +.I ics +and +.I ocs +are both +.BR utf8 . +This is the standard Inferno Unicode text encoding as described by +.IR utf (6). +If no files are specified +.I tcs +reads from its standard input. +.PP +The +.B -l +option causes +.I tcs +to output the list of character sets that it understands. +The +.B -v +option causes a more detailed listing to be given. +Giving a +.I csname +argument to the +.B -l +option causes +.I tcs +to list the known aliases for that name. +The first name in the list is the standard (or preferred) name. +.SH FILES +.TF /lib/convcs/charsets +.TP +.B /lib/convcs/charsets +Specifies the supported character set names, their aliases and the implementation +of their converters. +.SH SOURCE +/appl/cmd/tcs.b +.SH SEE ALSO +.IR convcs (2) diff --git a/static/inferno/man1/tee.1 b/static/inferno/man1/tee.1 new file mode 100644 index 00000000..1655cbd2 --- /dev/null +++ b/static/inferno/man1/tee.1 @@ -0,0 +1,30 @@ +.TH TEE 1 +.SH NAME +tee \- pipe fitting +.SH SYNOPSIS +.B tee +[ +.B \-a +] +[ +.I file +\&... +] +.SH DESCRIPTION +.I Tee +reads the standard input and writes a copy of each block read +to each +.I file +in turn, and then to the standard output. +Normally +.I tee +rewrites each +.IR file ; +the +.B \-a +option causes data to be appended instead. +.SH SOURCE +.B /appl/cmd/tee.b +.SH SEE ALSO +.IR cat (1), +.IR tail (1) diff --git a/static/inferno/man1/telnet.1 b/static/inferno/man1/telnet.1 new file mode 100644 index 00000000..b840b070 --- /dev/null +++ b/static/inferno/man1/telnet.1 @@ -0,0 +1,35 @@ +.TH TELNET 1 +.SH NAME +telnet \- make a remote telnet connection +.SH SYNOPSIS +.B telnet +.I machine +.SH DESCRIPTION +.B Telnet +uses the Telnet protocol to talk to a remote +.IR machine , +addressed using any form acceptable to +.IR dial (2): +.IB net ! host ! port +in general. +The default +.I net +is +.BR tcp , +and the default +.I port +is 23, the standard Telnet login port. +.PP +.I Telnet +connects to the given +.I machine +and interprets the Telnet protocol. +It reads data from its standard input +and sends it to the remote machine, and +copies to the standard output the data it receives from the remote machine. +.SH SOURCE +.B /appl/cmd/telnet.b +.SH SEE ALSO +.IR cpu (1) +.br +``Telnet protocol specification'', RFC854 (1 May 1983) and related RFCs. diff --git a/static/inferno/man1/time.1 b/static/inferno/man1/time.1 new file mode 100644 index 00000000..5c1f3099 --- /dev/null +++ b/static/inferno/man1/time.1 @@ -0,0 +1,34 @@ +.TH TIME 1 +.SH NAME +time \- time command execution +.SH SYNOPSIS +.B time +.I command +[ +.I arg ... +] +.SH DESCRIPTION +.I Time +executes the +.I command +with the given arguments, and reports on standard error the command's +load time, real time for execution, and the total, in seconds. +The load time +is just the time for +.I time +itself to load +.IR command ; +loads done later by the command are included in the real time. +To time a pipeline, use the +.B -c +option to +.IR sh (1): +.IP +.B "time sh -c 'ps | grep Sh'" +.SH SOURCE +.B /appl/cmd/time.b +.SH "SEE ALSO" +.IR sh (1), +.IR sys-millisec (2) +.SH BUGS +There is no way to measure CPU time (real or virtual) used by a command. diff --git a/static/inferno/man1/timestamp.1 b/static/inferno/man1/timestamp.1 new file mode 100644 index 00000000..ab3900dc --- /dev/null +++ b/static/inferno/man1/timestamp.1 @@ -0,0 +1,36 @@ +.TH TIMESTAMP 1 +.SH NAME +timestamp \- log event times +.SH SYNOPSIS +.B timestamp +[ +.I tag +] +.SH DESCRIPTION +.I Timestamp +reads lines from its standard input and writes them to its +standard output, prefixing each line with the time that +it was written, in decimal milliseconds since +.I timestamp +was started. If +.I tag +is given, it is written along with the time stamp on each line, +to enable tagging if several writers are each writing +to the same log file. +.PP +The first line written gives the time that +.I timestamp +was started, in milliseconds since the epoch. +Note that logging events can cause timings to change, +and that the timestamps are only as accurate as the +times reported by +.BR /dev/time . +.SH SOURCE +.B /appl/cmd/timestamp.b +.SH EXAMPLE +.EX +% {echo hello; sleep 1; echo goodbye} | timestamp eg +0000000000 eg start 1080156139468 +0000000007 eg hello +0000000988 eg goodbye +.EE diff --git a/static/inferno/man1/tiny.1 b/static/inferno/man1/tiny.1 new file mode 100644 index 00000000..1afa1131 --- /dev/null +++ b/static/inferno/man1/tiny.1 @@ -0,0 +1,259 @@ +.TH TINY 1 +.SH NAME +tiny: sh, broke, kill, rm \- reduced command line interface to the Inferno system +.SH SYNOPSIS +.B tiny/sh +[ +.B -n +] [ +.BI -c command +] [ +.I file +] +.PP +.B tiny/broke +.PP +.B tiny/kill +[ +.B -g +] +[ +.I pid ... +] +[ +.I module ... +] +.PP +.B tiny/rm +[ +.I file +\&... +] +.SH DESCRIPTION +The +.I tiny +commands are smaller, simpler versions of more capable but larger Inferno commands. +They are provided for use on devices where a certain level of functionality +might be useful for configuration or maintenance (or development), but +device constraints are such as to make the use of the normal, fleshier versions +of the commands unattractive. +For example, the Dis object files can be as much as 5 times smaller (or better) than the +mainstream alternatives. +They are also useful when initially porting the system. +They live in the directory +.BR /dis/tiny , +but could be placed in the +.B /dis +of a small device +(eg, via +.IR root (3))· +.PP +.I Broke +kills broken processes and prints their process IDs. +.PP +.I Kill +terminates each process (for a numeric +process ID +.IR pid ) +or +process running a given +.I module +(for a non-numeric module name), +by writing a +.L kill +message to the corresponding process's control file +in +.IR prog (3). +The +.B -g +option causes +.I kill +to write a +.L killgrp +message instead, killing all processes in the given process's process group +(see +.IR sys-pctl (2)). +Processes running a +.I module +are identified by their +.L status +file, and the process ID of each such process is printed on standard output. +.PP +.I Rm +removes files and empty directories, subject to the permission rules given in +.IR rm (1). +There are no options. +.PP +.I Sh +provides a simple user level interface (a shell) to the Inferno system. +(It was once the only Inferno shell.) +It reads input lines, identifies a command and arguments for that command, and arranges for execution of the corresponding Inferno module. +There are features that allow input/output redirection, creating pipelines, and performing tasks in background. +It is nevertheless a rudimentary shell designed for starting +and debugging applications. +It is not intended to serve as a general-purpose programmable shell. +.PP +If a file is named as a command line argument, that file is the source of input; otherwise, standard input is read. +.PP +Options are: +.TP +.B -n +Don't fork the namespace. By default, +.I sh +forks the namespace, making subsequent namespace changes invisible to the previous namespace group. +.TP +.BI -c command +Execute the single +.I command +rather than prompting to read commands from the standard input. +.SS "Command line syntax" +Each line consists of one or more command pipelines each separated by either an ampersand (&) which indicates that the pipeline should be run in background or a semi-colon (;). The semi-colon need not be provided for the last command pipeline on a line. +.PP +Command pipelines are not allowed to span lines. +.PP +Each command pipeline consists of one or more commands separated by a vertical bar +.RB ( | ) +character. The standard output of one command is made the standard input of the next command to the right. +.PP +Redirection of input/output to pipes takes precedence over redirection from/to files. +.PP +In the limit case, a command pipeline consists of a single command with no pipes. +.PP +A command consists of one or more fields. The first (leftmost) field is the command field. It is used to determined the executable file to be loaded and run; see below. The remaining fields are parsed and become command line arguments that are passed to the module's init function as a list of strings. +.PP +Any input following a +.B # +on a line is discarded as comment. +.SS "Finding the module" +The command field is converted to the pathname of the Dis file of some module. That field can be either an absolute pathname, starting from +.BR / , +or a relative pathname from the current directory. +.PP +As a convenience, the user need not specify the +.B .dis +suffix to the filename. If missing, it will be added by the shell. +.PP +If the load fails there is, in general, a second attempt to load the module by resolving the pathname relative to the +.B /dis +directory (or any directory bound to the +.B /dis +directory in the current namespace). +.PP +There are two exceptions to this second attempt. The second load attempt is not performed if the command field provides an absolute pathname or a relative pathname starting with dot-slash +.RB ( ./ ). +Such explicit naming is taken to mean that the user will accept no substitutions. +.PP +The shell requires that the Dis file implement a module with an interface equivalent to the +.L Command +module as specified in +.B /module/sh.m +(see +.IR command (2)). +Otherwise, the named file will not load. +.PP +In lieu of a path mechanism, a process can create a union directory at +.BR /dis . +.SS "File name expansion" +Command line arguments (including the command field itself) are expanded by the shell according to the regular expression rules described in +.IR filepat (2). +.PP +This expansion is not applied to the filenames used for input/output redirection. +.SS "Quoting" +The shell special characters can be stripped of their meaning and treated as literals by enclosing them in single quotes. Inside a quoted string, the special meaning of the single quote can be removed by immediately following it with another single quote. Command lines with un-terminated quoted strings are rejected and cause an error message. +.PP +For example: +.IP +.EX +$ echo '''' +\&' +$ echo 'don''t' +don't +$ echo 'hello' 'world +sh: unmatched quote +$ echo 'a'b +ab +$ echo a'b' +ab +$ +.EE +.SS "Shell special characters" +The following characters are treated specially by +.I sh +and must be quoted to be taken literally: +.TP +blank +white space, except in a quoted string +.TP +tab +white space, except in a quoted string +.TP +newline +command line terminator +.TP +.B # +Start of comment +.TP +.B ' +Start of/end of quoted string (single quote) +.TP +.B | +Interface between commands in a command pipeline. +.TP +.B & +Terminator for command pipelines to be run in background. +.TP +.B ; +Terminator for command pipelines to be run synchronously by the shell. +.TP +.B > +Output re-direction: create file if it does not exist; truncate file if it exists +.TP +.B >> +Output re-direction: create file if it does not exist; append to file if it exists +.TP +.B < +Input re-direction. +.SS "Prompt" +The shell uses a prompt consisting of the system name as provided by +.B /dev/sysname +suffixed by +.BR $ . +.PP +.SS "Input/output re-directions" +By default, standard input is the console keyboard and standard output the console display. Each command can specify that standard input be taken from a file and standard output be written to a file. +.PP +Attempts to redirect standard input to a non-existing file will fail. Redirecting standard output to a non-existing file will cause that file to be created. If the destination file already exists, it will be overwritten. Any previous contents are lost. +.PP +In cases of competing re-direction mechanisms (re-direct to a file and to a pipe), the pipe has precedence. +.PP +.SS "Background tasks" +In general, the shell waits for the termination of a command pipeline before continuing execution, for example, prompting the user for the next command. However, if the command pipeline is terminated by an ampersand +.RB ( & ) +character, the wait stage is skipped and the shell continues execution immediately, in this case the command pipeline executes as a background task. +.PP +.SS "Name space concerns" +When started, the shell creates an independent file name space that is a copy of the file name space of the shell's creator. +.PP +Command pipelines started by the shell are executed by threads that share the shell's name space. If those commands modify the file name space (and they have not mimicked the shell in creating their own independent name space), those modifications will be perceived by the shell when it continues execution. See +.IR bind (1) +and +.IR sys-pctl (2). +.SH FILES +.BI /prog/ n /wait +.SH SOURCE +.B /appl/tiny/broke.b +.br +.B /appl/tiny/kill.b +.br +.B /appl/tiny/rm.b +.br +.B /appl/tiny/sh.b +.SH "SEE ALSO" +.IR bind (1), +.IR sh (1), +.IR filepat (2), +.IR command (2), +.IR sys-pctl (2), +.IR cons (3), +.IR pipe (3), +.IR prog (3) diff --git a/static/inferno/man1/tkcmd.1 b/static/inferno/man1/tkcmd.1 new file mode 100644 index 00000000..9d1e76e8 --- /dev/null +++ b/static/inferno/man1/tkcmd.1 @@ -0,0 +1,53 @@ +.TH TKCMD 1 +.SH NAME +tkcmd \- enter Tk commands interactively +.SH SYNOPSIS +.B tkcmd +[ +.B -iu +] [ +.I tkarg +] +.SH DESCRIPTION +.B Tkcmd +allows interactive entry of Tk commands; it is useful for +testing out features of Tk prior to incorporating them in +a Limbo program. It accepts two arguments: +.TP +.B -i +Force interactive mode. In interactive mode (the default if the +standard input is directed at +.BR /dev/cons ), +a prompt is printed before every tk command entered. +.TP +.B -u +Suppress the automatic tk update command after +every entered command. +.PP +When +.I tkcmd +is started, a new top level window is created; +.I tkcmd +creates a titlebar and handles all the normal +window window manager interactions. +When the window is closed, +.I tkcmd +terminates. +Each line typed to +.I tkcmd +is passed directly to the function +.B Tk->cmd +(see +.IR tk (2)) +and executed in the context of the top level window; +a Tk ``update'' command is then issued. +Any return value from the command is printed. +There is one predefined Tk channel, +named ``stdout''; anything sent down this channel will +be printed to the standard output. +.SH SOURCE +.B /appl/cmd/tkcmd.b +.SH SEE ALSO +.IR tk (2), +.IR intro (9), +.IR sh-tk (1) diff --git a/static/inferno/man1/tktester.1 b/static/inferno/man1/tktester.1 new file mode 100644 index 00000000..dfa9525a --- /dev/null +++ b/static/inferno/man1/tktester.1 @@ -0,0 +1,154 @@ +.TH TKTESTER 1 +.SH NAME +tktester \- test Tk widgets and help design Tk layouts +.SH SYNOPSIS +.B wm/tktester +[ +.B -import +] +.SH DESCRIPTION +.I Tktester +not only tests the +.IR tk (2) +widget implementation but can help when designing Tk application layouts. +Its main window contains the design area where widgets are placed and edited. Most of the commands for creating and moving widgets are located on the control bar just below the design area although a few commands may be found in the menus at the top of the window. Output is sent to the text box below the control bar. +.PP +Widget properties may be modified using the config window and widget commands called from the command window. +.SH Main Window +This is split into four areas: +.PP +.SS Menu Bar +This contains various file operations as well as a few commands +.TP 10 +.B File +New: Starts a new file +.br +Open: Opens a saved file +.br +Snarf: Sends the current file to snarf +.br +Save: Saves the current file +.br +Save as: Asks for a new filename and then saves the file +.br +Exit: Close \f1tktester\fR +.TP +.PP +Files are saved in the form of a list of tk commands. This means that they can easily be imported into programs as part of an array. Files to be loaded must have .f as the top frame with no widgets outside it. +.TP 10 +.B Row/Column +The current row/column is the one in which the currently selected widget/empty cell is located +Insert - inserts a new row/column either before or after the currently selected row/column +Delete - deletes currently selected row/column +Format - sets the properties for the current row/column +.TP +.B Hidden +Forget - removes the current widget from the display area but does not delete it. The widget name is then added to the 'Hidden' menu and can still be selected by clicking on its name there. This can be useful for operations which require widgets that are not currently packed e.g. placing a frame as a window within a canvas. Forgotten items will still be saved. +.TP +.B Disabled +This menu only appears when a widget has been disabled. In this state, button bindings are ignored so it becomes impossible to select the widget. When a widget is disabled, its name is automatically added to the 'Disabled' menu and can be selected from there. +.PP +.SS Design Area +This is the main area of the main window where the widgets are displayed. To select a widget, click on it with mouse button 3, the control bar shows the name and other information about the currently selected widget. Frames themselves can only be selected by clicking on their label, clicking elsewhere on the frame (if there is no widget there) will select the empty cell, any new widget created will be placed here. Once a widget has been selected, you can move it by clicking on the empty destination cell with mouse button 2. Individual widgets can be moved from one frame to another but frames themselves can currently only be moved within the same parent frame. Clicking mouse button 2 on a widget will delete that widget if the \f1Free Delete\fR button on the control bar is on. +.SS Control Bar +This is split into three different menus. To select the different submenus, click on the >> at the end of the menu title. +.PP +\fIData Menu\fR +.TP 10 +.B Widget +shows information about the current widget +.br +clicking on the \f1Destroy\fR button will delete the currently selected widget. +The \f1Free Delete\fR button to the right of the \f1Destroy\fR button can be toggled on and off by clicking on it. When turned on (red background) , clicking mouse button 2 on a widget in the design area will delete it. +.TP +.B Grid +shows information about the current grid +.br +Clicking the \f1Hide Labels\fR button will hide the frame labels so that you can see what the screen will look like normally. +.PP +\f1Position and Formatting Menu\fR +.TP 10 +.B Move +Move the widget within its current frame +.TP +.B Spanning +Change row and column spanning properties +.TP +.B Padding +Set cell padding, checkbox selects internal or external padding +.TP +.B Position +Adjust widget position, widget can be stretched if opposite positions are selected e.g. to flill horizontaly, select < and > +.PP +\f1New Menu\fR +.PP +Clicking on 'New' will bring up the pack menu, here you can set packing to down or right. This is used when a new widget is created. If the user has not selected an empty cell, the new widget will be placed either below or to the right of the currently selected widget. Clicking on '>>' will scroll the buttons within the menu to the left to allow access to those that might be off screen. +.PP +.SS Output Box +Output and errors are reported here. This box may be hidden by clicking on the grey button located at the bottom of the main window. +.PP +.SH POPUP WINDOWS +.B +.PP +.SS Config Window +This window is opened by clicking on the red button located at the bottom of the main window. To configure a widget's options, the widget must be selected. To modify an option, type the new value required into the relevant entry box and click the 'set' button. Any output (including error messages) returned will be sent to the output box. +.PP +There are two template buttons at the bottom of the config window, set as default and save as default. Set will cause each new widget of the same type to be created with the same options as the currently selected widget. This default will not be remembered once \f1tktester\fR has been closed. Save does the same as set except the default is saved so it will be not be lost if \f1tktester\fR is closed. +.PP +Default Template Options +.PP A few special characters can be used when setting default widget options. +.TP 5 +.B %n +the name of the widget e.g. .f.f1.b2 +.TP +.B %t +the widget type e.g. button +.TP +.B %i +the number of the widget +.PP +By default, each widget with a -text option is set to {%t %i} e.g. button 2. Note: These options only work with default templates, setting the -text option of a specific button to {%t %i} will just cause '%t %i' to be displayed. +.PP +.SS Command Window +This window is opened by clicking on the green button located at the bottom of the main window. To call the commands for a particular widget, the widget must be selected. +.PP +The command window is split into two listboxes and one entry box. The first listbox contains all the main commands available for the current widget type. Selecting a command will bring up a list of subcommands (if they exist) in the second listbox as well as displaying any arguments required above the entrybox. To run a command, first select the command (and any subcommand), then enter the required arguments into the entry box and click run. The command, as well as any output, is sent to the output box on the main window. If no output is returned, the output box will display 'ok'. +.PP +.SH OPTIONS +.TP 10 +.B -import +Tells +.I tktester +to import valid widget commands from the man pages. This data is saved in the +.B tkwargs/ +directory, which must already exist. +.SH FILES +The file +.B tkwargs/widgets +must contain a list of widgets, one per line as follows: +.IP +.RI [ name ] +.RB [ abv ] +.PP +with the fields separated by tabs or spaces. +For example: +.IP +.B "menubutton mb" +.br +.B "listbox lb" +.PP +.SH SOURCE +.B /appl/wm/tktester +.SH BUGS +The command window sometimes lists a command more than once. It does not matter which one is used. +.PP +In a saved file, any grid commands must put -row and -column options \f1before\fR -rowspan or -columnspan. +.PP +Tktester can crash when loading a file if it is not in the correct format. +.PP +.SH PROPOSED ADDITIONS +.SS Allow renaming of widgets +At the moment, \f1tktester\fR can only load, save and use tk commands where the widget names adhere to the format .abv[n] where abv is the abreviation for the widget type e.g. b for buttons, sb for scrollbars etc and n is an optional number. It would be better to allow users to have more meaningful names such as .f.fmenu. Implementing this would also make it possible to load in commands written outside of \f1tktester\fR for testing or modification purposes. +.PP +.SS Column and Row indicators +This would more clearly show which rows and columns widgets were in (especially when widgets are spanning more than one). Also could be used to select individual rows and columns more explicity and maybe for multiple selections. diff --git a/static/inferno/man1/toolbar.1 b/static/inferno/man1/toolbar.1 new file mode 100644 index 00000000..2b934a9f --- /dev/null +++ b/static/inferno/man1/toolbar.1 @@ -0,0 +1,99 @@ +.TH TOOLBAR 1 +.SH NAME +toolbar \- window manager toolbar +.SH SYNOPSIS +.B wm/toolbar +[ +.B -s +] [ +.B -p +] +.SH DESCRIPTION +.I Toolbar +is designed to be run as the controlling application under +an instance of +.IR wm (1). +It runs an initialisation shell script, +provides a menu allowing the user to start new programs. +and shows icons representing windows that have been hidden. +.PP +When +.I toolbar +is started, it configures itself by means of the +.B /lib/wmsetup +shell script. +.I Toolbar +loads the shell +.IR sh (1), +and defines the following +shell built-in +commands before executing the script: +.HP +.B menu +.I title1 +.RI [ title2] +.I command +.br +Insert an item at the top of the start menu. +.I Title1 +is the text of the item on the main menu. +If +.I title2 +is given then +.I title1 +is a sub-menu with +.I title2 +as the menu item. +.I Command +is executed by the shell whenever the item is selected. +An item with an empty command is displayed as a separator. +.HP +.B delmenu +.br +Forget all menu items. +.PP +The standard +.B /lib/wmsetup +script executes the script +.BI /usr/ username /lib/wmsetup , +enabling each user to have their own window manager configuration. +.PP +Normally +.I toolbar +packs a menu button referring to the start menu at the left hand side of the tool bar. +The +.B -s +option suppresses that. +.PP +.I Toolbar +serves the shared +.I "snarf buffer" +used by cut and paste in +.IR wm (1) +applications, +except in hosted Inferno where the host's standard clipboard system is used instead, +via +.IR snarf (3). +If +.I toolbar +cannot find +.B /chan/snarf +or the +.B -p +option is given, +.I toolbar +will create its own snarf buffer, private to the set of +applications running under the current instance of +.IR wm (1). +.SH FILES +.TP +.B /lib/wmsetup +Initialisation shell-script. +.SH SOURCE +.B /appl/wm/toolbar.b +.SH "SEE ALSO" +.IR wm(1), +.IR tkclient (2), +.IR wmclient (2), +.IR toolbar (1), +.IR logon (1). diff --git a/static/inferno/man1/touch.1 b/static/inferno/man1/touch.1 new file mode 100644 index 00000000..89b469aa --- /dev/null +++ b/static/inferno/man1/touch.1 @@ -0,0 +1,27 @@ +.TH TOUCH 1 +.SH NAME +touch \- update the modification time of one or more files +.SH SYNOPSIS +.B touch +.RB [ -c ] +[ +.BI -t " time" +] +.I files +.SH DESCRIPTION +.B Touch +attempts to set the modification time of the specified files to +.I time +(by default, the current system time). +If a file does not exist, +.B touch +will attempt to create it, unless the +.B -c +option is given. +.SH SOURCE +.B /appl/cmd/touch.b +.SH SEE ALSO +.IR ls (1), +.IR chmod (1), +.IR sys-stat (2), +.IR stat (5) diff --git a/static/inferno/man1/tr.1 b/static/inferno/man1/tr.1 new file mode 100644 index 00000000..dba92c96 --- /dev/null +++ b/static/inferno/man1/tr.1 @@ -0,0 +1,95 @@ +.TH TR 1 +.SH NAME +tr \- translate characters +.SH SYNOPSIS +.B tr +[ +.B -cds +] +[ +.I string1 +[ +.I string2 +] +] +.SH DESCRIPTION +.I Tr +copies the standard input to the standard output with +substitution or deletion of selected characters (runes). +Input characters found in +.I string1 +are mapped into the corresponding characters of +.IR string2 . +When +.I string2 +is short it is padded to the length of +.I string1 +by duplicating its last character. +Any combination of the options +.B -cds +may be used: +.TP +.B -c +Complement +.IR string1 : +replace it with a lexicographically ordered +list of all other characters. +.TP +.B -d +Delete from input all characters in +.IR string1 . +.TP +.B -s +Squeeze repeated output characters that occur in +.I string2 +to single characters. +.PP +In either string a noninitial sequence +.BI - x\f1, +where +.I x +is any character (possibly quoted), stands for +a range of characters: +a possibly empty sequence of codes running from +the successor of the previous code up through +the code for +.IR x . +The character +.L \e +followed by 1, 2 or 3 octal digits stands for the +character whose +16-bit +value is given by those digits. +The character sequence +.L \ex +followed by 1 to 6 hexadecimal digits stands +for the character whose +21-bit value is given by those digits. +A +.L \e +followed by any other character stands +for that character. +.SH EXAMPLES +Replace all upper-case +.SM ASCII +letters by lower-case. +.IP +.EX +tr A-Z a-z lower +.EE +.PP +Create a list of all +the words in +.L file1 +one per line in +.LR file2 , +where a word is taken to be a maximal string of alphabetics. +.I String2 +is given as a quoted newline. +.IP +.EX +tr -cs A-Za-z ' +\&' file2 +.EE +.SH SOURCE +.B /appl/cmd/tr.b diff --git a/static/inferno/man1/tsort.1 b/static/inferno/man1/tsort.1 new file mode 100644 index 00000000..05558bc6 --- /dev/null +++ b/static/inferno/man1/tsort.1 @@ -0,0 +1,26 @@ +.TH TSORT 1 +.SH NAME +tsort \- topological sort +.SH SYNOPSIS +.B tsort +.SH DESCRIPTION +.I Tsort +reads a set of partial order relations between labels (sequences of non-space characters) +from its standard input, +and lists the labels on its standard output one per line following a topological sort. +Each input line represents a set of inequalities: the first label on the line is less than +all the others on the same line, and should appear earlier +in sorted order. +(The relation might for instance represent arcs in a directed graph, from +the first label on a line to the others, or dependency relationships.) +Labels on a line are separated by space or tab. +.SH DIAGNOSTICS +If the input contains cycles, +.I tsort +prints a diagnostic on standard error for each cycle, listing its members. +The members of each cycle will also appear on the standard output, in any order, +but after any predecessors outside the cycle. +.SH SOURCE +.B /appl/cmd/tsort.b +.SH SEE ALSO +.IR sort (1) diff --git a/static/inferno/man1/unicode.1 b/static/inferno/man1/unicode.1 new file mode 100644 index 00000000..e945fe1d --- /dev/null +++ b/static/inferno/man1/unicode.1 @@ -0,0 +1,62 @@ +.TH UNICODE 1 +.SH NAME +unicode \- interpret Unicode characters +.SH SYNOPSIS +.B unicode +[ +.B -nt +] +.IB hexmin - hexmax +.PP +.B unicode +[ +.B -t +] +.I hex ... +.PP +.B unicode +[ +.B -n +] +.I char ... +.SH DESCRIPTION +.I Unicode +converts between UTF and character values from the Unicode Standard (see +.IR utf (6)). +.PP +If given a range of hexadecimal numbers, +.I unicode +prints a table of the specified Unicode characters including their values and UTF representations. +Otherwise, it translates from UTF to numeric value or numeric value to UTF, depending on the appearance of the supplied text. +If converting to UTF, the characters are printed one per line. +.PP +The options are: +.TP +.B -n +Forces numeric output to avoid ambiguity with numeric characters. +.TP +.B -t +Output a single string containing the specified characters, rather than one per line. +.PP +The output of +.I unicode +might not be helpful if the characters printed are not available in the current font. +.SH EXAMPLES +.TP +.B "unicode p" +Print the hex value of +.BR p . +.TP +.B "unicode 2200-22f1" +Print a table of miscellaneous mathematical symbols. +.SH FILES +.TF /lib/unicode +.TP +.B /lib/unicode +Table of characters and descriptions. +.SH SOURCE +.B /appl/cmd/unicode.b +.SH "SEE ALSO" +.IR tr (1), +.IR utf (6), +.IR font (6) diff --git a/static/inferno/man1/uniq.1 b/static/inferno/man1/uniq.1 new file mode 100644 index 00000000..41701bca --- /dev/null +++ b/static/inferno/man1/uniq.1 @@ -0,0 +1,36 @@ +.TH UNIQ 1 +.SH NAME +uniq \- report repeated lines in a file +.SH SYNOPSIS +.B uniq +[ +.B -udc +] +[ +.I file +] +.SH DESCRIPTION +.I Uniq +copies the input +.IR file , +or the standard input, to the +standard output, comparing adjacent lines. +In the normal case, the second and succeeding copies +of repeated lines are +removed. +Repeated lines must be adjacent +in order to be found. +.TP +.B -u +Print unique lines. +.TP +.B -c +Prefix a repetition count and a tab to each output line. +.TP +.B -d +Print (one copy of) duplicated lines. +.SH SOURCE +.B /appl/cmd/uniq.b +.SH "SEE ALSO" +.IR comm (1), +.IR sort (1) diff --git a/static/inferno/man1/units.1 b/static/inferno/man1/units.1 new file mode 100644 index 00000000..61cba702 --- /dev/null +++ b/static/inferno/man1/units.1 @@ -0,0 +1,110 @@ +.TH UNITS 1 +.if n .ds / / +.SH NAME +units \- conversion program +.SH SYNOPSIS +.B units +[ +.B -v +] +[ +.I file +] +.SH DESCRIPTION +.I Units +converts quantities expressed +in various standard scales to +their equivalents in other scales. +It works interactively in this fashion: +.IP +.EX +you have: inch +you want: cm + * 2.54 + / 0.3937008 +.EE +.PP +A quantity is specified as a multiplicative combination +of units and floating point numbers. +Operators have the following precedence: +.IP +.EX +.ta \w'\fLXXXXXXXXXXXXXXX'u +\fL+\fP \fL-\fP \f1add and subtract +\fL*\fP \fL/\fP \fL×\fP \fL÷\fP \f1multiply and divide +catenation multiply +\fL²\fP \fL³\fP \fL^\fP \f1exponentiation +\fL|\fP \f1divide +\fL(\fP ... \fL)\fP \f1grouping +.EE +.PP +Most familiar units, +abbreviations, and metric prefixes are recognized, +together with a generous leavening of exotica +and a few constants of nature including: +.IP +.de fq +\fL\\$1\\fP \\$2 \\$3 \\$4 \\$5 \\$6 +.. +.ta \w'\fLwaterXXX'u +.nf +.fq pi,\f1π\fP ratio of circumference to diameter +.fq c speed of light +.fq e charge on an electron +.fq g acceleration of gravity +.fq force same as \fLg\fP +.fq mole Avogadro's number +.fq water "pressure head per unit height of water" +.fq au astronomical unit +.fi +.PP +The +.L pound +is a unit of +mass. +Compound names are run together, e.g. +.LR lightyear . +British units that differ from their US counterparts +are prefixed thus: +.LR brgallon . +Currency is denoted +.LR belgiumfranc , +.LR britainpound , +etc. +.PP +The complete list of units can be found in +.BR /lib/units . +A +.I file +argument to +.I units +specifies a file to be used instead of +.BR /lib/units. +The +.B -v +flag causes +.I units +to print its entire database. +.SH EXAMPLE +.EX +you have: 15 pounds force/in² +you want: atm + * 1.020689 + / 0.9797299 +.EE +.SH FILES +.B /lib/units +.SH SOURCE +.B /appl/cmd/units.y +.br +.B /appl/cmd/units.b +.SH BUGS +Since +.I units +does only multiplicative scale changes, +it can convert Kelvin to Rankine but not Centigrade to +Fahrenheit, except that the latter is handled as a special case. +.br +Currency conversions are only as accurate as the last time someone +updated +.BR /lib/units . diff --git a/static/inferno/man1/uuencode.1 b/static/inferno/man1/uuencode.1 new file mode 100644 index 00000000..89d6a366 --- /dev/null +++ b/static/inferno/man1/uuencode.1 @@ -0,0 +1,79 @@ +.TH UUENCODE 1 +.SH NAME +uuencode, uudecode \- encode/decode a file +.SH SYNOPSIS +.B uuencode +[ +.I sourcefile +] +.I remotefile +.PP +.B uudecode +[ +.B -p +] +[ +.I encodedfile ... +] +.SH DESCRIPTION +.I Uuencode +and +.I Uudecode +are used to transmit files over transmission mediums that do not support other than simple +ASCII data. +.PP +.I Uuencode +converts a file to a purely ASCII based representation. It encodes the contents of +.I sourcefile +or the standard input if no source file is given. The +.I remotefile +is included in the encoded file's header as the name of the file into which +.I uudecode +should place the decoded data. The header also includes the permission modes of the +source file so that these can be preserved on decoding. The encoded output of +.I uuencode +is sent to the standard output. +.PP +.I Uudecode +reads a file, ignoring any leading and trailing lines that are not part of the encoding, and +recreates the original file with the filename and mode specified in it's header. The file +to decode is +.I encodedfile +or standard input if none is given. The +.B -p +flag can be used to send the decoded data to standard output rather than saving it in +the file whose name is specified in the header. +.SH EXAMPLES +.PP +Encode a dis file limbo.dis so that it can be included in a mail message: +.IP +.EX +uuencode limbo.dis limbo.dis > tmp + +.EE +.PP +Decode the mail message(msg say): +.IP +.EX +cat msg | uudecode +.EE +.PP +This creates the file limbo.dis. +.PP +Decode the mail message into a file of your choosing(tmp.dis say): +.IP +.EX +cat msg | uudecode -p > tmp.dis +.EE +.SH SOURCE +.B /appl/cmd/uuencode.b +.br +.B /appl/cmd/uudecode.b +.SH BUGS +The encoded file is expanded by at least a third. +.br +Decoding a file may overwrite an existing file. +.br +Uuencode should take the remote file name to be the same as the source file if one +is not given. + diff --git a/static/inferno/man1/vacget.1 b/static/inferno/man1/vacget.1 new file mode 100644 index 00000000..7f364864 --- /dev/null +++ b/static/inferno/man1/vacget.1 @@ -0,0 +1,103 @@ +.TH VACGET 1 +.SH NAME +vacget, vacput \- venti archive utilities +.SH SYNOPSIS +.B vacget +[ +.B -vdpt +] [ +.B -a +.I addr +] +.I vac:score +.br +.B vacput +[ +.B -vd +] [ +.B -i +| +.B -x +] [ +.B -a +.I addr +] [ +.B -b +.I blocksize +] [ +.B -n +.I name +] [ +.B -u uid +] [ +.B -g gid +] +.I path ... +.SH DESCRIPTION +.I Vacget +retrieves a venti archive from a venti server to the current working directory. +.PP +.I Vacput +writes a venti archive to a venti server. The +.I paths +are walked recursively and all files and directories written to the archive. Temporary files, i.e. those with the +.B DMTMP +bit set, are skipped. Writing only changed files relative to a previously written archive is not implemented. +.TP +.B -d +Print debug messages. +.TP +.B -p +Try to preserve file permissions and owner/group. Only for vacget. +.TP +.B -v +Be verbose. Prints files as they are being retrieved or written. +.TP +.B -t +List files, do not write them. Only for vacget. +.TP +.BI -a " address" +Dial +.I address +instead of the default venti server. +.TP +.BI -b " blocksize" +Use blocks with +.I blocksize +bytes instead of the default 8192 byte blocks. Only for vacput. +.TP +.BI -n " name" +Use +.I name +as the name in the root block. Only for vacput. +.TP +.BR -i " or " -x +Read a list of files from stdin to include +.RB ( -i ) +or exclude +.RB ( -x ) +from the (recursively walked) +.I paths +specified on the command-line. +Only for vacput. +.TP +.BI -u " uid" +Use +.I uid +for all files. +Only for vacput. +.TP +.BI -g " gid" +Use +.I gid +for all files. +Only for vacput. +.SH SOURCE +.B /appl/cmd/vacget.b +.br +.B /appl/cmd/vacput.b +.SH SEE ALSO +.IR venti (2), +.IR vacfs (4) +.SH BUGS +These tools need more testing. diff --git a/static/inferno/man1/wc.1 b/static/inferno/man1/wc.1 new file mode 100644 index 00000000..9df4bca7 --- /dev/null +++ b/static/inferno/man1/wc.1 @@ -0,0 +1,29 @@ +.TH WC 1 +.SH NAME +wc \- count lines, words, and characters +.SH SYNOPSIS +.B wc +[ +.B -lwceb +] +[ +.I file ... +] +.SH DESCRIPTION +.I Wc +writes to standard output a tally of lines, words, and characters found in each +.IR file , +assumed to be text in UTF format. +If no files are named, standard input is read. One line is output per file. If several files are specified, an additional line is written giving totals. +.PP +`Words' are maximal sequences of characters separated by blanks, tabs and newlines. +.PP +Counts are output in the same order as the listing of the option letters +.BR lwceb ; +select lines, words, UTF characters, erroneously-encoded characters, and bytes, respectively. +If no options are given, lines, words and characters are counted. +.SH SOURCE +.B /appl/cmd/wc.b +.SH "SEE ALSO" +.IR tr (1), +.IR utf (6) diff --git a/static/inferno/man1/webgrab.1 b/static/inferno/man1/webgrab.1 new file mode 100644 index 00000000..97b80c72 --- /dev/null +++ b/static/inferno/man1/webgrab.1 @@ -0,0 +1,141 @@ +.TH WEBGRAB 1 +.SH NAME +webgrab \- fetch web page content as files +.SH SYNOPSIS +.B webgrab +[ +.B -r +] [ +.B -v +] [ +.BI -o " stem" +] [ +.BI -p " body" +] +.I url +.SH DESCRIPTION +.I Webgrab +connects to the web server named in the +.IR url . +It fetches the content of the web page also determined by the +.IR url , +and stores it locally in a file. +If the page is written in HTML, +.I webgrab +reads it to build a list of sub-component pages (eg, frames) and images. +It fetches those, saving the content in separate files. +It adds a comment to the end of each HTML file giving the time, and the file's origin. +It automatically follows redirections offered by the server. +.PP +The +.I stem +of the names of the output files is normally derived from a component of the +.IR url . +If the +.I url +contains a path name, the +.I stem +is the component of that path, less any dot-separated suffix and prefix. +For example, given +.IP +.BR http://www.vitanuova.com/inferno/old.index.html +.PP +the stem would be +.BR index . +If there is no path name, but the +.I url +contains a domain name, the +.I stem +is the penultimate component of the domain name (eg, excluding +trailing +.BR .com , +and initial +.BR www , +etc). +For example, given +.IP +.B www.innerhost.vitanuova.com +.PP +the stem would be +.BR vitanuova . +If all else fails, +.I webgrab +uses the +.I stem +.BR webgrab . +.PP +Given a +.IR stem , +the initial page is stored in +.IB stem . suffix +where +.I suffix +is the suffix (eg, +.BR .html ) +of the name of the original page. +Subordinate pages are saved in a similar way in files named +.IB stem _1. suffix1, +.IB stem _2. suffix2, +\&... . +.PP +The options are: +.TP +.B -r +do not fetch subcomponents (just the `raw' source of +.I url +itself) +.TP +.B -v +print a progress report +.TP +.B -vv +print a chatty progress report +.TP +.BI -o " stem" +use the +.I stem +as given +.TP +.BI -p " body" +Use HTTP +.B POST +instead of +.BR GET , +posting +.I body +as the data +.PP +.I Webgrab +reads the +configuration file +.B /services/webget/config +(if it exists), +to look for the address of an optional HTTP proxy +(in the +.L httpproxy +entry), and list of domains for which a proxy should not be used +(in the +.B noproxy +or +.B noproxydoms +entry). If symbolic network and service names might be involved, the +connection server +.B lib/cs +needs to be already running. +.SH FILES +.B /services/webget/config +.SH SOURCE +.B /appl/cmd/webgrab.b +.SH BUGS +It should read the proxy name from the +.IR charon (1) +configuration file and not the +.I webget +configuration file. +.br +It cannot do `secure' transfers +.RB ( https ). +.br +Its HTML parsing is naive, but on the other hand, it is less likely to trip over HTML novelties. +.SH "SEE ALSO" +.IR cs (8) diff --git a/static/inferno/man1/whois.1 b/static/inferno/man1/whois.1 new file mode 100644 index 00000000..dfaefe88 --- /dev/null +++ b/static/inferno/man1/whois.1 @@ -0,0 +1,40 @@ +.TH WHOIS 1 +.SH NAME +whois \- query whois databases +.SH SYNOPSIS +.B whois +[ +.B -a +.I server +] +[ +.B -n +] +.I host +.SH DESCRIPTION +.I Whois +queries whois servers to find owner information for domain names and +network addresses. By default, it looks for referrals to other whois +database servers and queries the next server in the chain if it finds +one. + +.TP +.B -a +Specify a different server to start the query. (Default: +.I tcp!whois.iana.org!43 +) +.TP +.B -n +Do not attempt to follow referrals. +.SH EXAMPLE +To query for the owner of a domain and then an IP address, using a +specific server while ignoring referrals to other servers: +.IP +.EX +whois inferno-os.org +whois -a whois.ripe.net -n 148.251.6.120 +.EE +.SH SOURCE +.B /appl/cmd/whois.b +.SH "SEE ALSO" +.IR RFC3912 diff --git a/static/inferno/man1/wish.1 b/static/inferno/man1/wish.1 new file mode 100644 index 00000000..930c25d3 --- /dev/null +++ b/static/inferno/man1/wish.1 @@ -0,0 +1,86 @@ +.TH WISH 1 +.SH NAME +wish \- interface to the Tk graphics toolkit +.SH SYNOPSIS +.B wish +[ +.I file ... +] +.PP +.B wm/wish +[ +.B -k +] +[ +.BI -f " file" +] +.SH DESCRIPTION +.I Wish +provides a Tcl +command line interface to the Limbo/Tk graphics toolkit. +The input should be in the format of Tcl or Tk commands +(see +.IR intro (9)). +There are two variants. +.PP +Plain +.B wish +must be run from the Inferno console instead of +.IR mux (1) +or +.IR wm (1). +It takes input from each +.I file +in turn, then prompts for further commands from the standard input. +Its commands operate on a Tk toplevel covering the whole screen. +.PP +.BR Wm/wish +runs instead in a shell window under +.IR wm (1). +It reads initial input from the optional +.IR file , +then prompts for further commands on its standard input unless +the +.B -k +option is given. +Its commands operate on the Tk toplevel of a new window +created by +.B Wmlib->titlebar +(see +.IR wmlib (2)), +initially titled +.BR WishPad . +.PP +The following special input sequences are recognised: +.TP +.B \en +newline +.TP +.B \et +tab +.TP +.B \eb +backspace +.TP +.B \e\e +backslash +.SH FILES +.B /dev/pointer +.br +.B /dev/keyboard +.SH SOURCE +.B /appl/cmd/wish.b +.br +.B /appl/wm/wish.b +.SH "SEE ALSO" +.IR sh-tk (1), +.IR tkcmd (1), +.IR tk (2), +.IR intro (9) +.SH BUGS +Arguably this has been superseded by +.IR sh-tk (1) +for scripting Tk applications, +and +.IR tkcmd (1) +for development and testing of Tk configurations for use by Limbo programs. diff --git a/static/inferno/man1/wm-misc.1 b/static/inferno/man1/wm-misc.1 new file mode 100644 index 00000000..d6e9ff11 --- /dev/null +++ b/static/inferno/man1/wm-misc.1 @@ -0,0 +1,247 @@ +.TH WM-MISC 1 +.SH NAME +about, clock, coffee, colors, date, edit, mand, memory, polyhedra, reversi, rt, stopwatch, sweeper, task, tetris, unibrowse, view, winctl \- miscellaneous graphical applications +.SH SYNOPSIS +.B wm/about +.br +.B wm/clock +.br +.B wm/coffee +.br +.B wm/colors +.br +.B wm/date +.br +.B wm/edit +.RI [ file ] +.br +.B wm/mand +.br +.B wm/memory +.br +.B wm/polyhedra +.br +.B wm/reversi +.br +.B wm/rt +.br +.B wm/stopwatch +.br +.B wm/sweeper +.br +.B wm/task +.br +.B wm/tetris +[ +.B -b +.I blocksize +] +.br +.B wm/unibrowse +.br +.B wm/view +[ +.B -i +] +.RI [ file... ] +.br +.B wm/winctl +.SH DESCRIPTION +A collection of simple applications and utilities that operate under the +Wm window manager. +Other Wm applications exist, see their respective manual pages for +more information. +.PP +.TP +.B wm/about +Display system version and copyright information. +.TP +.B wm/clock +Display an analogue clock. +.TP +.B wm/coffee +A whimsical plaything. +.TP +.B wm/colors +Displays the Inferno palette. +Clicking on a particular colour displays its RGB values. +.TP +.B wm/date +Displays the current date and time in a window. +.TP +.B wm/edit +A simple cut-and-paste text editor. +Several menus provide the usual editing commands. +Text selections are dragged out using mouse button 1. +Mouse button-2 displays a pop-up menu of the Cut, Copy and Paste commands. +.TP +.B wm/mand +A fractal browser to explore the Mandelbrot and Julia sets. +Button 1 drags a rectangle to zoom into, button 2 shows the Julia set at the chosen point, button 3 zooms out. +To produce more accurate pictures, the iteration depth may be increased by altering +the depth scale factor. The default number of iterations per point is 253. The sets are +plotted by filling regions of (apparently) the same colour. Deselecting the fill option +will plot the points in the usual fashion. +.TP +.B wm/memory +Displays memory usage. +Three usage bars are displayed, one for each of the Inferno memory +pools: main, heap and image. The current usage (in bytes) is displayed +to the left of each bar, and the number of blocks in use appears in red. +The maximum permitted size of each pool is given (in megabytes) to the right of its +usage bar. +Each bar also sports a highwater mark. +The usage data is re-read and displayed once every second. +.TP +.B wm/polyhedra +A program to display convex regular polyhedra. The menu options allow the user +to alter the speed of rotation and the axis of rotation. To display a different +solid, move forward or back with the prev and next boxes. Selecting the dual +box will show the dual of a solid rather than the original solid. Finally the +edges, clear and faces boxes determine whether edges are shown, whether the +screen is cleared before the next plot and whether faces are shown respectively. +.TP +.B wm/reversi +An implementation of the popular game. The default set up is for black to be the +machine and white the human player. Use the Black and White menu options to +change this. The level of any machine player may be set using the Black level +and White level boxes. This determines the amount of lookahead performed +by the tree search algorithm. +.TP +.B wm/rt +A Dis module inspector: it can show the Dis instructions, strings, +types and other attributes of a module; it also allows the user +to set some attributes stored in a module's header. +.TP +.B wm/stopwatch +A simple-minded stopwatch. +Only useful for coarse-grained timings. +.TP +.B wm/sweeper +Mine sweeping game. +.TP +.B wm/task +Task manager: it lists the processes running when it starts, +and offers buttons to kill a selected process, kill its process group, +show its open files, or debug it using +.IR deb (1). +A process is selected from the list using mouse button 1. +.I Task +does not automatically refresh the list; there is a +.B Refresh +button to prompt it to do so. +.TP +.B wm/tetris +The ubiquitous and annoyingly addictive tile dropping game. +The game keys are: +.RB ` 7 ' +move left; +.RB ` 8 ' +rotate (anti-clockwise); +.RB ` 9 ' +move right; +.RB ` p ' +pause; +.RI ` space ' +drop and +.RB ` q ' +quit. +A mouse or stylus can also be used to guide the pieces (eg, by tapping the screen in the desired direction). +Scores are stored in the file +.BR /lib/scores/tetris . +Score file updates are not interlocked \- it's only a game! +.TP +.B wm/unibrowse +A handy utility for browsing the unicode character set, finding out what +particular characters look like in different fonts, finding out exactly which +characters a font provides, and finding the name of a character +that you have managed to grab into the snarf buffer. +.TP +.B wm/view +Image viewer. +Displays GIF, Inferno +.IR image (6), +JPEG, +PNG +and X bitmap image files. +The viewer creates a new window to display the contents of each +.IR file . +If no arguments are given, the file browser panel +.IR filename (1) +is displayed to prompt the user to select an image file to view. +If the +.B -i +option is given, +.I view +continues to listen for requests from the +.IR plumber (8); +the +.B -i +option will normally appear only in rules in +.IR plumbing (6) +files. +.TP +.B wm/winctl +Window management tool. +Displays a set of buttons that provide for: +raising a window to the top or lowering it to the bottom of the +screen window stack; moving a window to a new position; iconising a window; +deleting a window. +.IP +Click on the button for the required action then click on the window to apply it to. +When moving a window, click and drag the target. +Deleting a window is error-prone. Currently using this tool on a charon or acme +window has strange effects. +.SH PLUMBING +.B wm/view +receives +.B view +messages +.SH FILES +.TP +.B /lib/polyhedra +Polyhedra data base. +.TP +.B /lib/scores/tetris +Tetris high score table. +.TP +.B /lib/unidata +Directory holding Unicode character set information, used by +.BR unibrowse . +.TP +.B /dev/memory +Provides +.B memory +with memory usage statistics. +.SH SOURCE +.B /appl/wm/about.b +.br +.B /appl/wm/coffee.b +.br +.B /appl/wm/colors.b +.br +.B /appl/wm/date.b +.br +.B /appl/wm/edit.b +.br +.B /appl/wm/mand.b +.br +.B /appl/wm/memory.b +.br +.B /appl/wm/polyhedra.b +.br +.B /appl/wm/reversi.b +.br +.B /appl/wm/rt.b +.br +.B /appl/wm/stopwatch.b +.br +.B /appl/wm/task.b +.br +.B /appl/wm/tetris.b +.br +.B /appl/wm/unibrowse.b +.br +.B /appl/wm/view.b +.br +.B /appl/wm/winctl.b diff --git a/static/inferno/man1/wm-sh.1 b/static/inferno/man1/wm-sh.1 new file mode 100644 index 00000000..0db61f04 --- /dev/null +++ b/static/inferno/man1/wm-sh.1 @@ -0,0 +1,274 @@ +.TH WM-SH 1 +.SH NAME +sh, mash \- Window frames for the Inferno shells +.SH SYNOPSIS +.B wm/sh +[ +.B -w +.I width +] [ +.B -h +.I height +] [ +.B -f +.I font +] +.I sh-args +.br +.B wm/mash +.I mash-args +.br +.SH DESCRIPTION +Both +.B wm/sh +and +.B wm/mash +provide a graphical framework to their respective shells. +Both wrappers manage the input and output of the shell. +They provide facilities for scrolling and editing the output buffer +and for constructing input to be sent to the shell. +.PP +.B Wm/sh +invokes the shell +.IR sh (1) +with the arguments +.B -n +.IR sh-args ; +.B wm/mash +invokes +.IR mash (1) +with the arguments +.IR mash-args . +.B Wm/sh +accepts the following additional options, which are +not passed through to +.IR sh : +.HP +.B -w +.I width +.br +The window should be at least +.I width +pixels wide. +.HP +.B -h +.I height +.br +The window should be at least +.I height +pixels high. +.HP +.B -f +.I font +.br +Specify the font to use in the window. +.I Font +should be the name of a valid +.IR font (6) +file. +.PP +.B Wm/sh +and +.B wm/mash +both provide their own versions of +.B /dev/cons +and +.B /dev/consctl +files in the namespace of the invoked shell +(see +.IR cons (3) +for the originals) and attach the standard input +of the invoked shell to the virtualised +.B /dev/cons +file. +Output from the shell, or of any commands run by the shell, is displayed in +a scrollable text window, appearing at the +.IR "output position" , +which is at the end of any previously output text, before +any as-yet-unread user input text. +.PP +Any text displayed on the console can be edited. +Typed text is always inserted at the position of the input cursor. +The input cursor can be moved to any point in the text by +clicking mouse button-1 at the desired position. +Selections can be made by dragging the mouse with button-1 held down. +Typing into a selection copies its text to the Snarf buffer, the +selected text is deleted and the typed character inserted. +.PP +Text typed beyond the output point will be made available +to commands reading from +.BR /dev/cons . +Normally this text is made available when newline is typed, +but typing ESC turns on +.I hold +mode (the text turns blue), deferring the availability of the text until ESC is +typed again, turning hold mode off. This allows simple +multi-line editing of the standard input to a command. +.PP +Writing +.B rawon +to +.B /dev/consctl +changes the above behaviour, making each character typed beyond +the output point available to commands as soon as it is typed; +the character is not automatically echoed. Writing +.B rawoff +to +.B /dev/consctl +reverses this behaviour. +.PP +In addition to dragging out selections, they can be made by double clicking +mouse button-1. +Double clicking over a word selects the whole word. +Double clicking next to a brace or bracket selects the text between it and its matching +brace or bracket. +If there is no match then no selection is made. +.PP +Clicking mouse button-2 displays a pop-up menu of editing commands: +.TP +.B Cut +Copy the current selection to the Snarf buffer and then delete +the selected text. +This command has no effect if there is no selected text, the Snarf buffer +is not cleared. +.TP +.B Paste +When there is no text selected, the contents of the Snarf buffer are +inserted at the current input cursor. +If a selection exits, its text is replaced by that of the Snarf buffer. +The new text is then selected. +The contents of the Snarf buffer remain unaltered. +.TP +.B Snarf +Copy the selected text to the Snarf buffer. +This command has no effect if there is no selected text. +.TP +.B Send +If there is any text selected it is copied to the Snarf buffer. +The contents of the Snarf buffer is then +appended to the end of the current shell input line, forwarding +any NewLine completed lines to the shell's input stream. +.PP +Mouse chording is implemented as in +.IR acme (1). +Dragging a selection with button-1 held down and then also clicking +button-2 cuts the selected text into the Snarf buffer. +Clicking button-3 instead of button-2 replaces the selected text with the contents +of the Snarf buffer. +.PP +Clicking mouse button-3 plumbs the word or selection under the click point. +See +.IR plumber (8) +for more information on plumbing. +.PP +.I Wm/sh +also serves the file +.BR /chan/shctl . +The following commands may be written to this file: +.HP +.B cwd +.I dir +.br +Causes any plumbing request generated by +.I wm/sh +to be created with +.I dir +as its ``current directory''. This is shown in the +title bar of the window. +Note that it is up to the command running inside +.I wm/sh +to keep this up to date (for instance, see EXAMPLES, +below). +.HP +.B button +.I "title sendtext" +.br +A Tk button is created at the top of the shell window, labeled +with +.IR title . +When activated, +.I sendtext +will be sent to the shell window as if it had been typed. +.HP +.B action +.I "title sendtext" +.br +A button is created as for the +.B button +command, except that activation of the button causes +.I sendtext +to be sent to any process reading from +.BR /chan/shctl . +.HP +.B clear +.br +Delete any buttons that have been created. +.PP +Arguments to commands sent to +.B /chan/shctl +follow +.IR sh (1) +quoting rules (the same as implemented by +.I quoted +and +.I unquoted +in +.IR string (2)). +A process reading from +.B /chan/shctl +will block until an +.B action +button is activated, whereupon it will yield the +.I sendtext +associated with the button. +.SH PLUMBING +Both +.B wm/sh +and +.B wm/mash +plumb text selected by button 3; +an empty selection plumbs the white-space bounded text +surrounding the selection. +.SH EXAMPLES +Define a +.IR sh (1) +function to update the current directory automatically: +.PP +.EX + fn cd {builtin cd $*; echo cwd `{pwd} >/chan/shctl} +.EE +.PP +Note that this will not work in all cases, as it is possible to +change the current directory without using the +.I cd +command. +.PP +Create a button to automate a +.I mount +command (note the newline in the argument string): +.PP +.EX + echo ${quote button mount 'mount kremvax /n/remote + '} > /chan/shctl +.EE +.PP +Create a new +.I wm/sh +window with the above button already created: +.PP +.EX + wm/sh -ic { + echo ${quote button mount 'mount kremvax /n/remote + '} > /chan/shctl + } +.EE +.SH SOURCE +.B /appl/wm/sh.b +.br +.B /appl/wm/mash.b +.br +.SH "SEE ALSO" +.IR sh (1), +.IR mash (1), +.IR wm (1), +.IR plumber (8) diff --git a/static/inferno/man1/wm.1 b/static/inferno/man1/wm.1 new file mode 100644 index 00000000..667ef9a7 --- /dev/null +++ b/static/inferno/man1/wm.1 @@ -0,0 +1,216 @@ +.TH WM 1 +.SH NAME +wm \- window manager +.SH SYNOPSIS +.B wm/wm +[ +.I command +[ +.IR arg ... +] +] +.SH DESCRIPTION +.I Wm +is an inferno window manager, providing the control mechanism for +the user to manage to order and position of a dynamic collection +of application windows. +When started, it runs +.IR command , +(by default +.BR wm/toolbar , +see +.IR toolbar (1)) +By itself, +.I wm +does not provide any means for starting new applications; +that facility must be provided by an auxilliary program, +.B wm/toolbar +being one such example. +.SS Control Interface +.I Wm +provides a control interface to programs running inside it +through the +.B Wmcontext +adt that can be obtained from the +.B Draw->Context +that it passes to applications that it starts +(see +.IR draw-context (2)). +Control messages it understands include: +.TP +.B start \fIwhat\fP +Start input on +.IR what . +.I What +can be +.BR ptr +(pointer events), +.BR kbd +(keyboard events) +and +.BR control +(window manager control events, see below). +.TP +.B key \fIcharval\fP +Simulate a key event. +.I Charval +is the decimal value of the character that has been +pressed. The character will be sent exactly as if it +had been typed on the keyboard. This facility +is used by +.IR keyboard (1). +.TP +.B !reshape \fItag\fP \fIreqid\fP \fIminx miny maxx maxy\fI \fR[\fIhow\fR] +Reshape or create the window named +.IR tag . +.I Reqid +is ignored; +.I minx..maxy +give the desired bounding rectangle of the +new window. +If +.I how +is not given, or is +.BR exact , +then +.I wm +will attempt to satisfy the request exactly. +Otherwise, +.I how +tells +.I wm +how to determine the rectangle of the resulting image; +it can be one of +.B place +(choose some appropriate position and size on screen), +.B onscreen +(modify the requested rectangle only so as to bring +it on screen), or +.B max +(request the maximum available rectangle). +.TP +.B delete \fItag\fP +Delete the window named by \fItag\fP. +.TP +.B raise +Raise all windows for the current context above the others. +.TP +.B lower +Send all windows for the current context to the bottom. +.TP +.B !move \fItag\fP \fIreqid\fP \fIstartx\fP \fIstarty\fP +Drag window +.I tag +interactively. +.I Reqid +is ignored. +.I Startx +and +.I starty +give the location of the pointer when the drag was initiated. +.TP +.B !size \fItag\fP \fIreqid\fP +Interactively resize window \fItag\fP. +.TP +.B fixedorigin +By default, if a window changes position but not size, +.I wm +changes the origin of the window without creating a new image. +Sending +.B fixedorigin +caused +.I wm +always to create a new image in that case. +.TP +.B kbdfocus \fR[\fIin\fR] +If the decimal integer +.I in +is non-zero, request the keyboard focus, +otherwise lose the keyboard focus. +.PP +.I Wm +generates control messages to inform applications of +things that have happened. These include: +.TP +.B rect \fIminx miny maxx maxy\fP +The screen rectangle has changed. +.I "minx..maxy" +gives the new bounding box of the screen. +.TP +.B haskbdfocus \fIin\fP +Informs an application of its current keyboard focus state. +This message is generated in response to pointer events, +and due to +.B kbdfocus +requests. +.TP +.B exit +The window manager is closing down. +.SS Controlling Application +The first application that starts under +.I wm +is given the privilege of being able to control +other applications running under the same +.IR wm . +If it sends a +.B start control +message, then it will also see any control requests +sent by applications that +.I wm +itself does not understand and information about applications +starting and leaving. +.I Wm +accepts several other control messages from its +controlling application: +.TP +.B ctl \fIid\fP \fImsg\fP +Send message +.I msg +to application +.IR id . +.TP +.B endcontrol +Relinquish controller status. +The next application that starts will get control status. +This is used, for instance, to segue smoothly between +.IR logon (1) +and +.IR toolbar (1). +.PP +If the controlling application has started control messages, +.I wm +sends it the following messages: +.TP +.B newclient \fIid\fP +A new client has connected, identified by +.IR id . +.TP +.B delclient \fIid\fP +Client +.I id +has left. +.TP +.B request \fIid\fP \fImsg\fP +Client +.I id +sent the request +.I msg +to the window manager, which it did not understand. +This facility is used, for instance, by +.IR toolbar (1) +to implement the +.B task +and +.B untask +requests. +.SH FILES +.TP +.B /chan/wmrect +File holding current screen rectangle. +.SH SOURCE +.B /appl/wm/wm.b +.SH "SEE ALSO" +.IR toolbar (1), +.IR logon (1), +.IR tkclient (2), +.IR wmclient (2) diff --git a/static/inferno/man1/xd.1 b/static/inferno/man1/xd.1 new file mode 100644 index 00000000..22b3965c --- /dev/null +++ b/static/inferno/man1/xd.1 @@ -0,0 +1,92 @@ +.TH XD 1 +.SH NAME +xd \- dump file contents in multiple formats +.SH SYNOPSIS +.B xd +[ +.I option +\&... ] [ +.BI - format +\&... ] [ +.IR file ... +] +.SH DESCRIPTION +.B Xd +dumps the contents of each +.I file +in one or more formats. +If no file is specified, standard input is read. +Input is processed in 16 byte chunks. +Each chunk is output in each of the specified +.IR format s, +one format per line. +Each line of output is prefixed its file offset. +This is zero padded for the first format; subsequent formats are blank padded. +If more than one +.I file +is specified, the name of each file is output at the start of its dump. +.PP +Output formats are specified by a two character name, +.B 4x +by default. +The first character defines the byte width of the format; the second character +defines the style of output. +.PP +The available width specifiers are: +.TF "1 or b" +.TP +.BR 1 " or " b +1 byte units. +.TP +.BR 2 " or " w +2 byte big-endian units. +.TP +.BR 4 " or " l +4 byte big-endian units. +.TP +.BR 8 " or " v +8 byte big-endian units. +.PD +.PP +The available styles are: +.TP 0 +.B o +Octal +.PD 0 +.TP +.B d +Decimal +.TP +.B x +Hexadecimal +.PD +.PP +In addition to the above format specifiers, +.B -c +can be used to denote ASCII format. +This is the same as +.B 1x +except that codes are printed as printable ASCII characters or Limbo escape sequences +where possible. +.SH OPTIONS +.TP 10 +.B -u +Unbuffered output. The output buffer is flushed after the dump of each 16 byte input chunk +has been generated. +.TP +.B -r +Mark repeated 16 byte input chunks. +The first chunk is output as per the format specifiers, followed by an asterisk representing +1 or more occurrences of identical data. +.TP +.B -s +Reverse the order of input bytes in chunks of 4 before processing for output. +.TP +.BI -a style +Print file addresses in the given +.IR style . +.SH SOURCE +.TP +.B /appl/cmd/xd.b +.SH BUGS +There is no means of dumping 2 or 8 byte wide values in little-endian form. diff --git a/static/inferno/man1/yacc.1 b/static/inferno/man1/yacc.1 new file mode 100644 index 00000000..c3ec5868 --- /dev/null +++ b/static/inferno/man1/yacc.1 @@ -0,0 +1,349 @@ +.TH YACC 1 +.SH NAME +yacc \- yet another compiler-compiler (Limbo version) +.SH SYNOPSIS +.B yacc +[ +.I option ... +] +.I grammar +.SH DESCRIPTION +.I Yacc +converts a context-free grammar and translation code +into a set of +tables for an LR(1) parser and translator. +The grammar may be ambiguous; +specified precedence rules are used to break ambiguities. +.PP +The output from +.I yacc +is a Limbo module +.B y.tab.b +containing the parse function +.B yyparse +which must be provided with a +.B YYLEX +adt providing the parser access to a lexical analyser +routine +.BR lex() , +an error routine +.BR error() , +and any other context required. +.PP +The options are +.TP "\w'\fL-o \fIoutput\fLXX'u" +.BI -o " output +Direct output to the specified file instead of +.BR y.tab.b . +.TP +.BI -D n +Create file +.BR y.debug , +containing diagnostic messages. +To incorporate them in the parser, give an +.I n +greater than zero. +The amount of +diagnostic output from the parser is regulated by +value +.IR n : +.RS +.TP +1 +Report errors. +.TP +2 +Also report reductions. +.TP +3 +Also report the name of each token returned by +.LR yylex . +.RE +.TP +.B -v +Create file +.BR y.output , +containing a description of the parsing tables and of +conflicts arising from ambiguities in the grammar. +.TP +.B -d +Create file +.BR y.tab.m , +containing the module +declaration for the parser, along with +definitions of the constants +that associate +.IR yacc -assigned +`token codes' with user-declared `token names'. +Include it in source files other than +.B y.tab.b +to give access to the token codes and the parser module. +.TP +.BI -s " stem +Change the prefix +.L y +of the file names +.BR y.tab.b , +.BR y.tab.m , +.BR y.debug , +and +.B y.output +to +.IR stem . +.TP +.B -m +Normally +.I yacc +defines the type of the +.B y.tab.b +module within the text of the module according +to the contents of the +.B %module +directive. +Giving the +.B -m +option suppresses this behaviour, leaving the implementation +free to define the module's type from an external +.B .m +file. The module's type name is still taken from the +.B %module +directive. +.TP +.BI -n " size +Specify the initial +.I size +of the token stack created for the +parser (default: 200). +.SS Differences from C yacc +The Limbo +.I yacc +is in many respects identical to the C +.IR yacc . +The differences are summarised below: +.PP +Comments follow the Limbo convention (a +.B # +symbol gives a comment until the end of the line). +.PP +A +.B %module +directive is required, which replaces the +.B %union +directive. It is of the form: +.RS +.IP +.B %module +.I modname +.B { +.br +.I module types, functions and constants +.br +.B } +.RE +.B Modname +will be the module's implementation type; +the body of the directive, augmented with +.B con +definitions for the +.IR yacc -assigned +token codes, gives the type of the module, +unless the +.B -m +option is given, in which case no module +definition is emitted. +.PP +A type +.B YYSTYPE +must be defined, giving the type +associated with +.I yacc +tokens. If +the angle bracket construction is used after +any of the +.BR %token , +.BR %left , +.BR %right , +.BR %nonassoc +or +.B %type +directives in order to associate a type with a token or production, +the word inside the angle brackets +refers to a member of +an instance of +.BR YYSTYPE , +which should be an adt. +.PP +An adt +.B YYLEX +must be defined, providing context to the parser. +The definition must consist of at least the following: +.EX + YYLEX: adt { + lval: YYSTYPE; + lex: fn(l: self ref YYLEX): int; + error: fn(l: self ref YYLEX, msg: string); + } +.EE +.B Lex +should invoke a lexical analyser to return the +next token for +.I yacc +to analyse. The value of the token should +be left in +.BR lval . +.B Error +will be called when a parse error occurs. +.B Msg +is a string describing the error. +.PP +.B Yyparse +takes one argument, a reference to the +.B YYLEX +adt that will be used to provide it with tokens. +.PP +The parser is fully re-entrant; +.I i.e. +it does not +hold any parse state in any global variables +within the module. +.SH EXAMPLE +The following is a small but complete example of the +use of Limbo +.I yacc +to build a simple calculator. +.EX +%{ + include "sys.m"; + sys: Sys; + + include "bufio.m"; + bufio: Bufio; + Iobuf: import bufio; + + include "draw.m"; + + YYSTYPE: adt { v: real; }; + YYLEX: adt { + lval: YYSTYPE; + lex: fn(l: self ref YYLEX): int; + error: fn(l: self ref YYLEX, msg: string); + }; +%} + +%module Calc{ + init: fn(ctxt: ref Draw->Context, args: list of string); +} + +%left '+' '-' +%left '*' '/' + +%type exp uexp term +%token REAL + +%% +top : + | top '\en' + | top exp '\en' + { + sys->print("%g\en", $2); + } + | top error '\en' + ; + +exp : uexp + | exp '*' exp { $$ = $1 * $3; } + | exp '/' exp { $$ = $1 / $3; } + | exp '+' exp { $$ = $1 + $3; } + | exp '-' exp { $$ = $1 - $3; } + ; + +uexp : term + | '+' uexp { $$ = $2; } + | '-' uexp { $$ = -$2; } + ; + +term : REAL + | '(' exp ')' + { + $$ = $2; + } + ; + +%% + +in: ref Iobuf; +stderr: ref Sys->FD; + +init(nil: ref Draw->Context, nil: list of string) +{ + sys = load Sys Sys->PATH; + bufio = load Bufio Bufio->PATH; + in = bufio->fopen(sys->fildes(0), Bufio->OREAD); + stderr = sys->fildes(2); + lex := ref YYLEX; + yyparse(lex); +} + +YYLEX.error(nil: self ref YYLEX, err: string) +{ + sys->fprint(stderr, "%s\en", err); +} + +YYLEX.lex(lex: self ref YYLEX): int +{ + for(;;){ + c := in.getc(); + case c{ + ' ' or '\et' => + ; + '-' or '+' or '*' or '/' or '\en' or '(' or ')' => + return c; + '0' to '9' or '.' => + s := ""; + i := 0; + s[i++] = c; + while((c = in.getc()) >= '0' && c <= '9' || + c == '.' || + c == 'e' || c == 'E') + s[i++] = c; + in.ungetc(); + lex.lval.v = real s; + return REAL; + * => + return -1; + } + } +} +.EE +.SH FILES +.TF /lib/yaccpar +.TP +.B y.output +.TP +.B y.tab.b +.TP +.B y.tab.m +.TP +.B y.debug +.TP +.B /lib/yaccpar +parser prototype +.SH SOURCE +.B /appl/cmd/yacc.b +.SH "SEE ALSO" +S. C. Johnson and R. Sethi, +``Yacc: A parser generator'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2 +.br +B. W. Kernighan and Rob Pike, +.I +The UNIX Programming Environment, +Prentice Hall, 1984 +.SH BUGS +The parser may not have full information when it writes to +.B y.debug +so that the names of the tokens returned by +.L yylex +may be missing. diff --git a/static/inferno/man1/zeros.1 b/static/inferno/man1/zeros.1 new file mode 100644 index 00000000..68e1a9fb --- /dev/null +++ b/static/inferno/man1/zeros.1 @@ -0,0 +1,44 @@ +.TH ZEROS 1 +.SH NAME +zeros \- write sequence of bytes +.SH SYNOPSIS +.B zeros +[ +.IR -r +] +[ +.IR -v value +] +[ [ +.IR blocksize ... +[ +.IR numblocks +] ] +.SH DESCRIPTION +.B Zeros +writes a sequence of bytes to standard output. The arguments +specify the nature of the bytes, +block size in bytes, and the number of blocks to output. +The +.I -r +option requests that each block be the same, but randomly +generated. The +.IR -v value +option sets the value of each byte (default 0). +Typically +.IR zeros +has a specialised use: +ensuring a file has the desired number of blocks in it to hold a file system image, +before reaming it. +.SH EXAMPLE +To create and initialize a file system containing 2048 1024 byte +blocks +.IP +.EX +zeros 1024 2048 >kfs.file +mount -c {disk/kfs -r kfs.file} /n/local +.EE +.SH SOURCE +.B /appl/cmd/zeros.b +.SH SEE ALSO +.IR kfs (4) diff --git a/static/inferno/man10/0intro.10 b/static/inferno/man10/0intro.10 new file mode 100644 index 00000000..dded3a06 --- /dev/null +++ b/static/inferno/man10/0intro.10 @@ -0,0 +1,74 @@ +.TH INTRO 10 +.SH NAME +intro \- introduction to hosted and native implementation +.SH DESCRIPTION +Inferno provides a collection of compiler suites, libraries and two closely-related +kernels to span a range of host and native platforms. +Section 10 of this manual is divided into subsections numbered +in the same way as the main manual: 10.1 for commands, 10.2 +for library and kernel routines, and 10.6 for file formats. +.PP +Section 10.1 describes the various compiler and utility commands +provided to support compilation and cross-compilation of native +kernels. +These are derived from similarly named programs of the system Plan 9 from Bell Labs, +converted to ANSI C to +provide a consistent, portable environment for cross-compiling +any native kernel on any host platform. +.PP +Section 10.2 describes the functions publicly available to the authors of +kernel code, particularly device drivers (real and virtual). +This section will eventually be much expanded, but this makes a start. +See the description of the conventional header files below. +.PP +Section 10.6 describes include the native object file formats, +the Inferno (Plan 9) object library (archive) format, +and system configuration files. +.PP +Section 10.8 describes bootstrap programs and procedures for +native Inferno systems. +.SS Native kernel declarations +The +.SM SYNOPSIS +subsections in section 10.2 do not show the header files needed for +the standard kernel declarations. +The primary combinations summarised below: +.IP +.RS +.ta \w'\fL#include 'u +.nf +.B +#include "u.h" +.B +#include "../port/lib.h" +.B +#include "mem.h" +.B +#include "dat.h" +.B +#include "fns.h" +.B +#include "../port/error.h" +.PP +.I "furthermore, added in IP code:" +.br +.B +#include "../ip/ip.h" +.PP +.I "furthermore, in hardware device drivers:" +.br +.B +#include "io.h" +.br +.B +#include "ureg.h" +.PP +.I "furthermore, in network interfaces or ether drivers:" +.B +#include "../port/netif.h" +.fi +.RE +.PP +There might also be specific include files needed by +drivers on particular platforms or to use specialised kernel interfaces. +The easiest method is to check the source of likely-looking drivers nearby. diff --git a/static/inferno/man10/2a.10 b/static/inferno/man10/2a.10 new file mode 100644 index 00000000..bd9e3357 --- /dev/null +++ b/static/inferno/man10/2a.10 @@ -0,0 +1,55 @@ +.TH 2A 10.1 +.SH NAME +0a, 1a, 2a, 5a, 6a, 7a, 8a, ka, qa, va \- assemblers +.SH SYNOPSIS +.B 2a +[ +.I option ... +] +[ +.I name ... +] +.br +etc. +.SH DESCRIPTION +These programs +assemble the named files into object files +for the corresponding architectures; see +.IR 2c (10.1) +for the correspondence between an architecture and the character +.RB ( 1 , +.RB 2 , +etc.) that specifies it. +The assemblers handle the most common C preprocessor directives and the associated +command-line options +.BR -D +and +.BR -I . +Other options are: +.TP +.BI -o " obj" +Place output in file +.I obj +(allowed only if there is just one input file). +Default is to take the last element of the input path name, +strip any trailing +.BR .s , +and append +.RI . O , +where +.I O +is first letter of the assembler's name. +.SH FILES +The directory +.B /sys/include +is searched for include files after +machine-dependent files in +.BR /$objtype/include . +.SH SOURCE +.BR /utils/2a , +etc. +.SH SEE ALSO +.IR 2c (10.1), +.IR 2l (10.1). +.PP +Rob Pike, ``A manual for the Plan 9/Inferno assembler'', Volume 2 diff --git a/static/inferno/man10/2c.10 b/static/inferno/man10/2c.10 new file mode 100644 index 00000000..1e4d9f0a --- /dev/null +++ b/static/inferno/man10/2c.10 @@ -0,0 +1,437 @@ +.TH 2C 10.1 +.SH NAME +0c, 1c, 2c, 5c, 6c, 7c, 8c, kc, qc, vc \- C compilers +.SH SYNOPSIS +.B 2c +[ +.I option ... +] +[ +.I file ... +] +.br +etc. +.SH DESCRIPTION +These commands compile the named C +.I files +into object files for the corresponding architecture. +Associated with each compiler is a string +.IR objtype , +for example +.TP 1.5i +.B "0c spim +Little-endian MIPS +.TP +.B "1c 68000 +Motorola MC68000 +.TP +.B "2c 68020 +Motorola MC68020 +.TP +.B "5c arm +ARM 7500 +.TP +.B "6c amd64 +AMD64 extension to x86 +.TP +.B "7c alpha +Digital Alpha APX +.TP +.B "8c 386 +Intel i386, i486, Pentium, etc. +.TP +.B "kc sparc +Sun SPARC +.TP +.B "qc power +Power PC, +.TP +.B "vc mips +big-endian MIPS 3000 family +.PP +Let the first letter of the compiler name be +.IR O = +.BR 0 , +.BR 1 , +.BR 2 , +.BR 5 , +.BR 6 , +.BR 7 , +.BR 8 , +.BR k , +.BR q , +or +.BR v . +The output object files end in +.RI . O . +The letter is also the prefix of related programs: +.IB O a +is the assembler, +.IB O l +is the loader. +.PP +Plan 9 conventionally sets the +.B $objtype +environment variable to the +.I objtype +string appropriate to the current machine's type. +Plan 9 also conventionally has +.RI / objtype +directories, which contain among other things: +.BR include , +for machine-dependent include files; +.BR lib , +for public object code libraries; +.BR bin , +for public programs; +and +.BR mkfile , +for preconditioning +.IR mk (10.1). +.PP +For Inferno cross-compilation on all platforms, not just Plan 9, both +.B $objtype +and +.B $OBJTYPE +are set by every native kernel +.B mkfile +to correspond to the target processor type. +The Inferno +.B mkfiles +also set the +.B -I +option appropriately to search the Inferno include directories, +since the Plan 9 defaults are inappropriate. +.PP +The compiler options are: +.TP 1i +.BI -o " obj" +Place output in file +.I obj +(allowed only if there is just one input file). +Default is to take the last element of the input file name, +strip any trailing +.BR .c , +and append +.RI . O . +.TP +.B -w +Print warning messages about unused variables, etc. +.TP +.B -B +Accept functions without a new-style +ANSI C function prototype. +By default, the compilers reject functions +used without a defined prototype, +although ANSI C permits them. +.TP +.BI -D\*S name=def +.br +.ns +.TP +.BI -D \*Sname +Define the +.I name +to the preprocessor, +as if by +.LR #define . +If no definition is given, the name is defined as +.LR 1 . +.TP +.B -F +Warn when the elements of a format +(eg, those used by +.IR print ) +disagree with in type or size with the corresponding parameter, +or there is a mismatch in number. +See the discussion of extensions, below. +.TP +.BI -I \*Sdir +An +.L #include +file whose name does not begin with +slash +or is enclosed in double quotes +is always +sought first in the directory +of the +.I file +argument. If this fails, +the +.I -. +flag is given or the name is enclosed in +.BR <> , +it is then sought +in directories named in +.B -I +options, +then in +.BR /sys/include , +and finally in +.BR /$objtype/include . +.TP +.B -. +Suppress the automatic searching for include files in +the directory of the file argument. +.TP +.B -N +Suppress automatic registerization and optimization. +.TP +.B -S +Print an assembly language version of the object code +on standard output as well as generating the +.RI . O +file. +.TP +.B -T +Pass type signatures on all external and global entities. +The signature is based on the C +.B signof +operator, +an extension in this compiler. +See +.IR dynld (10.2). +.TP +.B -V +By default, the compilers are non-standardly lax about type equality between +.B void* +values and other pointers; this flag requires ANSI C conformance. +.TP +.B -a +Instead of compiling, print on standard output acid functions (see +.IR acid (10.1)) +for examining structures declared in the source files. +.TP +.B -aa +Like +.B -a +except suppress information about structures +declared in included header files. +.PP +The compilers handle most preprocessing directives themselves, but support +excludes the +.B #if +and +.B #elif +directives, and the +.B ## +preprocessor operation. +.PP +The compilers support several extensions to ANSI C: +.TP +\- +A structure or union may contain unnamed substructures and subunions. +The fields of the substructures or +subunions can then be used as if they were members of the parent +structure or union (the resolution of a name conflict is unspecified). +When a pointer to the outer structure or union is used in a context +that is only legal for the unnamed substructure, the compiler promotes +the type and adjusts the pointer value to point at the substructure. +If the unnamed structure or union is of a type with a tag name specified by a +.B typedef +statement, +the unnamed structure or union can be explicitly referenced +by .. +.TP +\- +A structure value can be formed with an expression such as +.EX + (struct S){v1, v2, v3} +.EE +where the list elements are values for the fields of struct +.BR S . +.TP +\- +Array initializers can specify the indices of the array in square +brackets, as +.EX + int a[] = { [3] 1, [10] 5 }; +.EE +which initializes the third and tenth elements of the eleven-element array +.BR a . +.TP +\- +Structure initializers can specify the structure element by using the name +following a period, as +.EX + struct { int x; int y; } s = { .y 1, .x 5 }; +.EE +which initializes elements +.B y +and then +.B x +of the structure +.BR s . +These forms also accept the new ANSI C notation, which includes an equal sign: +.EX + int a[] = { [3] = 1, [10] = 5 }; + struct { int x; int y; } s = { .y = 1, .x = 5 }; +.EE +.TP +\- +A global variable can be dedicated to a register +by declaring it +.B "extern register" +in +.I all +modules and libraries. +.TP +\- +A +.B #pragma +of the form +.EX + #pragma lib "libbio.a" +.EE +records that the program needs to be loaded with file +.BR /$objtype/lib/libbio.a ; +such lines, typically placed in library header files, obviate the +.B -l +option of the loaders. To help identify files in non-standard directories, +within the file names in the +.B #pragmas +the string +.B $M +represents the name of the architecture +(e.g., +.BR mips ) +and +.B $O +represents its identifying character +(e.g., +.BR v ). +.TP +\- +Two +.B #pragma +requests to define rules for checking +.IR print -like +formats (see the +.B -F +option above). +One +.B #pragma +tells for a given routine which argument is the format. +For example: +.EX + #pragma varargck argpos print 1 + #pragma varargck argpos sprint 2 +.EE +say that +.I print +has a format as its first argument, +and +.I sprint +has one as its second. +Another +.B #pragma +associates format character sequences and types: +.EX + #pragma varargck type "lld" vlong + #pragma varargck type "lx" void* + #pragma varargck type "S" Rune* +.EE +where the format characters are those following the +.B % +in the format (ignoring any preceding formatting flags). +Note the assumption that all formats arguments are compatible. +The system include files have appropriate +.B #pragma +lines for the standard format elements and formatting functions. +.TP +\- +A +.B #pragma +of the form +.EX + #pragma incomplete \fItype\fP +.EE +tells the compiler that +.I type +should have its signature calculated as an incomplete type +even when it is fully defined. +This allows the type signature mechanism to work in the presence +of opaque types declared in header files, with their full definitions +visible only to the code which manipulates them. +With some imported software it might be necessary to turn off the +signature generation completely for a large body of code (typically +at the start and end of a particular include file). +If +.I type +is the word +.BR _off_ , +signature generation is turned off; if +.I type +is the word +.BR _on_ , +the compiler will generate signatures. +.TP +\- +The C++ comment +.RB ( // +to end of line) +is accepted as well as the normal +convention of +.B /* +.BR */ . +.TP +\- +The compilers accept +.B long +.B long +variables as a 64-bit type. +The standard header typedefs this to +.BR vlong . +Arithmetic on +.B vlong +values is usually emulated by a run-time library. +.SH EXAMPLE +For the 68020, produce a program +.B prog +from C files +.BR main.c +and +.BR sub.c : +.IP +.EX +2c -FVw main.c sub.c +2l -o prog main.2 sub.2 +.EE +.SH FILES +.TF /$objtype/include +.TP +.B /sys/include +host system area for machine-independent +.B #include +directives. +.TP +.B /$objtype/include +host system area for machine-dependent +.B #include +directives. +.SH SOURCE +.TF /utils/2c,\ etc. +.TP +.B /utils/cc +machine-independent part +.TP +.BR /utils/2c ,\ etc. +machine-dependent part +.SH "SEE ALSO" +.IR 2a (10.1), +.IR 2l (10.1), +.IR mk (10.1), +.IR inm (10.1), +.IR acid (10.1), +.PP +Rob Pike, +``How to Use the Plan 9 C Compiler'' +.SH BUGS +The preprocessor only handles +.LR #define , +.LR #include , +.LR #undef , +.LR #ifdef , +.LR #line , +and +.LR #ifndef . diff --git a/static/inferno/man10/2l.10 b/static/inferno/man10/2l.10 new file mode 100644 index 00000000..c2bf1998 --- /dev/null +++ b/static/inferno/man10/2l.10 @@ -0,0 +1,201 @@ +.TH 2L 10.1 +.SH NAME +0l, 1l, 2l, 5l, 6l, 7l, 8l, kl, ql, vl \- loaders +.SH SYNOPSIS +.B 2l +[ +.I option ... +] +[ +.I file ... +] +.br +etc. +.SH DESCRIPTION +These commands load the named +.I files +into executable files for the corresponding architectures; see +.IR 2c (10.1) +for the correspondence between an architecture and the character +.RB ( 1 , +.BR 2 , +etc.) +that specifies it. +The files should be object files or libraries (archives of object files) +for the appropriate architecture. +Also, a name like +.BI -l ext +represents the library +.BI lib ext .a +in +.BR /$objtype/lib , +where +.I objtype +is one of +.BR 68000 , +etc. as listed in +.IR 2c (10.1). +The libraries must have tables of contents +(see +.IR iar (10.1)). +.PP +In practice, +.B -l +options are rarely necessary as the header files for +the libraries cause their archives to be included automatically in the load +(see +.IR 2c (10.1)). +For example, any program that includes header file +.B libc.h +causes the loader +to search the C library +.BR /$objtype/lib/libc.a . +Also, the loader creates an undefined symbol +.B _main +(or +.B _mainp +if profiling is enabled) to force loading of the +startup linkage from the C library. +.PP +The order of search to resolve undefined symbols is to load all files and libraries +mentioned explicitly on the command line, and then to resolve remaining symbols +by searching in topological order +libraries mentioned in header files included by files already loaded. +When scanning such libraries, the algorithm is to scan each library repeatedly until +no new undefined symbols are picked up, then to start on the next library. Thus if library +.I A +needs +.I B +which needs +.I A +again, it may be necessary to mention +.I A +explicitly so it will be read a second time. +.PP +The loader options are: +.TP 1i +.B -l +(As a bare option.) +Suppress the default loading of the startup linkage and libraries +specified by header files. +.TP +.BI -o " out" +Place output in file +.IR out . +Default is +.IB O .out\f1, +where +.I O +is the first letter of the loader name. +.TP +.B -p +Insert profiling code into the executable output; no special action is needed +during compilation or assembly. +.TP +.B -s +Strip the symbol tables from the output file. +.TP +.B -a +Print the object code in assembly language, with addresses. +.TP +.B -v +Print debugging output that annotates the activities of the load. +.TP +.BI -M +.RI ( kl +only) Generate instructions rather than calls to emulation routines +for multiply and divide. +.TP +.BI -E symbol +The entry point for the binary is +.I symbol +(default +.BR _main ; +.B _mainp +under +.BR -p ). +.TP +.B -x +[ +.I file +] +Produce an export table in the executable. +The optional +.I file +restricts the exported symbols to those listed in the file. +See +.IR dynld (10.2). +.TP +.B -u +[ +.I file +] +Produce an export table, import table +and a dynamic load section in the executable. +The optional +.I file +restricts the imported symbols to those listed in the file. +See +.IR dynld (10.2). +.TP +.BI -H n +Executable header is type +.IR n . +The meaning of the types is architecture-dependent; typically +type 1 is Plan 9 boot format and type 2 is the +regular Plan 9 format, the default. These are reversed on the MIPS. +The Next boot format is 3. Type 4 in +.I vl +creates a MIPS executable for an SGI Unix system. +.TP +.BI -T t +The text segment starts at address +.IR t . +.TP +.BI -D d +The data segment starts at address +.IR d . +.TP +.BI -R r +The text segment is rounded to a multiple of +.I r +(if +.I r +is nonzero). +.PP +The numbers in the above options can begin with +.L 0x +or +.L 0 +to change the default base from decimal to hexadecimal or octal. +The defaults for the values depend on the compiler and the +header type. +.PP +The loaded image has several symbols inserted by the loader: +.B etext +is the address of the end of the text segment; +.B bdata +is the address of the beginning of the data segment; +.B edata +is the address of the end of the data segment; +and +.B end +is the address of the end of the bss segment, and of the program. +.SH FILES +.TF /$objtype/lib +.TP +.B /$objtype/lib +for +.BI -l lib +arguments. +.SH SOURCE +.B /utils/2l +etc. +.SH "SEE ALSO" +.IR 2c (10.1), +.IR 2a (10.1), +.IR iar (10.1), +.IR inm (10.1) +.PP +Rob Pike, +``How to Use the Plan 9 C Compiler'' diff --git a/static/inferno/man10/5coff.10 b/static/inferno/man10/5coff.10 new file mode 100644 index 00000000..f32443f1 --- /dev/null +++ b/static/inferno/man10/5coff.10 @@ -0,0 +1,82 @@ +.TH 5COFF 10.1 +.SH NAME +5coff \- converter to coff format +.SH SYNOPSIS +.B 5coff +[ +.B -T +.I t +] +[ +.B -D +.I d +] +[ +.B -R +.I r +] +[ +.B -E +.I e +] +[ +.B -d +] +.I ifile ofile +.SH DESCRIPTION +.I 5coff +converts an executable file +.I ifile +in +.IR a.out (10.6) +format as +produced by +.I 5l +(see +.IR 2l (10.1)) +to one in +.SM COFF +format, which it writes to +.IR ofile . +The options to +.I 5coff +are as follows: +.TP +.BI -T t +The text segment starts at address +.I t. +.TP +.BI -D d +The data segment starts at address +.I d. +.TP +.BI -R r +The text segment is rounded up to a multiple of +.I r +if non-zero. +.TP +.BI -E e +The entry point is at address +.I e. +.TP +.B -d +Print debugging information. +.PP +.SH EXAMPLE +An executable built with the command +.IP +.EX +5l -T0x04010000 -R4 -o abc ... +.EE +.PP +can be converted to coff format by +.IP +.EX +5coff -T0x04010000 -R4 abc abc.coff +.EE +.SH SOURCE +.B /utils/5coff +.SH SEE ALSO +.IR 2l (10.1), +.IR 5cv (10.1), +.IR a.out (10.6) diff --git a/static/inferno/man10/5cv.10 b/static/inferno/man10/5cv.10 new file mode 100644 index 00000000..25469ce5 --- /dev/null +++ b/static/inferno/man10/5cv.10 @@ -0,0 +1,127 @@ +.TH 5CV 10.1 +.SH NAME +5cv, mkppcimage, sqz \- convert kernel executable to boot format +.SH SYNOPSIS +.B 5cv +[ +.BI -D n +] [ +.BI -H n +] [ +.B -s +] +.I "executable outfile" +.PP +.B mkppcimage +[ +.BI -l " loadaddr" +] +.I "executable outfile" +.PP +.B sqz +[ +.B -w +] [ +.B -t +] +.I executable +.SH DESCRIPTION +These commands convert a kernel executable in Inferno/Plan 9 +.IR a.out (10.5) +format into another +format used by a third party's boot loader. +Most convert the input +.I executable +and write the new format to +.IR outfile . +.PP +.IR 5cv +converts an ARM executable into one of several alternative formats. +The output format is controlled by the +.B -H +option: +.TP 8n +.BI -H1 +AIF for RISCOS. +.TP +.BI -H2 +Plan 9. +.TP +.BI -H3 +Boot for NetBSD. +.TP +.BI -H4 +Headerless, stripped, and padded to 2K in length. Used for the ROM resident serial +bootstrap +loader in a Cirrus EP72xx. +.TP +.BI -H5 +Headerless, and stripped, for general use. +.TP +.BI -H6 +EPOC IMG format. Not a complete conversion, currently sufficient for use with some +NT based downloaders which autosense the file type by the "EP" signature, and then +ignore the contents of the header. +.PP +The other options are: +.TP +.BI -s +Strip symbol table. +.TP +.BI -D n +Enables debug output. +.PP +.I Mkppcimage +converts a PowerPC or ARM +.I executable +to a boot image format used by +.SM PPCBOOT +and +.SM UBOOT\c +\&. +The output file has a +.SM PPCBOOT +image with one component labelled as an `OS kernel' for the appropriate architecture, +containing the +.IR a.out (10.6) +header, text and initialised data, all uncompressed. +Symbols are not included. +By default the load address is deduced from the executable's entry point; +the +.B -l +option allows +.I loadaddr +to be set explicitly, with the number in C syntax (decimal by default). +Other attributes are deduced from the executable. +.PP +.I Sqz +squeezes (compresses) the given +ARM or PowerPC +.I executable +using a method that achieves respectable compression for executables but is much faster to decompress than +(say) +.BR gzip 's. +By default, both the program text and initialised data are compressed; the +.B -t +option causes +.I sqz +to compress only the program text, leaving the data as-is. +By default, +.I sqz +prints compression statistics on its standard error output; +the +.B -w +option causes it also to write the compressed file on its standard output. +Either the bootstrap that loads it must decompress the result, or a small uncompressed +stub must also be loaded that decompresses the remainder. +.SH SOURCE +.B /utils/5cv +.br +.B /utils/mkppcimage +.br +.B /utils/sqz +.SH "SEE ALSO" +.IR 2l (10.1), +.IR 5cv (10.1), +.IR ms2 (10.1), +.IR a.out (10.5) diff --git a/static/inferno/man10/9load.10 b/static/inferno/man10/9load.10 new file mode 100644 index 00000000..b1c696c3 --- /dev/null +++ b/static/inferno/man10/9load.10 @@ -0,0 +1,411 @@ +.TH 9LOAD 10.8 +.SH NAME +9load, ld, 9pxeload \- PC bootstrap program +.SH SYNOPSIS +.I "(Under MS-DOS) +.br +[ +.I drive +:][ +.I path +.RB ] ld +[ +.I 9load +] +.SH DESCRIPTION +On the PC, bootstrap programs from Plan 9 are used to boot Inferno as well +(hence the naming convention). +.I 9load +and +.I ld +are programs that reside in a FAT file system and bootstrap Inferno. +.I 9load +loads the kernel, but it cannot be run from DOS; use +.I ld +to bootstrap (by starting +.IR 9load ) +if DOS is running. +.I 9load +is run automatically by the boot procedures described below; +it cannot be run directly by hand. +There are three bootstrap sequences: +.IP \- +BIOS, MBR, disk partition PBS, +.IR 9load , +kernel +.IP \- +BIOS, floppy PBS, +.IR 9load , +kernel +.IP \- +BIOS, MBR, DOS, +.IR ld , +.IR 9load , +kernel. +.PP +Details follow. +.PP +.I 9load +is a bootstrap program that loads and starts a program, +typically the kernel, on a PC. +It is run by the PC partition boot sector program (PBS), +which usually resides in the first +sector of the active partition. +A copy of the Plan 9 PBS is kept in +.BR /Inferno/386/pbs , +but due to the ``cylinder-head-sector'' (CHS) addressing mode of old BIOSes, it can only +operate up to 8.5GB into the disk. +Plan 9 partitions further into the disk +can only be booted using +.BR /Inferno/386/pbslba , +and then only if the machine's BIOS supports +linear block addressing (LBA) mode for disk transfers. +.PP +When booting from floppy or hard disk, the BIOS loads the +first sector of the medium at location 0x7C00. In the +case of a floppy, this is the PBS. In the case of a hard +disk it it the master boot record (MBR). +The MBR copies itself to address +.BR 0x600 , +finds the active partition and loads its PBS at address +.BR 0x7C00 . +A copy of the Plan 9 MBR is kept in +.BR /Inferno/386/mbr ; +some commercial MBRs cannot read sectors +past 2GB. +The Plan 9 MBR can read sectors up to 8.5GB into +the disk, and further if the BIOS supports LBA. +The single file +.B /Inferno/386/mbr +detects whether the BIOS supports LBA and +acts appropriately, defaulting to CHS mode +when LBA is not present. +The PBSs cannot do this due to code size considerations. +The Plan 9 MBR is suitable for booting non-Plan 9 +operating systems, +and (modulo the large disk constraints just described) +non-Plan 9 MBRs are suitable for booting Plan 9. +.PP +Thus the default sequence is: BIOS, MBR, PBS, +.IR 9load , +kernel. +.PP +Because it contains many device drivers for different +disks and networks, +.I 9load +is larger than 64K and cannot be run as a DOS +.RB `` .com '' +executable. +A stripped-down version that knows about disks but not networks, +called +.I ld +(really +.BR ld.com ), +fits in 64K and can be used under DOS to load and start a program (default +.IR 9load ) +from the FAT16 partition. +Its command line argument is of the same format as the +.I bootfile +specifiers described below. +This profusion of loaders is unfortunate, but at least +.I ld +and +.I 9load +are compiled from the same source. +.PP +.I 9load +begins execution at address +.B 0x80010000 +(64K) and +loads the +.I bootfile +at the entry address specified by the header, +usually +.BR 0x80100020 . +After loading, control is passed to the entry location. +.PP +Finally, +.I 9pxeload +is a version of +.I 9load +that can be booted using the PXE download +found on some ethernet card BIOSs. +.PP +In summary, +Inferno and Plan 9 can be booted on a PC three different ways: +either by booting MS-DOS and using +.I ld +to start +.I 9load +in the appropriate directory, +by booting directly from an Inferno/Plan 9 boot floppy or disk +partition +prepared using +.B format +to install the appropriate files and bootstrap sectors +(see +.IR prep (8)), +or by using a PXE capable BIOS to boot +.I 9pxeload +directly over the ethernet. +.PP +The +.IR bootfile , +which may be compressed with +.IR gzip (1), +can be specified to +.I 9load +as a +.B bootfile= +entry in +.IR plan9.ini , +or if booting from the ethernet, by a BOOTP server. +If the +.B plan9.ini +file contains multiple +.B bootfile= +entries, +.I 9load +will present a numerical menu of the choices; type +the corresponding number to select an entry. +.PP +The format of the +.I bootfile +name is +.IB device ! file +or +.IB device ! partition ! file\f1. +If +.BI ! file +is omitted, the default for the particular +.I device +is used. +Supported +.I devices +are +.TF \fLethern +.TP +.BI fd n +An MS-DOS floppy disk. +.I N +specifies the floppy drive, either +0 or 1. +The +.I bootfile +is the contents of the MS-DOS +.IR file . +There is no default file. +For compatibility with hard disks, a +.I partition +may be given, but only +.B dos +is recognized: +.BI fd0!dos! file\f1. +.TP +.BI ether n +Ethernet. +.I N +specifies the Ethernet device number. +If a +.I partition +is specified, it is taken to be the name of a host machine +from which to load the kernel. +.I file +is determined by the +.B /lib/ndb +(see +.IR ndb (6)) +entry for this PC. +.TP +.BI sd Cn +Non-floppy disk. +The device name format is described in +.IR sd (3). +A +.I partition +must be given and must +name a partition containing a FAT file system. +The name +.B dos +refers to the first DOS partition on a given device. +It is common for Inferno/Plan 9 partitions to contain a small +FAT file system for configuration. +By convention, this partition is called +.BR 9fat . +There is no default partition or pathname. +.PD +.PP +When +.I 9load +starts running at physical address 0x10000, +it switches to 32-bit mode. +It then double maps the first 16Mb of physical memory to +virtual addresses 0 and 0x80000000. +Physical memory from 0x300000 upwards is used as data +space. +Next, in order to find configuration information, +.I 9load +searches all units on devices +.BR fd +and +.BI sd Cn \fR, +in that order, for a file called +.B plan9\eplan9.ini +or +.B plan9.ini +(see +.IR plan9.ini (10.6)) +on a partition named +.B dos +or +.BR 9fat . +If one is found, searching stops and the file is read into memory +at physical address 0x1200 +where it can be found later by any loaded +.IR bootfile . +Some options in +.B plan9.ini +are used by +.IR 9load : +.TF bootfile=manual +.TP +.B console +.TP +.B baud +Specifies the console device and baud rate if not a display. +.TP +.BI ether n +Ethernet interfaces. These can be used to load the +.I bootfile +over a network. +Probing for Ethernet interfaces is too prone to error. +.TP +.BI bootfile= bootfile +Specifies the +.IR bootfile . +This option is overridden by a command-line argument. +.TP +.B bootfile=auto +Default. +.TP +.B bootfile=local +Like +.IR auto , +but do not attempt to load over the network. +.TP +.B bootfile=manual +After determining which devices are available for loading from, +enter prompt mode. +.PD +.PP +When the search for +.B plan9.ini +is done, +.I 9load +proceeds to determine which bootfile to load. +If there was no +.I bootfile +option, +.I 9load +chooses a default +from the following prioritized device list: +.EX + fd sd ether +.EE +.I 9load +then attempts to load the +.I bootfile +unless +the +.B bootfile=manual +option was given, in which case prompt mode is entered immediately. +If the default device is +.BR fd , +.I 9load +will prompt the user for input before proceeding with the +default bootfile load after 5 seconds; +this prompt is omitted if +a command-line argument or +.I bootfile +option +was given. +.PP +.I 9load +prints the list of available +.IR device s +and +enters prompt mode on encountering any error +or if directed to do so by a +.B bootfile=manual +option. +In prompt mode, the user is required to type +a +.IB bootfile +in response to the +.L "Boot from: +prompt. +.PP +.I 9load +parses the master boot record and Plan 9 partition tables +(see +.IR prep (8)), +leaving partitioning information appended to the +in-memory contents of +.I plan9.ini +for the +.IR bootfile . +This is used by +.IR sd (3) +to initialize partitions so that a +file system in a partition can be found and mounted as the root file system. +A more extensive partitioning is typically done by system initialisation in +.B osinit.dis +(see +.IR root (3)). +.PP +A +control-P +character typed at any time on the console causes +.B 9load +to perform a hardware reset +(Ctrl-Alt-Del can also be used on a PC keyboard). +.PP +When loaded from a PBS (rather than from +.IR ld.com ), +.I 9load +must be contiguously allocated on +the disk. +See +.IR dossrv (4) +for information on ensuring this. +.SH FILES +.RI [ drive :] +[ +.I path +.RB ] 9load +.br +.RI [ drive :] +[ +.I path +.RB ] ld +.br +.IB "FAT filesystem" :\eplan9\eplan9.ini +.br +.IB "FAT filesystem" :\eplan9.ini +.SH SOURCE +.B /os/boot/pc +.SH "SEE ALSO" +.IR plan9.ini (10.6), +.IR prep (8) +.SH BUGS +Much of the work done by +.B 9load +is duplicated by the loaded kernel. +.PP +If +.I ld +detects an installed MS-DOS Extended Memory Manager, +it attempts to de-install it, but the technique +used may not always work. +It is safer not to install the Extended Memory Manager before running +.IR ld . diff --git a/static/inferno/man10/INDEX.10 b/static/inferno/man10/INDEX.10 new file mode 100644 index 00000000..c458b43a --- /dev/null +++ b/static/inferno/man10/INDEX.10 @@ -0,0 +1,265 @@ +intro 0intro +0a 2a +1a 2a +2a 2a +5a 2a +6a 2a +7a 2a +8a 2a +ka 2a +qa 2a +va 2a +0c 2c +1c 2c +2c 2c +5c 2c +6c 2c +7c 2c +8c 2c +kc 2c +qc 2c +vc 2c +0l 2l +1l 2l +2l 2l +5l 2l +6l 2l +7l 2l +8l 2l +kl 2l +ql 2l +vl 2l +5coff 5coff +5cv 5cv +mkppcimage 5cv +sqz 5cv +9load 9load +9pxeload 9load +ld 9load +a.out a.out +acid acid +adjustblock allocb +allocb allocb +blen allocb +blocklen allocb +checkb allocb +concatblock allocb +copyblock allocb +freeb allocb +freeblist allocb +iallocb allocb +packblock allocb +padblock allocb +pullblock allocb +pullupblock allocb +trimblock allocb +ar ar +atoi atoi +atol atoi +charstod atoi +strtod atoi +strtol atoi +strtoll atoi +strtoul atoi +c2l c2l +conf conf +addclock0link delay +delay delay +microdelay delay +dev dev +devattach devattach +devbread devattach +devbwrite devattach +devclone devattach +devcreate devattach +devdir devattach +devdirread devattach +devgen devattach +devinit devattach +devopen devattach +devremove devattach +devreset devattach +devshutdown devattach +devstat devattach +devwalk devattach +devwstat devattach +openmode devattach +dmacount dmainit +dmadone dmainit +dmaend dmainit +dmainit dmainit +dmasetup dmainit +dynfindsym dynld +dynfreeimport dynld +dynld dynld +dynloadfd dynld +dynloadgen dynld +dynobjfree dynld +dyntabsize dynld +error error +nexterror error +poperror error +waserror error +eve eve +iseve eve +getfields getfields +tokenize getfields +iar iar +inb inb +inl inb +ins inb +insb inb +insl inb +inss inb +outb inb +outl inb +outs inb +outsb inb +outsl inb +outss inb +inm inm +intrdisable intrenable +intrenable intrenable +kbdclock kbdputc +kbdputc kbdputc +kbdq kbdputc +kbdrepeat kbdputc +kproc kproc +pexit kproc +setpri kproc +swiproc kproc +kprof kprof +ksize ksize +kstrip kstrip +canlock lock +ilock lock +iunlock lock +lock lock +unlock lock +calloc malloc +free malloc +malloc malloc +mallocz malloc +realloc malloc +smalloc malloc +master master +master.local master +memccpy memory +memchr memory +memcmp memory +memcpy memory +memmove memory +memory memory +memset memory +mk mk +ms2 ms2 +cclose newchan +chanfree newchan +eqchan newchan +eqqid newchan +fdtochan newchan +isdir newchan +namec newchan +newchan newchan +ntsrv ntsrv +odbc odbc +panic panic +parsecmd parsecmd +plan9.ini plan9.ini +fprint print +print print +seprint print +smprint print +snprint print +sprint print +vfprint print +vseprint print +vsmprint print +vsnprint print +qbread qio +qbwrite qio +qcanread qio +qclose qio +qconsume qio +qcopy qio +qdiscard qio +qflush qio +qfree qio +qfull qio +qget qio +qhangup qio +qio qio +qiwrite qio +qlen qio +qnoblock qio +qopen qio +qpass qio +qproduce qio +qread qio +qreopen qio +qsetlimit qio +qwindow qio +qwrite qio +canqlock qlock +qlock qlock +qunlock qlock +rlock qlock +runlock qlock +wlock qlock +wunlock qlock +readnum readnum +readstr readnum +decref ref +incref ref +ref ref +chartorune rune +fullrune rune +rune rune +runelen rune +runetochar rune +utflen rune +utfrrune rune +utfrune rune +utfutf rune +hz seconds +ms2hz seconds +ms2tk seconds +seconds seconds +ticks seconds +tk2ms seconds +tk2sec seconds +return0 sleep +sleep sleep +tsleep sleep +wakeup sleep +islo splhi +splhi splhi +spllo splhi +splx splhi +srclist srclist +strcat strcat +strchr strcat +strcmp strcat +strcpy strcat +strdup strcat +strlen strcat +strncmp strcat +strncpy strcat +strrchr strcat +strstr strcat +convd2m styx +convm2d styx +convm2s styx +convs2m styx +dirfmt styx +dirmodefmt styx +fcall styx +fcallfmt styx +sized2m styx +sizes2m styx +statcheck styx +styx styx +styxserver styxserver +xalloc xalloc +xfree xalloc +xspanalloc xalloc diff --git a/static/inferno/man10/Makefile b/static/inferno/man10/Makefile new file mode 100644 index 00000000..0546dfd6 --- /dev/null +++ b/static/inferno/man10/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.10) + +include ../../mandoc.mk diff --git a/static/inferno/man10/a.out.10 b/static/inferno/man10/a.out.10 new file mode 100644 index 00000000..6e5841d0 --- /dev/null +++ b/static/inferno/man10/a.out.10 @@ -0,0 +1,242 @@ +.TH A.OUT 10.6 +.SH NAME +a.out \- native kernel object file format +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +An executable native binary file has up to six sections: +a header, the program text, the data, +a symbol table, a PC/SP offset table (MC680x0 only), +and finally a PC/line number table. +The header, given by a structure in +.BR , +contains 4-byte integers in big-endian order: +.PP +.EX +typedef struct Exec { + long magic; /* magic number */ + long text; /* size of text segment */ + long data; /* size of initialized data */ + long bss; /* size of uninitialized data */ + long syms; /* size of symbol table */ + long entry; /* entry point */ + long spsz; /* size of pc/sp offset table */ + long pcsz; /* size of pc/line number table */ +} Exec; +#define _MAGIC(b) ((((4*b)+0)*b)+7) +#define A_MAGIC _MAGIC(8) /* 68020 */ +#define I_MAGIC _MAGIC(11) /* intel 386 */ +#define J_MAGIC _MAGIC(12) /* intel 960 */ +#define K_MAGIC _MAGIC(13) /* sparc */ +#define V_MAGIC _MAGIC(16) /* mips 3000 */ +#define X_MAGIC _MAGIC(17) /* att dsp 3210 */ +#define M_MAGIC _MAGIC(18) /* mips 4000 */ +#define D_MAGIC _MAGIC(19) /* amd 29000 */ +#define E_MAGIC _MAGIC(20) /* arm 7-something */ +#define Q_MAGIC _MAGIC(21) /* powerpc */ +#define N_MAGIC _MAGIC(22) /* mips 4000-le */ +#define L_MAGIC _MAGIC(23) /* dec alpha */ +.EE +.DT +.PP +Sizes are expressed in bytes. +The size of the header is not included in any of the other sizes. +.PP +When a Plan 9 binary file is executed, +a memory image of three segments is +set up: the text segment, the data segment, and the stack. +The text segment begins at a virtual address which is +a multiple of the machine-dependent page size. +The text segment consists of the header and the first +.B text +bytes of the binary file. +The +.B entry +field gives the virtual address of the entry point of the program. +The data segment starts at the first page-rounded virtual address +after the text segment. +It consists of the next +.B data +bytes of the binary file, followed by +.B bss +bytes initialized to zero. +The stack occupies the highest possible locations +in the core image, automatically growing downwards. +.PP +The next +.B syms +(possibly zero) +bytes of the file contain symbol table +entries, each laid out as: +.IP +.EX +uchar value[4]; +char type; +char name[\f2n\fP]; /* NUL-terminated */ +.EE +.PP +The +.B value +is in big-endian order and +the size of the +.B name +field is not pre-defined: it is a zero-terminated array of +variable length. +.PP +The +.B type +field is one of the following characters: +.RS +.TP +.B T +text segment symbol +.PD0 +.TP +.B t +static text segment symbol +.TP +.B L +leaf function text segment symbol +.TP +.B l +static leaf function text segment symbol +.TP +.B D +data segment symbol +.TP +.B d +static data segment symbol +.TP +.B B +bss segment symbol +.TP +.B b +static bss segment symbol +.TP +.B a +automatic (local) variable symbol +.TP +.B p +function parameter symbol +.RE +.PD +.PP +A few others are described below. +The symbols in the symbol table appear in the same order +as the program components they describe. +.PP +The Plan 9 compilers implement a virtual stack frame pointer rather +than dedicating a register; +moreover, on the MC680x0 +there is a variable offset between the stack pointer and the +frame pointer. +Following the symbol table, +MC680x0 executable files contain a +.BR spsz -byte +table encoding the offset +of the stack frame pointer as a function of program location; +this section is not present for other architectures. +The PC/SP table is encoded as a byte stream. +By setting the PC to the base of the text segment +and the offset to zero and interpreting the stream, +the offset can be computed for any PC. +A byte value of 0 is followed by four bytes that hold, in big-endian order, +a constant to be added to the offset. +A byte value of 1 to 64 is multiplied by four and added, without sign +extension, to the offset. +A byte value of 65 to 128 is reduced by 64, multiplied by four, and +subtracted from the offset. +A byte value of 129 to 255 is reduced by 129, multiplied by the quantum +of instruction size +(e.g. two on the MC680x0), +and added to the current PC without changing the offset. +After any of these operations, the instruction quantum is added to the PC. +.PP +A similar table, occupying +.BR pcsz -bytes, +is the next section in an executable; it is present for all architectures. +The same algorithm may be run using this table to +recover the absolute source line number from a given program location. +The absolute line number (starting from zero) counts the newlines +in the C-preprocessed source seen by the compiler. +Three symbol types in the main symbol table facilitate conversion of the absolute +number to source file and line number: +.RS +.TP +.B f +source file name components +.TP +.B z +source file name +.TP +.B Z +source file line offset +.RE +.PP +The +.B f +symbol associates an integer (the +.B value +field of the `symbol') with +a unique file path name component (the +.B name +of the `symbol'). +These path components are used by the +.B z +symbol to represent a file name: the +first byte of the name field is always 0; the remaining +bytes hold a zero-terminated array of 16-bit values (in big-endian order) +that represent file name components from +.B f +symbols. +These components, when separated by slashes, form a file name. +The initial slash of a file name is recorded in the symbol table by an +.B f +symbol; when forming file names from +.B z +symbols an initial slash is not to be assumed. +The +.B z +symbols are clustered, one set for each object file in the program, +before any text symbols from that object file. +The set of +.B z +symbols for an object file form a +.I history stack +of the included source files from which the object file was compiled. +The value associated with each +.B z +symbol is the absolute line number at which that file was included in the source; +if the name associated with the +.B z +symbol is null, the symbol represents the end of an included file, that is, +a pop of the history stack. +If the value of the +.B z +symbol is 1 (one), +it represents the start of a new history stack. +To recover the source file and line number for a program location, +find the text symbol containing the location +and then the first history stack preceding the text symbol in the symbol table. +Next, interpret the PC/line offset table to discover the absolute line number +for the program location. +Using the line number, scan the history stack to find the set of source +files open at that location. +The line number within the file can be found using the line numbers +in the history stack. +The +.B Z +symbols correspond to +.B #line +directives in the source; they specify an adjustment to the line number +to be printed by the above algorithm. The offset is associated with the +first previous +.B z +symbol in the symbol table. +.SH "SEE ALSO" +.IR acid (10.1), +.IR 2a (10.1), +.IR 2l (10.1), +.IR inm (10.1) +.SH BUGS +There is no type information in the symbol table. diff --git a/static/inferno/man10/acid.10 b/static/inferno/man10/acid.10 new file mode 100644 index 00000000..d2c1455a --- /dev/null +++ b/static/inferno/man10/acid.10 @@ -0,0 +1,373 @@ +.TH ACID 10.1 +.SH NAME +acid \- debugger +.SH SYNOPSIS +.B acid +[ +.BI -l " libfile +] +[ +.B -wq +] [ +.B -m +.I machine +] [ +.I pid +] +[ +.I textfile +] +.SH DESCRIPTION +.I Acid +is a programmable symbolic debugger. +It can inspect one or more processes that share an address space. +A program to be debugged may be specified by the process id of +a running or defunct process, +or by the name of the program's text file +.RB ( v.out +by default). +At the prompt, +.I acid +will store function definitions or print the value of expressions. +Options are +.TP .9i +.B -w +Allow the textfile to be modified. +.TP +.B -q +Don't print variable renamings at startup. +.TP +.BI -l " library +Load from +.I library +at startup; see below. +.TP +.BI -m " machine +Assume instructions are for the given CPU type +(one of +.BR 386 , +.BR 86 , +.BR 68020 , +.BR 960 , +.BR power , +.BR arm , +.BR mips , +.BR mipsco , +.BR sparc , +or +.BR sunsparc ) +instead of using the magic number to select +the CPU type. +.PP +At startup, +.I acid +obtains standard function definitions from the library file +.BR /lib/acid/port , +architecture-dependent functions from +.BR /lib/acid/$objtype , +user-specified functions from +.BR $home/lib/acid , +and further functions from +.B -l +files. +Definitions in any file may override previously defined functions. +If the function +.IR acidinit () +is defined, it will be invoked after all modules have been loaded. +See +.IR 2c (10.1) +for information about creating +.I acid +functions for examining data structures. +.SS Language +Symbols of the program being debugged become integer +variables whose values are addresses. +Contents of addresses are obtained by indirection. +Local variables are qualified by +function name, for example +.BR main:argv . +When program symbols conflict with +.I acid +words, distinguishing +.B $ +signs are prefixed. +Such renamings are reported at startup; option +.B -q +suppresses them. +.PP +Variable types +.RI ( "integer, float, list, string" ) +and formats are inferred from assignments. +Truth values false/true are attributed to zero/nonzero +integers or floats and to empty/nonempty lists or strings. +Lists are sequences of expressions surrounded by +.BR {\^} +and separated by commas. +.PP +Expressions are much as in C, +but yield both a value and a format. +Casts to complex types are allowed. +Lists admit the following operators, with +subscripts counted from 0. +.IP +.BI head " list +.br +.BI tail " list +.br +.BI append " list", " element +.br +.BI delete " list", " subscript +.PP +Format codes are the same as in +.IR db (10.1). +Formats may be attached to (unary) expressions with +.BR \e , +e.g. +.BR (32*7)\eD . +There are two indirection operators, +.B * +to address a core image, +.B @ +to address a text file. +The type and format of the result are determined by the format of the operand, +whose type must be integer. +.PP +Statements are +.IP +.BI if " expr " then " statement " "\fR[ \fPelse\fI statement \fR] +.br +.BI while " expr " do " statement +.br +.BI loop " expr" , " expr " do " statement +.br +.BI defn " name" ( args ") {" " statement \fP} +.br +.BI local " name +.br +.BI return " expr +.br +.BR whatis " [ \fI name \fP] +.PP +Here is a partial list of functions; see the manual for a complete list. +.TF asm(address) +.TP +.B stk() +Print a stack trace for current process. +.TP +.B lstk() +Print a stack trace with values of local variables. +.TP +.B gpr() +Print general registers. +Registers can also be accessed by name, for example +.BR *R0 . +.TP +.B spr() +Print special registers such as program counter and stack pointer. +.TP +.B fpr() +Print floating-point registers. +.TP +.B regs() +Same as +.BR spr();gpr() . +.TP +.BI fmt( expr , format ) +Expression +.I expr +with format given by the character value of expression +.IR format . +.TP +.BI src( address ) +Print 10 lines of source around the program address. +.TP +.BI Bsrc( address ) +Get the source line for the program address +into a window of a running +editor +and select it. +(This works only on Plan 9, or a Unix-like system running `Plan 9 Ports'.) +.TP +.BI line( address ) +Print source line nearest to the program address. +.TP +.B source() +List current source directories. +.TP +.BI addsrcdir( string ) +Add a source directory to the list. +.TP +.BI filepc( where ) +Convert a string of the form +.IB sourcefile : linenumber +to a machine address. +.TP +.BI pcfile( address ) +Convert a machine address to a source file name. +.TP +.BI pcline( address ) +Convert a machine address to a source line number. +.TP +.BI bptab() +List breakpoints set in the current process. +.TP +.BI bpset( address ) +Set a breakpoint in the current process at the given address. +.TP +.BI bpdel( address ) +Delete a breakpoint from the current process. +.TP +.B cont() +Continue execution of current process and wait for it to stop. +.TP +.B step() +Execute a single machine instruction in the current process. +.TP +.B func() +Step repeatedly until after a function return. +.TP +.BI stopped( pid ) +This replaceable function is called automatically when the given process +stops. +It normally prints the program counter and returns to the prompt. +.TP +.BI asm( address ) +Disassemble 30 machine instructions beginning at the given address. +.TP +.BI mem( address , string ) +Print a block of memory +interpreted according to a string of format codes. +.TP +.BI dump( address , n , string\fP) +Like +.BR mem (), +repeated for +.I n +consecutive blocks. +.TP +.BI print( expr , ... ) +Print the values of the expressions. +.TP +.BI newproc( arguments ) +Start a new process with arguments given as a string +and halt at the first instruction. +.TP +.B new() +Like +.IR newproc (), +but take arguments (except +.BR argv[0] ) +from string variable +.BR progargs . +.TP +.B win() +Like +.IR new (), +but run the process in a separate window. +.TP +.BI start( pid ) +Start a stopped process. +.TP +.BI kill( pid ) +Kill the given process. +.TP +.BI setproc( pid ) +Make the given process current. +.TP +.BI rc( string ) +Escape to the shell, +.....IR rc (10.1), +to execute the command string. +.SH EXAMPLES +Start to debug +.BR /bin/ls ; +set some breakpoints; run up to the first one: +.IP +.EX +% acid /bin/ls +/bin/ls: mips plan 9 executable +/lib/acid/port +/lib/acid/mips +acid: new() +70094: system call _main ADD $-0x14,R29 +70094: breakpoint main+0x4 MOVW R31,0x0(R29) +acid: pid +70094 +acid: argv0 = **main:argv\es +acid: whatis argv0 +integer variable format s +acid: *argv0 +/bin/ls +acid: bpset(ls) +acid: cont() +70094: breakpoint ls ADD $-0x16c8,R29 +acid: +.EE +.PP +Display elements of a linked list of structures: +.IP +.EX +complex Str { 'D' 0 val; 'X' 4 next; }; +complex Str s; +s = *headstr; +while s != 0 do{ + print(s.val, "\en"); + s = s.next; +} +.EE +.PP +Note the use of the +.B . +operator instead of +.BR -> . +.PP +Display an array of bytes declared in C as +.BR "char array[]" . +.IP +.EX +*(array\es) +.EE +.PP +This example gives +.B array +string format, then prints the string beginning at the address (in +.I acid +notation) +.BR *array . +.SH FILES +.B /proc/*/text +.br +.B /proc/*/mem +.br +.B /proc/*/ctl +.br +.B /proc/*/note +.br +.B /lib/acid/$objtype +.br +.B /lib/acid/port +.br +.B $home/lib/acid +.SH SOURCE +.B /utils/acid +.SH "SEE ALSO" +.IR 2a (10.1), +.IR 2c (10.1), +.IR 2l (10.1), +.IR mk (10.1), +.IR db (10.1) +.br +Phil Winterbottom, +``Acid Manual''. +.SH DIAGNOSTICS +At termination, kill commands are proposed +for processes that are still active. +.SH BUGS +There is no way to redirect the standard input and standard output +of a new process. +.br +Source line selection near the beginning of a file may pick +an adjacent file. +.br +With the extant stepping commands, one cannot step through instructions +outside the text segment and it is hard to debug across process forks. diff --git a/static/inferno/man10/allocb.10 b/static/inferno/man10/allocb.10 new file mode 100644 index 00000000..4690ab35 --- /dev/null +++ b/static/inferno/man10/allocb.10 @@ -0,0 +1,314 @@ +.TH ALLOCB 10.2 +.SH NAME +allocb, iallocb, freeb, freeblist, BLEN, blocklen, concatblock, copyblock, trimblock, packblock, padblock, pullblock, pullupblock, adjustblock, checkb \- data block management +.SH SYNOPSIS +.ta \w'\fLBlock* 'u +.B +Block* allocb(int size) +.PP +.B +Block* iallocb(int size) +.PP +.B +void freeb(Block *b) +.PP +.B +void freeblist(Block *b) +.PP +.B +long BLEN(Block *b) +.PP +.B +int blocklen(Block *b) +.PP +.B +Block* concatblock(Block *b) +.PP +.B +Block* copyblock(Block *b, int n) +.PP +.B +Block* trimblock(Block *b, int offset, int n) +.PP +.B +Block* packblock(Block *b) +.PP +.B +Block* padblock(Block *b, int n) +.PP +.B +int pullblock(Block **bph, int n) +.PP +.B +Block* pullupblock(Block *b, int n) +.PP +.B +Block* adjustblock(Block *b, int n) +.PP +.B +void checkb(Block *b, char *msg) +.SH DESCRIPTION +A +.B Block +provides a receptacle for data: +.IP +.EX +.DT +typedef +struct Block +{ + Block* next; + Block* list; + uchar* rp; /* first unconsumed byte */ + uchar* wp; /* first empty byte */ + uchar* lim; /* 1 past the end of the buffer */ + uchar* base; /* start of the buffer */ + void (*free)(Block*); + ulong flag; +} Block; +.EE +.PP +Each +.B Block +has an associated buffer, located at +.BR base , +and accessed via +.B wp +when filling the buffer, or +.B rp +when fetching data from it. +Each pointer should be incremented to reflect the amount of data written or read. +A +.B Block +is empty when +.B rp +reaches +.BR wp . +The pointer +.B lim +bounds the allocated space. +Some operations described below accept lists of +.BR Block s, +which are +chained via their +.B next +pointers, with a null pointer ending the list. +.B Blocks +are usually intended for a +.B Queue +(see +.IR qio (10.2)), +but can be used independently. +.PP +A +.B Block +and its buffer are normally allocated by one call to +.IR malloc (10.2) +and aligned on an 8 byte (\fLBY2V\fP) boundary. +Some devices with particular allocation constraints +(eg, requiring certain addresses for DMA) might allocate their own +.B Block +and buffer; +.B free +must then point to a function that can deallocate the specially allocated +.BR Block . +.PP +Many +.B Block +operations cannot be used in interrupt handlers +because they either +.IR sleep (10.2) +or raise an +.IR error (10.2). +Of operations that allocate blocks, only +.IR iallocb +is usable. +.PP +.I Allocb +allocates a +.B Block +of at least +.IR size +bytes. +The block +is initially empty: +.B rp +and +.B wp +point to the start of the data. +If it cannot allocate memory, +.I allocb +raises an +.IR error (10.2); +it cannot be used by an interrupt handler. +.PP +.IR Iallocb +is similar to +.IR allocb +but is intended for use by interrupt handlers, +and returns a null pointer if no memory is available. +It also limits its allocation to a quota allocated at system initialisation to interrupt-time buffering. +.PP +.I Freeb +frees a single +.B Block +(and its buffer). +.PP +.I Freeblist +frees the whole +list of blocks headed by +.IR b . +.PP +.I BLEN +returns the number of unread bytes in a single block +.IR b ; +it is implemented as a macro. +.PP +.I Blocklen +returns the number of bytes of unread data in the whole list of blocks headed by +.IR b . +.PP +.I Concatblock +returns +.I b +if it is not a list, and otherwise +returns a single +.B Block +containing all the data in the list of blocks +.IR b , +which it frees. +.PP +.I Copyblock +by contrast returns a single +.B Block +containing a copy of the first +.I n +bytes of data in the block list +.IR b , +padding with zeroes if the list contained less than +.I n +bytes. +The list +.I b +is unchanged. +.PP +.I Padblock +can pad a single +.B Block +at either end, to reserve space for protocol headers or trailers. +If +.IR n ≥ 0 , +it inserts +.I n +bytes at the start of the block, +setting the read pointer +.B rp +to point to the new space. +If +.IR n < 0 , +it adds +.I n +bytes at the end of the block, +leaving the write pointer +.B wp +pointing at the new space. +In both cases, it allocates a new +.B Block +if necessary, freeing the old, and +it always returns a pointer to the resulting +.BR Block . +.PP +.I Trimblock +trims the list +.I b +to contain no more than +.I n +bytes starting at +.I offset +bytes into the data of the original list. +It returns a new list, freeing unneeded parts of the old. +If no data remains, it returns a null pointer. +.PP +.I Packblock +examines each +.B Block +in the list +.IR b , +reallocating any block in the list that has four times more available space than actual data. +It returns a pointer to the revised list. +.PP +.I Pullblock +discards up to +.I n +bytes from the start of the list headed by +.BI * bph \f1.\f0 +Unneeded blocks are freed. +.I Pullblock +sets +.BI * bph +to point to the new list head +and returns the number of bytes discarded (which might be less than +.IR n ). +It is used by transport protocols to discard ack'd data at +the head of a retransmission queue. +.PP +.I Pullupblock +rearranges the data in the list of blocks +.I b +to ensure that there are at least +.I n +bytes of contiguous data in the first block, +and returns a pointer to the new list head. +It frees any blocks that it empties. +It returns a null pointer if there is not enough data in the list. +.PP +.I Adjustblock +ensures that the block +.I b +has at least +.I n +bytes of data, reallocating or padding with zero if necessary. +It returns a pointer to the new +.BR Block . +(If +.I n +is negative, it frees the block and returns a null pointer.) +.PP +.I Checkb +does some consistency checking of +the state of +.IR b ; +a +.IR panic (10.2) +results if things look grim. +It is intended for internal use by the queue I/O routines (see +.IR qio (10.2)) +but could be used elsewhere. +.PP +The only functions that can be called at interrupt level are +.IR iallocb , +.IR freeb , +.IR freeblist , +.IR BLEN , +.IR blocklen , +.IR trimblock +and +.IR pullupblock . +The others allocate memory and can potentially block. +.SH DIAGNOSTICS +Many functions directly or indirectly can raise an +.IR error (10.2), +and callers must therefore provide for proper error recovery +as described therein to prevent memory leaks and other bugs. +Except for +.IR iallocb , +any functions that allocate new blocks or lists +are unsuitable for use by interrupt handlers. +.IR Iallocb +returns a null pointer when it runs out of memory. +.SH SOURCE +.B /os/port/qio.c +.br +.B /emu/port/qio.c +.SH SEE ALSO +.IR qio (10.2) diff --git a/static/inferno/man10/ar.10 b/static/inferno/man10/ar.10 new file mode 100644 index 00000000..1ef1fa51 --- /dev/null +++ b/static/inferno/man10/ar.10 @@ -0,0 +1,98 @@ +.TH AR 10.6 +.SH NAME +ar \- archive (library) file format +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +The archive command +.IR iar (10.1) +is used to combine several files into +one. +Archives are used mainly as libraries to be searched +by the loaders +.IR 2l (10.1) +.I et al. +.PP +A file produced by +.I ar +has a magic string at the start, +followed by the constituent files, each preceded by a file header. +The magic number and header layout as described in the +include file are: +.IP +.EX +.ec % +#define ARMAG "!\en" +#define SARMAG 8 + +#define ARFMAG "`\en" + +struct ar_hdr { + char name[16]; + char date[12]; + char uid[6]; + char gid[6]; + char mode[8]; + char size[10]; + char fmag[2]; +}; +#define SAR_HDR 60 +.ec \ +.EE +.LP +The +.B name +is a blank-padded string. +The +.L fmag +field contains +.L ARFMAG +to help verify the presence of a header. +The other fields are left-adjusted, blank-padded numbers. +They are decimal except for +.LR mode , +which is octal. +The date is the modification date of the file (see +.IR sys-stat (2)) +at the time of its insertion into the archive. +The mode is the low 9 bits of the file permission mode. +The length of the header is +.LR SAR_HDR . +Because the +.L ar_hdr +structure is padded in an architecture-dependent manner, +the structure should never be read or written as a unit; +instead, each field should be read or written independently. +.PP +Each file begins on an even (0 mod 2) boundary; +a newline is inserted between files if necessary. +Nevertheless +.B size +reflects the +actual size of the file exclusive of padding. +.PP +When all members of an archive are object files of +the same architecture, +.B ar +automatically adds an extra file, named +.BR __.SYMDEF , +as the first member of the archive. This file +contains an index used by the loaders to locate all +externally defined text and data symbols in the archive. +.PP +There is no provision for empty areas in an archive +file. +.SH "SEE ALSO" +.IR iar (10.1), +.IR 2l (10.1), +.IR inm (10.1), +.IR sys-stat (2) +.SH BUGS +The +.B uid +and +.B gid +fields are unused. +They provide compatibility with Unix +.I ar +format. diff --git a/static/inferno/man10/atoi.10 b/static/inferno/man10/atoi.10 new file mode 100644 index 00000000..676fc53b --- /dev/null +++ b/static/inferno/man10/atoi.10 @@ -0,0 +1,125 @@ +.TH ATOI 10.2 +.SH NAME +atoi, atol, charstod, strtod, strtol, strtoul, strtoll \- convert text to numbers +.SH SYNOPSIS +.ta \w'\fLdouble 'u +.B +int atoi(char *nptr) +.PP +.B +long atol(char *nptr) +.PP +.B +double charstod(int (*f)(void *), void *a) +.PP +.B +double strtod(char *nptr, char **rptr) +.PP +.B +long strtol(char *nptr, char **rptr, int base) +.PP +.B +ulong strtoul(char *nptr, char **rptr, int base) +.PP +.B +vlong strtoll(char *nptr, char **rptr, int base) +.SH DESCRIPTION +.IR Atoi +and +.I atol +convert a string pointed to by +.I nptr +to integer, and long integer +representation respectively. +The first unrecognized character ends the string. +Leading C escapes are understood, as in +.I strtol +with +.I base +zero. +.PP +.I Atoi +and +.I atol +recognize an optional string of tabs and spaces, +then an optional sign, then a string of +decimal digits. +.PP +.IR Strtod , +.IR strtol , +.IR strtoul , +and +.I strtoll +behave similarly to +.I atol +and, if +.I rptr +is not zero, set +.I *rptr +to point to the input character +immediately after the string converted. +.PP +.I Strtod +recognizes an optional string of tabs and spaces, +then an optional sign, then +a string of digits optionally containing a decimal +point, then an optional +.L e +or +.L E +followed +by an optionally signed integer. +.PP +.IR Strtol , +.I strtoul +and +.I strtoll +interpret the digit string in the specified +.IR base , +from 2 to 36, +each digit being less than the base. +Digits with value over 9 are represented by letters, +a-z or A-Z. +If +.I base +is 0, the input is interpreted as an integral constant in +the style of C (with no suffixed type indicators): +numbers are octal if they begin with +.LR 0 , +hexadecimal if they begin with +.L 0x +or +.LR 0X , +otherwise decimal. +.I Strtoul +does not recognize signs. +.PP +.I Charstod +interprets floating point numbers in the same syntax as +.IR strtod , +but it gets successive characters by calling +.BR (*\fIf\fP)(\f2a\f5) . +The last call to +.I f +terminates the scan, so it must have returned a character that +is not a legal continuation of a number. +Therefore, it may be necessary to back up the input stream one character +after calling +.IR charstod . +.SH SOURCE +.B /libkern/atol.c +.br +.B /libkern/charstod.c +.br +.B /libkern/strtod.c +.br +.B /libkern/strtol.c +.br +.B /libkern/strtoul.c +.br +.B /libkern/utils.c +.SH DIAGNOSTICS +Zero is returned if the beginning of the input string is not +interpretable as a number; even in this case, +.I rptr +will be updated. diff --git a/static/inferno/man10/c2l.10 b/static/inferno/man10/c2l.10 new file mode 100644 index 00000000..63f134d2 --- /dev/null +++ b/static/inferno/man10/c2l.10 @@ -0,0 +1,231 @@ +.TH C2L 10.1 +.SH NAME +c2l \- C to Limbo translator +.SH SYNOPSIS +.B c2l +[ +.I option ... +] +.I file +.SH DESCRIPTION +.I C2l +translates the named C +.I file +into Limbo. The translated code should be almost always syntactically correct +but will certainly never be semantically correct as certain constructs in C +(strings for example) are almost impossible to convert automatically into Limbo. +Otherwise it tries to do a good job of translating the C constructs that have some +sort of equivalence in Limbo. The C ternary +.B ?: +operator is replaced where possible. +C library calls are mapped to calls to the Limbo system module, maths module or +the provided Limbo libc modules. Some library calls, such as malloc, are instead +mapped directly into Limbo wherever possible. +.PP +Once a translation has been made, running the +.IR limbo (1) +compiler on the resulting output should pick out the areas where hand +editing is required. +.PP +.I C2l +normally puts all mapped C code (plus that from included files) into a +single .b file. +.PP +The options to +.I c2l +are: +.TP +.B -p +Use an ANSI preprocessor in place of the internal one. +.TP +.BI -D name=def +.br +.ns +.TP +.BI -D name +Define the +.I name +to the preprocessor, +as if by +.LR #define . +If no definition is given, the name is defined as +.LR 1 . +.TP +.BI -I dir +An +.L #include +file whose name does not begin with +slash +or is enclosed in double quotes +is always +sought first in the directory +of the +.I file +argument. If this fails, or the name is enclosed in +.BR <> , +it is then sought +in directories named in +.B -I +options, +then in +.BR /sys/include , +and finally in +.BR /$objtype/include . +.TP +.B -m +Put the mapped code of any included +.B .h +files into its corresponding +.B .m +file instead of +the +.B .b +file. +.TP +.B -i +Send the mapped code of any included +.B .h +files to +.BR /dev/null . +.TP +.B -l +Send the mapped code of any non-local included +.B .h +files to +.BR /dev/null . +.TP +.B -c +Just generate code corresponding to the C code ie don't include any prologue +or epilogue code such as an implement header, include declarations, module +declarations or an init function. +.TP +.B -v +Outputs any warnings to standard error as well as putting them in the output source. +.TP +.B -s +Map C strings to NUL-terminated arrays of bytes in Limbo. This just about preserves +the semantics of strings and makes the process of hand editing much easier. It is +useful as a first attempt at translation. In this case the module +.B /module/libc0.m +is used in place of the standard one +.B /module/libc.m. +.TP +.B -S +Map +.B "char*" +in C to string in Limbo. Incompatible with the +.B -s +option. +.TP +.B -M +Indicates this file is the one containing the C main program. Used with the +.B -q +option below when +.I c2l +does not always know this until it's too late. +.TP +.B -q +This reduces the number of passes that +.I c2l +makes over the C code. It makes it faster but more liable to miss some +transformations. Cyclic data structures might not be detected. +.TP +.B -a +For functions which are passed the address of a scalar typed (ie not a structure +or union) expression as a parameter, pass the expression itself and +rewrite the function and all calls of it to return the expression. For example :- +.PP +.EX + int + f(int x, int *y) + { + *y = x*x*x; + return x*(*y); + } + + void + g() + { + int p3, p4; + + p4 = f(1729, &p3); + } +.EE +.PP + becomes +.PP +.EX + f(x: int, y: int): (int, int) + { + y = x*x*x; + return (x*y, y); + } + + g() + { + p3, p4: int; + + (p4, p3) = f(1729, p3); + } +.EE +.PP +.I C2l +runs the preprocessor on the C code before starting translation. As +a special case it will convert definitions of constants into Limbo constant declarations. +It makes no attempt to convert any definitions into function declarations. +.PP +Identifier names that clash with Limbo keywords have letter +.B x +appended so, for example, +a structure member called +.B type +would become +.BR typex . +.PP +Warning messages preceded by the acronym TBA (to be addressed) are issued for +NUL bytes in strings, ... as an argument, array indices in declarations, use of void type, use of unions, bit fields, use of address operator, negative array +indices, element specifiers, initial values in Limbo modules, labels, gotos and case +statement fall through. +.PP +The C types +.B char +and +.B "unsigned char" +are mapped to the Limbo +.B byte +type. +The C types short, unsigned short, int, unsigned int, long and unsigned long +are mapped to the Limbo int type. The C types long long and unsigned long long +are mapped to the Limbo big type. Finally the C types float and double are mapped +to the Limbo real type. +.PP +Anonymous C structures and unions map to a name of the form _adt_ where module is the name of the module which is, in turn, derived from the file name. Anonymous member names in strucures and unions have a +name of the form anon_. Finally,temporary variables generated by +.I c2l +have a name of the form tmp_. In all cases is a unique identifier. +.SH SOURCE +.TF /utils/c2l +.TP +.B /module/libc.m +.TP +.B /module/libc0.m +.TP +.B /appl/lib/libc.b +.TP +.B /appl/lib/libc0.b +.TP +.SH "SEE ALSO" +.IR 2c (10.1), +.IR limbo (1) +.SH BUGS +.I C2l +is not a pretty printer. It has its own idea of how Limbo should be laid out. +.PP +.I C2l +may well crash if given invalid C code. +.PP +.I c2l -a +does not always do all possible conversions. + + + diff --git a/static/inferno/man10/conf.10 b/static/inferno/man10/conf.10 new file mode 100644 index 00000000..134a3038 --- /dev/null +++ b/static/inferno/man10/conf.10 @@ -0,0 +1,335 @@ +.TH CONF 10.6 +.SH NAME +conf \- native and hosted kernel configuration file +.SH DESCRIPTION +Native and hosted Inferno kernels are built for a given target +.I platform +in the host environment in directory +.BI /os/ platform +or +.BI /emu/ platform . +Existing +platforms include +.B pc +and +.B ipaq +for native kernels and +.BR Plan9 , +.BR Linux , +.B Nt +(for all versions of Windows), +and +.BR Solaris , +amongst others. +Each +.I platform +can have different kernels with different configurations. +A given configuration is built in the platform's directory using the +.IR mk (10.1) +command: +.IP +.EX +mk 'CONF=\fIconf\fP' +.EE +.PP +where +.I conf +is a text file that specifies drivers, protocols and other parameters for that +particular kernel: +a parts list. +The result of a successful +.I mk +is +an executable or bootable file with a name determined by the +.IR platform 's +.BR mkfile , +typically +.BI i conf +for all native platforms, +.BI $O. conf +for Plan 9, Unix and clones, +and +.BI i conf .exe +for Windows. +.PP +A kernel configuration file has several sections of the form +.IP +.EX +.I "label" +.IR " item" " [ " "subitem ..." " ]" +\& ... +.EE +.PP +Each section begins with a +.I label +at the start of a line, which names a configuration +category, followed by +a list of each +.I item +to select from that category, +one line per item, with white space (ie, blank or tab) at the start of the line. +An +.I item +line can optionally list one or more +.I subitems +that must be included in the kernel to support it. +A line that starts with a +.L # +is a comment. +Empty lines are ignored. +.PP +.I Labels +are chosen from the following set, listed in the order +in which they conventionally appear in a configuration file: +.TF etherxx +.TP +.B dev +Device drivers +.TP +.B ip +IP protocols (native kernels only) taken from +.B ../ip +.TP +.B link +Hardware-specific parts of device drivers. +.TP +.B misc +Architecture-specific files; specific VGA and SCSI interfaces +.TP +.B lib +Libraries to link with the kernel +.TP +.B mod +Builtin Dis modules +.TP +.B port +Portable components (other than drivers) from +.B ../port +.TP +.B code +C code and declarations to include as-is in the generated configuration file +.TP +.B init +Dis init program +.TP +.B root +List of files and directories to put in the +.IR root (3) +file system +.PD +.PP +When an +.I item +is listed +under a given +.I label +it causes a corresponding component to be included in the kernel. +The details depend on the +.IR label , +as discussed below. +Each +.I subitem +represents a kernel subcomponent required by the corresponding +.IR item . +Both items and subitems can be either portable (platform-independent) +or platform-specific. +The source file for a given item or subitem +is sought in the platform-directory +(for platform-specific code), and +in directories +.BR ../port +and +.BR ../ip , +under control of the platform's +.BR mkfile +and +.B ../port/portmkfile +(which is included by +.BR mkfile ). +Resulting object files are left in the +.I platform +directory. +.PP +Outside the +.B dev +section, +each item and subitem +.I x +causes the kernel image to include the code compiled from +.IB x .c , +(or +.IB x .s +or +.IB x .S +for assembly-language support), +or +.IB portdir / x .c , +where +.I portdir +is one of the portable directories mentioned above. +In the +.B dev +section, an item +.I x +corresponds instead to the driver source file +.BI dev x .c +in the current (platform-specific) +directory or a portable driver +.IB portdir /dev x .c . +Subitems are handled as in any other section. +Typically they are auxiliary files that are needed by the associated driver. +.PP +For instance, in a native kernel +the portable driver for the +.B draw +device uses platform-specific code from +.BR screen.c . +That can be represented as follows: +.IP +.EX +dev + draw screen +.EE +.PP +Each item +.I x +in the +.B ip +section +corresponds to a protocol implementation compiled from +.BI ../ip/ x .c . +Any subitems +are dealt with in the same way as in the +.B dev +section. +.PP +The +.B link +section provides a way for hardware-specific +parts of drivers to link at runtime to the hardware-invariant part of a device +drivers. +For each item +.IR x , +the kernel will call the function +.IB x link +during its initialisation. +Typically that function makes itself known to the device driver by +calling a function provided by that driver, +passing the address of a interface-specific data structure or linkage table. +For example, +.B ethersmc +is an interface-specific component: +.IP +.EX +link + \fR...\fP + ethersmc +.EE +.PP +and its source file +.B ethersmc.c +provides a function +.B ethersmclink +that +calls +.B addethercard +in the interface-invariant part of the driver, +.BR devether.c : +.IP +.EX +void +ethersmclink(void) +{ + addethercard("smc91cXX", reset); +} +.EE +.PP +Similarly, during kernel initialisation, for each item +.I x +in the +.B mod +section, the kernel calls the function +.IB x init , +to initialise the corresponding built-in Limbo module. +.PP +The +.B init +section selects the first Dis program run by the system. +For native kernels, a given item +.I x +refers to +.BI ../init/ x .dis , +which is automatically built from +.BI ../init/ x .b . +For hosted kernels, +.B emuinit +is normally used, referring to +.BR /dis/emuinit.dis . +.PP +The +.B lib +section lists the libraries to include when linking the kernel, +in an order that satisfies any dependencies amongst them. +Each item +.I x +corresponds to +.BI /$SYSTARG/$OBJTYPE/lib x .a , +a target-specific library +produced by compiling the C source code in +.BI /lib item, +where +.B SYSTARG +and +.B OBJTYPE +are set in +.B mkfile +to the target system and object types. +.PP +An item in the +.B root +section +has one of the forms: +.IP +.EX +.I name +.I "name source" +.EE +.PP +where +.I name +and +.I source +are both absolute path names rooted at the Inferno source tree. +The kernel's initial root file system (see +.IR root (3)) +will contain a file or directory with the given +.IR name . +.I Name +must exist in the Inferno root, or an existing +.I source +file must be named. +In either case, +if the existing name refers to a file, the file in the root file system will have that file's current contents. +If it is a directory, the root file file system will have a directory with that name, +but the directory will contain only those names listed in +the configuration file as belonging to that directory. +.I Source +is often +.L / +to force a target +.I name +to be a directory. +.SH FILES +.B /emu/port/mkdevc +.br +.B /emu/port/mkdevlist +.br +.B /emu/port/mkroot +.br +.B /os/port/mkdevc +.br +.B /os/port/mkdevlist +.br +.B /os/port/mkroot +.SH SEE ALSO +.IR mk (10.1) diff --git a/static/inferno/man10/delay.10 b/static/inferno/man10/delay.10 new file mode 100644 index 00000000..72665837 --- /dev/null +++ b/static/inferno/man10/delay.10 @@ -0,0 +1,36 @@ +.TH DELAY 10.2 +.SH NAME +delay, microdelay, addclock0link \- small delays, clock interrupts +.SH SYNOPSIS +.ta \w'\fLvoid 'u +.B +void delay(int n) +.PP +.B +void microdelay(int n) +.PP +.B +void addclock0link(void(*clockf)(void)) +.SH DESCRIPTION +.I Delay +busy waits for +.I n +milliseconds, forced to be at least one millisecond. +.PP +.I Microdelay +is similar, but busy waits for +.IR n +microseconds. +.PP +For delays on the order of clock ticks, +.I tsleep +(see +.IR sleep (10.2)) +provides a better alternative to the busy waiting of these routines. +.PP +.I Addclock0link +adds +.I clockf +to a list of functions to be executed at each clock interrupt. +.SH SEE ALSO +.IR sleep (10.2) diff --git a/static/inferno/man10/dev.10 b/static/inferno/man10/dev.10 new file mode 100644 index 00000000..15bf16cb --- /dev/null +++ b/static/inferno/man10/dev.10 @@ -0,0 +1,435 @@ +.TH DEV 10.2 +.SH NAME +Dev \- device driver interface +.SH SYNOPSIS +.EX +struct Dev +{ + int dc; + char* name; + + void (*reset)(void); /* native only */ + void (*init)(void); + void (*shutdown)(void); /* native */ + Chan* (*attach)(char *spec); + Walkqid* (*walk)(Chan *c, Chan *nc, char **name, int nname); + int (*stat)(Chan *c, uchar *db, int dbsize); + Chan* (*open)(Chan *c, int mode); + void (*create)(Chan *c, char *name, int mode, ulong perm); + void (*close)(Chan *c); + long (*read)(Chan *c, void *buf, long nbytes, vlong offset); + Block* (*bread)(Chan *c, long nbytes, ulong offset); + long (*write)(Chan *c, void*, long, vlong offset); + long (*bwrite)(Chan *c, Block *b, ulong offset); + void (*remove)(Chan *c); + int (*wstat)(Chan *c, uchar *db, int dbsize); + void (*power)(int on); /* native only */ + int (*config)(int on, char *spec, DevConf *cf); /* native */ +}; +.EE +.SH DESCRIPTION +Every device driver serves a unique name space that represents to the corresponding device(s). +Applications act on the space using the operations of +.IR sys-bind (2), +.IR sys-open (2), +.IR sys-read (2), +.IR sys-stat (2), +and other system calls. +Within the kernel, the +.B Dev +structure defines the interface between the kernel and a device driver for +all operations on that driver's name space. +.PP +.B Dev +identifies the driver, and lists a set of C functions that are the driver's operations. +Most are operations on the +.B Chan +type that is the kernel representation of a file or directory active in a name space. +The kernel converts system calls acting on file descriptors into calls to a device's +.B Dev +operations acting on channel values. +All channel values presented through the +.B Dev +interface are associated with the corresponding device driver: +for channel +.IR c , +.IB c ->type +specifies that driver. +Within the driver, the +.IB c ->qid.path +of a channel +.I c +identifies a file in the driver's name space, or even a client-specific instance of a file +(eg, for multiplexors such as +.IR ip (3)). +The interpretation of the +.B path +is completely determined by the driver. +.PP +A device driver in the source file +.BI dev x .c +exports an initialised instance of +.BI "Dev " x devtab . +For instance, +.B devcons.c +contains the global initialiser: +.IP +.EX +Dev consdevtab = { + 'c', + "cons", + + devreset, + consinit, + devshutdown, + consattach, + conswalk, + consstat, + consopen, + devcreate, + consclose, + consread, + devbread, + conswrite, + devbwrite, + devremove, + devwstat, +}; +.EE +.PP +The kernel accesses the driver only through its +.B Dev +structure, and consequently entry points such as +.BR consinit , +.BR consread , +etc. can (and should) be declared +.BR static , +and thus local to the file. +.PP +The following elements of +.B Dev +identify the driver: +.TP +.B dc +The device's type, represented by a Unicode character (`rune') that must be unique +amongst those in a given kernel (and ideally for a given platform). +Its value is the value of +.B Dir.dtype +in the result of a +.IR sys-stat (2) +applied to any file in the device. +.TP +.B name +The name that identifies the driver in a kernel configuration file and in +.B /dev/drivers +(see +.IR cons (3)). +.PP +All the other entries are functions. +In many cases, the values given in a device's +.B Dev +will be the default operations provided by +.IR devattach (10.2). +.TP +.B reset() +Called once during system initialisation by the native +kernel's +.B main +after initialising all supporting subsystems, including memory allocation, traps, screen, MMU (if used), +but with interrupts disabled, and before any kernel process environment has been established. +Typically used on some platforms to force some devices into a sane state +before interrupts are enabled. +.TP +.B init() +Called once during system initialisation in the context of the first kernel process, +with interrupts enabled, before the virtual machine has been started. +.TP +.B shutdown() +Called once in native kernels during system shut down. +Used on only a few platforms to force a device into a state that will allow it +to function correctly during and after a soft reboot (eg, without doing a full system hardware reset). +.TP +.BI attach( spec ) +Called on each new attach to the device (eg, a reference to +.BI # c +by +.IR sys-bind (2)). +.I Spec +is the string following the device character and before a subsequent +.RB ` / ' +in the bind request. +It is the empty string for most devies. +If the attach is successful, +.B attach +should return a +.B Chan +the refers to the root of the tree served by the device driver. +Normally, it will suffice to return the value of +.IR devattach (10.2). +.TP +.BI walk( c\fP,\fP\ nc\fP,\fP\ name\fP,\fP\ nname ) +Walks existing channel +.I c +from its current position in the device tree to that specified by the +path represented by +.BR name[0] , +\&... +.BR name[nname-1] . +The driver must interpret +.RB ` .. ' +as a walk from the current position one level up towards the root of the device tree. +The result is represented by a dynamically-allocated +.B Walkqid +value, +with contents as described in +.IR devattach (10.2). +Most drivers simply pass parameters on to +.B devwalk +in +.IR devattach (10.2) +and return its result. +.TP +.BI stat( c\fP,\fP\ db\fP,\fP\ nbytes ) +Fill +.I db +with +.IR stat (5) +data describing the file referenced by +.IR c . +.I Nbytes +gives the size of +.IR db ; +if the data will not fit, return the value specified for +.B convD2M +in +.IR styx (10.2). +Most drivers simply pass parameters on to +.B devstat +in +.IR devattach (10.2); +a few fill a local copy of a +.B Dir +structure, and call +.B convD2M +to store the machine-independent representation in +.IR db . +.TP +.BI open( c\fP,\fP\ mode ) +Open the file represented by +.B Chan +.IR c , +in the given +.I mode +(see +.IR sys-open (2)), +and if successful, return a +.B Chan +value representing the result +(usually +.IR c ). +Many drivers simply apply +.B devopen +of +.IR devattach (10.2). +Exclusive use drivers might check and increment a reference count. +.TP +.BI create( c\fP,\fP\ name\fP,\fP\ mode\fP,\fP\ perm ) +.I C +should be a directory. +Create a new file +.I name +in that directory, with permissions +.IR perm , +opened with the given +.IR mode . +If successful, make +.I c +refer to the newly created file. +Most drivers return an error on all creation attempts, +by specifying +.B devcreate +of +.IR devattach (10.2) +in the +.B Dev +table. +.TP +.BI close( c ) +Close channel +.IR c . +This must be implemented by all drivers; there is no default, +although the function often is a no-op. +Exclusive use drivers might decrement a reference count. +.TP +.BI read( c\fP,\fP\ buf\fP,\fP\ nbytes\fP,\fP\ offset ) +Implement a +.IR sys-read (2) +of +.I nbytes +of data from the given +.I offset +in file +.IR c , +and if successful, place the data in +.IR buf , +and return the number of bytes read, +which must be no greater than +.IR nbytes . +Devices sometimes ignore the +.IR offset . +All device drivers must implement +.BR read ; +there is no default. +Note that if +.I c +is a directory, the data has an array of +.IR stat (5) +data listing the directory contents, in the format prescribed by +.IR read (5). +Most drivers have +.B devdirread +of +.IR devattach (10.2) +do the work when +.I c +is the root directory of the device's tree. +.TP +.BI bread( c\fP,\fP\ nbytes\fP,\fP\ offset ) +Implement a +.IR sys-read (2) +of +.I nbytes +of data from the given offset in file +.IR c , +and if successful return the data in a +.B Block +(see +.IR allocb (10.2) +and +.IR qio (10.2)). +Most drivers use the default +.B devbread +provided by +.IR devattach(10.2), +and nearly all ignore the +.I offset +in any case. +Drivers that manipulate Blocks internally, such as +.IR ip (3), +.IR ssl (3) +and similar protocol devices, +and drivers that are likely to provide data to those devices, +will provide a +.B devbread +implementation so as to reduce the number of times the data is copied. +.TP +.BI write( c\fP,\fP\ buf\fP,\fP\ nbytes\fP,\fP\ offset ) +Implement a write of +.I nbytes +of data from +.I buf +to file +.IR c , +which must not be a directory, +starting at the given byte +.IR offset . +Return the number of bytes actually written. +There is no default, but drivers that do not +implement writes to any of their files can simply call +.B error(Eperm) +to signal an error. +.TP +.BI bwrite( c\fP,\fP\ b\fP,\fP\ offset ) +Similar to the +.B write +entry point, but the data is contained in a +.B Block +.I b +(see +.IR allocb (10.2)). +.I B +should be freed before return, whether the driver signals an error or not. +Most drivers use the default +.B devbwrite +from +.IR devattach (10.2), +which calls the driver's +.B write +entry point using the data in +.IR b . +Drivers that manipulate Blocks internally, such as +.IR ip (3), +.IR ssl (3) +and similar protocol devices, +will provide a +.B devbwrite +implementation so as to avoid copying the data needlessly. +.TP +.BI remove( c ) +Remove the file referenced by +.IR c . +Most drivers raise an error by using the default +.B devremove +from +.IR devattach (10.2). +.TP +.BI wstat( c\fP,\fP\ db\fP,\fP\ dbsize ) +Change the attributes of file +.IR c , +using the +.IR stat (5) +data in buffer +.IR db , +which is +.I dbsize +bytes long. +Usually a driver will use +.B convM2D +of +.IR styx (10.2) +to convert the data to a +.B Dir +structure, then apply the rules of +.IR stat (5) +to decide which attributes are to be changed (and whether the change is allowed). +Most drivers simply return an error on all +.B wstat +requests by using the default +.B devwstat +from +.IR devattach (10.2). +.TP +.BI power( on ) +Reserved for use in native kernels, to allow the kernel +to power the device on and off for power-saving; +.I on +is non-zero if the device is being powered up, and +zero if it is being powered down. +The device driver should save the device state if necessary. +Leave the +.B Dev +entry null for now. +.TP +.BI config( on\fP,\fP\ spec\fP,\fP\ cf ) +Reserved for use in native kernels to allow a device +to be configured on and off dynamically. +Leave the +.B Dev +entry null for now. +.PD +.PP +The elements +.IR reset , +.IR shutdown , +.IR power , +and +.IR config +are currently present only in the native kernels. +.SH SEE ALSO +.IR intro (2), +.IR intro (5), +.IR allocb (10.2), +.IR devattach (10.2), +.IR newchan (10.2), +.IR qio (10.2) + diff --git a/static/inferno/man10/devattach.10 b/static/inferno/man10/devattach.10 new file mode 100644 index 00000000..8d152f48 --- /dev/null +++ b/static/inferno/man10/devattach.10 @@ -0,0 +1,698 @@ +.TH DEVATTACH 10.2 +.SH NAME +devattach, devclone, devdir, devgen, devwalk, devdirread, devstat, devopen, devbread, devbwrite, devcreate, devremove, devwstat, devreset, devinit, devshutdown, openmode \- common device driver support +.SH SYNOPSIS +.ta \w'\fLBlock* 'u +10n +.B +typedef int +.B +Devgen(Chan *c, char *name, Dirtab *tab, int ntab, int i, Dir *dp) +.PP +.B +Chan* devattach(int tc, char *spec) +.PP +.B +Chan* devclone(Chan *c) +.PP +.B +void devdir(Chan *c, Qid qid, char *n, long length, +.B + char *user, long perm, Dir *dp) +.PP +.B +int devgen(Chan *c, char *name, Dirtab *tab, int ntab, +.B + int i, Dir *dp) +.PP +.B +Walkqid* devwalk(Chan *c, Chan *nc, char **name, int nname, +.B + Dirtab *tab, int ntab, Devgen *gen) +.PP +.B +void devstat(Chan *c, uchar *db, int n, Dirtab *tab, +.B + int ntab, Devgen *gen) +.PP +.B +long devdirread(Chan *c, char *d, long n, Dirtab *tab, +.B + int ntab, Devgen *gen) +.PP +.B +Chan* devopen(Chan *c, int omode, Dirtab *tab, +.B + int ntab, Devgen *gen) +.PP +.B +Block* devbread(Chan *c, long n, ulong offset) +.PP +.B +long devbwrite(Chan *c, Block *bp, ulong offset) +.PP +.B +void devcreate(Chan*, char*, int, ulong) +.PP +.B +void devremove(Chan*) +.PP +.B +void devwstat(Chan*, uchar*, int) +.PP +.B +void devreset(void) +.PP +.B +void devinit(void) +.PP +.B +void devshutdown(void) +.PP +.B +int openmode(ulong mode) +.SH DESCRIPTION +Device drivers call these functions to carry out essential tasks and default actions. +They do most of the name space management +for a driver that serves a simple name space +(eg, data and control files), +leaving the driver to concentrate on the device-specific details +of the I/O requests. +More complex drivers also make good use of them at the leaves +of their name space, and to help manage the +.B Chan +structures correctly. +.PP +A device has an associated +.IR type , +represented as a Unicode character (`rune') that identifies the device +inside and outside the kernel. +It appears as the value of the +.B type +field in the +.B Dir +resulting from a +.IR sys-stat (2) +of any file provided by the device. +A device is named outside the kernel using +a path name starting with +.B # +followed by the device character +(eg, +.B c +in +.B #c +for the console). +Any subsequent characters before +the next '/' or end of string is the `device specifier', +interpreted solely by the device itself. +.PP +.I Devattach +returns a new channel representing +the root of the file tree +corresponding to device type +.IR tc , +with device specifier +.IR spec . +It is normally called by a driver's +.I attach +function (see +.IR dev (10.2)). +The +.B qid +for the new channel is +.BR "(Qid){0,0,QTDIR}" , +suitable for a root directory for many devices, but +a device driver is free to change it (provided the +.B QTDIR +bit remains in the +.BR Qid.type ). +.PP +.I Devclone +returns a new channel that is a copy of +.IR c . +An attempt to clone an open channel causes a +.IR panic (10.2). +.PP +The +.L Dir +structure is shown below: +.IP +.EX +typedef +struct Dir +{ + /* system-modified data */ + ushort type; /* server type */ + uint dev; /* server subtype */ + /* file data */ + Qid qid; /* unique id from server */ + ulong mode; /* permissions */ + ulong atime; /* last read time */ + ulong mtime; /* last write time */ + vlong length; /* file length */ + char *name; /* last element of path */ + char *uid; /* owner name */ + char *gid; /* group name */ + char *muid; /* last modifier name */ +} Dir; +.EE +.PP +This +.B Dir +structure corresponds directly to the Limbo +.B Dir +adt described in +.IR sys-stat (2). +.PP +Given a channel and assorted other information, +.I devdir +initialises a Dir structure at +.IR dp . +.I Devdir +supplies the following data itself: +.RS +.TF length +.TP +.B atime +last access time (set to current time) +.TP +.B mtime +last modification time (set to kernel creation date) +.TP +.B gid +group name (set to +.IR eve (10.2)) +.TP +.B length +length in bytes (set to zero, which +is normal for most devices) +.RE +.PD +.PP +Note that +.I devdir +assigns the values of +.I name +and +.I user +directly to fields of +.BI * dp, +and consequently those values must remain valid until the last use of +.BI * dp. +(Sometimes that requires the use of an auxiliary buffer, such as +.BR up->genbuf .) +If channel +.I c +corresponds to a file descriptor on which 9P is served, +.I devdir +sets both the flag bit +.B QTMOUNT +in +.IB dp ->qid.type +and the flag bit +.B DMMOUNT +in +.IB dp ->mode +(see +.IR sys-export (2) +and +.I mount +in +.IR sys-bind (2)). +.PP +A simple name space can be represented in a driver by an array of +.B Dirtab +structures. +The array is typically static when the names and permissions +are static, but can be dynamically allocated and initialised if required. +The structure of +.B Dirtab +is shown below: +.IP +.EX +typedef +struct Dirtab +{ + char name[KNAMELEN]; + Qid qid; + vlong length; + long perm; +} Dirtab; +.EE +.PP +The name +.RB ` . ' +.I must +appear as the first entry in a +.B Dirtab +if the default +.I devgen +function is used. +On the other hand, the name +.RB ` .. ' +must never appear in a +.B Dirtab +table. +Drivers that support a directory hierarchy must walk up the hierarchy towards +the root when their +.I walk +function receives +.RB ` .. ' +as a file name component. +The name +.RB ` . ' +is never seen by a driver. +.PP +The +.IR devdirread , +.IR devopen , +.IR devstat , +and +.IR devwalk +functions all take a +.I gen +function argument, +of type +.BR Devgen , +which they invoke to retrieve the items in +a +.B Chan +that represents a directory. +.I Gen +takes a channel +.I c +(a directory), +a file +.I name +(which is nil except during +.IR devwalk ), +an array of +.B Dirtab +structures +.I tab +of length +.IR ntab , +and a table index +.IR i . +The functions calling +.I gen +expect it to place the +.IR i 'th +entry in the directory into +.IR \f5*\fPdp . +It should return 1 +if the call was successful, +-1 if +.I i +is beyond the index of the last directory entry, +or 0 if there is no entry at +.IR i , +but there are entries beyond it. +When +.I i +has the special value +.B DEVDOTDOT +then +.I gen +should set +.IR \f5*\fPdp +to reflect the parent of +.IR c ; +if +.I c +is a one-level device directory, then `..' is equivalent to `.'. +Custom implementations of +.I gen +often ignore +.IR devtab , +and instead return their own dynamically generated +set of directory entries from some other source. +Exceptionally, during +.I devwalk +a non-nil +.I name +is provided: it is the name being looked up, and a device-specific +.I gen +can short-circuit the search by returning -1 if the name does not exist, +or filling in +.IR \f5*\fPdp +and returning 1 if it does exist. +.PP +The function +.I devgen +is compatible with +.BR Devgen ; +it returns the +.IR i 'th +entry in +.IR devtab , +and can be used to provide a simple, static +set of directory entries. +.PP +.I Devwalk +walks channel +.I c +to the file in the device named by the path encoded in +.IR name , +which is an array of strings of length +.IR nname . +It provides the interface to +.IR walk (5) +within the kernel, and that specification must be well understood to appreciate +all the nuances of its interface. +Fortunately, in nearly all device drivers, a device's +.I walk +function typically passes its parameters on to +.I devwalk +(adding the device's own +.B Dirtab +array as the the value of +.IR tab ), +and simply returning the result of +.IR devwalk . +.PP +.I Devwalk +walks +.I c +using the given set of names, and if the walk is successful, the +channel +.I nc +will refer to the result of the walk +(specifically, +.IB nc ->qid +is set to the Qid for the file). +If +.I nc +is nil, +.I devwalk +will allocate a new channel itself, that is initially a clone of +.IR c . +As in +.IR walk (5), +.I devwalk +can return a partial result, +represented by +a dynamically allocated value of the following structure: +.IP +.EX +struct Walkqid +{ + Chan *clone; + int nqid; + Qid qid[1]; /* actually nname in length */ +}; +.EE +.PP +The value must be freed after use. +For each element of +.I name , +.I devwalk +passes +the +.I tab +parameter to +.I gen +together with the currently-sought element of +.IR name . +If the first element is not found, +.I devwalk +returns nil; otherwise, it returns a +.B Walkqid +value in which +.B nqid +elements of the array +.B qid +are set to the qids (see +.IR intro (5)) +of each valid element of +.IR name . +If all +.I nname +elements were successfully traversed, then +.B nqid +will have the value +.IR nname , +and +.B clone +will refer to the result of the walk, +which is either +.I nc +if given, or +the new channel allocated by +.IR devwalk . +Otherwise, at least one element succeeded and +.B nqid +is less than +.I nname +and +.B clone +is nil. +On an error or incomplete walk, +the error string is set to the error that stopped the walk (eg, +.B Enonexist +or +.BR Enotdir ). +.PP +.I Devstat +fills the array of bytes +.I db +with data in the format produced by +.IR stat (5) +that describes the file +referenced by channel +.IR c , +which must have a corresponding entry +returned by +.IR gen +(ie, an entry with matching +.BR Qid.path ). +If +.I c +is a communications channel connecting a 9P server to a current mount point, +the +.B DMMOUNT +bit is set in the resulting +.BR Dir.mode , +and +.B QTMOUNT +is set in +.BR Dir.qid.type . +As in +.IR stat (5), +the length of the data written to +.I db +varies; if more than +.I n +bytes are needed, +.I devstat +raises the +.IR error (10.2) +.BR Ebadarg . +Otherwise, it returns the number of bytes in +.I db +actually used. +.PP +If an entry with the desired qid is not found in the table, but +.I c +corresponds to a directory +(ie, +.B QTDIR +is set in +.IR c\f5->qid.type\fP ), +it is taken to be a +.I stat +of a notional directory containing the files listed in +.IR tab . +.I Dirstat +then builds the corresponding Dir structure: +its +.B Dir.name +is taken from +.IR c\f5->path->elem\fP ; +the length is +.BI DIRLEN*nelem(tab) ; +and +.B Dir.perm +is 0555 (read-execute for all). +.PP +.I Devdirread +calls +.I gen +to obtain successive +.B Dir +structures representing entries in the open directory +.IR c . +These are converted to standard format (see +.I convD2M +in +.IR styx (10.2)) +and placed in the buffer +.IR b . +It returns the number of bytes in the result. +At most +.I n +bytes will be returned, in multiples of +.BR DIRLEN . +Because the kernel maintains the current offset in +.IR c , +successive calls to +.I devdirread +return successive directory components. +.PP +.I Devopen +is called to check and complete a request to open channel +.I c +for I/O according to +.IR omode +(the open mode of +.IR sys-open (2)). +It calls +.I gen +to obtain successive directory entries +which it searches +for a Qid matching that of +.IR c , +and ensures that the current user has permission to open +.I c +with the given mode, +.IR omode , +and that the mode itself is valid +(see +.I openmode +below). +Permission is checked against the permission in the +matching entry. +If no matching Qid is found, it is assumed +that the notional parent directory of the files represented in +.I tab +is to be opened. +Such a directory is deemed to have mode +0555, allowing access by any user. +A directory can only be opened for reading +.RB ( OREAD ). +.I Devopen +returns the channel +.I c +on success. +Last, it sets the bit +.B COPEN +in +.B Chan.flag +to mark +.I c +as open. +This convention can always be relied upon by the driver's +.I close +function to tell if an open succeeded. +On the otherhand, +if the open request was unsuccessful, +.I devopen +raises an appropriate +.IR error (10.2) +and does not return. +.PP +.I Devbread +returns a +.B Block +(see +.IR allocb (10.2)) +containing up to +.I n +bytes read, +using +.BI "devtab[" c "->type]->read" , +from +.I c +starting at the given +.IR offset . +The read pointer in the returned +.B Block +points to the start of the data; +the write pointer points to the next available byte. +.PP +.I Devbwrite +writes the data in +.B Block +.I bp +to the file +.I c +at the given +.IR offset , +using the write function +.BI "devtab[" c "->type]->write" . +It then frees the block list +.I bp +before +returning the number of bytes written. +.PP +Most built-in devices do not allow +.IR create , +.IR remove +or +.I wstat +on their files. +.IR Devcreate , +.I devremove +and +.I devwstat +are stubs that raise an +.IR error (10.2), +.BR Eperm . +They can be named directly in a device driver's device +switch (the +.B Dev +structure in +.BR /os/port/portdat.h : +see +.IR dev (10.2)). +.PP +.IR Devreset , +.I devinit +and +.I devshutdown +are also stubs; +they do nothing. +A device driver puts them in its +.B Dev +structure when it need take no action on device reset, initialisation, or shut down. +.PP +.I Openmode +is used by a driver that does not use +.IR devopen , +to check the open mode it receives in its open +routine. +.I Openmode +returns mode +.IR o , +the mode parameter to +.IR sys-open (2) +or +.IR sys-create , +shorn of +.BR OTRUNC +and similar options, +and reduced to one of +.BR OREAD , +.BR OWRITE +or +.BR ORDWR . +In particular, +.B OEXEC +becomes +.B OREAD +within the kernel. +.I Openmode +raises an +.IR error (10.2) +.B Ebadarg +instead of returning, if +.I o +is an invalid mode (eg, reserved bits set). +.SH SOURCE +.B /emu/port/dev.c +.br +.B /os/port/dev.c +.SH SEE ALSO +.IR allocb (10.2), +.IR eve (10.2), +.IR qio (10.2) diff --git a/static/inferno/man10/dmainit.10 b/static/inferno/man10/dmainit.10 new file mode 100644 index 00000000..f0786c33 --- /dev/null +++ b/static/inferno/man10/dmainit.10 @@ -0,0 +1,86 @@ +.TH DMAINIT 10.2 x86 +.SH NAME +dmainit, dmasetup, dmadone, dmaend, dmacount \- platform-specific DMA support +.SH SYNOPSIS +.ta \w'\fLushort 'u +.B +void dmainit(int chan) +.PP +.B +long dmasetup(int chan, void *va, long len, int isread) +.PP +.B +int dmadone(int chan) +.PP +.B +void dmaend(int chan) +.PP +.B +int dmacount(int chan) +.PP +.SH DESCRIPTION +These functions manage DMA on a bus that uses ISA-style DMA controllers. +They were originally devised for the x86 platform, but the same interface, and similar code, +is used by other platforms that use similar controllers. +They compensate as best they can for the limitations of older DMA implementations +(eg, alignment, boundary and length restrictions). +There are 8 DMA channels: +0 to 3 are byte-oriented; 4 to 7 are word-oriented (16-bit words). +.PP +.I Dmainit +must be called early in a driver's initialisation to prepare +.I chan +for use. +Amongst other things, it allocates a page-sized buffer to help circumvent hardware +restrictions on DMA addressing. +.PP +.I Dmasetup +prepares DMA channel +.IR chan +for a transfer between a device configured to use it +and the virtual address +.IR va . +(The transfer is started by issuing a command to the device.) +If +.I va +lies outside the kernel address space, +the transfer crosses a 64k boundary, +or exceeds the 16 Mbyte limit imposed by some DMA controllers, +the transfer will be split into page-sized transfers using the buffer previously allocated by +.IR dmainit . +If +.I isread +is true (non-zero), data is to be transferred from +.I chan +to +.IR va ; +if false, data is transferred from +.I va +to +.IR chan . +In all cases, +.I dmasetup +returns the number of bytes to be transferred. +That value (rather than +.IR len ) +must be given to the device in the read or write request that starts the transfer. +.PP +.I Dmadone +returns true (non-zero) if +.I chan +is idle. +.PP +.I Dmaend +must be called at the end of every DMA operation. +It disables +.IR chan , +preventing further access to the previously associated memory and, +if a low-memory buffer was required for input, transfers its contents +to the appropriate part of the target buffer. +.PP +.I Dmacount +returns the number of bytes that were last transferred by channel +.IR chan . +The count is always even for word-oriented DMA channels. +.SH SOURCE +.B /os/pc/dma.c diff --git a/static/inferno/man10/dynld.10 b/static/inferno/man10/dynld.10 new file mode 100644 index 00000000..62971752 --- /dev/null +++ b/static/inferno/man10/dynld.10 @@ -0,0 +1,287 @@ +.TH DYNLD 10.2 +.SH NAME +dynfindsym, dynfreeimport, dynloadfd, dynloadgen, dynobjfree, dyntabsize \- load object file dynamically +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLDynsym*** 'u +.B +Dynsym* dynfindsym(char *name, Dynsym *syms, int nsym) +.PP +.B +Dynobj* dynloadfd(int fd, Dynsym *exports, int nexport, +.br +.B + ulong maxsize) +.PP +.B +Dynobj* dynloadgen(void *file, long (*read)(void*,void*,long), +.br +.B + vlong (*seek)(void*,vlong,int), void (*err)(char*), +.br +.B + Dynsym *exports, int nexport, ulong maxsize) +.PP +.B +void* dynimport(Dynobj *o, char *name, ulong sig) +.PP +.B +void dynfreeimport(Dynobj *o) +.PP +.B +void dynobjfree(Dynobj *o) +.PP +.B +int dyntabsize(Dynsym *t) +.PP +.B +extern Dynsym _exporttab[]; +.DT +.SH DESCRIPTION +These functions allow a process to load further code and data +into the currently executing image. +A dynamically-loadable file, called a +.I module +here, is a variant of the +.IR a.out (10.6) +executable format with some extra components. +The loader for the architecture +(see +.IR 2l (1)) +creates a module file from component object file(s) when given the +.B -u +option. +A module contains text and data sections, an import table, an export table, +and relocation data. +The import table lists the symbols the module needs from the loading program; +the export table lists symbols the module provides when loaded. +A program that loads a module provides a table of its own symbols to match +the symbols in the module's import table. +.PP +A symbol entry in a symbol table names a global function or data item, and has an associated +.I signature +value representing the type of the corresponding function or data in the source code. +The +.B Dynsym +structure defines a symbol: +.IP +.EX +typedef struct { + ulong sig; + ulong addr; + char* name; +} Dynsym; +.EE +.PP +The structure is known to the loaders +.IR 2l (1). +.I Name +is the linkage name of the function or data. +.I Addr +is its address, which is relative to the start of the module before loading, +and an address in the current address space after loading. +The signature +.I sig +is the value produced by the C compiler's +.B signof +operator applied to the type. +Symbol tables must be sorted by +.IR name . +.PP +An executable that wishes to load modules will normally be linked using the +.B -x +option to the appropriate loader +.IR 2l (1). +The resulting executable contains an export table +.B _exporttab +that lists all the exported symbols of the program (by default, all external symbols). +A nil name marks the end of the table. +See +.IR 2l (1) +for details. +The table can be given to the functions below to allow a loaded module +to access those symbols. +.PP +A loaded module is described by a +.B Dynobj +structure: +.IP +.EX +typedef struct { + ulong size; /* total size in bytes */ + ulong text; /* bytes of text */ + ulong data; /* bytes of data */ + ulong bss; /* bytes of bss */ + uchar* base; /* start of text, data, bss */ + int nexport; + Dynsym* export; /* export table */ + int nimport; + Dynsym** import; /* import table */ +} Dynobj; +.EE +.PP +Several fields give sizes of the module's components, as noted in comments above. +.I Base +gives the address at which the module has been loaded. +All its internal +references have been adjusted where needed to reflect its current address. +.I Export +points to a symbol table listing the symbols exported by the module; +.I nexport +gives the table's length. +.I Import +points to a list of symbols imported by the module; +note that each entry actually points to an entry in a symbol table +provided by the program that loaded the module (see below). +.I Nimport +gives the import table's length. +If the import table is not required, call +.I dynfreeimport +on the module pointer to free it. +.PP +.I Dynfindysm +looks up the entry for the given +.I name +in symbol table +.I syms +(of length +.IR nsym ). +It returns a pointer to the entry if found; nil otherwise. +The symbol table must be sorted by name in ascending order. +.PP +.I Dyntabsize +returns the length of symbol table +.IR t , +defined to be the number of +.B Dynsym +values starting at +.I t +that have non-nil +.I name +fields. +It is used to find the length of +.BR _exporttab . +.PP +.I Dynloadfd +loads a module from the file open for reading on +.IR fd , +and returns the resulting module pointer on success, +or nil on error. +If +.I maxsize +is non-zero +the size of the dynamically-loaded module's code and data +is limited to +.I maxsize +bytes. +.I Exports +is an array of +.I nexport +symbols in the current program that can be imported by the current module. +It uses +.IR read (2) +and +.IR seek (2) +to access +.IR fd , +and calls +.I werrstr +(see +.IR errstr (2)) +to set the error string if necessary. +.PP +.I Dynloadgen +is a more general function that can load a module from an +arbitrary source, not just an open file descriptor. +(In particular, it can be +called by the kernel using functions internal to the kernel +instead of making system calls.) +.IR Exports , +.I nexport +and +.I maxsize +are just as for +.IR dynloadfd . +.I File +is a pointer to a structure defined by the caller that represents the file +containing the module. +It is passed to +.I read +and +.IR seek . +.I Read +is invoked as +.BI (*read)( file , buf ,\ \fInbytes\fP)\fR.\fP +.I Read +should read +.I nbytes +of data from +.I file +into +.I buf +and return the number of bytes transferred. +It should return -1 on error. +.I Seek +is invoked as +.BI (*seek)( file , n ,\ \fItype\fP) +where +.I n +and +.I type +are just as for +.IR seek (2); +it should seek to the requested offset in +.IR file , +or return -1 on error. +.I Dynloadgen +returns a pointer to the loaded module on success. +On error, +it returns nil after calling its +.I err +parameter to set the error string. +.PP +.I Dynimport +returns a pointer to the value of the symbol +.I name +in loaded module +.IR o , +or +.I nil +if +.I o +does not export a symbol with the given +.IR name . +If +.I sig +is non-zero, the exported symbol's signature must equal +.IR sig , +or +.I dynimport +again returns nil. +For example: +.IP +.EX +Dev *d; +d = dynimport(obj, "XXXdevtab", signof(*d)); +if(d == nil) + error("not a dynamically-loadable driver"); +.EE +.PP +.I Dynobjfree +frees the module +.IR o . +There is no reference counting: it is the caller's responsibility to decide whether +a module is no longer needed. +.SH SEE ALSO +.IR 2l (10.1), +.\".IR mach (2), +.IR a.out (10.6) +.SH DIAGNOSTICS +Functions that return pointers return nil on error. +.I Dynloadfd +sets the error string and returns nil. diff --git a/static/inferno/man10/error.10 b/static/inferno/man10/error.10 new file mode 100644 index 00000000..ca177d94 --- /dev/null +++ b/static/inferno/man10/error.10 @@ -0,0 +1,175 @@ +.TH ERROR 10.2 +.SH NAME +error, nexterror, poperror, waserror \- error handling functions +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.B +void error(char*) +.PP +.B +void nexterror(void) +.PP +.B +void poperror(void) +.PP +.B +int waserror(void) +.SH DESCRIPTION +The kernel handles error conditions using non-local gotos, +similar to +.IR setjmp / longjmp +in ANSI C, +but using a stack of error labels to implement nested exception handling. +This simplifies many of the internal interfaces by eliminating the need +for returning and checking error codes at every level of the call stack, +at the cost of requiring kernel routines to adhere to a strict discipline. +.PP +Each kernel process +(see +.IR kproc (10.2)) +has in its defining +.B Proc +structure a stack of labels, +currently 32 elements deep. +A kernel function that must perform a clean up or recovery action on an error +makes a stylised call to +.IR waserror , +.IR nexterror +and +.IR poperror : +.IP +.EX +.DT +if(waserror()){ + /* recovery action */ + nexterror(); +} +/* normal action */ +poperror(); +.EE +.PP +When called in the normal course of events, +.I waserror +registers an error handling block by pushing its label onto the stack, +and returns zero. +The return value of +.I waserror +should be tested as shown above. +If non-zero (true), the calling function should perform the needed +error recovery, ended by a call to +.I nexterror +to transfer control to the next location on the error stack. +Typical recovery actions include deallocating memory, unlocking resources, and +resetting state variables. +.PP +Within the recovery block, +after handling an error condition, there must normally +be a call to +.I nexterror +to transfer control to any error recovery lower down in the stack. +The main exception is in the outermost function in a process, +which must not call +.I nexterror +(there being nothing further on the stack), but calls +.I pexit +(see +.IR kproc (10.2)) +instead, +to terminate the process. +.PP +When the need to recover a particular resource has passed, +a function that has called +.I waserror +must +remove the corresponding label from the stack by calling +.IR poperror . +This +must +be done before returning from the function; otherwise, a subsequent call to +.I error +will return to an obsolete activation record, with unpredictable but unpleasant consequences. +.PP +.I Error +copies the given error message, which is limited to +.B ERRMAX +bytes, into the +.B Osenv.errstr +of the current process, +enables interrupts by calling +.I spllo +.RI ( native +only), +and finally calls +.I nexterror +to start invoking the recovery procedures currently stacked by +.IR waserror . +The files +.B /os/port/error.h +and +.B /emu/port/error.h +offer a wide selection of predefined error messages, suitable for almost any occasion. +The message set by the most recent call to +.I error +can be obtained within the kernel by examining +.B up->env->error +and in an application, by using the +.L %r +directive of +.IR sys-print (2). +.PP +A complex function can have nested error handlers. +A +.I waserror +block will follow the acquisition of a resource, releasing it +on error before calling +.I nexterror, +and a +.I poperror +will precede its release in the normal case. +For example: +.IP +.EX +.DT +void +outer(Thing *t) +{ + qlock(t); + if(waserror()){ /* A */ + qunlock(t); + nexterror(); + } + m = mallocz(READSTR, 0); + if(m == nil) + error(Enomem); + if(waserror()){ /* B */ + free(m); + nexterror(); /* invokes A */ + } + inner(t); + poperror(); /* pops B */ + free(m); + poperror(); /* pops A */ + qunlock(t); +} +.sp 1v +void +inner(Thing *t) +{ + if(t->bad) + error(Egreg); /* error() call returns to B */ + t->valid++; +} +.EE +.SH SOURCE +.B /os/port/proc.c +.br +.B /emu/port/main.c +.SH CAVEATS +The description above has many instances of +.IR should , +.IR will , +.I must +and +.IR "must not" . +.SH SEE ALSO +.IR panic (10.2) diff --git a/static/inferno/man10/eve.10 b/static/inferno/man10/eve.10 new file mode 100644 index 00000000..8a20b77f --- /dev/null +++ b/static/inferno/man10/eve.10 @@ -0,0 +1,42 @@ +.TH EVE 10.2 +.SH NAME +eve, iseve \- privileged user +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.B +char eve[NAMELEN] = "inferno"; +.PP +.B +int iseve(void) +.SH DESCRIPTION +.I Eve +is a null-terminated string containing the name of the privileged user, often called +the `host owner', in +the Inferno system. +The default identity in native systems is +.LR inferno , +and in hosted Inferno it is the user who started +.IR emu (1). +The initial process created by system initialisation is given the +.I eve +identity. +.PP +.I Iseve +returns true if the current user is +.IR eve . +Several drivers use +.I iseve +to check the caller's identity +before granting permission to perform certain actions. +For example, the console driver allows only the user +.I eve +to write a new identity into the +.B /dev/user +file. +The privileges are strictly local and do not extend into the network +(in particular, to file servers). +.PP +Note that the comparison performed by +.I iseve +is case-sensitive, even when running hosted on systems where +usernames are case-insensitive. diff --git a/static/inferno/man10/getfields.10 b/static/inferno/man10/getfields.10 new file mode 100644 index 00000000..291ebce5 --- /dev/null +++ b/static/inferno/man10/getfields.10 @@ -0,0 +1,76 @@ +.TH GETFIELDS 10.2 +.SH NAME +getfields, tokenize \- break a string into fields +.SH SYNOPSIS +.ta \w'\fLchar* \fP'u +.B +int getfields(char *str, char **args, int maxargs, int multiflag, +.br +.B + char *delims) +.PP +.B +int tokenize(char *str, char **args, int maxargs) +.SH DESCRIPTION +.I Getfields +breaks the null-terminated +.SM UTF +string +.I str +into at most +.I maxargs +null-terminated fields and places pointers to the start of these fields in the array +.IR args . +Some of the bytes in +.I str +are overwritten. +If there are more than +.I maxargs +fields, +only the first +.I maxargs +fields will be set. +.I Delims +is a +.SM UTF +string defining a set of delimiters. +.PP +If +.I multiflag +is zero, +adjacent fields are separated by exactly one delimiter. +A string containing +.I n +delimiter characters +contains +.IR n +1 +fields. +If the +.I multiflag +argument is not zero, +a field is a non-empty string of non-delimiters. +.PP +Getfields +return the number of tokens processed. +.PP +.I Tokenize +is the same as +.I getfields +with +.I multiflag +non-zero and +.I delims +\f5"\et\er\en "\fP, +except that fields may be quoted using single quotes, in the manner +of +the command interpreter. +.SH SOURCE +.B /libkern/getfields.c +.br +.B /libkern/tokenize.c +.br +.B /lib9/getfields.c +.br +.B /lib9/tokenize.c +.SH SEE ALSO +.IR strcat (10.2) diff --git a/static/inferno/man10/iar.10 b/static/inferno/man10/iar.10 new file mode 100644 index 00000000..7d319c78 --- /dev/null +++ b/static/inferno/man10/iar.10 @@ -0,0 +1,183 @@ +.TH IAR 10.1 +.SH NAME +iar \- archive and library maintainer +.SH SYNOPSIS +.B iar +.I key +[ +.I posname +] +.I afile +[ +.I file ... +] +.SH DESCRIPTION +.I Iar +maintains groups of files +combined into a single archive file, +.IR afile . +The main use of +.I iar +is to create and update library files for the loaders +.IR 2l (10.1), +etc. +It can be used, though, for any similar purpose. +.PP +.I Key +is one character from the set +.BR drqtpmx , +optionally concatenated with +one or more of +.BR vuaibclo . +The +.I files +are constituents of the archive +.IR afile . +The meanings of the +.I key +characters are: +.TP +.B d +Delete +.I files +from the archive file. +.TP +.B r +Replace +.I files +in the archive file, or add them if missing. +Optional modifiers are +.RS +.PD0 +.TP +.B u +Replace only files with +modified dates later than that of +the archive. +.TP +.B a +Place new files after +.I posname +in the archive rather than at the end. +.TP +.BR b " or " i +Place new files before +.I posname +in the archive. +.RE +.PD +.TP +.B q +Quick. Append +.I files +to the end of the archive without checking for duplicates. +Avoids quadratic behavior in +.LR "for (i in *.v) ar r lib.a $i" . +.TP +.B t +List a table of contents of the archive. +If names are given, only those files are listed. +.TP +.B p +Print the named files in the archive. +.TP +.B m +Move the named files to the end or elsewhere, +specified as with +.LR r . +.TP +.B o +Preserve the access and modification times of files +extracted with the +.B x +command. +.TP +.B x +Extract the named files. +If no names are given, all files in the archive are +extracted. +In neither case does +.B x +alter the archive file. +.TP +.B v +Verbose. +Give a file-by-file +description of the making of a +new archive file from the old archive and the constituent files. +With +.BR p , +precede each file with a name. +With +.BR t , +give a long listing of all information about the files, +somewhat like a listing by +.IR ls (1), +showing +.br +.ns +.IP +.B + mode uid/gid size date name +.TP +.B c +Create. +Normally +.I iar +will create a new archive when +.I afile +does not exist, and give a warning. +Option +.B c +discards any old contents and suppresses the warning. +.TP +.B l +Local. +Normally +.I iar +places its temporary files in the directory +.BR /tmp . +This option causes them to be placed in the local directory. +.PP +When a +.BR d , +.BR r , +or +.BR m +.I key +is specified and all members of the archive are valid object files for +the same architecture, +.I iar +inserts a table of contents, required by the loaders, at +the front of the library. +The table of contents is +rebuilt whenever the archive is modified, except +when the +.B q +.I key +is specified or when the table of contents is +explicitly moved or deleted. +.SH EXAMPLE +.TP +.L +iar cr lib.a *.v +Replace the contents of library +.L lib.a +with the object files in the current directory. +.SH FILES +.TF /tmp/vxxxx +.TP +.B /tmp/v* +temporaries +.SH SOURCE +.B /utils/iar +.SH "SEE ALSO" +.IR 2l (10.1), +.IR ar (10.6) +.SH BUGS +If the same file is mentioned twice in an argument list, +it may be put in the archive twice. +.br +The file format used by this command is taken from UNIX, and +makes some invalid assumptions, +for instance that user IDs are numeric. diff --git a/static/inferno/man10/inb.10 b/static/inferno/man10/inb.10 new file mode 100644 index 00000000..5e30d496 --- /dev/null +++ b/static/inferno/man10/inb.10 @@ -0,0 +1,84 @@ +.TH INB 10.2 x86 +.SH NAME +inb, ins, inl, outb, outs, outl, insb, inss, insl, outsb, outss, outsl \- programmed I/O +.SH SYNOPSIS +.ta \w'\fLushort 'u +.B +int inb(int port) +.PP +.B +ushort ins(int port) +.PP +.B +ulong inl(int port) +.PP +.B +void outb(int port, int value) +.PP +.B +void outs(int port, ushort value) +.PP +.B +void outl(int port, ulong value) +.PP +.B +void insb(int port, void *address, int count) +.PP +.B +void inss(int port, void *address, int count) +.PP +.B +void insl(int port, void *address, int count) +.PP +.B +void outsb(int port, void *address, int count) +.PP +.B +void outss(int port, void *address, int count) +.PP +.B +void outsl(int port, void *address, int count) +.SH DESCRIPTION +The +.I x86 +implementation provides functions to allow kernel code +written in C to access the I/O address space. +On several other architectures such as the PowerPC and Strongarm, +the platform-dependent code provides similar functions to access +devices with an I/O space interface, even when that is memory mapped, to encourage portability of device drivers. +.PP +.IR Inb , +.I ins +and +.I inl +apply the corresponding hardware instruction to fetch the next byte, short or long +from the I/O +.IR port . +.IR Outb , +.I outs +and +.I outl +output a +.I value +to the I/O +.IR port . +.PP +The remaining functions transfer +.I count +bytes, shorts, or longs using programmed I/O between a memory +.I address +and +.IR port . +Functions +.BI ins x +copy values into memory; functions +.BI outs x +copy values from memory. +The +.I count +is in elements, not bytes. +.SH SOURCE +.B /os/pc/l.s +.SH SEE ALSO +.IR dma (10.2), +.IR isaconfig (10.2) diff --git a/static/inferno/man10/inm.10 b/static/inferno/man10/inm.10 new file mode 100644 index 00000000..61d86f65 --- /dev/null +++ b/static/inferno/man10/inm.10 @@ -0,0 +1,102 @@ +.TH INM 10.1 +.SH NAME +inm \- Inferno name list (symbol table) +.SH SYNOPSIS +.B inm +[ +.B -aghnsu +] +.I file ... +.SH DESCRIPTION +.I Inm +prints the name list of each executable or object +.I file +in the argument list. +If the +.I file +is an archive +(see +.IR iar (10.1)), +the name list of each file in the archive is printed. +If more than one file is given in the argument list, +the name of each file is printed at the beginning of each line. +.PP +Each symbol name is preceded by its hexadecimal +value (blanks if undefined) +and one of the letters +.TP +.B T +text segment symbol +.PD0 +.TP +.B t +static text segment symbol +.TP +.B L +leaf function text segment symbol +.TP +.B l +static leaf function text segment symbol +.TP +.B D +data segment symbol +.TP +.B d +static data segment symbol +.TP +.B B +bss segment symbol +.TP +.B b +static bss segment symbol +.TP +.B a +automatic (local) variable symbol +.TP +.B p +function parameter symbol +.TP +.B z +source file name +.TP +.B Z +source file line offset +.TP +.B f +source file name components +.PD +.PP +The output is sorted alphabetically. +.PP +Options are: +.TP +.B -a +Print all symbols; normally only user-defined text, data, +and bss segment symbols are printed. +.TP +.B -g +Print only global +.RB ( T , +.BR L , +.BR D , +.BR B ) +symbols. +.TP +.B -h +Do not print file name headers with output lines. +.TP +.B -n +Sort according to the address of the symbols. +.TP +.B -s +Don't sort; print in symbol-table order. +.TP +.B -u +Print only undefined symbols. +.SH SOURCE +.B /utils/nm +.SH SEE ALSO +.IR iar (10.1), +.IR 2l (10.1), +.IR acid (10.1), +.IR a.out (10.6) diff --git a/static/inferno/man10/intrenable.10 b/static/inferno/man10/intrenable.10 new file mode 100644 index 00000000..a6d508e3 --- /dev/null +++ b/static/inferno/man10/intrenable.10 @@ -0,0 +1,106 @@ +.TH INTRENABLE 10.2 +.SH NAME +intrenable, intrdisable \- enable (disable) an interrupt handler +.SH SYNOPSIS +.ta \w'\fLvoid* 'u +.B +void intrenable(int v, void (*f)(Ureg*, void*), void* a, int tbdf, char *name) +.PP +.B +void intrdisable(int v, void (*f)(Ureg*, void*), void* a, int tbdf, char *name) +.SH DESCRIPTION +.I Intrenable +registers +.I f +to be called by the kernel's interrupt controller driver each time +an interrupt denoted by +.I v +occurs, and unmasks the corresponding interrupt in the interrupt controller. +The encoding of +.I v +is platform-dependent; it is often an interrupt vector number, but +can be more complex. +.I Tbdf +is a platform-dependent value that might further qualify +.IR v . +It might for instance +denote the type of bus, bus instance, device number and function +(following the PCI device indexing scheme), hence its name, +but can have platform-dependent meaning. +.I Name +is a string that should uniquely identify the corresponding device (eg, \f5"uart0"\fP); +again it is usually platform-dependent. +.I Intrenable +supports sharing of interrupt levels when the hardware does. +.PP +Almost invariably +.I f +is a function defined in a device driver to carry out the device-specific work associated with a given interrupt. +The pointer +.I a +is passed to +.IR f ; +typically it points to the driver's data for a given device or controller. +It also passes +.I f +a +.B Ureg* +value that +contains the registers saved by the interrupt handler (the +contents are platform specific; +see the platform's include file +.BR "ureg.h" ). +.PP +.I F +is invoked by underlying code in the kernel that is invoked directly from the hardware vectors. +It is therefore not running in any process (see +.IR kproc (10.2); +indeed, on many platforms +the current process pointer +.RB ( up ) +will be nil. +There are many restrictions on kernel functions running outside a process, but a fundamental one is that +they must not +.IR sleep (10.2), +although they often call +.B wakeup +to signal the occurrence of an event associated with the interrupt. +.IR Qio (10.2) +and other manual pages note which functions are safe for +.I f +to call. +.PP +The interrupt controller driver does whatever is +required to acknowledge or dismiss the interrupt signal in the interrupt controller, +before calling +.IR f , +for edge-triggered interrupts, +and after calling +.IR f +for level-triggered ones. +.I F +is responsible for deal with the cause of the interrupt in the device, including any +acknowledgement required in the device, before it returns. +.PP +.I Intrdisable +removes any registration previously made by +.I intrenable +with matching parameters, and if no other +interrupt is active on +.IR v , +it masks the interrupt in the controller. +Device drivers that are not dynamically configured tend to call +.I intrenable +during reset or initialisation (see +.IR dev (10.2)), +but can call it at any appropriate time, and +instead of calling +.I intrdisable +they can simply enable or disable interrupts in the device as required. +.SH SOURCE +.B /os/*/trap.c +.SH SEE ALSO +.IR malloc (10.2), +.IR qio (10.2), +.IR sleep (10.2), +.IR splhi (10.2) diff --git a/static/inferno/man10/kbdputc.10 b/static/inferno/man10/kbdputc.10 new file mode 100644 index 00000000..08fe3830 --- /dev/null +++ b/static/inferno/man10/kbdputc.10 @@ -0,0 +1,105 @@ +.TH KBDPUTC 10.2 +.SH NAME +kbdputc, kbdrepeat, kbdclock, kbdq \- keyboard interface to \fIcons\fP(3) +.SH SYNOPSIS +.ta \w'\f5extern\ \ \f1'u +.B +#include "keyboard.h" +.PP +.B +void kbdputc(Queue *q, int c) +.PP +.B +void kbdrepeat(int on) +.PP +.B +void kbdclock(void) +.PP +.B +extern Queue *kbdq; +.SH DESCRIPTION +This is the internal interface between +.B /dev/keyboard +of +.IR cons (3) +and the architecture-dependent keyboard driver. +Before calling any of these functions, +the global variable +.B kbdq +must be initialised; +.IR cons (3) +does not initialise it. +This is usually done during system initialisation by the keyboard driver's +.I kbdinit +function , +as follows: +.IP +.EX +kbdq = qopen(4*1024, 0, 0, 0); +qnoblock(kbdq, 1); +.EE +.PP +.I Kbdputc +puts a 16-bit Unicode character +.I c +(ie, a `rune') +on the given +.IR q , +as a sequence of bytes in UTF-8 encoding +(see +.IR utf (6)). +If +.I c +is the special value +.B Latin +(defined by +.BR keyboard.h ), +.I kbdputc +starts collecting characters, looking for the typeable representations of +Unicode characters defined by +.IR keyboard (6); +at the end of a complete such sequence, +.I kbdputc +queues the UTF-8 encoding of the corresponding Unicode character. +It is up to the keyboard driver to map a suitable physical keyboard character +(or combination of characters) to the code +.BR Latin . +.PP +Drivers that need to implement repeat of keypresses in software +should call +.IP +.EX +addclock0link(kbdclock); +.EE +.PP +at the end of +.IR kbdinit , +to cause +.I kbdclock +to be called each clock tick. +.I Kbdrepeat +can then be called to enable +.RI ( on +is non-zero) +or disable it +.RI ( on +is zero). +When repeat is on, +.I kbdclock +(when called) will periodically call +.BI "kbdputc(" kbdq , c ) +where +.I c +is the last rune given to +.IR kbdputc . +The driver is responsible for enabling and disabling repeat appropriately; +for instance, function keys and certainly +.B Latin +should typically not be repeated. +.SH SOURCE +.B /os/*/kbd*.c +.SH SEE ALSO +.IR cons (3), +.IR utf (6), +.IR qio (10.2) + diff --git a/static/inferno/man10/kproc.10 b/static/inferno/man10/kproc.10 new file mode 100644 index 00000000..eff495c2 --- /dev/null +++ b/static/inferno/man10/kproc.10 @@ -0,0 +1,142 @@ +.TH KPROC 10.2 +.SH NAME +kproc, setpri, swiproc, pexit \- kernel process creation, priority change, interrupt and termination +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.B +void kproc(char *name, void (*func)(void*), void *arg, int flags); +.PP +.B +int setpri(int pri); +.PP +.B +void swiproc(Proc *p, int interp); +.PP +.B +void pexit(char*, int); +.SH DESCRIPTION +.I Kproc +creates a new Inferno kernel process +to run the function +.IR func , +which is invoked as +.BR "(*func)(arg)" . +The string +.I name +is copied into the +.B text +field of the +.B Proc +structure of the new process; although the value is not visible to Limbo +applications, it can appear in system messages written to the console. +The process is made runnable; it +will run when selected by the scheduler. +.PP +The new process always acquires the following attributes from the creating process: +.IP +owner (Inferno user name) +.br +host user and group IDs (in +.I emu +only) +.br +floating-point attributes +.PP +Several resources can be shared with the creating process on request, as determined by +.IR flags , +which is the logical OR +of a subset of the following: +.TF KPDUPENVG +.TP +.B KPDUPPG +If set, the new process shares the caller's process group, +which includes its process group ID +(for +.IR killgrp ), +name space (mounts, root and current directory), +and PIN for +.B /dev/pin +(see +.IR cons (3)). +.TP +.B KPDUPFDG +If set, the new process shares the caller's file descriptor group; +otherwise, it has no file descriptor group, and (if it intends to open files) must call +.IR newfgrp (10.2) +to obtain an empty file descriptor group. +.TP +.B KPDUPENVG +If set, the new process shares the caller's environment group +(currently applies in +.I emu +only). +.TP +.B KPDUP +Equivalent to all of the above. +.PD +.PP +If a particular option is not set, the new process will have a +.B nil +reference for the corresponding resource. +.PP +.I Setpri +sets the priority of the calling process to +.I pri +and returns its previous priority level. +If a (now) higher priority process is ready to run, the system will reschedule. +The available priority levels are shown below, +arranged from highest to lowest priority, +with examples of the type of processes intended to use them: +.TF PriBackground +.TP +.B PriLock +The highest priority, used by +.IR lock (10.2) +for a process entering a critical section +.TP +.B PriRealtime +Intended for processes supporting applications with real-time constraints, such as video telephony. +.TP +.B PriHicodec +MPEG codec +.TP +.B PriLocodec +Audio codec +.TP +.B PriHi +Any task with keen time constraints. +.TP +.B PriNormal +The priority of most processes in the system. +.TP +.B PriLo +.TP +.B PriBackground +.PD +.PP +.I Swiproc +sends a software interrupt to process +.IR p , +causing it to wake from +.IR sleep (10.2) +with an +.IR error (10.2) +`interrupted'. +Unless +.I interp +is non-zero (ie, the Dis interpreter is the caller), the process is also marked `killed'. +.PP +An Inferno process terminates only when it calls +.IR pexit , +thereby terminating itself. +There is no mechanism for one process to force the termination of another, +although it can send a software interrupt using +.IR swiproc . +The arguments to +.I pexit +are ignored in Inferno, but are included for compatibility +with kernel components of Plan 9; use +.IP +.EX +pexit("", 0); +.EE diff --git a/static/inferno/man10/kprof.10 b/static/inferno/man10/kprof.10 new file mode 100644 index 00000000..4df39888 --- /dev/null +++ b/static/inferno/man10/kprof.10 @@ -0,0 +1,34 @@ +.TH KPROF 10.1 +.SH NAME +kprof \- display kernel profiling data +.SH SYNOPSIS +.B kprof +.I kernel +.I kpdata +.SH DESCRIPTION +.I Kprof +presents the data accumulated by the kernel +profiling device, +.IR kprof (3) . +The symbol table is taken from the file +.IR kernel , +the executable file of the operating system kernel that +was profiled. +The data file +.I kpdata +is usually a copy of +.BR /dev/kpdata +from the device running the profiling kernel. +.PP +The symbol table +is read and correlated with the +profile data. +For each symbol, the time (in milliseconds) +spent executing between that symbol +and the next +is printed (in decreasing order), +together with the percentage of the total time. +.SH SOURCE +.B /utils/kprof +.SH SEE ALSO +.IR kprof (3) diff --git a/static/inferno/man10/ksize.10 b/static/inferno/man10/ksize.10 new file mode 100644 index 00000000..824200b2 --- /dev/null +++ b/static/inferno/man10/ksize.10 @@ -0,0 +1,29 @@ +.TH KSIZE 10.1 +.SH NAME +ksize \- print size of kernel images +.SH SYNOPSIS +.B ksize +[ +.I file ... +] +.SH DESCRIPTION +.I Ksize +prints the size of the segments for each of the argument executable files +(default +.BR 8.out ). +The format is +.IP +.IB textsize t ++ +.IB datasize d ++ +.IB bsssize b += +.I total +.PP +where the numbers are in bytes. +.SH SOURCE +.B /utils/ksize +.SH "SEE ALSO +.IR kstrip (10.1), +.IR a.out (10.6) diff --git a/static/inferno/man10/kstrip.10 b/static/inferno/man10/kstrip.10 new file mode 100644 index 00000000..3346c622 --- /dev/null +++ b/static/inferno/man10/kstrip.10 @@ -0,0 +1,32 @@ +.TH KSTRIP 10.1 +.SH NAME +kstrip \- remove symbols from kernel images +.SH SYNOPSIS +.B kstrip +.I file ... +.PP +.B kstrip +.B -o +.I ofile +.I file +.SH DESCRIPTION +.I Kstrip +removes symbol table segments from executable files, +rewriting the files in place. +Stripping a file requires write permission on the file +and the directory it is in. +.PP +If the +.B -o +flag is given, +the single input file +.I file +is stripped and the result written to +.IR ofile . +.I File +is unchanged. +.SH SOURCE +.B /utils/kstrip +.SH "SEE ALSO" +.IR ksize (10.1), +.IR a.out (10.6) diff --git a/static/inferno/man10/lock.10 b/static/inferno/man10/lock.10 new file mode 100644 index 00000000..9c9e04cd --- /dev/null +++ b/static/inferno/man10/lock.10 @@ -0,0 +1,110 @@ +.TH LOCK 10.2 +.SH NAME +lock, canlock, ilock, iunlock, unlock \- spin locks +.SH SYNOPSIS +.ta \w'\fLvoid 'u +.B +void lock(Lock *l) +.PP +.B +int canlock(Lock *l) +.PP +.B +void unlock(Lock *l) +.PP +.B +void ilock(Lock *l) +.PP +.B +void iunlock(Lock *l) +.SH DESCRIPTION +These primitives control access to shared +resources using spin locks. +They in turn are used to build higher-level synchronisation mechanisms +such as those described in +.IR sleep (10.2), +.IR qlock (10.2) +and +.IR qio (10.2). +They should be used only to protect short critical sections +that update shared data structures. +.PP +.I Lock +loops repeatedly attempting acquire the spin lock +.I l +until it succeeds. +.I Lock +should not be used to lock a structure shared with an interrupt handler +unless interrupts are disabled by +.IR splhi (10.2) +before attempting the lock; +it is better to use +.IR ilock , +below. +.PP +.I Canlock +is non-blocking. +Only one attempt is made for the lock. +It returns non-zero if the lock was successfully acquired; 0 otherwise. +.PP +.I Unlock +releases the lock +.IR l . +A lock must be unlocked only by the locking process. +.PP +When called by a process, the functions above temporarily boost its priority +to the highest priority, +.BR PriLock ; +its original priority is restored at the end of the critical section by +.IR unlock . +On a uniprocessor, if +.I l +is unavailable, +.I lock +can reschedule unless interrupts are disabled before entering +.I lock +or there is no current process (eg, when executing the scheduler). +.PP +.I Ilock +disables interrupts before attempting to acquire the lock. +It should be used to lock a resource shared between a process and an interrupt handler. +On a uniprocessor, disabling interrupts is sufficient to exclude an interrupt handler +from the critical section, +and on a multiprocessor the spin lock excludes an interrupt handler running on another processor. +.I Ilock +never reschedules the caller, nor must a caller allow itself to be rescheduled +(eg, by calling +.IR sleep (10.2)) +before releasing the lock. +.PP +.I Iunlock +releases a lock previously got by +.IR ilock . +.SH DIAGNOSTICS +The lock functions +guard against the possibility of never acquiring the lock by capping the number of lock attempts. +If the limit is reached, a message of +the following form is written on the console: +.IP +.EX +lock loop on \fIlock-address\fP key \fIkey-value\fP pc \fIcaller-pc\fP held by pc \fIlock-pc\fP +.EE +.PP +Most lock loops represent deadlocks caused by failing to unlock a resource, +attempting to lock (eg, by recursive call) a resource already held by the process, +inconsistent locking and unlocking of nested resources, using a spin-lock +to guard code that reschedules, using +.I lock +not +.I ilock +to interlock with an interrupt routine, and similar blunders. +.SH SOURCE +.B /os/port/taslock.c +.br +.B /os/*/l.s +.br +.B /emu/port/lock.c +.br +.B /emu/*/os.c +.SH SEE ALSO +.IR qlock (10.2) diff --git a/static/inferno/man10/malloc.10 b/static/inferno/man10/malloc.10 new file mode 100644 index 00000000..d79ccc45 --- /dev/null +++ b/static/inferno/man10/malloc.10 @@ -0,0 +1,81 @@ +.TH MALLOC 10.2 +.SH NAME +malloc, mallocz, smalloc, free, realloc, calloc \- kernel memory allocators +.SH SYNOPSIS +.ta \w'\fLvoid* 'u +.B +void* malloc(ulong size) +.PP +.B +void* mallocz(ulong size, int clr) +.PP +.B +void* smalloc(ulong size) +.PP +.B +void* realloc(void *p, ulong size) +.PP +.B +void* calloc(ulong n, ulong szelem) +.PP +.B +void free(void *p) +.SH DESCRIPTION +These functions allocate memory from the +.B mainmem +memory pool. +All but +.I smalloc +(which sleeps) +may safely be called by interrupt handlers. +.PP +.I Malloc +returns a pointer to a block of at least +.I size +bytes, initialised to zero. +The result is aligned on a 32-bit boundary. +.I Mallocz +is similar, but only clears the memory if +.I clr +is non-zero. +.PP +.I Smalloc +returns a pointer to a block of +.I size +bytes, initialised to zero. +If the memory is not immediately available, +.I smalloc +retries every 100 milliseconds until the memory is acquired. +.PP +.I Calloc +returns a pointer to a block of memory of at least +.I "n*szelem" +bytes, initialised to zero. +.PP +.I Realloc +changes the size of the block pointed to by +.I p +to +.I size +bytes, +if possible without moving the data, +and returns a pointer to the block. +The contents are unchanged up to the lesser of old and new sizes, +and any new space allocated is initialised to zero. +If +.I p +is a null pointer, +.I realloc +returns the equivalent of +.BR "malloc(size)" . +.PP +The argument to +.I free +is a pointer to a block of memory allocated by one of the routines above, which +is returned to the allocation pool, or a null pointer, which is ignored. +.SH DIAGNOSTICS +All functions except +.I smalloc +return a null pointer if space is unavailable. +.SH SEE ALSO +.IR xalloc (10.2) diff --git a/static/inferno/man10/master.10 b/static/inferno/man10/master.10 new file mode 100644 index 00000000..cea1940a --- /dev/null +++ b/static/inferno/man10/master.10 @@ -0,0 +1,70 @@ +.TH MASTER 10.6 +.SH NAME +master, master.local \- list of device specifiers +.SH SYNOPSIS +.B /emu/port/master +.br +.B /emu/port/master.local +.PP +.B os/port/master +.br +.B os/port/master.local +.SH DESCRIPTION +Each device has a name of the form +.BI # x +where +.I x +is a single Unicode character, +which represents the root of the name space served (generated) by the driver. +(There can be a further +.I specifier +that selects a particular hierarchy within the device, but that is not relevant here.) +These names allow the devices' name spaces to be added to a process's name space +(see +.IR sys-intro (2)), +using +.IR bind (1) +commands, +.IR sys-bind (2) +operations and +.IR namespace (6) +files. +A given character can represent only one driver in a running system, +but the same character might be used by several drivers in the source tree +if they are never configured into the same system (eg, different platforms or +mutually-exclusive configurations). +The file +.B #c/drivers +gives the local system's assignment (see +.IR cons (3)). +A list of the set of characters used across all drivers on all platforms +can be found in the several +.B master +files. +In the distribution, the +.B master.local +files list characters that are reserved for use by locally-written drivers. +They are updated by hand at a given installation. +The +.B master +files by contrast are generated automatically by +.B emu/port/mkfile +and +.B os/port/mkfile +from the source for all platforms and +.BR master.local . +In the distribution, they might include names for drivers that exist but are not +distributed. +.PP +Except for a few fundamental drivers, the character assignment is +arbitrary, can vary between installations, and is notionally subject to change +(although that rarely happens). +The +.IR indir (3) +allows referring to drivers using a longer name that is even less likely to change. +.SH SEE ALSO +.IR bind (1), +.IR sys-intro (2), +.IR indir (3), +.IR namespace (6), +.IR dev (10.2) diff --git a/static/inferno/man10/memory.10 b/static/inferno/man10/memory.10 new file mode 100644 index 00000000..0b11e7ed --- /dev/null +++ b/static/inferno/man10/memory.10 @@ -0,0 +1,117 @@ +.TH MEMORY 10.2 +.SH NAME +memccpy, memchr, memcmp, memcpy, memmove, memset \- memory operations +.SH SYNOPSIS +.ta \w'\fLvoid* 'u +.B +void* memccpy(void *s1, void *s2, int c, long n) +.PP +.B +void* memchr(void *s, int c, long n) +.PP +.B +int memcmp(void *s1, void *s2, long n) +.PP +.B +void* memcpy(void *s1, void *s2, long n) +.PP +.B +void* memmove(void *s1, void *s2, long n) +.PP +.B +void* memset(void *s, int c, long n) +.SH DESCRIPTION +These functions operate efficiently on memory areas +(arrays of bytes bounded by a count, not terminated by a zero byte). +They do not check for the overflow of any receiving memory area. +.PP +.I Memccpy +copies bytes from memory area +.I s2 +into +.IR s1 , +stopping after the first occurrence of byte +.I c +has been copied, or after +.I n +bytes have been copied, whichever comes first. +It returns a pointer to the byte after +the copy of +.I c +in +.IR s1 , +or zero if +.I c +was not found in the first +.I n +bytes of +.IR s2 . +.PP +.I Memchr +returns a pointer to the first +occurrence of byte +.I c +in the first +.I n +bytes of memory area +.IR s, +or zero if +.I c +does not occur. +.PP +.I Memcmp +compares its arguments, looking at the first +.I n +bytes only, and returns an integer +less than, equal to, or greater than 0, +according as +.I s1 +is lexicographically less than, equal to, or +greater than +.IR s2 . +The comparison is bytewise unsigned. +.PP +.I Memmove +copies +.I n +bytes from memory area +.I s2 +to +.IR s1 . +It returns +.IR s1 . +It is guaranteed to work if +.I s1 +and +.IR s2 +overlap. +.PP +In the Inferno kernel +.I memcpy +is equivalent to +.IR memmove . +(In ANSI C, by contrast, +.I memcpy +does not account for overlapping memory regions.) +.PP +.I Memset +sets the first +.I n +bytes in memory area +.I s +to the value of the least significant byte of +.IR c . +It returns +.IR s . +.SH DIAGNOSTICS +If +.I memcpy +and +.I memmove +are handed negative counts, they abort. +.SH SOURCE +.BR /libkern/mem*.c +.br +.BR /libkern/mem*-\fIobjtype\fP.s +.SH SEE ALSO +.IR strcat (10.2) diff --git a/static/inferno/man10/mk.10 b/static/inferno/man10/mk.10 new file mode 100644 index 00000000..b76e35ba --- /dev/null +++ b/static/inferno/man10/mk.10 @@ -0,0 +1,661 @@ +.TH MK 10.1 +.SH NAME +mk \- maintain (make) related files +.SH SYNOPSIS +.B mk +[ +.B -f +.I mkfile +] ... +[ +.I option ... +] +[ +.I target ... +] +.SH DESCRIPTION +.I Mk +uses the dependency rules specified in +.I mkfile +to control the update (usually by compilation) of +.I targets +(usually files) +from the source files upon which they depend. +The +.I mkfile +(default +.LR mkfile ) +contains a +.I rule +for each target that identifies the files and other +targets upon which it depends and an +.IR rc (10.1) +script, a +.IR recipe , +to update the target. +The script is run if the target does not exist +or if it is older than any of the files it depends on. +.I Mkfile +may also contain +.I meta-rules +that define actions for updating implicit targets. +If no +.I target +is specified, the target of the first rule (not meta-rule) in +.I mkfile +is updated. +.PP +The environment variable +.B $NPROC +determines how many targets may be updated simultaneously; +Plan 9 sets +.B $NPROC +automatically to the number of CPUs on the current machine. +.PP +Options are: +.TP \w'\fL-d[egp]\ 'u +.B -a +Assume all targets to be out of date. +Thus, everything is updated. +.PD 0 +.TP +.BR -d [ egp ] +Produce debugging output +.RB ( p +is for parsing, +.B g +for graph building, +.B e +for execution). +.TP +.B -e +Explain why each target is made. +.TP +.B -i +Force any missing intermediate targets to be made. +.TP +.B -k +Do as much work as possible in the face of errors. +.TP +.B -n +Print, but do not execute, the commands +needed to update the targets. +.TP +.B -s +Make the command line arguments sequentially rather than in parallel. +.TP +.B -t +Touch (update the modified date of) file targets, without +executing any recipes. +.TP +.BI -w target1 , target2,... +Pretend the modify time for each +.I target +is the current time; useful in conjunction with +.B -n +to learn what updates would be triggered by +modifying the +.IR targets . +.PD +.SS The \fLmkfile\fP +A +.I mkfile +consists of +.I assignments +(described under `Environment') and +.IR rules . +A rule contains +.I targets +and a +.IR tail . +A target is a literal string +and is normally a file name. +The tail contains zero or more +.I prerequisites +and an optional +.IR recipe , +which is an +.B rc +script. +Each line of the recipe must begin with white space. +A rule takes the form +.IP +.EX +target: prereq1 prereq2 + rc \f2recipe using\fP prereq1, prereq2 \f2to build\fP target +.EE +.PP +When the recipe is executed, +the first character on every line is elided. +.PP +After the colon on the target line, a rule may specify +.IR attributes , +described below. +.PP +A +.I meta-rule +has a target of the form +.IB A % B +where +.I A +and +.I B +are (possibly empty) strings. +A meta-rule acts as a rule for any potential target whose +name matches +.IB A % B +with +.B % +replaced by an arbitrary string, called the +.IR stem . +In interpreting a meta-rule, +the stem is substituted for all occurrences of +.B % +in the prerequisite names. +In the recipe of a meta-rule, the environment variable +.B $stem +contains the string matched by the +.BR % . +For example, a meta-rule to compile a C program using +.IR 2c (10.1) +might be: +.IP +.EX +%.2: %.c + 2c $stem.c + 2l -o $stem $stem.2 +.EE +.PP +Meta-rules may contain an ampersand +.B & +rather than a percent sign +.BR % . +A +.B % +matches a maximal length string of any characters; +an +.B & +matches a maximal length string of any characters except period +or slash. +.PP +The text of the +.I mkfile +is processed as follows. +Lines beginning with +.B < +followed by a file name are replaced by the contents of the named +file. +Blank lines and comments, which run from unquoted +.B # +characters to the following newline, are deleted. +The character sequence backslash-newline is deleted, +so long lines in +.I mkfile +may be folded. +Non-recipe lines are processed by substituting for +.BI `{ command } +the output of the +.I command +when run by +.IR rc . +References to variables are replaced by the variables' values. +Special characters may be quoted using single quotes +.BR \&'' +as in +.IR rc (10.1). +.PP +Assignments and rules are distinguished by +the first unquoted occurrence of +.B : +(rule) +or +.B = +(assignment). +.PP +A later rule may modify or override an existing rule under the +following conditions: +.TP +\- +If the targets of the rules exactly match and one rule +contains only a prerequisite clause and no recipe, the +clause is added to the prerequisites of the other rule. +If either or both targets are virtual, the recipe is +always executed. +.TP +\- +If the targets of the rules match exactly and the +prerequisites do not match and both rules +contain recipes, +.I mk +reports an ``ambiguous recipe'' error. +.TP +\- +If the target and prerequisites of both rules match exactly, +the second rule overrides the first. +.SS Environment +Rules may make use of +.B rc +environment variables. +A legal reference of the form +.B $OBJ +or +.B ${name} +is expanded as in +.IR rc (10.1). +A reference of the form +.BI ${name: A % B = C\fL%\fID\fL}\fR, +where +.I A, B, C, D +are (possibly empty) strings, +has the value formed by expanding +.B $name +and substituting +.I C +for +.I A +and +.I D +for +.I B +in each word in +.B $name +that matches pattern +.IB A % B\f1. +.PP +Variables can be set by +assignments of the form +.I + var\fL=\fR[\fIattr\fL=\fR]\fIvalue\fR +.br +Blanks in the +.I value +break it into words, as in +.I rc +but without the surrounding parentheses. +Such variables are exported +to the environment of +recipes as they are executed, unless +.BR U , +the only legal attribute +.IR attr , +is present. +The initial value of a variable is +taken from (in increasing order of precedence) +the default values below, +.I mk's +environment, the +.IR mkfiles , +and any command line assignment as an argument to +.IR mk . +A variable assignment argument overrides the first (but not any subsequent) +assignment to that variable. +The variable +.B MKFLAGS +contains all the option arguments (arguments starting with +.L - +or containing +.LR = ) +and +.B MKARGS +contains all the targets in the call to +.IR mk . +.PP +It is recommended that mkfiles start with +.IP +.EX +env->fgrp , +the file descriptor group for the current process). +If +.I mode +is a valid mode for +.IR sys-open (2), +typically +.BR OREAD , +.B OWRITE +or +.BR ORDWR , +it must correspond to the mode with which +.I fd +was originally opened; if +.I mode +is +.BR -1 , +no check is made. +If +.I chkmnt +is non-zero, +.I c +must not be a channel in use by the mount driver +.IR mnt (3). +On successful return, if +.I iref +is non-zero, the channel's reference count has been incremented. +.I Fdtochan +calls +.IR error (10.2) +if it detects invalid uses, in particular an invalid file descriptor +.IR fd . +.PP +.I Namec +looks up a +.I pathname +in the current name space and returns a channel. +.I Amode +determines the mode of look up, and must be one of the constants below: +.TF Aaccess +.PD +.TP +.B Aaccess +Access file for information, as in the stat command or call. +.TP +.B Atodir +Access file as directory (the +.B QTDIR +bit of its +.B qid.type +must be set). +.TP +.B Aopen +Access for I/O. +.TP +.B Amount +Access directory to be mounted upon. +.TP +.B Acreate +File is to be created. +.PP +If +.I amode +is +.B Aopen +or +.BR Acreate , +.I omode +should be a mode suitable for +.IR sys-open (2); +if +.BR Acreate , +.I perm +should be valid file permissions. +In all other cases, +.I omode +and +.I perm +can be zero. +.PP +.I Cclose +decrements the reference count on +.IR c ; +if no further references remain, it +calls the corresponding device's +.B Dev.close +to close the channel, and frees +.IR c . +.SH DIAGNOSTICS +Most functions call +.IR error (10.2) +on any sort of error. +.SH SOURCE +.B /os/port/chan.c +.br +.B /emu/port/chan.c +.SH SEE ALSO +.IR ref (10.2) diff --git a/static/inferno/man10/ntsrv.10 b/static/inferno/man10/ntsrv.10 new file mode 100644 index 00000000..d49b48a2 --- /dev/null +++ b/static/inferno/man10/ntsrv.10 @@ -0,0 +1,69 @@ +.TH NTSRV 10.1 Windows +.SH NAME +ntsrv \- start hosted Inferno as Windows service +.SH SYNOPSIS +.B ntsrv +.B add +.IR "svcname rootdir cmd" " [" arg " ... ]" +.PP +.B ntsrv +.B del +.I svcname +.SH DESCRIPTION +.I Ntsrv +is a command (for Windows only) that allows hosted Inferno +to run automatically as a Windows service, under Windows 2000 and XP. +For Windows NT, use the command +.BR ntsrv4 , +which otherwise has identical interface. +.I Svcname +is the (proposed) Windows service name; +.I rootdir +is the root of the Inferno directory tree, +including the drive letter. +Once added, a service can be controlled using the Windows service manager: +it may be stopped, started, or have its attributes changed. +.I Svcname +is set to start automatically when Windows starts up. +Services run by default under the local Windows `System' identity. +All Windows processes and threads the service creates (eg, using +.IR cmd (3)) +are destroyed when the service is stopped. +There may be many different services, each with a distinct +.IR svcname . +.PP +.I Ntsrv 's +first parameter tells it what to do: +.TP +.B add +Add a new service +.I svcname +that when started will invoke +.IR emu (1) +to run the Inferno command +.I cmd +with any additional arguments. +.TP +.B del +Delete an existing service +.IR svcname . +.PP +.I Ntsrv +requires the directory +.IR rootdir /Nt/386/bin +to contain both +.B emu.exe +(ie, +.IR emu (1)) +and +.B ntsrv.exe +itself. +.SH FILES +.TF c:/inferno/Nt/386/bin +.TP +.IB rootdir /Nt/386/bin +Windows host executables +.SH SOURCE +.B /utils/ntsrv +.SH SEE ALSO +.IR emu (1) diff --git a/static/inferno/man10/odbc.10 b/static/inferno/man10/odbc.10 new file mode 100644 index 00000000..6367aca9 --- /dev/null +++ b/static/inferno/man10/odbc.10 @@ -0,0 +1,277 @@ +.TH ODBC 10.4 +.SH NAME +ODBC \- A Windows ODBC file server +.SH SYNOPSIS +.B odbc.exe +[ +.B -d +] [ +.BI -p " port" +] [ +.BI -u " user" +] +.SH DESCRIPTION +.I Odbc +is a file server that runs under Windows and +exports a 9P namespace +(see +.IR intro (5)). +An Inferno process that mounts the namespace +can use it to manipulate Windows ODBC databases. +.PP +The +.B -d +option causes +.I odbc +to print debugging information. +.PP +The +.B -p +option gives the port number to listen on for connections. The default is 6700. +.PP +By default, the user +.B inferno +owns the files in the name space. +The +.B -u +option makes +.I user +own the files instead. +.SS Name space +.I Odbc +presents the following name space: +.PP +.nf +.BI /nclients +.BI /db +.BI /db/new +.BI /db/ n +.BI /db/ n /cmd +.BI /db/ n /ctl +.BI /db/ n /data +.BI /db/ n /error +.BI /db/ n /format +.BI /db/ n /sources +.BI /db/ n /status +.fi +.PP +The top level read-only file +.B nclients +contains the current number of active clients on the server. +.PP +The top level +.B db +directory contains a +.B new +file and subdirectories numbered +.B n +from zero to the maximum number of +configured conversations. +.PP +Opening the +.B new +file reserves a conversation, represented +by one of the numbered directories. The resulting file descriptor will be open +on the control file, +.BR ctl , +of the newly allocated conversation. +Reading the +.B ctl +file returns a text string representing the +number of the conversation. +A conversation is used to converse with the server - in ODBC terms +it is equivalent to obtaining a connection handle. This is the level at +which ODBC transactions are managed. +.PP +A conversation is controlled by writing text strings to the +associated +.B ctl +file. ODBC commands may be sent to the +server by writing them, as text strings, to the +.B cmd +file. +For commands that return a record set, the results may be read +from the +.B data +file; each read returning a single record. +If a command results in an error, the write to the +.B cmd +file +will fail. The full ODBC error message can be obtained by reading +the +.B error +file. +A conversation remains open while at least one of the +.BR ctl , +.B cmd +or +.B data +files remains open. +.PP +The following commands can be written to the +.B ctl +file: +.TP +.B connect " datasource" " [user!auth]" +Connect to the ODBC datasource using the username and authentication, if given. +.TP +.B disconnect +Disconnect from the datasource. +.TP +.B fixed +Reads from the +.B data +file will return data in a fixed format. The format can +be read from the +.B format +file after writing the command to the +.B cmd +file and before reading the data from the +.B data +file. +.TP +.B float " [fs< [rs<]]" +Reads from the data file will return data using the character +.B fs +to separate fields and the character +.B rs +to separate records. +The default values for +.B fs and +.B rs +are the pipe symbol '|' +and the newline character. +.TP +.B trans " begin" +Enter ODBC manual-commit mode for transactions. A transaction will +not complete until one of +.B trans commit +or +.B trans rollback +is written to the +.B ctl +file. +.TP +.B trans " auto" +Enter ODBC auto-commit mode for transactions (the default). +Each database statement is wrapped by a transaction that is automatically +commited when the statement is executed. +.TP +.B trans " commit" +Commit a transaction when in manual-commit mode. +.TP +.B trans " rollback" +Rollback a transation when in manual-commit mode. +.PP +Once a conversation has been established and transaction mode and +output formats determined the +.B cmd +file is +used to send ODBC commands to the server. +The following commands can be written to the +.B cmd +file: +.TP +.B tables +The result of calling the ODBC API function SQLTables is returned +in the +.B data +file. +.TP +.B columns " tablename" +The result of calling the ODBC API function SQLColumns with the +given +.B tablename +as a parameter is returned in the +.B data +file. +.TP +.B any " ODBC" " command" +Any ODBC command written to the +.B cmd +file is passed +to the ODBC API function SQLExecDirect. This most commonly includes +select, update, insert, and delete +commands. +.PP +The +.B format +file is used to determine column names and how to extract +individual columns from the record read from the +.B data +file when using +fixed format output. A read of it gives +a single record read returning one line +for each column in the result data. Each line has three components separated +by a single space: a number giving the character position of the start of the field +in the result data, a number giving the character position one beyond the +end of the field in the result data, and the field name. +.PP +The result of database enquiries can be read from the +.B data +file. +After writing a command that returns data to the +.B cmd +file, +reads from the +.B data +file will return the results one record at a time. +When the last record has been read the following read will return zero +bytes indicating the end of the data. +.PP +The read-only file +.B sources +gives a newline separated list of sources. Each line consists +of the source name and the source type separated by a colon. +.PP +The read-only file +.B status +return the status of the current conversation. +.SH EXAMPLE +For example, the Inferno shell can be used to retrieve +values from a database. The shell commands: +.PP +.EX +mount -A tcp!localhost!6700 /n/remote +{ + d=/n/remote/db/`{cat} + echo -n 'float' > $d/ctl + echo -n 'connect cellar' > $d/ctl + echo -n 'select name from wine' > $d/cmd + cat $d/data +} < /n/remote/db/new +.EE +.PP +produces the output: +.PP +.EX +Chardonnay +Jo. Riesling +Fume Blanc +Wh. Burgundy +Gewurztraminer +Cab. Sauvignon +Pinot Noir +Zinfandel +Gamay +.EE +.PP +Here the server has been started on the local machine, listening on port +6700 for network connections. +The braced block and the redirection from +.B /n/remote/db/new +reserve a conversation with the server and ensures that it remains open +for the duration of the execution of the set of commands within the block. +The +.B -A +option to mount is used because this server can not +authenticate a connection. +.SH SOURCE +.B /tools/odbc/odbc.c +.SH SEE ALSO +.IR bind (1), +.IR sys-bind (2), +.IR intro (5), +.IR db (7), +.IR dbsrv (7), +.IR svc (8) diff --git a/static/inferno/man10/panic.10 b/static/inferno/man10/panic.10 new file mode 100644 index 00000000..6de7fe4b --- /dev/null +++ b/static/inferno/man10/panic.10 @@ -0,0 +1,25 @@ +.TH PANIC 10.2 +.SH NAME +panic \- abandon hope +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.B +void panic(char *fmt, ...) +.SH DESCRIPTION +.I Panic +writes a message to the console and +causes the system to give up the ghost. +It enables interrupts, dumps the kernel stack, +and halts the current processor; +if more than one, others will gradually come to a halt. +Depending on configuration settings, the platform-dependent +.I exit +might reboot the system. +The format +.I fmt +and associated arguments are the same as those for +.IR print (10.2). +.I Panic +adds a prefix +.L "panic: " +and a trailing newline. diff --git a/static/inferno/man10/parsecmd.10 b/static/inferno/man10/parsecmd.10 new file mode 100644 index 00000000..a9598773 --- /dev/null +++ b/static/inferno/man10/parsecmd.10 @@ -0,0 +1,68 @@ +.TH PARSECMD 10.2 +.SH NAME +parsecmd \- parse device commands +.SH SYNOPSIS +.ta \w'\fLCmdbuf* 'u +.B +Cmdbuf* parsecmd(char *a, int n) +.SH DESCRIPTION +.I Parsecmd +is an interface to +.I tokenize +(see +.IR getfields (10.2)), +that safely parses a command, with blank-separated fields, as might be +written to a device's +.B ctl +file. +The buffer +.I a +and count +.I n +can be those passed to the driver's +.I write +function. +.I Parsecmd +converts the byte array (which might not be null-terminated) to a null-terminated string, +trimming any trailing new line, +before invoking +.I tokenize +to break the string into arguments, interpreting blank and tab as field separators +when they are not quoted +(in the style of +.IR sh (1)). +It returns a pointer to a dynamically-allocated +.B Cmdbuf +structure, +which holds a copy of the string as +modified by +.IR parsefields , +and the resulting fields; it is defined as follows: +.IP +.EX +.ta 6n +\w'char* 'u +typedef +struct Cmdbuf +{ + char buf[128]; + char *f[16]; + int nf; +} Cmdbuf; +.EE +.PP +The array +.B f +holds the field pointers; +.B nf +gives the number of fields. +.B Cmdbuf +is allocated by +.I smalloc +(see +.IR malloc (10.2)), +and the caller is responsible for freeing it using +.IR free . +.SH SOURCE +.B /os/port/parse.c +.br +.B /emu/port/dev.c diff --git a/static/inferno/man10/plan9.ini.10 b/static/inferno/man10/plan9.ini.10 new file mode 100644 index 00000000..71e8559d --- /dev/null +++ b/static/inferno/man10/plan9.ini.10 @@ -0,0 +1,789 @@ +.TH PLAN9.INI 10.6 +.SH NAME +plan9.ini \- configuration file for PCs +.SH SYNOPSIS +.I none +.SH DESCRIPTION +When booting Inferno on a PC, the Plan 9 bootstrap programs +are used, hence the references to Plan 9 below. +The DOS program +.IR 9load (10.8) +first reads a DOS file +containing configuration information from the boot disk. +This file, +.BR plan9.ini , +looks like a shell script containing lines of the form +.PP +.EX + name=\f2value\fP +.EE +.LP +each of which defines a kernel or device parameter. +.PP +For devices, the generic format of +.I value +is +.PP +.EX + type=TYPE [port=N] [irq=N] [mem=N] [size=N] [dma=N] [ea=N] +.EE +.LP +specifying the controller type, +the base I/O port of the interface, its interrupt +level, the physical starting address of any mapped memory, +the length in bytes of that memory, the DMA channel, +and for Ethernets an override of the physical network address. +Not all elements are relevant to all devices; the relevant values +and their defaults are defined below in the description of each device. +.PP +The file is used by +.B 9load +and the kernel to configure the hardware available. +The information it contains is also passed to the boot +process, and subsequently other programs, +as environment variables +(see also +.B osinit.dis +in +.IR root (3)). +However, values whose names begin with an asterisk +.B * +are used by the kernel and are not converted into environment variables. +.PP +The following sections describe how variables are used. +.SS \fLetherX=value\fP +This defines an Ethernet interface. +.IR X , +a unique monotonically increasing number beginning at 0, +identifies an Ethernet card to be probed at system boot. +Probing stops when a card is found or there is no line for +.BR etherX+1 . +After probing as directed by the +.BI ether X +lines, any remaining ethernet cards that can be automatically +detected are added. +Almost all cards can be automatically detected. +For debugging purposes, automatic probing can +be disabled by specifying the line +.BR *noetherprobe= . +This automatic probing is only done by the kernel, not by +.IR 9load (10.8). +Thus, if you want to load a kernel over the ethernet, you need +to specify an +.B ether0 +line so that +.I 9load +can find the ethernet card, even if the kernel would +have automatically detected it. +.PP +Some cards are software configurable and do not require all options. +Unspecified options default to the factory defaults. +.PP +Known types are +.TP +.B ne2000 +Not software configurable. 16-bit card. +Defaults are +.EX + port=0x300 irq=2 mem=0x04000 size=0x4000 +.EE +The option (no value) +.B nodummyrr +is needed on some (near) clones to turn off a dummy remote read in the driver. +.TP +.B amd79c970 +The AMD PCnet PCI Ethernet Adapter (AM79C970). +(This is the ethernet adapter used by VMware.) +Completely configurable, no options need be given. +.TP +.B wd8003 +Includes WD8013 and SMC Elite and Elite Ultra cards. There are varying degrees +of software configurability. Cards may be in either 8-bit or 16-bit slots. +Defaults are +.EX + port=0x280 irq=3 mem=0xD0000 size=0x2000 +.EE +BUG: On many machines only the 16 bit card works. +.TP +.B elnk3 +The 3COM Etherlink III series of cards including the 5x9, 59x, and 905 and 905B. +Completely configurable, no options need be given. +The media may be specified by setting +.B media= +to the value +.BR 10BaseT , +.BR 10Base2 , +.BR 100BaseTX , +.BR 100BaseFX , +.BR aui , +and +.BR mii . +If you need to force full duplex, because for example the Ethernet switch does not negotiate correctly, +just name the word (no value) +.B fullduplex +or +.BR 100BASE-TXFD . +Similarly, to force 100Mbit operation, specify +.BR force100 . +Port 0x110 is used for the little ISA configuration dance. +.TP +.B 3c589 +The 3COM 3C589 series PCMCIA cards, including the +3C562 and the 589E. +There is no support for the modem on the 3C562. +Completely configurable, no options need be given. +Defaults are +.EX + port=0x240 irq=10 +.EE +The media may be specified as +.B media=10BaseT +or +.BR media=10Base2 . +.TP +.B ec2t +The Linksys Combo PCMCIA EthernetCard (EC2T), +EtherFast 10/100 PCMCIA cards (PCMPC100) and integrated controllers (PCM100), +the Netgear FA410TX 10/100 PCMCIA card +and the Accton EtherPair-PCMCIA (EN2216). +Completely configurable, no options need be given. +Defaults are +.EX + port=0x300 irq=9 +.EE +These cards are NE2000 clones. +Other NE2000 compatible PCMCIA cards may be tried +with the option +.EX + id=string +.EE +where +.B string +is a unique identifier string contained in the attribute +memory of the card (see +.IR pcmcia (8)); +unlike most options in +.BR plan9.ini , +this string is case-sensitive. +The option +.B dummyrr=[01] +can be used to turn off (0) or on (1) a dummy remote read in the driver +in such cases, +depending on how NE2000 compatible they are. +.TP +.B i82557 +Cards using the Intel 8255[789] Fast Ethernet PCI Bus LAN Controller such as the +Intel EtherExpress PRO/100B. +Completely configurable, no options need be given. +If you need to force the media, specify +one of the options (no value) +.BR 10BASE-T , +.BR 10BASE-2 , +.BR 10BASE-5 , +.BR 100BASE-TX , +.BR 10BASE-TFD , +.BR 100BASE-TXFD , +.BR 100BASE-T4 , +.BR 100BASE-FX , +or +.BR 100BASE-FXFD . +.TP +.B 2114x +Cards using the Digital Equipment (now Intel) 2114x PCI Fast Ethernet Adapter Controller, +for example the Netgear FA310. +Completely configurable, no options need be given. +Media can be specified the same was as for the +.BR i82557 . +Some cards using the +.B PNIC +and +.B PNIC2 +near-clone chips may also work. +.\" .TP +.\" .B ga620 +.\" Netgear GA620 and GA620T Gigabit Ethernet cards, +.\" and other cards using the Alteon Acenic chip such as the +.\" Alteon Acenic fiber and copper cards, +.\" the DEC DEGPA-SA and the SGI Acenic. +.\" Completely configurable. +.TP +.B wavelan +Lucent Wavelan (Orinoco) IEEE 802.11b +and compatible PCMCIA cards. +Compatible cards include the Dell TrueMobile 1150 +and the Linksys Instant Wireless Network PC Card. +Port and IRQ defaults are 0x180 and 3 respectively. + +These cards take a number of unique options to aid in +identifying the card correctly on the 802.11b network. +The network may be +.I "ad hoc" +or +.I managed +(i.e. use an access point): +.EX + mode=[adhoc, managed] +.EE +and defaults to +.IR managed . +The 802.11b network to attach to +.RI ( managed +mode) +or identify as +.RI ( "ad hoc" +mode), +is specified by +.EX + essid=string +.EE +and defaults to a null string. +The card station name is given by +.EX + station=string +.EE +and defaults to +.IR "Plan 9 STA" . +The channel to use is given by +.EX + channel=number +.EE +where +.I number +lies in the range 1 to 16 inclusive; +the channel is normally negotiated automatically. + +If the card is capable of encryption, +the following options may be used: +.EX + crypt=[off, on] +.EE +and defaults to +.IR on . +.EX + key\fIN\fP=string +.EE +sets the encryption key +.I n +(where +.I n +is in the range 1 to 4 inclusive) to +.IR string ; +this will also set the transmit key to +.I n +(see below). +.EX + txkey=number +.EE +sets the transmit key to use to be +.I number +in the range 1 to 4 inclusive. +If it is desired to exclude or include unencrypted packets +.EX + clear=[off, on] +.EE +configures reception and defaults to inclusion. + +The defaults are intended to match the common case of +a managed network with encryption and a typical entry would +only require, for example +.EX + essid=left-armpit key2=fishcalledraawaru +.EE +if the port and IRQ defaults are used. +These options may be set after boot by writing to the device's +.I ctl +file using a space as the separator between option and value, e.g. +.EX + echo 'key2 fishcalledraawaru' > /net/ether0/0/ctl +.EE +.TP +.B wavelanpci +PCI ethernet adapters that use the same Wavelan +programming interface. +Currently the only tested cards are those based on the +Intersil Prism 2.5 chipset. +.TP +.B 83815 +National Semiconductor DP83815-based adapters, notably +the Netgear FA311, Netgear FA312, and various SiS built-in +controllers such as the SiS900. +On the SiS controllers, the ethernet address is not detected properly; +specify it with an +.B ea= +attribute. +.\" .TP +.\" .B 83820 +.\" National Semiconductor DP83820-based gigabit ethernet adapters, notably +.\" the D-Link DGE-500T. +.TP +.B rtl8139 +The Realtek 8139. +.TP +.B 82543gc +The Intel RS-82543GC gigabit ethernet controller, +as found on the Intel PRO/1000[FT] server adapter. +The older non-[FT] cards based on the 82542 (LSI L2A1157) +chip are not supported, although support would probably be +easy to add. +.TP +.B smc91cxx +SMC 91cXX chip-based PCMCIA adapters, notably the SMC EtherEZ card. +.TP +.B sink +A +.B /dev/null +for ethernet packets \(em the interface discards sent +packets and never receives any. +This is used to provide a test bed for +some experimental ethernet bridging software. +.SS \fLusbX=type=uhci port=xxx irq=xxx\fP +This specifies the settings for a USB UHCI controller. +Like the ethernet controllers, USB controllers are autodetected +after scanning for the ones listed in +.IR plan9.ini . +Thus, most systems will not need a +.B usbX +line. +Also like the ethernet controllers, USB autoprobing can be +disabled by specifying the line +.BR *nousbprobe= . +.SS \fLscsiX=value\fP +This defines a SCSI interface which cannot be automatically detected +by the kernel. +.PP +Known types are +.TP +.B aha1542 +The Adaptec 154x series of controllers (and clones). +Almost completely configurable, only the +.EX + port=0x300 +.EE +option need be given. +.PP +NCR/Symbios/LSI Logic 53c8xx-based adapters +and Mylex MultiMaster (Buslogic BT-*) adapters are +automatically detected and need no entries. +.PP +By default, the NCR 53c8xx driver searches for up to 32 controllers. +This can be changed by setting the variable +.BR *maxsd53c8xx . +.PP +By default the Mylex driver resets SCSI cards by using +both the hard reset and SCSI bus reset flags in the driver interface. +If a variable +.BR *noscsireset +is defined, the SCSI bus reset flag is omitted. +.SS Uarts +Plan 9 automatically configures COM1 and COM2, if found, +as +.B eia0 +(port 0x3F8, IRQ4) +and +.B eia1 +(port 0x2F8, IRQ3) +respectively. +These devices can be disabled by adding a line: +.EX + eia\fIX\fP=disabled +.EE +This is typically done in order to reuse the IRQ for +another device. +.PP +The system used to support various serial concentrators, +including the TTC 8 serial line card and various models +in the Star Gate Avanstar series of intelligent serial boards. +These are no longer supported; the much simpler +Perle PCI-Fast4, PCI-Fast8, and PCI-Fast16 controllers +have taken their places. +These latter cards are automatically detected +and need no configuration lines. +.PP +The line +.B serial=type=com +can be used to specify settings for a PCMCIA modem. +.SS \fLmouseport=value\fP +This specifies where the mouse is attached. +.I Value +can be +.TP +.B ps2 +the PS2 mouse/keyboard port. The BIOS setup procedure +should be used to configure the machine appropriately. +.TP +.B ps2intellimouse +an Intellimouse on the PS2 port. +.TP +.B 0 +for COM1 +.TP +.B 1 +for COM2 +.SS \fLmodemport=value\fP +Picks the UART line to call out on. +This is used when connecting to a file server over +an async line. +.I Value +is the number of the port. +.SS \fLpccard0=disabled\fP +Disable probing for and automatic configuration of PC card controllers. +.SS \fLpcmciaX=type=XXX irq=value\fP +If the default IRQ for the +PCMCIA +is correct, this entry can be omitted. The value of +.B type +is ignored. +.SS \fLpcmcia0=disabled\fP +Disable probing for and automatic configuration of PCMCIA controllers. +.SS \fLconsole=value params\fP +This is used to specify the console device. +The default +value is +.BR cga ; +a number +.B 0 +or +.B 1 +specifies +.I COM1 +or +.I COM2 +respectively. +A serial console is initially configured with the +.IR eia (3) +configuration string +.B b9600 +.B l8 +.B pn +.BR s1 , +specifying 9600 baud, +8 bit bytes, no parity, and one stop bit. +If +.I params +is given, it will be used to further +configure the uart. +Notice that there is no +.B = +sign in the +.I params +syntax. +For example, +.EX + console=0 b19200 po +.EE +would use COM1 at 19,200 baud +with odd parity. +.SS \fLbootfile=value\fP +This is used to direct the actions of +.IR 9load (10.8) +by naming the device and file from which to load the kernel. +.SS \fLpartition=value\fP +This defines the partition table +.IR 9load (10.8) +will examine to find disk partitioning information. +By default, a partition table in a Plan 9 partition +is consulted; if no such table is found, an old-Plan 9 +partition table on the next-to-last or last sector +of the disk is consulted. +A value of +.B new +consults only the first table, +.B old +only the second. +.SS \fL*maxmem=value\fP +This defines the maximum physical address that the system will scan when sizing memory. +By default the operating system will scan up to 768 megabytes, but setting +.B *maxmem +will limit the scan. +If the system has more than 768 megabytes, you must set +.B *maxmem +for the kernel to find it. +.B *maxmem +must be less than 1.75 gigabytes. +.SS \fL*kernelpercent=value\fP +This defines what percentage of available memory is reserved for the kernel allocation pool. +The remainder is left for user processes. The default +.I value +is +.B 30 +on CPU servers, +.B 60 +on terminals with less than 16MB of memory, +and +.B 40 +on terminals with memories of 16MB or more. +Terminals use more kernel memory because +.IR draw (3) +maintains its graphic images in kernel memory. +This deprecated option is rarely necessary in newer kernels. +.SS \fL*nomce=value\fP +If machine check exceptions are supported by the processor, +then they are enabled by default. +Setting this variable to +.B 1 +causes them to be disabled even when available. +.SS \fL*nomp=\fP +A multiprocessor machine will enable all processors by default. +Setting +.B *nomp +restricts the kernel to starting only one processor and using the +traditional interrupt controller. +.SS \fL*ncpu=value\fP +Setting +.B *ncpu +restricts the kernel to starting at most +.I value +processors. +.SS \fL*pcimaxbno=value\fP +This puts a limit on the maximum bus number probed +on a PCI bus (default 255). +For example, a +.I value +of 1 should suffice on a 'standard' motherboard with an AGP slot. +This, and +.B *pcimaxdno +below are rarely used and only on troublesome or suspect hardware. +.SS \fL*pcimaxdno=value\fP +This puts a limit on the maximum device number probed +on a PCI bus (default 31). +.SS \fL*nopcirouting=\fP +Disable pci routing during boot. May solve interrupt routing +problems on certain machines. +.\" .SS \fL*nobios=\fP +.\" what does this do? something with pci +.SS \fLioexclude=value\fP +Specifies a list of ranges I/O ports to exclude from use by drivers. +Ranges are inclusive on both ends and separated by commas. +For example: +.EX + ioexclude=0x330-0x337,0x430-0x43F +.EE +.SS \fLapm0=\fP +This enables the ``advanced power management'' interface +as described in +.IR apm (3). +....and +.....IR apm (8). +The main feature of the interface is the ability to watch +battery life. +....battery life (see +.....IR stats (8)). +It is not on by default because it causes problems on some laptops. +.SS \fLmonitor=value\fP +.SS \fLvgasize=value\fP +These are used not by the kernel but by system initialisation. +.SS \fL*dpms=value\fP +This is used to specify the screen blanking behavior of the MGA4xx +video driver. +Values are +.BR standby , +.BR suspend , +and +.BR off . +The first two specify differing levels of power saving; +the third turns the monitor off completely. +.SS \fLnvr=value\fP +This is used by a file server kernel to locate a file holding information +to configure the file system. +The file cannot live on a SCSI disk. +The default is +.B fd!0!plan9.nvr +(sic), +unless +.B bootfile +is set, in which case it is +.B plan9.nvr +on the same disk as +.BR bootfile . +The syntax is either +.BI fd! unit ! name +or +.BI hd! unit ! name +where +.I unit +is the numeric unit id. +This variant syntax is a vestige of the file server kernel's origins. +.SS \fLaudioX=value\fP +This defines a sound interface. +.PP +Known types are +.TP +.B sb16 +Sound Blaster 16. +.TP +.B ess1688 +A Sound Blaster clone. +.PP +The DMA channel may be any of 5, 6, or 7. +The defaults are +.EX + port=0x220 irq=7 dma=5 +.EE +.SS \fLfs=a.b.c.d\fP +.SS \fLauth=a.b.c.d\fP +These specify the IP address of the file and authentication server +to use when mounting a network-provided root file system. +They are used only if the addresses cannot be determined via DHCP. +.SH Multiple Configurations +.PP +A +.B plan9.ini +file may contain multiple configurations, +each within a block beginning with a line +.EX + [tag] +.EE +A special block with the tag +.B menu +gives a list of blocks from which the user may +interactively select the contents of +.BR plan9.ini . +There may also be multiple blocks with the tag +.B common +which will be included in all selections; +if any lines appear in +.B plan9.ini +before the first block, +they are treated as a +.B common +block. +.LP +Within the +.B menu +block the following configuration lines are allowed: +.SS \fLmenuitem=tag[, description] +The block identified by +.B tag +will appear in the presented menu. +The menu entry will consist of the +.B tag +unless the optional +.B description +is given. +.SS \fLmenudefault=tag[, timeout] +Identifies a default block to be given in the +menu selection prompt. +If the optional +.B timeout +is given (in seconds), +the default block will be selected if there is no user +input within the timeout period. +.SS \fLmenuconsole=value[, baud] +Selects a serial console upon which to present the menu +as no +.B console +or +.B baud +configuration information will have been processed yet +(the +.B plan9.ini +contents are still to be decided...). +.LP +In response to the menu being printed, +the user is prompted to select a menu item from the list. +If the numeric response is followed by a +.BR p , +the selected configuration is printed and the menu presented +again. +.LP +The line +.EX + menuitem=tag +.EE +is prefixed to the selected configuration as an aid to +user-level initialization scripts. +.SH EXAMPLES +.PP +A representative +.BR plan9.ini : +.IP +.EX +% cat /n/c:/plan9.ini +ether0=type=3C509 +mouseport=ps2 +modemport=1 +serial0=type=generic port=0x3E8 irq=5 +monitor=445x +vgasize=1600x1200x8 +% +.EE +.PP +Minimum CONFIG.SYS and AUTOEXEC.BAT files to use +COM2 as a console: +.IP +.EX +% cat /n/c:/config.sys +SHELL=COMMAND.COM COM2 /P +% cat /n/c:/autoexec.bat +@ECHO OFF +PROMPT $p$g +PATH C:\eDOS;C:\eBIN +mode com2:96,n,8,1,p +SET TEMP=C:\eTMP +% +.EE +.PP +Simple +.B plan9.ini +with multiple configurations: +.IP +.EX +[menu] +menuitem=vga, Plan 9 with VGA +menuitem=novga, Plan 9 no automatic VGA +menudefault=vga + +[vga] +monitor=multisync135 +vgasize=1024x768x8 + +[novga] + +[common] +ether0=type=i82557 +audio0=type=sb16 port=0x220 irq=5 dma=1 +.EE +.PP +With this, the following menu will be presented on boot: +.IP +.EX +Plan 9 Startup Menu: +==================== + 1. Plan 9 with VGA + 2. Plan 9 no automatic VGA +Selection[default==1]: +.EE +.PP +Selecting item 1 generates the following +.B plan9.ini +to be used by the remainder of the bootstrap process: +.IP +.EX +menuitem=vga +monitor=multisync135 +vgasize=1024x768x8 +ether0=type=i82557 +audio0=type=sb16 port=0x220 irq=5 dma=1 +.EE +.PP +and selecting item 2: +.IP +.EX +menuitem=novga +ether0=type=i82557 +audio0=type=sb16 port=0x220 irq=5 dma=1 +.EE +.SH "SEE ALSO" +.IR root (3), +.IR 9load (10.8) +.SH BUGS +Being able to set the console device to other than a +display is marginally useful on file servers; MS-DOS +and the programs which run under it are so tightly bound +to the display that it is necessary to have a display if any +setup or reconfiguration programs need to be run. +Also, the delay before any messages appear at boot time +is disconcerting, as any error messages from the BIOS +are lost. +.PP +This idea is at best an interesting experiment that needs another iteration. diff --git a/static/inferno/man10/print.10 b/static/inferno/man10/print.10 new file mode 100644 index 00000000..aadbbad8 --- /dev/null +++ b/static/inferno/man10/print.10 @@ -0,0 +1,402 @@ +.TH PRINT 10.2 +.SH NAME +print, fprint, sprint, snprint, seprint, smprint, vfprint, vsnprint, vseprint, vsmprint \- print formatted output +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.B +int print(char *format, ...) +.PP +.B +int fprint(int fd, char *format, ...) +.PP +.B +int sprint(char *s, char *format, ...) +.PP +.B +int snprint(char *s, int len, char *format, ...) +.PP +.B +char* seprint(char *s, char *e, char *format, ...) +.PP +.B +char* smprint(char *format, ...) +.PP +.B +int vfprint(int fd, char *format, va_list v) +.PP +.B +int vsnprint(char *s, int len, char *format, va_list v) +.PP +.B +char* vseprint(char *s, char *e, char *format, va_list v) +.PP +.B +char* vsmprint(char *format, va_list v) +.SH DESCRIPTION +.I Print +writes text to the standard output. +.I Fprint +writes to the named output +file descriptor; +a buffered form +is described in +.IR bio (2). +.I Sprint +places text +followed by the NUL character +.RB ( \e0 ) +in consecutive bytes starting at +.IR s ; +it is the user's responsibility to ensure that +enough storage is available. +Each function returns the number of bytes +transmitted (not including the NUL +in the case of +.IR sprint ), +or +a negative value if an output error was encountered. +.PP +.I Snprint +is like +.IR sprint , +but will not place more than +.I len +bytes in +.IR s . +Its result is always NUL-terminated and holds the maximal +number of complete UTF-8 characters that can fit. +.I Seprint +is like +.IR snprint , +except that the end is indicated by a pointer +.I e +rather than a count and the return value points to the terminating NUL of the +resulting string. +.I Smprint +is like +.IR sprint , +except that it prints into and returns a string of the required length, which is +allocated by +.IR malloc (10.2). +.PP +Finally, the routines +.IR vfprint , +.IR vsnprint , +.I vseprint +and +.I vsmprint +are like their +.BR v-less +relatives except they take as arguments a +.B va_list +parameter, so they can be called within a variadic function. +The Example section shows a representative usage. +.PP +Each of these functions +converts, formats, and prints its +trailing arguments +under control of a +.IR format +string. +The +format +contains two types of objects: +plain characters, which are simply copied to the +output stream, +and conversion specifications, +each of which results in fetching of +zero or more +arguments. +The results are undefined if there are arguments of the +wrong type or too few +arguments for the format. +If the format is exhausted while +arguments remain, the excess +is ignored. +.PP +Each conversion specification has the following format: +.IP +.B "% [flags] verb +.PP +The verb is a single character and each flag is a single character or a +(decimal) numeric string. +Up to two numeric strings may be used; +the first is called +.IR width , +the second +.IR precision . +A period can be used to separate them, and if the period is +present then +.I width +and +.I precision +are taken to be zero if missing, otherwise they are `omitted'. +Either or both of the numbers may be replaced with the character +.BR * , +meaning that the actual number will be obtained from the argument list +as an integer. +The flags and numbers are arguments to +the +.I verb +described below. +.PP +The numeric verbs +.BR d , +.BR o , +.BR b , +.BR x , +and +.B X +format their arguments in decimal, +octal, binary, hexadecimal, and upper case hexadecimal. +Each interprets the flags +.BR 0 , +.BR h , +.BR hh , +.BR l , +.BR u , +.BR + , +.BR - , +.BR , , +and +.B # +to mean pad with zeros, +short, byte, long, unsigned, always print a sign, left justified, commas every three digits, +and alternate format. +Also, a space character in the flag +position is like +.BR + , +but prints a space instead of a plus sign for non-negative values. +If neither +short nor long is specified, +then the argument is an +.BR int . +If unsigned is specified, +then the argument is interpreted as a +positive number and no sign is output. +If two +.B l +flags are given, +then the argument is interpreted as a +.B vlong +(usually an 8-byte, sometimes a 4-byte integer). +If +.I precision +is not omitted, the number is padded on the left with zeros +until at least +.I precision +digits appear. +Then, if alternate format is specified, +for +.B o +conversion, the number is preceded by a +.B 0 +if it doesn't already begin with one; +for +.B x +conversion, the number is preceded by +.BR 0x ; +for +.B X +conversion, the number is preceded by +.BR 0X . +Finally, if +.I width +is not omitted, the number is padded on the left (or right, if +left justification is specified) with enough blanks to +make the field at least +.I width +characters long. +.PP +The floating point verbs +.BR f , +.BR e , +.BR E , +.BR g , +and +.B G +take a +.B double +argument. +Each interprets the flags +.BR + , +.BR - , +and +.B # +to mean +always print a sign, +left justified, +and +alternate format. +.I Width +is the minimum field width and, +if the converted value takes up less than +.I width +characters, it is padded on the left (or right, if `left justified') +with spaces. +.I Precision +is the number of digits that are converted after the decimal place for +.BR e , +.BR E , +and +.B f +conversions, +and +.I precision +is the maximum number of significant digits for +.B g +and +.B G +conversions. +The +.B f +verb produces output of the form +.RB [ - ] digits [ .digits\fR]. +.B E +conversion appends an exponent +.BR E [ - ] digits , +and +.B e +conversion appends an exponent +.BR e [ - ] digits . +The +.B g +verb will output the argument in either +.B e +or +.B f +with the goal of producing the smallest output. +Also, trailing zeros are omitted from the fraction part of +the output, and a trailing decimal point appears only if it is followed +by a digit. +The +.B G +verb is similar, but uses +.B E +format instead of +.BR e . +When alternate format is specified, the result will always contain a decimal point, +and for +.B g +and +.B G +conversions, trailing zeros are not removed. +.PP +The +.B s +verb copies a string +(pointer to +.BR char ) +to the output. +The number of characters copied +.RI ( n ) +is the minimum +of the size of the string and +.IR precision . +These +.I n +characters are justified within a field of +.I width +characters as described above. +The +.B S +verb is similar, but it interprets its pointer as an array +of runes (see +.IR utf (6)); +the runes are converted to +.SM UTF +before output. +.PP +The +.B c +verb copies a single +.B char +(promoted to +.BR int ) +justified within a field of +.I width +characters as described above. +The +.B C +verb is similar, but works on runes. +.PP +The +.B p +verb formats a pointer value. +At the moment, it is a synonym for +.BR ux , +but that will change once pointers and integers are different sizes. +.PP +The +.B r +verb takes no arguments; it copies the error string returned by a call to +the emulated environment's +`system calls'. +It must not be used within the kernels. +....PP +...Custom verbs may be installed using +....IR fmtinstall (2). +.SH EXAMPLE +This function prints an error message with a variable +number of arguments and then quits. +.IP +.EX +.ta 6n +6n +6n +void fatal(char *msg, ...) +{ + char buf[1024], *out; + va_list arg; + + out = vseprint(buf, buf+sizeof(buf), "Fatal error: "); + va_start(arg, msg); + out = vseprint(out, buf+sizeof(buf), msg, arg); + va_end(arg); + write(2, buf, out-buf); + exits("fatal error"); +} +.EE +.SH SOURCE +.B /lib9/fmt* +.br +.B /libkern/fmt* +.SH SEE ALSO +.IR utf (6) +.SH DIAGNOSTICS +Routines that write to a file descriptor or call +.IR malloc +set +.IR errstr . +.SH BUGS +The formatting is close to that specified for ANSI +.IR fprintf (2); +the main difference is that +.B b +is not in ANSI and +.B u +is a flag here instead of a verb. +Also, and distinctly not a bug, +.I print +and friends generate +.SM UTF +rather than +.SM ASCII. +.PP +There is no +.BR runeprint , +.BR runefprint , +etc. because runes are byte-order dependent and should not be written directly to a file; use the +UTF output of +.I print +or +.I fprint +instead. +Also, +.I sprint +is deprecated for safety reasons; use +.IR snprint , +.IR seprint , +or +.I smprint +instead. +Safety also precludes the existence of +.IR runesprint . diff --git a/static/inferno/man10/qio.10 b/static/inferno/man10/qio.10 new file mode 100644 index 00000000..c0a88869 --- /dev/null +++ b/static/inferno/man10/qio.10 @@ -0,0 +1,482 @@ +.TH QIO 10.2 +.SH NAME +qio: qget, qdiscard, qconsume, qpass, qproduce, qcopy, qopen, qbread, qread, qbwrite, qwrite, qiwrite, qfree, qclose, qhangup, qreopen, qlen, qwindow, qcanread, qsetlimit, qnoblock, qflush, qfull \- queued I/O for devices +.SH SYNOPSIS +.ta \w'\fLQueue* 'u +.B +Queue* qopen(int limit,int msg, void (*kick)(void*),void *arg) +.PP +.B +void qhangup(Queue *q, char *reason) +.PP +.B +void qclose(Queue *q) +.PP +.B +void qreopen(Queue *q) +.PP +.B +void qfree(Queue *q) +.PP +.B +long qbwrite(Queue *q, Block *b) +.PP +.B +long qwrite(Queue *q, void *buf, int len) +.PP +.B +int qpass(Queue *q, Block *b) +.PP +.B +int qpassnolim(Queue *q, Block *b) +.PP +.B +int qproduce(Queue *q, void *buf, int len) +.PP +.B +int qiwrite(Queue *q, void *buf, int len) +.PP +.B +Block* qbread(Queue *q, int len) +.PP +.B +long qread(Queue *q, void *buf, int len) +.PP +.B +Block* qcopy(Queue *q, int len, ulong offset) +.PP +.B +Block* qget(Queue *q) +.PP +.B +int qconsume(Queue *q, void *buf, int len) +.PP +.B +int qdiscard(Queue *q, int len) +.PP +.B +void qflush(Queue *q) +.PP +.B +int qlen(Queue *q) +.PP +.B +int qwindow(Queue *q) +.PP +.B +int qcanread(Queue *q) +.PP +.B +void qsetlimit(Queue *q, int limit) +.PP +.B +void qnoblock(Queue *q, int nonblock) +.PP +.B +int qfull(Queue *q); +.SH DESCRIPTION +This suite of functions provides serial data buffering for device drivers. +Data is stored in a +.B Queue +structure as a sequence of variable-sized +.BR Blocks ; +see +.IR allocb (10.2). +.PP +.I Qopen +initialises and returns a pointer to a new +.BR Queue , +configuring it according to the following parameters: +.TF limit +.PD +.TP +.I limit +Set the queue limit (high water mark) in bytes. +.TP +.I msg +Set message mode if non-zero; otherwise, stream mode (discussed below). +.TP +.I kick +Optional flow-control function called by +.I qbread +to restart writers, and by +.I qbwrite +(also +.IR qiwrite ) +to restart readers. +.TP +.I arg +Argument to pass to +.I kick +.PP +.I Qhangup +marks +.I q +as `hung up' +for the given +.IR reason +.RB ( Ehungup +by default). +Subsequent attempts to write to the queue raise an +.IR error (10.2). +.I Qhangup +does not flush the queue: subsequent read requests are +handled normally until the queue empties. +.I Qread +and the other functions then return their conventional values +for a hungup stream: 0, -1 or a null pointer, depending on the function. +After a few such attempts by any process, an +.IR error (10.2) +is raised (typically +.BR Ehungup ) +on each subsequent read. +.PP +If queued data is left unread, and not flushed by +.I qflush +or +.IR qclose , +the data will again be readable following a subsequent +.IR qreopen . +.PP +.I Qclose +also marks a given +.I q +as `hung up', +but removes and frees any queued data Blocks. +.I Qclose +ignores calls when +.I q +is null. +.PP +.I Qreopen +makes a closed or hung up queue available for use again. +The queue's data limit is reset to the +.I limit +value given when the queue was first created by +.IR qopen , +cancelling the effect of any previous call to +.IR qsetlimit . +.PP +.I Qfree +closes +.I q +with +.I qclose +and frees it. +The caller must ensure that no references remain; +these functions do not keep a reference count. +.SS "Flow control" +The queue I/O routines provide a flow control mechanism to coordinate producers and consumers. +Each queue has a limit on the number of bytes queued, its `high water mark', +initially set when the queue is created, but adjustable by +.IR qsetlimit , +below. +The low water mark is not set explicitly: +it is always half the current queue limit. +When the high water mark is exceeded, writes normally block until a reader drains the +queue below its low water mark; the writer is then allowed to proceed. +Conversely, readers normally block when the queue is empty, until a writer +arrives with data, or the queue is closed. +.PP +A queue can be given a +.I kick +function when the queue is created by +.IR qopen . +The function is invoked by +.IR qread +and +.IR qbread , +to prod an output routine when the queue falls below the low-water mark, and by +.IR qwrite , +.IR qbwrite +and +.IR qiwrite , +to notify a reader that a queue is no longer empty. +Because +.I kick +is called from the reading (or writing) process, or an interrupt handler, it +must not block. +.PP +Interrupt handlers must not +.IR sleep (10.2), +and are therefore restricted to using only the non-blocking functions described below. +.SS "Stream mode and message mode" +In stream mode, +no read will return more than one +block +of data, but +a read can split a block that contains more data than requested, leaving the remainder +in a new block at the front of the Queue. +Writes of more than the maximum +.B Block +size (currently 128k bytes) +are split into as many Blocks as required, each written separately to the queue, +in order, but with possible flow-control between them. +The queue is locked meanwhile, however, so that data from other writers is not intermingled. +.PP +In message mode, by contrast, a read will return at most +one block's worth of data, but the remainder of a partially-read block will be discarded, +not returned to the queue. +If a write count exceeds the maximum +.B Block +size, the excess data is discarded: +at most a single block can be queued. +.PP +The mode of the queue should be taken into account in the descriptions below +of the following functions: +.IR qwrite , +.IR qiwrite , +.IR qbread +and +.IR qconsume . +No other functions are aware of the distinction. +.SS "Write operations (flow controlled)" +.I Qwrite +copies +.I len +bytes of data from +.I buf +into one or more +.B Blocks +which it places on the +.IR q . +.I Qwrite +always returns +.IR len . +It can implement message mode. +.PP +.I Qbwrite +places the single Block +.I b +on the tail of +.IR q , +waking any sleeping reader. +If the queue is full, the +writing process blocks until a reader +has reduced the queued data to +the low-water mark; +if the queue is non-blocking +(see +.I qnoblock +below), +the data is discarded without notice. +.I Qbwrite +normally returns +.IR len , +but raises an +.IR error (10.2) +if the queue is closed (see +.I qhangup +and +.IR qclose ). +The block +.I b +is always freed. +Note that +.I b +can be empty (zero-length), to punctuate the data in a queue. +.I Qbwrite +cannot handle a list of Blocks; +.I qpass +must be used instead. +.SS Non-blocking writes +.PP +.I Qproduce +returns -1immediately if +.I q +is full. +Otherwise, it queues +.I len +bytes of data from +.I buf +in a single +.B Block +on +.I q +and returns the number of bytes written. +.PP +.I Qpass +attempts to place the list of Blocks headed by +.I b +on +.IR q , +returning the number of bytes written if successful. +If +.I q +was full, it +frees the Block list +.I b +and returns -1. +.PP +.I Qpassnolim +puts the Block list +.I b +on +.I q +regardless of flow control; it returns the number of bytes in the list +.IR b . +.PP +.I Qiwrite +is a variant of +.I qwrite +used exclusively by the kernel print function, +to allow printing by interrupt handlers; +.I qiwrite +could be used with care by other routines, but +.IR qproduce +is preferable. +.I Qiwrite +writes the +.I len +bytes of data at +.I buf +into the +.I q +without regard to flow control; +the writer never blocks. +The queue is assumed to be open. +.I Qiwrite +always returns +.IR len . +It can implement message mode. +.SS "Read operations (flow controlled)" +.I Qbread +blocks until data arrives on +.IR q , +then +returns the first +.BR Block ; +it limits the data returned +to +.I len +bytes (in the manner depending on the mode of +.IR q ). +It returns a null pointer if the queue has hung up. +.PP +.I Qread +reads a Block of up to +.I len +bytes from +.I q +using +.IR qbread , +and copies the data in the Block into +.IR buf , +then frees the Block and returns +the number of bytes read. +.I Qread +returns 0 on end of file or error (hangup). +It can implement message mode. +.PP +.I Qcopy +returns a Block with a copy of data from the queue (the data remains on the queue). +The copy begins +.I offset +bytes into the queue's data and proceeds until +.I len +bytes have been copied or no more data remains. +The Block's read and write pointers delimit the data copied into it. +.I Qcopy +can be used by a reliable transport protocol to copy a packet for transmission, +leaving the data queued for possible retransmission, if unacknowledged. +.SS Non-blocking reads +.PP +.I Qconsume +returns -1 immediately if +.I q +is empty. +Otherwise, it +copies up to +.I len +bytes from the first +.B Block +on the queue into +.IR buf , +returning the number of bytes copied. +It can implement message mode. +.PP +.I Qget +returns a null pointer immediately if +.I q +is empty or closed. +Otherwise, it +returns the first +.B Block +on the queue. +.SS "Discard and flush" +.I Qdiscard +removes the first +.I len +data bytes from +.IR q ; +it returns the number of bytes actually discarded, in case +the queue is shorter than +.IR len . +If the queue drains below the low-water mark, +.I qdiscard +wakes any sleeping writers. +Since it does not block, +.I qdiscard +can safely be called from interrupt handlers. +It is useful in transport protocol drivers to remove data from the queue +once acknowledged. +.PP +.I Qflush +discards all data waiting on +.IR q , +waking any waiting writer. +.SS "Queue status" +The following functions return a Queue's status. +Note that between a call to one of these functions and another operation, +the state can change if a driver allows concurrent access by +either another process or an interrupt handler. +.PP +.I Qlen +returns the number of bytes queued on +.IR q . +.PP +.I Qwindow +returns the number of bytes that can be written before reaching the queue's high-water mark. +A return of 0 means that a write operation will certainly block; +a non-zero return gives no guarantees (see +.IR qfull , +below). +.PP +.I Qcanread +returns 1 if any data queued is queued. A subsequent read operation will not block. +.PP +.I Qfull +returns non-zero if +.I q +is flow-controlled and a write would block or a non-blocking write would return an error. +(Note that the implementation allows +.I qwindow +to return non-zero yet +.I qfull +to return true.) +.SS "Queue control" +.I Qsetlimit +sets the high water mark for the queue to +.IR limit . +Note that +.I qopen +saves the initial queue limit. +If the queue is closed and reopened (by +.IR qreopen ) +that initial limit is restored. +.PP +.I Qnoblock +sets or resets non-blocking mode. +If +.I nonblock +is non-zero, +the queue becomes non-blocking, and +data written to a queue beyond its high water mark is discarded +by calls that would otherwise block. +.SH SOURCE +.B /os/port/qio.c +.br +.B /emu/port/qio.c +.SH SEE ALSO +.IR allocb (10.2), +.IR ref (10.2) diff --git a/static/inferno/man10/qlock.10 b/static/inferno/man10/qlock.10 new file mode 100644 index 00000000..155b4dd9 --- /dev/null +++ b/static/inferno/man10/qlock.10 @@ -0,0 +1,106 @@ +.TH QLOCK 10.2 +.SH NAME +qlock, qunlock, canqlock, rlock, runlock, wlock, wunlock \- serial synchronisation +.SH SYNOPSIS +.ta \w'\fLvoid 'u +.B +void qlock(QLock *l) +.PP +.B +void qunlock(QLock *l) +.PP +.B +int canqlock(QLock *l) +.PP +.B +void rlock(RWlock *l) +.PP +.B +void runlock(RWlock *l) +.PP +.B +int canrlock(RWlock *l) +.PP +.B +void wlock(RWlock *l) +.PP +.B +void wunlock(RWlock *l) +.SH DESCRIPTION +The primitive locking functions described in +.IR lock (10.2) +guarantee mutual exclusion, but they implement spin locks, +and should not be used if the process might +.IR sleep (10.2) +within a critical section. +The following functions serialise access to a resource by forming an orderly +queue of processes. +.PP +Each resource to be controlled is given an associated +.B QLock +structure; it is usually most straightforward to put the +.B QLock +in the structure that represents the resource. +It must be initialised to zero before use +(as guaranteed for global variables and for structures allocated by +.IR malloc ). +.PP +On return from +.IR qlock , +the process has acquired the lock +.IR l , +and can assume exclusive access to the associated resource. +If the lock is not immediately available, the requesting process is placed on a +FIFO queue of processes that have requested the lock. +Processes on this list are blocked in the +.L Queueing +state. +.PP +.I Qunlock +unlocks +.I l +and schedules the first process queued for it (if any). +.PP +.I Canqlock +is a non-blocking form of +.IR qlock . +It tries to obtain the lock +.I l +and returns true if successful, and 0 otherwise; +it always returns immediately. +.PP +.B RWlock +is a form of lock for resources that have distinct readers and writers. +It allows concurrent readers but gives each writer exclusive access. +A caller announces its read or write intentions by choice of lock (and unlock) function; +the system assumes the caller will not modify a structure accessed under read lock. +.PP +.I Rlock +acquires +.I l +for reading. +The holder can read but agrees not to modify the resource. +There may be several concurrent readers. +.I Canrlock +is non-blocking: it returns non-zero if it successfully acquired the lock immediately, +and 0 if the resource was unavailable. +.PP +.I Runlock +returns a read lock; +the last reader out enables the first writer waiting (if any). +.PP +.I Wlock +acquires a write lock. +The holder of such a lock may assume exclusive access to the resource, +and is allowed to modify it. +.PP +.I Wunlock +returns a write lock. +The next pending process, whether reader or writer, is scheduled. +.SH SOURCE +.B /os/port/qlock.c +.br +.B /os/emu/port/lock.c +.SH SEE ALSO +.IR lock (10.2), +.IR splhi (10.2) diff --git a/static/inferno/man10/readnum.10 b/static/inferno/man10/readnum.10 new file mode 100644 index 00000000..64103cac --- /dev/null +++ b/static/inferno/man10/readnum.10 @@ -0,0 +1,60 @@ +.TH READNUM 10.2 +.SH NAME +readnum, readstr \- return values from read from device +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.B +int readstr(ulong off, char *buf, ulong n, char *str) +.PP +.B +int readnum(ulong off, char *buf, ulong n, ulong val, int size) +.SH DESCRIPTION +.I Readstr +and +.I readnum +simplify the return of strings and numbers from device +.I read +routines, +because they deal with any buffering and boundary cases. +Several parameters to the read call are often handed on directly +to these functions: +the file offset, as +.IR off ; +the address of the user's buffer, as +.IR buf ; +and the number of bytes requested, as +.IR n . +Both functions return the number of bytes they have stored in +.IR buf , +and which can often be returned directly from the device read routine. +.PP +.I Readstr +satisfies a read by copying data into +.I buf +from the NUL-terminated string in +.IR str . +The data transferred is selected and limited by +.IR off , +.I n +and the length of +.IR str . +.PP +.I Readnum +converts the unsigned integer +.I val +to a decimal representation in +.IR buf . +The value is right-justified in a field of +.IR size "-1" +places and is followed by a blank. +.I Size +can be the global constant +.L NUMSIZE +for 32-bit integers; +the largest +.I size +allowed is 64 bytes. +.SH SOURCE +.B /os/port/devcons.c +.br +.B /emu/port/devcon.c diff --git a/static/inferno/man10/ref.10 b/static/inferno/man10/ref.10 new file mode 100644 index 00000000..9a363f8c --- /dev/null +++ b/static/inferno/man10/ref.10 @@ -0,0 +1,61 @@ +.TH REF 10.2 +.SH NAME +Ref, incref, decref \- reference counts +.SH SYNOPSIS +.ta \w'\fLchar* 'u +.PP +.B +int incref(Ref *r) +.PP +.B +int decref(Ref *r) +.SH DESCRIPTION +A +.B Ref +structure holds a reference count for a data structure: +.IP +.EX +typedef struct +struct Ref +{ + Lock; + long ref; +} Ref; +.EE +.PP +The reference count proper is found in +.BR ref ; +the +.B Lock +prevents concurrent updates +(see +.IR lock (10.2)). +.PP +.I Incref +atomically increments the reference count +.IR r , +and returns the new count. +.PP +.I Decref +atomically decrements the reference count +.IR r , +and returns the new count. +.SH EXAMPLES +Release a structure containing a +.B Ref +on last use. +.IP +.EX +if(decref(s) == 0) + free(s); +.EE +.SH DIAGNOSTICS +.I Decref +will +.IR panic (10.2) +if the count goes negative, +revealing a reference counting bug. +.SH SOURCE +.B /os/port/chan.c +.br +.B /emu/port/chan.c diff --git a/static/inferno/man10/rune.10 b/static/inferno/man10/rune.10 new file mode 100644 index 00000000..62574979 --- /dev/null +++ b/static/inferno/man10/rune.10 @@ -0,0 +1,183 @@ +.TH RUNE 10.2 +.SH NAME +runetochar, chartorune, runelen, runenlen, fullrune, utfecpy, utflen, utfnlen, utfrune, utfrrune, utfutf \- rune/UTF conversion +.SH SYNOPSIS +.ta \w'\fLchar*xx'u +.PP +.B +int runetochar(char *s, Rune *r) +.PP +.B +int chartorune(Rune *r, char *s) +.PP +.B +int runelen(long r) +.PP +.B +int runenlen(Rune *r, int n) +.PP +.B +int fullrune(char *s, int n) +.PP +.B +char* utfecpy(char *s1, char *es1, char *s2) +.PP +.B +int utflen(char *s) +.PP +.B +int utfnlen(char *s, long n) +.PP +char* utfrune(char *s, long c) +.PP +.B +char* utfrrune(char *s, long c) +.PP +.B +char* utfutf(char *s1, char *s2) +.SH DESCRIPTION +These routines convert to and from a +.SM UTF +byte stream and runes. +.PP +.I Runetochar +copies one rune at +.I r +to at most +.B UTFmax +bytes starting at +.I s +and returns the number of bytes copied. +.BR UTFmax , +defined as +.B 4 +in +.BR , +is the maximum number of bytes required to represent a rune. +.PP +.I Chartorune +copies at most +.B UTFmax +bytes starting at +.I s +to one rune at +.I r +and returns the number of bytes copied. +If the input is not exactly in +.SM UTF +format, +.I chartorune +will convert to +.B Runeerror +(0xFFFD) and return 1. +.PP +.I Runelen +returns the number of bytes +required to convert +.I r +into +.SM UTF. +.PP +.I Runenlen +returns the number of bytes +required to convert the +.I n +runes pointed to by +.I r +into +.SM UTF. +.PP +.I Fullrune +returns 1 if the string +.I s +of length +.I n +is long enough to be decoded by +.I chartorune +and 0 otherwise. +This does not guarantee that the string +contains a legal +.SM UTF +encoding. +This routine is used by programs that +obtain input a byte at +a time and need to know when a full rune +has arrived. +.PP +The following routines are analogous to the +corresponding string routines with +.B utf +substituted for +.B str +and +.B rune +substituted for +.BR chr . +.PP +.I Utflen +returns the number of runes that +are represented by the +.SM UTF +string +.IR s . +.PP +.I Utfnlen +returns the number of complete runes that +are represented by the first +.I n +bytes of +.SM UTF +string +.IR s . +If the last few bytes of the string contain an incompletely coded rune, +.I utfnlen +will not count them; in this way, it differs from +.IR utflen , +which includes every byte of the string. +.PP +.I Utfrune +.RI ( utfrrune ) +returns a pointer to the first (last) +occurrence of rune +.I c +in the +.SM UTF +string +.IR s , +or 0 if +.I c +does not occur in the string. +The NUL byte terminating a string is considered to +be part of the string +.IR s . +.PP +.I Utfutf +returns a pointer to the first occurrence of +the +.SM UTF +string +.I s2 +as a +.SM UTF +substring of +.IR s1 , +or 0 if there is none. +If +.I s2 +is the null string, +.I utfutf +returns +.IR s1 . +.SH SOURCE +.B /libkern/rune.c +.br +.B /libkern/runestrlen.c +.br +.B /libkern/utflen.c +.br +.B /libkern/utfrrune.c +.br +.B /libkern/utfrune.c +.SH SEE ALSO +.IR convcs (2), +.IR utf (6) diff --git a/static/inferno/man10/seconds.10 b/static/inferno/man10/seconds.10 new file mode 100644 index 00000000..aeec3268 --- /dev/null +++ b/static/inferno/man10/seconds.10 @@ -0,0 +1,64 @@ +.TH SECONDS 10.2 +.SH NAME +seconds, ticks, HZ, MS2HZ, MS2TK, TK2MS, TK2SEC \- kernel times and time conversions +.SH SYNOPSIS +.ta \w'\fL#define 'u +.B +long seconds(void) +.PP +.B +ulong ticks(void) +.PP +.EX +#define HZ ... +#define MS2HZ(t) ... +#define TK2SEC(t) ... +#define TK2MS(t) ... +#define MS2TK(m) ... +.EE +.SH DESCRIPTION +.I Seconds +returns the system's idea of the current time as the number of seconds +since the start of the epoch +(00:00:00 GMT, January 1, 1970). +.PP +.I Ticks +returns the number of system-dependent clock ticks since system boot. +.PP +The system clock frequency is platform-dependent. +Several symbolic constants and macro functions are defined by +the file +.B mem.h +to convert between different time units: +.TF TK2SEC(t) +.PD +.TP +.B HZ +The number of clock ticks per second. +.TP +.B MS2HZ +Milliseconds per clock tick. +.TP +.BI TK2SEC( t ) +Convert +.I t +clock ticks to seconds and return the result (truncating not rounding). +.TP +.BI TK2MS( t ) +Convert +.I t +clock ticks to milliseconds and return the result. +.TP +.BI MS2TK( m ) +Convert +.I m +milliseconds to clock ticks and return the result (truncating). +.PP +The functions are often used to calculate delays for timing functions, +for instance: +.IP +.EX +if(atactlrwait(dp->cp, DHmagic, 0, MS2TK(100))){ + ... +} +.EE diff --git a/static/inferno/man10/sleep.10 b/static/inferno/man10/sleep.10 new file mode 100644 index 00000000..d823d99a --- /dev/null +++ b/static/inferno/man10/sleep.10 @@ -0,0 +1,125 @@ +.TH SLEEP 10.2 +.SH NAME +sleep, wakeup, tsleep, return0 \- process synchronisation +.SH SYNOPSIS +.ta \w'\fLvoid 'u +.B +void sleep(Rendez *r, int (*f)(void*), void *arg) +.PP +.B +void wakeup(Rendez *r) +.PP +.B +void tsleep(Rendez *r, int (*f)(void*), void *arg, int ms) +.PP +.B +int return0(void *arg) +.PP +.SH DESCRIPTION +A process running in the kernel can use these functions to +synchronise with an interrupt handler or another kernel process. +In particular, they are used by device drivers to wait for an event to be signalled on +receipt of an interrupt. +(In practice, they are most often used indirectly, through +.IR qio (10.2) +for instance.) +.PP +The caller of +.I sleep +and a caller of +.I wakeup +share a +.B Rendez +structure, to provide a rendezvous point between them +to synchronise on an event. +.I Sleep +uses a condition function +.I f +that returns true if the event has occurred. +.PP +.I Sleep +evaluates +.IB f ( arg ). +If true, the event has happened and +.I sleep +returns immediately. +Otherwise, +.I sleep +blocks on the event variable +.IR r , +awaiting +.IR wakeup . +.PP +.I Wakeup +is called by either a process or an interrupt handler to wake any process +sleeping at +.IR r , +signifying that the corresponding condition is true (the event has occurred). +It has no effect if there is no sleeping process. +.PP +.I Tsleep +is similar to +.IR sleep , +except that if the condition +.IB f ( arg ) +is false and the caller does sleep, +and nothing else wakes it within +.I ms +millliseconds, +the system will wake it. +.IR Tsleep 's +caller must check its environment to decide whether timeout or the event +occurred. +The timing provided by +.I tsleep +is imprecise, but adequate in practice for the normal use of protecting against +lost interrupts and otherwise unresponsive devices or software. +.PP +.I Return0 +ignores its arguments and returns zero. It is commonly used as +the predicate +.I f +in a call to +.I tsleep +to obtain a time delay, using a +.B Rendez +variable +.B sleep +in the +.B Proc +structure, for example: +.IP +.B tsleep(&up->sleep, return0, nil, 10); +.PP +Both +.I sleep +and +.I tsleep +can be interrupted by +.IR swiproc +(see +.IR kproc (10.2)), +causing a non-local goto through a call to +.IR error (10.2). +.SH DIAGNOSTICS +There can be at most one process waiting on a +.BR Rendez , +and if two processes collide, the system will +.IR panic (10.2) +.RB (`` "double sleep" ''). +Access to a +.B Rendez +must therefore be serialised by some other mechanism, usually +.IR qlock (10.2). +.SH SOURCE +.B /os/port/proc.c +.br +.B /emu/port/proc.c +.SH SEE ALSO +.IR lock (10.2), +.IR qlock (10.2), +.IR delay (10.2) +.br +``Process Sleep and Wakeup on a Shared-memory Multiprocessor'', +in +.I "Plan 9 Programmer's Manual: Volume 2". diff --git a/static/inferno/man10/splhi.10 b/static/inferno/man10/splhi.10 new file mode 100644 index 00000000..9ac9cb3f --- /dev/null +++ b/static/inferno/man10/splhi.10 @@ -0,0 +1,55 @@ +.TH SPLHI 10.2 +.SH NAME +splhi, spllo, splx, islo \- enable and disable interrupts +.SH SYNOPSIS +.ta \w'\fLvoid 'u +.B +int spllo(void) +.PP +.B +int splhi(void) +.PP +.B +void splx(int x) +.PP +.B +int islo(void) +.SH DESCRIPTION +These primitives enable and disable maskable interrupts on the current +processor. +Generally, device drivers should use +.I ilock +(see +.IR lock (10.2)), +.IR sleep (10.2), +or the functions in +.IR qio (10.2) +to control interaction between processes and interrupt handlers. +Those routines (but not these) provide correct synchronisation on multiprocessors. +.PP +.I Spllo +enables interrupts and returns a flag representing the previous interrupt enable state. +It must not normally be called from interrupt level. +.PP +.I Splhi +disables all maskable interrupts and returns the previous interrupt enable state. +The period during which interrupts are disabled had best be short, +or real-time applications will suffer. +.PP +.I Splx +restores the interrupt enable state +state to +.IR x , +which must be a value returned +by a previous call to +.I splhi +or +.IR spllo . +.PP +.I Islo +returns true (non-zero) if interrupts are currently enabled, and 0 otherwise. +.SH SEE ALSO +.IR lock (10.2), +.IR qio (10.2), +.IR sleep (10.2), +.IR intrenable (10.2) diff --git a/static/inferno/man10/srclist.10 b/static/inferno/man10/srclist.10 new file mode 100644 index 00000000..199711b0 --- /dev/null +++ b/static/inferno/man10/srclist.10 @@ -0,0 +1,41 @@ +.TH SRCLIST 10.1 +.SH NAME +srclist \- list source files used to build an executable +.SH SYNOPSIS +.B srclist +[ +.B -ce +] [ +.BI -r " rootdir" +\&... +] +.I executable +.SH DESCRIPTION +.I Srclist +prints on standard output, one per line, the names of source files used to build +the given +.IR executable , +which should be +in +.IR a.out (10.6) +format. +.PP +By default, all source file names are listed. +The +.B -c +option restricts the output to names ending +.RB ` .c '. +The +.B -e +option restricts the output to file names that currently exist. +Each +.B -r +option adds a new root directory +.I rootdir +to an internal list. +Only the names of source files that appear below one of the root directories +will be printed. +.SH SOURCE +.B /utils/srclist +.SH SEE ALSO +.IR inm (10.1) diff --git a/static/inferno/man10/strcat.10 b/static/inferno/man10/strcat.10 new file mode 100644 index 00000000..6a1f9fd8 --- /dev/null +++ b/static/inferno/man10/strcat.10 @@ -0,0 +1,170 @@ +.TH STRCAT 10.2 +.SH NAME +strcat, strcmp, strncmp, strcpy, strncpy, strlen, strchr, strrchr, strdup, strstr \- string operations +.SH SYNOPSIS +.ta \w'\fLchar* \fP'u +.B +char* strcat(char *s1, char *s2) +.PP +.B +int strcmp(char *s1, char *s2) +.PP +.B +int strncmp(char *s1, char *s2, long n) +.PP +.B +char* strcpy(char *s1, char *s2) +.PP +.B +char* strncpy(char *s1, char *s2, long n) +.PP +.B +long strlen(char *s) +.PP +.B +char* strchr(char *s, char c) +.PP +.B +char* strrchr(char *s, char c) +.PP +.B +char* strdup(char *s) +.PP +.B +char* strstr(char *s1, char *s2) +.SH DESCRIPTION +The arguments +.I s1, s2 +and +.I s +point to null-terminated strings. +The functions +.IR strcat , +.IR strcpy , +and +.I strncpy +all alter +.IR s1 . +These functions do not check for overflow of +the array pointed to by +.IR s1 . +.PP +.I Strcat +appends a copy of string +.I s2 +to the end of string +.IR s1 , +and +returns a pointer to the null-terminated result. +.PP +.I Strcmp +compares its arguments and returns an integer +less than, equal to, or greater than 0, +according as +.I s1 +is lexicographically less than, equal to, or +greater than +.IR s2 . +.I Strncmp +makes the same comparison but examines at most +.I n +bytes. +The comparisons are made with unsigned bytes. +.PP +.I Strcpy +copies string +.I s2 +to +.IR s1 , +stopping after the null byte has been copied. +.I Strncpy +copies exactly +.I n +bytes, +truncating +.I s2 +or adding +null bytes to +.I s1 +if necessary. +The result will not be null-terminated if the length +of +.I s2 +is +.I n +or more. +Each function returns +.IR s1 . +.PP +.I Strlen +returns the number of bytes in +.IR s , +not including the terminating null byte. +.PP +.I Strchr +.RI ( strrchr ) +returns a pointer to the first (last) +occurrence of byte +.I c +in string +.IR s , +or +.L 0 +if +.I c +does not occur in the string. +The null byte terminating a string is considered to +be part of the string. +.PP +.I Strdup +returns a pointer to a distinct copy of the null-terminated string +.I s +in space obtained from +.IR malloc (10.2) +or +.L 0 +if no space can be obtained. +.PP +.I Strstr +returns a pointer to the first occurrence of +.I s2 +as a substring of +.IR s1 , +or 0 if there is none. +If +.I s2 +is the null string, +.I strstr +returns +.IR s1 . +.SH SOURCE +.B /libkern/str*.c +.br +.B /libkern/str*-\fIobjtype\fP.c +.br +.B /lib9/strdup.c +.SH SEE ALSO +.IR memory (10.2), +.IR rune (10.2) +.SH BUGS +These routines know nothing about +.SM UTF. +Use the routines in +.IR rune (10.2) +as appropriate. +Note, however, that the definition of UTF guarantees that +.I strcmp +compares UTF strings correctly. +.PP +The outcome of overlapping moves varies among implementations. +.PP +Note the absence of ANSI C's +.IR strncat , +.IR strpbrk , +.IR strspn , +.IR strcspn +and +.IR strtok , +but the presence of +.IR strdup . +...strtod.c strtol.c strtoul.c strtoll.c diff --git a/static/inferno/man10/styx.10 b/static/inferno/man10/styx.10 new file mode 100644 index 00000000..70f37a6a --- /dev/null +++ b/static/inferno/man10/styx.10 @@ -0,0 +1,365 @@ +.TH STYX 10.2 +.SH NAME +Fcall, convS2M, convD2M, convM2S, convM2D, fcallfmt, dirfmt, dirmodefmt, statcheck, sizeS2M, sizeD2M \- interface to Inferno File protocol +.SH SYNOPSIS +.B #include +.br +.br +.B #include +.PP +.B +uint convS2M(Fcall *f, uchar *ap, uint nap) +.PP +.B +uint convD2M(Dir *d, uchar *ap, uint nap) +.PP +.B +uint convM2S(uchar *ap, uint nap, Fcall *f) +.PP +.B +uint convM2D(uchar *ap, uint nap, Dir *d, char *strs) +.PP +.B +int dirfmt(Fmt*) +.PP +.B +int fcallfmt(Fmt*) +.PP +.B +int dirmodefmt(Fmt*) +.PP +.B +int statcheck(uchar *buf, uint nbuf) +.PP +.B +uint sizeS2M(Fcall *f) +.PP +.B +uint sizeD2M(Dir *d) +.SH DESCRIPTION +These +routines convert messages in the machine-independent format of +the Inferno file protocol, +described by +.IR intro (5), +to and from a more convenient form, +an +.B Fcall +structure: +.PP +.EX +.if n .ta 4n +6n +5n +6n +18n +4n +.if t .ta \w'xxxx'u +\w'short 'u +\w'xxxx'u +\w'ushort 'u +\w'ticket[TICKETLEN]; 'u +\w'/* 'u +#define MAXWELEM 16 + +typedef +struct Fcall +{ + uchar type; + u32int fid; + ushort tag; + union { + struct { + u32int msize; /* Tversion, Rversion */ + char *version; /* Tversion, Rversion */ + }; + struct { + ushort oldtag; /* Tflush */ + }; + struct { + char *ename; /* Rerror */ + }; + struct { + Qid qid; /* Rattach, Ropen, Rcreate */ + u32int iounit; /* Ropen, Rcreate */ + }; + struct { + Qid aqid; /* Rauth */ + }; + struct { + u32int afid; /* Tauth, Tattach */ + char *uname; /* Tauth, Tattach */ + char *aname; /* Tauth, Tattach */ + }; + struct { + u32int perm; /* Tcreate */ + char *name; /* Tcreate */ + uchar mode; /* Tcreate, Topen */ + }; + struct { + u32int newfid; /* Twalk */ + ushort nwname; /* Twalk */ + char *wname[MAXWELEM]; /* Twalk */ + }; + struct { + ushort nwqid; /* Rwalk */ + Qid wqid[MAXWELEM]; /* Rwalk */ + }; + struct { + vlong offset; /* Tread, Twrite */ + u32int count; /* Tread, Twrite, Rread */ + char *data; /* Twrite, Rread */ + }; + struct { + ushort nstat; /* Twstat, Rstat */ + uchar *stat; /* Twstat, Rstat */ + }; + }; +} Fcall; +.EE +.EX + +/* these are implemented as macros */ + +uchar GBIT8(uchar*) +ushort GBIT16(uchar*) +ulong GBIT32(uchar*) +vlong GBIT64(uchar*) + +void PBIT8(uchar*, uchar) +void PBIT16(uchar*, ushort) +void PBIT32(uchar*, ulong) +void PBIT64(uchar*, vlong) + +#define BIT8SZ 1 +#define BIT16SZ 2 +#define BIT32SZ 4 +#define BIT64SZ 8 +.EE +.PP +This structure is defined in +.BR . +See section 5 +for a full description of 9P messages and their encoding. +For all message types, the +.B type +field of an +.B Fcall +holds one of +.BR Tversion , +.BR Rversion , +.BR Tattach , +.BR Rattach , +etc. (defined in an enumerated type in +.BR ). +.B Fid +is used by most messages, and +.B tag +is used by all messages. +The other fields are used selectively by the message types +given in comments. +.PP +.I ConvM2S +takes a 9P message at +.I ap +of length +.IR nap , +and uses it to fill in +.B Fcall +structure +.IR f . +If the passed message +including any data for +.B Twrite +and +.B Rread +messages +is formatted properly, +the return value is the number of bytes the message occupied in the buffer +.IR ap , +which will always be less than or equal to +.IR nap ; +otherwise it is 0. +For +.B Twrite +and +.B Tread +messages, +.B data +is set to a pointer into the argument message, +not a copy. +.PP +.I ConvS2M +does the reverse conversion, turning +.I f +into a message starting at +.IR ap . +The length of the resulting message is returned. +For +.B Twrite +and +.B Rread +messages, +.B count +bytes starting at +.B data +are copied into the message. +.PP +The constant +.B IOHDRSZ +is a suitable amount of buffer to reserve for storing +the 9P header; +the data portion of a +.B Twrite +or +.B Rread +will be no more than the buffer size negotiated in the +.BR Tversion/Rversion +exchange, minus +.BR IOHDRSZ . +.PP +The routine +.I sizeS2M +returns the number of bytes required to store the machine-independent representation of the +.B Fcall +structure +.IR f , +including its initial 32-bit size field. +In other words, it reports the number of bytes produced +by a successful call to +.IR convS2M . +.PP +Another structure is +.BR Dir , +used by C functions in much the same way as the Limbo versions +described in +.IR sys-stat (2). +.I ConvM2D +converts the machine-independent form starting at +.I ap +into +.IR d +and returns the length of the machine-independent encoding. +The strings in the returned +.B Dir +structure are stored at successive locations starting at +.BR strs . +Usually +.B strs +will point to storage immediately after the +.B Dir +itself. +It can also be a +.B nil +pointer, in which case the string pointers in the returned +.B Dir +are all +.BR nil ; +however, the return value still includes their length. +.PP +.I ConvD2M +does the reverse translation, +also returning the length of the encoding. +If the buffer is too short, the return value will be +.B BIT16SZ +and the correct size will be returned in the first +.B BIT16SZ +bytes. +(If the buffer is less than +.BR BIT16SZ , +the return value is zero; therefore a correct test for +complete packing of the message is that the return value is +greater than +.BR BIT16SZ ). +The macro +.B GBIT16 +can be used to extract the correct value. +The related macros with different sizes retrieve the corresponding-sized quantities. +.B PBIT16 +and its brethren place values in messages. +With the exception of handling short buffers in +.IR convD2M , +these macros are not usually needed except by internal routines. +.PP +Analogous to +.IR sizeS2M , +.I sizeD2M +returns the number of bytes required to store the machine-independent representation of the +.B Dir +structure +.IR d , +including its initial 16-bit size field. +.PP +The routine +.B statcheck +checks whether the +.I nbuf +bytes of +.I buf +contain a validly formatted machine-independent +.B Dir +entry. +It checks that the sizes of all the elements of the the entry sum to exactly +.IR nbuf , +which is a simple but effective test of validity. +.I Nbuf +and +.I buf +should include the second two-byte (16-bit) length field that precedes the entry when +formatted in a 9P message (see +.IR stat (5)); +in other words, +.I nbuf +is 2 plus the sum of the sizes of the entry itself. +.I Statcheck +also verifies that the length field has the correct value (that is, +.IB nbuf -2\f1). +It returns +.B 0 +for a valid entry and +.B -1 +for an incorrectly formatted entry. +.PP +.IR Dirfmt , +.IR fcallfmt , +and +.I dirmodefmt +are formatting routines, suitable for +.IR fmtinstall (10.2). +They convert +.BR Dir* , +.BR Fcall* , +and +.BR long +values into string representations of the directory buffer, +.B Fcall +buffer, +or file mode value. +.I Fcallfmt +assumes that +.I dirfmt +has been installed with format letter +.L D +and +.I dirmodefmt +with format letter +.LR M . +They currently cannot be used in the kernels because they clash +with the use of format +.L D +for Dis instructions. +.SH SOURCE +.B /lib9/convM2D.c +.br +.B /lib9/convM2D.c +.br +.B /lib9/convM2S.c +.br +.B /lib9/convS2M.c +.br +.B /lib9/fcallfmt.c +.br +.B /libkern/convM2D.c +.br +.B /libkern/convM2D.c +.br +.B /libkern/convM2S.c +.br +.B /libkern/convS2M.c +.br +.B /libkern/fcallfmt.c +.SH SEE ALSO +.IR intro (2), +.IR styx (2), +.IR sys-stat (2), +.IR intro (5) diff --git a/static/inferno/man10/styxserver.10 b/static/inferno/man10/styxserver.10 new file mode 100644 index 00000000..3e8f5fcc --- /dev/null +++ b/static/inferno/man10/styxserver.10 @@ -0,0 +1,623 @@ +.TH STYXSERVER 10.2 +.SH NAME +Styxserver \- C Styx server library +.SH SYNOPSIS +.EX +#include +#include +#include +#define Qroot 0 + +#define MSGMAX ((((8192+128)*2)+3) & ~3) + +extern char Enomem[]; /* out of memory */ +extern char Eperm[]; /* permission denied */ +extern char Enodev[]; /* no free devices */ +extern char Ehungup[]; /* i/o on hungup channel */ +extern char Eexist[]; /* file exists */ +extern char Enonexist[]; /* file does not exist */ +extern char Ebadcmd[]; /* bad command */ +extern char Ebadarg[]; /* bad arguments */ + +typedef uvlong Path; +typedef struct Styxserver Styxserver; +typedef struct Styxops Styxops; +typedef struct Styxfile Styxfile; +typedef struct Client Client; + +struct Styxserver +{ + Styxops *ops; + Path qidgen; + int connfd; + Client *clients; + Client *curc; + Styxfile *root; + Styxfile **ftab; + void *priv; /* private */ +}; + +struct Client +{ + Styxserver *server; + Client *next; + int fd; + char msg[MSGMAX]; + uint nread; /* valid bytes in msg (including nc)*/ + int nc; /* bytes consumed from front of msg by convM2S */ + char data[MSGMAX]; /* Tread/Rread data */ + int state; + Fid *fids; + char *uname; /* uid */ + char *aname; /* attach name */ + void *u; +}; + +struct Styxops +{ + char *(*newclient)(Client *c); + char *(*freeclient)(Client *c); + + char *(*attach)(char *uname, char *aname); + char *(*walk)(Qid *qid, char *name); + char *(*open)(Qid *qid, int mode); + char *(*create)(Qid *qid, char *name, int perm, int mode); + char *(*read)(Qid qid, char *buf, ulong *n, vlong offset); + char *(*write)(Qid qid, char *buf, ulong *n, vlong offset); + char *(*close)(Qid qid, int mode); + char *(*remove)(Qid qid); + char *(*stat)(Qid qid, Dir *d); + char *(*wstat)(Qid qid, Dir *d); +}; + +struct Styxfile +{ + Dir d; + Styxfile *parent; + Styxfile *child; + Styxfile *sibling; + Styxfile *next; + int ref; + int open; + void *u; +}; + +void styxsetowner(char *user); +char *styxinit(Styxserver *server, Styxops *ops, char *port, int perm, int needfile); +char *styxwait(Styxserver *server); +char *styxprocess(Styxserver *server); +char *styxend(Styxserver *server); + +Client *styxclient(Styxserver *server); + +Styxfile *styxaddfile(Styxserver *server, Path pqid, Path qid, char *name, + int mode, char *owner); +Styxfile *styxadddir(Styxserver *server, Path pqid, Path qid, char *name, + int mode, char *owner); +int styxrmfile(Styxserver *server, Path qid); +Styxfile *styxfindfile(Styxserver *server, Path qid); + +int styxperm(Styxfile *file, char *uid, int mode); +long styxreadstr(ulong off, char *buf, ulong n, char *str); +Qid styxqid(int path, int isdir); +void *styxmalloc(int bytes); +void styxfree(void *p); +void styxdebug(void); +.EE +.SH DESCRIPTION +The C Styx server library provides a small suite of functions to enable the +production of a file server based on the Inferno Styx protocol. The following +elements define the primary routines in the interface: +.TP +.BI styxinit(server\fP,\fP\ ops\fP,\fP\ port\fP,\fP\ perm\fP,\fP\ needfile ) +Initializes the interface given a pointer to a Styxserver structure +.I server +, a callback table of operations +.I ops +, a port number +.I port +to announce the file service on +and the permissions +.I perm +on the root directory. The default permission is 0555 (read and execute for user, +group and others) if the latter is specified as -1. If the last argument +.I needfile +is set to true, the styx library will check that each path number it deals with +has a corresponding file associated with it and, if it hasn't, it will issue a +"file does not exist" message automatically. In case of an error, the error message is +returned, otherwise nil is returned to indicate success. +By default, files are owned by +.BR inferno ; +.I styxsetowner +can be called before +.I styxinit +to make +.I user +the default owner of files. +.TP +.BI styxwait(server ) +Waits for communication from a client. Return value as above. +.TP +.BI styxprocess(server ) +Processes the client message after a successful call to +.I styxwait . +This may result in calls to the functions in the table provided to +.I styxinit . +Return value as above. +.TP +.BI styxend(server ) +End all file service. Return value as above. +.TP +.BI styxclient(server ) +Returns the client whose request is currently being processed. +.PP +The next set of functions allow the creation of a file system structure based +upon the +.I Styxfile +structure. This contains a Dir structure +.I d +describing the properties of the file +(defined in lib9.h) and pointers to other files in the file tree: +.I parent +, +.I child +, +.I sibling +and +.I next . +The +.I ref +field +counts current references to the file. The +.I open +field counts the current number of opens on the file. Finally the +.I u +field allows further fields to be tagged onto each file. It is not +used by the Styx server library. +.PP +Each file must have a unique path number in the server. The root of +the tree +.I Qroot +always has path number zero. It's corresponding file is created during library initialization +and placed in the +.I root +field of the server structure. All other files must be supplied with a path number +to identify them. Files are created/deleted as follows: +.TP +.BI styxaddfile(server\fP,\fP\ ppath\fP,\fP\ path\fP,\fP\ name\fP,\fP\ mode\fP,\fP\ owner ) +Add a new file (ie non-directory) with the given path +.I path +, name +.I name +, mode +.I mode +and owner +.I owner +to the directory identified by the path +.I ppath . +If +.I path +is -1 the library will generate a unique path number instead. +Returns nil if the parent file with path +.I ppath +does not exist, if the parent is not a directory, if the path number +.I path +already is assigned to a file or if the parent already contains a file of name +.I name . +.TP +.BI styxadddir(server\fP,\fP\ ppath\fP,\fP\ path\fP,\fP\ name\fP,\fP\ mode\fP,\fP\ owner ) +Add a new directory with the given path +.I path +, name +.I name +, mode +.I mode +and owner +.I owner +to the directory identified by the path +.I ppath . +Returns nil in the same circumstances as +.I styxaddfile . +.TP +.BI styxrmfile(server\fP,\fP\ path ) +Remove the file or directory with path +.I path +from the file server tree. If the file is a directory, it's contents will be recursively +removed. If the file does not exist, -1 is returned, otherwise 0 is returned for +success. +.TP +.BI styxfindfile(server\fP,\fP\ path ) +Return the file structure corresponding to the file or directory with path +.I path . +Nil is returned if the file does not exist. +.PP +If the file system is created in this way the Styx library will check read/write/execute +permissions, check for invalid uses of files and check that path numbers exist +in the file system (see +.I styxinit +for the latter). If it's not feasible to do this (for instance if there is a more suitable +way of describing the file system in question), then all file checking must be +done as part of the callback functions below. +.PP +The library provides a callback mechanism so that the implementer of the +file server can take corresponding action when a particular request is made +of the server. All of these functions may return an error message which will +be communicated back to the client. Otherwise they should return nil to +indicate the success of the operation. Any of these functions may be nil in which case the library +performs a default operation which will be described below. These routines use +the +.I Qid +structure defined in lib9.h to describe files. This structure contains the path number( +.I path +), a version number( +.I vers +) typically zero and a type( +.I type +) which indicates whether the file is a directory, append-only etc. +.TP +.BI newclient(c ) +Called whenever a new client connects to the server. The Client structure +.I c +contains mainly private data but the +.I uname +field contains a user name and the +.I aname +field an attach name if required. The +.I u +field may be used to tag further data onto each client. It is not used by +the Styx server library. +.TP +.BI freeclient(c ) +Called whenever a client disconnects from the server. +.TP +.BI attach(uname\fP,\fP\ aname ) +Called when a client user first mounts the file server. The +.I uname +is the user id and +.I aname +is typically the file tree to access if the server provides a choice. +The default action is to allow the attach to the root of the file system. +.TP +.BI walk(qid\fP,\fP\ name ) +In a directory represented by +.I qid +, find a file member whose name is that given and place it's Qid in +.I qid . +The default action is to perform the walk using any directory structure provided. +.TP +.BI open(qid\fP,\fP\ mode ) +Open the file represented by +.I qid +with mode +.I mode . +The latter may be one of OREAD, OWRITE, ORDWR etc (see lib9.h). If the Qid +of the newly opened file is different from that given (a file server may understand +the opening of a file called "new" say to signify the creation of a directory whose +Qid is returned instead) place it's Qid in +.I qid . +The default action is to nominally allow the open. +.TP +.BI create(qid\fP,\fP\ name\fP,\fP\ perm\fP,\fP\ mode ) +Create a file in the directory given by +.I qid +with name +.I name +, permissions +.I perm +and mode +.I mode . +Place the Qid of the newly created file in +.I qid . +The default action is to issue a permission denied message. +.TP +.BI read(qid\fP,\fP\ buf\fP,\fP\ n\fP,\fP\ offset ) +Read +.I n +bytes of the file represented by +.I qid +at offset +.I offset +and place the result in +.I buf. + Place in +.I n +the actual number of bytes read. +The default action is to read directories but to issue permission denied on ordinary +files. +.TP +.BI write(qid\fP,\fP\ buf\fP,\fP\ n\fP,\fP\ offset ) +Write +.I n +bytes to the file represented by +.I qid +at offset +.I offset +from the buffer +.I buf. + Place in +.I n +the actual number of bytes written. +The default action is to issue permission denied. +.TP +.BI close(qid\fP,\fP\ mode ) +Close the file represented by +.I qid . +The mode it was originally opened with is given by +.I mode . +The default action is to allow the close. +.TP +.BI remove(qid ) +Remove the file represented by +.I qid . +The default action is to issue a permission denied message. +.TP +.BI stat(qid\fP,\fP\ d ) +Place the information for the file represented by +.I qid +in the Dir structure(see lib9.h) +.I d . +The default action is to allow the stat using any information in the file tree. +.TP +.BI wstat(qid\fP,\fP\ d ) +Update the information for the file represented by +.I qid +according to the Dir structure +.I d . +The default action is to disallow this with a permission denied message. +.PP +A small number of utility functions are provided: +.TP +.BI styxperm(file\fP,\fP\ uid\fP,\fP\ mode ) +Does the file/directory +.I file +allow the user +.I uid +the permission given by +.I mode . +For example use +.I OREAD +for read permission, +.I OWRITE +for write permission and +.I ORDWR +for both. +.TP +.BI styxreadstr(off\fP,\fP\ buf\fP,\fP\ n\fP,\fP\ str ) +Read +.I n +bytes of data from the string +.I str +at offset +.I off +and place the result in +.I buf . +Returns the actual number of bytes read. +.TP +.BI styxqid(path\fP,\fP\ isdir ) +Returns a typical Qid structure with the given path number +.I path +and whether the Qid is for a directory +.I isdir . +.TP +.BI styxmalloc(n ) +Allocate +.I n +bytes of memory and return it. +.TP +.BI styxfree(p ) +Free the memory pointed to by +.I p . +.TP +.BI styxdebug() +Print out some of the actions of the server. +.SH EXAMPLE +.PP +A very small file server example is illustrated. First the include files and globals. +.PP +.EX + #include + #include "styxserver.h" + + int nq; + Styxserver *server; +.EE +.PP +The main processing loop: +.PP +.EX + main(int argc, char **argv) + { + Styxserver s; + + server = &s; + styxinit(&s, &ops, "6701", 100, 0555, 0); + myinit(&s); + for(;;) { + styxwait(&s); + styxprocess(&s); + } + return 0; + } +.EE +.PP +Here the port number is 6701 and the root file permissions are 0555 - no write +permission for anyone which implies that files and directories cannot be +created in the root directory. +.PP +The creation of the directory tree: +.PP +.EX + myinit(Styxserver *s) + { + styxaddfile(s, Qroot, 1, "fred", 0664, "inferno"); + styxaddfile(s, Qroot, 2, "joe", 0664, "inferno"); + styxadddir(s, Qroot, 3, "adir", 0775, "inferno"); + styxaddfile(s, 3, 4, "bill", 0664, "inferno"); + styxadddir(s, Qroot, 5, "new", 0775, "inferno"); + styxadddir(s, 5, 6, "cdir", 0775, "inferno"); + styxaddfile(s, 6, 7, "cfile", 0664, "inferno"); + nq = 8; + } +.EE +.PP +This creates two files +.I fred +and +.I joe +and two directories +.I adir +and +.I new +at the top level. +.I adir +contains a file called +.I bill +and +.I new +contains a directory called +.I cdir +which contains a file called +.I cfile . +Note that each new path number is unique. +.PP +The callback functions: +.PP +.EX + Styxops ops = { + nil, /* newclient */ + nil, /* freeclient */ + + nil, /* attach */ + nil, /* walk */ + nil, /* open */ + mycreate, /* create */ + myread, /* read */ + nil, /* write */ + nil, /* close */ + myremove, /* remove */ + nil, /* stat */ + nil, /* wstat */ + }; +.EE +.PP +Here we choose the defaults most of the time. +.PP +The supplied callback routines: +.PP +.EX + char * + mycreate(Qid *qid, char *name, int perm, int mode) + { + int isdir; + Styxfile *f; + + isdir = perm&DMDIR; + if(isdir) + f = styxadddir(server, qid->path, nq++, name , perm, "inferno"); + else + f = styxaddfile(server, qid->path, nq++, name, perm, "inferno"); + if(f == nil) + return Eexist; + *qid = f->d.qid; + return nil; + } + + char * + myremove(Qid qid) + { + Styxfile *f; + + f = styxfindfile(server, qid.path); + if(f != nil && (f->d.qid.type&QTDIR) && f->child != nil) + return "directory not empty"; + + if(styxrmfile(server, qid.path) < 0) + return Enonexist; + return nil; + } + + char * + myread(Qid qid, char *d, ulong *n, vlong offset) + { + if(qid.path != 1){ + *n = 0; + return nil; + } + *n = styxreadstr(offset, d, *n, "abcdeghijklmn"); + return nil; + } +.EE +.PP +Permission checking for walk (need execute permission on directory), open (the +given mode must be compatible with the file permissions), create and remove (both of +which need write permission on directory) is done automatically whenever +possible. The functions +.I mycreate +and +.I myremove +below therefore can omit these checks. +.PP +The function +.I mycreate +simply creates a directory or file and +if the file cannot be added to the directory tree it returns a 'file exists' error string. +It sets the Qid for the newly created file before returning. +.PP +The function +.I myremove +first checks to see if the file represents a non-empty directory, in which case it +disallows it's removal. Otherwise it +removes the file if it can find it and returns a 'file does not exist' error string if it +can't. +.PP +The function +.I myread +considers all files to be empty except for +.I fred +which notionally contains +.I abcdefghijklmn . +Note that the number of bytes read is returned in the argument +.I n . +.PP +Once this file server is running, the root can be accessed by doing for example +.PP +.EX + mount -A tcp!
!6701 /n/remote +.EE +.PP +under Inferno. Here +.I
+is the address of the machine running the file server (or the loopback address +127.0.0.1 if it's all on one machine). The +.I -A +option is used to prevent authentication which is not supported at the moment. +Then we can do +.PP +.EX + cd /n/remote + ls + adir + fred + joe + new + ... +.EE +.PP +For a more complicated file server see /tools/styxtest/styxtest.c. +.PP +The file /tools/styxtest/mkfile shows how to compile and link the file server +sources. +.SH SOURCE +.B /Nt/386/include/lib9.h +.br +.B /tools/libstyx/styxserver.h +.br +.B /tools/libstyx/styxserver.c +.br +.B /tools/styxtest/styxtest.c +.br +.B /tools/styxtest/styxtest0.c +.SH BUGS +Currently the library is available under Windows, Linux and Solaris only. +.br +Authentication is not supported. diff --git a/static/inferno/man10/xalloc.10 b/static/inferno/man10/xalloc.10 new file mode 100644 index 00000000..d22ea9cb --- /dev/null +++ b/static/inferno/man10/xalloc.10 @@ -0,0 +1,70 @@ +.TH XALLOC 10.2 +.SH NAME +xalloc, xspanalloc, xfree \- basic memory management +.SH SYNOPSIS +.ta \w'\fLvoid* 'u +.B +void* xalloc(ulong size) +.PP +.B +void* xspanalloc(ulong size, int align, ulong span) +.PP +.B +void xfree(void *p) +.SH DESCRIPTION +.I Xalloc +and +.I xfree +are primitives used by higher-level memory allocators in the kernel, +such as +.IR malloc (10.2). +They are not intended for use directly by most kernel routines. +The main exceptions are routines that permanently allocate large structures, +or need the special alignment properties guaranteed by +.IR xspanalloc . +.PP +.I Xalloc +returns a pointer to a range of size bytes of memory. The memory will be zero filled and aligned on a 8 byte +.RB ( BY2V ) +address. If the memory is not available, +.B xalloc +returns a null pointer. +.PP +.I Xspanalloc +allocates memory given alignment and spanning constraints. +The block returned will contain +.I size +bytes, aligned on a boundary that is +.BI "0 mod" " align," +in such a way that the memory in the block does not +span an address that is +.BI "0 mod" " span." +.I Xspanalloc +is intended for use +allocating hardware data structures (eg, page tables) or I/O buffers +that must satisfy specific alignment restrictions. +If +.I xspanalloc +cannot allocate memory to satisfy the given constraints, it will +.IR panic (10.2). +The technique it uses can sometimes cause memory to be wasted. +Consequently, +.I xspanalloc +should be used sparingly. +.PP +.I Xfree +frees the block of memory at +.IR p , +which must be an address previously returned by +.I xalloc +(not +.IR xspanalloc ). +.SS Allocation status +Some memory allocation statistics are written to the console in response to +the debugging sequence +.LR "control-T control-T x" . +The output includes the total free space, the number of free holes, +and a summary of active holes. +Each line shows `address top size'. +.SH SEE ALSO +.IR malloc (10.2) diff --git a/static/inferno/man2/0intro.2 b/static/inferno/man2/0intro.2 new file mode 100644 index 00000000..297bade3 --- /dev/null +++ b/static/inferno/man2/0intro.2 @@ -0,0 +1,189 @@ +.TH INTRO 2 +.SH NAME +intro \- introduction to Limbo modules for the Inferno system +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +include "draw.m"; +draw := load Draw Draw->PATH; + +include "tk.m"; +tk := load Tk Tk->PATH; + +.I "... etc." + +.I "Generically:" +.EE +.EX +include "\fImodule\fP.m"; +.EE +.fi +.IB module " := " +.BI load " Module" +.IB Module ->PATH; +.SH DESCRIPTION +This section introduces the Limbo modules available to the programmer; +see the corresponding manual pages for more information. +Each module is declared with a single Limbo +.B include +file. +Before calling a module's functions, an application must +.B load +the module; the application stores the resulting value in a variable for later use as +the module qualifier. +The examples above illustrate the style. +It will usually be necessary in some cases to qualify names with the appropriate +module pointer or to +.B import +the types and functions; the manual pages assume the names are accessible +in the current scope. +.PP +Although many modules are self-contained, +dependencies may exist. +For example, the system module, +.BR Sys , +provides basic services that many other modules require. +These are the Inferno equivalent to `system calls'. +.PP +In a few cases, several related modules +share a single +.B include +file; +for instance, +.BR security.m . +.PP +The manual pages describe how to +.B include +a module definition during +compilation and +.B load +an implementation during execution. +The documentation also lists relevant functions or abstract +data types. +Although the +.B include +files declare these components, the manual pages list them explicitly. +In all cases, the enclosing +.B module +declaration is assumed so that unqualified identifiers can be +used in the text without ambiguity, reducing clutter in the text. +In practice when programming, many consider it good style to +use an explicit module reference for functions and constants. +.PP +The Limbo modules are identical on any machine that is running Inferno, +whether native or hosted, which enables Limbo programs to be written +and tested on any Inferno system. +.PP +Many modules are described in a single page, such as +.IR regex (2). +Several larger modules are explained in several sections, such as +.IR math-intro (2), +.IR math-elem (2), +.IR math-fp (2), +and +.IR math-linalg (2). +.SS Exceptions +Exception handling is now part of the Limbo language, replacing an older +scheme that used special system calls. +Various exceptions can be raised by the virtual machine when run-time errors +are detected. +These are the common ones: +.RS +.TP +.B "alt send/recv on same chan" +It is currently illegal for a channel to appear in two +.B alt +statements if they either both receive or both send on it. +(It is fine to send in one and receive in the other.) +.TP +.B "array bounds error" +Array subscript out of bounds. +.TP +.B "dereference of nil" +Attempt to use a +.B "ref" +adt or index an array with value +.B "nil" . +.TP +.B "invalid math argument" +Inconsistent values provided to functions of +.IR math-intro (2). +.TP +.B "module not loaded" +Attempt to use an uninitialised module variable. +.TP +.B "negative array size" +The limit in an array constructor was negative. +.TP +.BI "out of memory:" " pool" +The given memory +.I pool +is exhausted. +.I Pool +is currently one of +.B main +(kernel memory including Tk allocations), +.B heap +(most Limbo data), +and +.B image +memory for +.IR draw (3). +.TP +.B "zero divide" +Integer division (or mod) by zero. +.RE +.PP +There are currently two more classes of exception string with a conventional interpretation +imposed not by the run-time system proper, but by Limbo components: +.RS +.TP +.BI "fail:" "reason" +Commands use this exception to provide an `exit status' to a calling program, +particularly the shell +.IR sh (1); +see also +.IR sh (2). +The status is given by the +.I reason +following the +.RB ` fail: ' +prefix. +.TP +.BI "assertion:" "error" +A module detected the specified internal +.IR error . +This is most often used for cases where a particular possibility ``cannot happen'' +and there is no other need for an error value in the interface. +.RE +.PP +Otherwise, most module interfaces tend to use explicit error return values, not exceptions. +.PP +Note that a Limbo exception handler can do pattern matching to catch a class of exceptions: +.IP +.EX +{ + \f2body of code to protect\fP +} exception e { +"out of memory:*" => + \f2recovery action\fP +"assertion:*" => + fatal_error(e); +} +.EE +.PP +The effect of an unhandled exception in a process that is part of an error-recovery group +can be controlled using the mechanisms described in +.IR prog (3) +as accessed using +.IR exception (2). +.SH SEE ALSO +.IR draw-intro (2), +.IR exception (2), +.IR keyring-intro (2), +.IR math-intro (2), +.IR prefab-intro (2), +.IR security-intro (2), +.IR sys-intro (2) diff --git a/static/inferno/man2/9p-ninep.2 b/static/inferno/man2/9p-ninep.2 new file mode 100644 index 00000000..f2f9e6c4 --- /dev/null +++ b/static/inferno/man2/9p-ninep.2 @@ -0,0 +1,416 @@ +.TH 9P-NINEP 2 +.SH NAME +Ninep: Rmsg, Tmsg, dir2text, istmsg, packdir, packdirsize, readmsg, qid2text, unpackdir \- interface to 9P file protocol +.SH SYNOPSIS +.EX +include "9p.m"; +ninep := load Ninep Ninep->PATH; + +Tmsg: adt { + tag: int; + pick { + Readerror => + error: string; # tag is unused in this case + Version => + msize: int; + version: string; + Auth => + afid: int; + uname, aname: string; + Attach => + fid, afid: int; + uname, aname: string; + Flush => + oldtag: int; + Walk => + fid, newfid: int; + names: array of string; + Open => + fid, mode: int; + Create => + fid: int; + name: string; + perm, mode: int; + Read => + fid: int; + offset: big; + count: int; + Write => + fid: int; + offset: big; + data: array of byte; + Clunk or + Stat or + Remove => + fid: int; + Wstat => + fid: int; + stat: Sys->Dir; + } + + read: fn(fd: ref Sys->FD, msize: int): ref Tmsg; + unpack: fn(a: array of byte): (int, ref Tmsg); + pack: fn(nil: self ref Tmsg): array of byte; + packedsize: fn(nil: self ref Tmsg): int; + text: fn(nil: self ref Tmsg): string; + mtype: fn(nil: self ref Tmsg): int; +}; + +Rmsg: adt { + tag: int; + pick { + Readerror => + error: string; # tag is unused in this case + Version => + msize: int; + version: string; + Auth => + aqid: Sys->Qid; + Attach => + qid: Sys->Qid; + Flush => + Error => + ename: string; + Clunk or + Remove or + Wstat => + Walk => + qids: array of Sys->Qid; + Create or + Open => + qid: Sys->Qid; + iounit: int; + Read => + data: array of byte; + Write => + count: int; + Stat => + stat: Sys->Dir; + } + + read: fn(fd: ref Sys->FD, msize: int): ref Rmsg; + unpack: fn(a: array of byte): (int, ref Rmsg); + pack: fn(nil: self ref Rmsg): array of byte; + packedsize: fn(nil: self ref Rmsg): int; + text: fn(nil: self ref Rmsg): string; + mtype: fn(nil: self ref Rmsg): int; +}; + +init: fn(); + +readmsg: fn(fd: ref Sys->FD, msize: int): (array of byte, string); +istmsg: fn(f: array of byte): int; + +compatible: fn(t: ref Tmsg.Version, msize: int, version: string): (int, string); + +packdirsize: fn(d: Sys->Dir): int; +packdir: fn(d: Sys->Dir): array of byte; +unpackdir: fn(f: array of byte): (int, Sys->Dir); +dir2text: fn(d: Sys->Dir): string; +qid2text: fn(q: Sys->Qid): string; + +VERSION: con "9P2000"; +MAXWELEM: con 16; +NOTAG: con 16rFFFF; +NOFID: con ~0; +IOHDRSZ: con \fIimplementation-defined\f5; +DEFMSIZE: con \fIimplementation-defined\f5; +.EE +.SH DESCRIPTION +.B Ninep +provides a Limbo interface to send and receive messages of the 9P file service protocol, +described by Section 5 of this manual, a thorough reading of which +is advised before using this module. +.B Init +must be called before using any other function in the module. +.PP +A 9P client transmits requests to a server as `T-messages' +and receives replies in matching `R-messages'. +A T-message is here represented by values of the type +.BR Tmsg , +and an R-message by values of type +.BR Rmsg . +Every message has a +.B tag +value, and the alternatives of the pick adt represent the possible operation types of a T-message, +generally with parameter names and types corresponding to those described in section 5. +The exceptions are: +.B Tmsg.Write +and +.B Rmsg.Read +contain an array of byte, +.BR data , +to hold the data for the corresponding message, and the `count' parameter of the message is simply the length of that array; +and there is an alternative labelled +.B Readerror +that does not appear in the protocol but is used to represent input errors as described below. +Also note that values that are `unsigned' integers in the protocol are typically given signed integer +types in the Limbo representation (in particular, fids, qid paths, counts and offsets), and applications +should take appropriate care when manipulating them. +.PP +The following functions are provided by +.BR Tmsg: +.TP +.BI read( fd\fP,\fP\ msize ) +Read file descriptor +.I fd +to obtain exactly one T-message and return (a reference to) the corresponding +.BR Tmsg . +A nil value is returned on end of file. +Otherwise, if the read fails or the data read does not form a valid T-message, +the value returned will be a +.B Tmsg.Readerror +value in which the +.B error +member describes the error. +.I Msize +gives the maximum number of bytes in any acceptable T-message, +and should be the value negotiated in the exchange of +.B version +messages; +any incoming message larger than that will result in a diagnostic as a +.B Tmsg.Readerror +value. +An +.I msize +of 0 means `no limit negotiated' and should (only) be used until a message size +has been negotiated by exchange of +.IR version (5) +messages. +.TP +.IB t .pack() +Return an array of bytes containing the value of +.I t +in the machine-independent format described in Section 5. +It can return nil only if the message +.I t +is itself nil or has an invalid type. +.TP +.BI unpack( a ) +The array +.I a +is assumed to contain zero or more T-messages. +.B Unpack +attempts to unpack the first message, and returns a tuple of the form +.RI ( n , v ). +If successful, +.I n +is the number of bytes at the start of +.I a +used by the message, and +.I v +is the corresponding +.B Tmsg +value. +If +.I a +contains the prefix of a valid message but more data is required to complete it, +.I n +is zero (and +.I v +is nil); the caller will typically read more data, append it to +.IR a , +and try again. +If the message is invalid, +.I n +is -1 +and +.I v +is nil. +.TP +.IB t .packedsize() +Return the number of bytes required for the value of +.I t +when packed in its machine-independent format. +(Zero is returned if +.I t +is invalid.) +.TP +.IB t .text() +Return a printable string showing the contents of +.IR t , +for tracing or debugging. +.TP +.IB t .mtype() +Return the 9P message type of the message. +.PP +An R-message is represented by +.BR Rmsg . +Its member functions behave exactly as those for +.BR Tmsg , +except that they operate on R-messages not T-messages. +.PP +When a client reads a directory, the data returned in the reply must be formatted +as described in +.IR read (5): +an array of directory entries, one per file, with each entry formatted in +a machine-independent format. +An appropriate array value can be produced by +.B packdir +from a +.B Sys->Dir +structure, as used by +.IR sys-stat (2). +The space that packed representation will take can be calculated beforehand by +.BR packdirsize . +The server will usually fill the buffer for the reply to the read +with as many entries as will fit, +checking the space remaining against the result of +.B packdirsize +and if the value will fit, storing the result of +.BR packdir . +Given an array +.I a +containing at most one packed directory value (as produced by +.BR packdir ), +.B unpackdir +returns a tuple +.RI ( n,\ d ) +where +.I n +is \-1 if +.I a +is illegally formatted; +.I n +is zero if +.I a +does not contain a complete directory entry value; +and otherwise +.I n +is the number of bytes of +.I a +used to produce the unpacked +.B Dir +value +.I d . +.PP +The functions +.B dir2text +and +.B qid2text +produce printable strings showing the contents of the corresponding data structures, +for use when tracing or debugging. +.PP +Applications that acts as file servers will read T-messages and +reply with R-messages. +They can use +.B Tmsg.read +to read each T-message, build an +.B Rmsg +reply value +.IR r , +and use +.IB r .pack +to produce an array of bytes to be written in reply by +.B Sys->write +(see +.IR sys-read (2)). +.PP +A few specialised programs might need the lower-level function +.B readmsg +that underlies +.B Tmsg.read +and +.BR Rmsg.read . +It reads a single message, which can be either a T-message or R-message, +and returns it as an array of bytes, +which can then be unpacked using +.B Tmsg.unpack +or +.BR Rmsg.unpack . +.I Msize +is the negotiated message size, or 0 meaning `no limit'. +The predicate +.B istmsg +returns true if the contents of array +.I f +looks like a packed representation of a T-message, +judging only by its +.I type +byte. +.PP +When generating the +.B version +message (see +.IR version (5)), +the constant +.B NOTAG +can be used in +.B Tmsg.tag +and +.B Rmsg.tag +to represent `no tag value'. +The constant +.B VERSION +names the current version of the protocol, and can be +used as the value of +.BR Tmsg.version . +.PP +.B Compatible +can be used by a server to +compare its +.I msize +and +.I version +(which is typically +.BR VERSION ) +to those in the +.B Tmsg.Version +message received from a client, to decide its reply, +following the rules in +.IR version (5). +It returns a tuple +.RI ( m ", " v ) +with values for use in the +.B Rmsg.Version +reply. +.I M +is the lesser of +.I msize +and +.IB t .msize , +and +.I v +is the negotiated protocol version, or the value \f5"unknown"\f1 +if no version could be agreed. +The constant +.B DEFMSIZE +is a reasonable value for +.I msize +on current systems. +The resulting value +.I m +can subsequently be given to the various read functions as the limit +.IR msize . +The constant +.B IOHDRSZ +gives the amount to allow for protocol overhead, when limiting data size for +.B Tmsg.Write +and +.BR Rmsg.Read . +.PP +The constant +.B NOFID +can be used as the value of +.B afid +of the +.B attach +message when authentication is not required (see +.IR attach (5)). +.PP +The constant +.B MAXWELEM +gives the protocol-defined limit on the length of the arrays +.B Tmsg.names +and +.BR Rmsg.qids . +For specialised applications, the module defines constants +.BR Tversion , +.BR Rversion , +etc. for the message types of the protocol, and the +other constants mentioned in Section 5. +.SH SOURCE +.B /appl/lib/ninep.b +.SH SEE ALSO +.IR styxservers (2), +.IR intro (5) diff --git a/static/inferno/man2/INDEX.2 b/static/inferno/man2/INDEX.2 new file mode 100644 index 00000000..07b31546 --- /dev/null +++ b/static/inferno/man2/INDEX.2 @@ -0,0 +1,551 @@ +intro 0intro +alphabet alphabet-intro +alphabet-intro alphabet-intro +arg arg +asn1 asn1 +decode asn1 +encode asn1 +attrdb attrdb +bloomfilter bloomfilter +bufio bufio +bufiofill bufio +bufio bufio-chanfill +bufio-chanfill bufio-chanfill +chanfill bufio-chanfill +attr cfg +cfg cfg +record cfg +tuple cfg +command command +complete complete +btos convcs +convcs convcs +stob convcs +crc crc +csv csv +daytime daytime +filet daytime +gmt daytime +local daytime +now daytime +string2tm daytime +text daytime +time daytime +tm2epoch daytime +dbf dbm +dbm dbm +init dbm +debug debug +devpointer devpointer +applycfg dhcpclient +bootconf dhcpclient +bootp dhcpclient +dhcp dhcpclient +dhcpclient dhcpclient +lease dhcpclient +removecfg dhcpclient +accept dial +announce dial +dial dial +listen dial +netinfo dial +netmkaddr dial +reject dial +dialog dialog +getstring dialog +prompt dialog +dict dict +dis dis +block diskblocks +disk diskblocks +diskblocks diskblocks +tempfile diskblocks +chstext disks +disk disks +disks disks +pcpart disks +readn disks +dividers dividers +draw draw-0intro +draw-intro draw-0intro +context draw-context +draw-context draw-context +display draw-display +draw-display draw-display +draw draw-example +draw-example draw-example +example draw-example +draw-font draw-font +font draw-font +draw-image draw-image +image draw-image +draw-point draw-point +point draw-point +draw-pointer draw-pointer +pointer draw-pointer +draw-rect draw-rect +rect draw-rect +draw-screen draw-screen +screen draw-screen +drawmux drawmux +dec encoding +enc encoding +encoding encoding +env env +ether ether +exception exception +attrtext factotum +challenge factotum +copyattrs factotum +delattr factotum +factotum factotum +factotum factotum factotum +findattr factotum +findattrval factotum +getuserpassd factotum +mount factotum +open factotum +parseattrs factotum +proxy +publicattrs factotum +respond factotum +response factotum +rpc factotum +rpcattrs factotum +takeattrs factotum +expand filepat +filepat filepat +match filepat +filter filter +deflate filter-deflate +filter-deflate filter-deflate +inflate filter-deflate +filter-slip filter-slip +slip filter-slip +format format +fsproto fsproto +readprotofile fsproto +readprotostring fsproto +geodesy geodesy +hash hash +hashtable hash +consistent ida +frag ida +fragment ida +ida ida +reconstruct ida +imagefile imagefile +readgif imagefile +readjpg imagefile +readpicfile imagefile +readpng imagefile +readxbitmap imagefile +remap imagefile +ip ip +ir ir +itslib itslib +json json +jvalue json +readjson json +writejson json +keyring intro keyring-0intro +keyring-intro keyring-0intro +auth keyring-auth +keyring keyring-auth +keyring-auth keyring-auth +readauthinfo keyring-auth +writeauthinfo keyring-auth +certtostr keyring-certtostr +keyring keyring-certtostr +keyring-certtostr keyring-certtostr +pktostr keyring-certtostr +sktostr keyring-certtostr +strtocert keyring-certtostr +strtopk keyring-certtostr +strtosk keyring-certtostr +aescbc keyring-crypt +aessetup keyring-crypt +descbc keyring-crypt +desecb keyring-crypt +dessetup keyring-crypt +ideacbc keyring-crypt +ideaecb keyring-crypt +ideasetup keyring-crypt +keyring keyring-crypt +keyring-crypt keyring-crypt +dhparams keyring-gensk +gensk keyring-gensk +genskfrompk keyring-gensk +keyring keyring-gensk +keyring-gensk keyring-gensk +sktopk keyring-gensk +getmsg keyring-getmsg +keyring keyring-getmsg +keyring-getmsg keyring-getmsg +senderrmsg keyring-getmsg +sendmsg keyring-getmsg +getbytearray keyring-getstring +getstring keyring-getstring +keyring keyring-getstring +keyring-getstring keyring-getstring +putbytearray keyring-getstring +puterror keyring-getstring +putstring keyring-getstring +ipint keyring-ipint +keyring keyring-ipint +keyring-ipint keyring-ipint +keyring keyring-rc4 +keyring-rc4 keyring-rc4 +rc4 keyring-rc4 +rc4back keyring-rc4 +rc4setup keyring-rc4 +rc4skip keyring-rc4 +hmac_md5 keyring-sha1 +hmac_sha1 keyring-sha1 +keyring keyring-sha1 +keyring-sha1 keyring-sha1 +md4 keyring-sha1 +md5 keyring-sha1 +sha1 keyring-sha1 +sign keyring-sha1 +verify keyring-sha1 +keyset keyset +allsat lists +anysat lists +append lists +combine lists +concat lists +delete lists +filter lists +ismember lists +last lists +lists lists +map lists +pair lists +partition lists +rev lists +unpair lists +lock lock +intro math-0intro +math math-0intro +math-intro math-0intro +acos math-elem +acosh math-elem +asin math-elem +asinh math-elem +atan math-elem +atan2 math-elem +atanh math-elem +cbrt math-elem +cos math-elem +cosh math-elem +erf math-elem +erfc math-elem +exp math-elem +expm1 math-elem +hypot math-elem +j0 math-elem +j1 math-elem +jn math-elem +lgamma math-elem +log math-elem +log10 math-elem +log1p math-elem +math math-elem +math-elem math-elem +pow math-elem +pow10 math-elem +sin math-elem +sinh math-elem +sqrt math-elem +tan math-elem +tanh math-elem +y0 math-elem +y1 math-elem +yn math-elem +export_int math-export +export_real math-export +export_real32 math-export +import_int math-export +import_real math-export +import_real32 math-export +math math-export +math-export math-export +math math-fp +math-fp math-fp +dot math-linalg +gemm math-linalg +iamax math-linalg +math math-linalg +math-linalg math-linalg +norm1 math-linalg +norm2 math-linalg +sort math-linalg +mpeg mpeg +getbytearray msgio +getmsg msgio +getstring msgio +msgio msgio +putbytearray msgio +puterror msgio +putstring msgio +senderrmsg msgio +sendmsg msgio +basename names +cleanname names +dirname names +elements names +isprefix names +names names +pathname names +relative names +rooted names +newns newns +newuser newns +categories palmfile +dbinfo palmfile +doc palmfile +entry palmfile +palmfile palmfile +pfile palmfile +record palmfile +plumbmsg plumbmsg +pop3 pop3 +add popup +changebutton popup +event popup +mkbutton popup +popup popup +intro prefab-0intro +prefab prefab-0intro +prefab-intro prefab-0intro +compound prefab-compound +prefab prefab-compound +prefab-compound prefab-compound +element prefab-element +prefab prefab-element +prefab-element prefab-element +environ prefab-environ +prefab prefab-environ +prefab-environ prefab-environ +prefab prefab-style +prefab-style prefab-style +style prefab-style +print print +prof prof +profile prof +pslib pslib +rand rand +readdir readdir +regex regex +registries registries +rfc822 rfc822 +scsi scsiio +scsiio scsiio +secstore secstore +intro security-0intro +security-intro security-0intro +auth security-auth +client security-auth +init security-auth +security-auth security-auth +server security-auth +login security-login +security-login security-login +random security-random +randombuf security-random +randomint security-random +security-random security-random +connect security-ssl +secret security-ssl +security-ssl security-ssl +ssl security-ssl +selectfile selectfile +sets sets +sexp sexprs +sexprs sexprs +sh sh +smtp smtp +cert spki +hash spki +key spki +name spki +seqel spki +signature spki +spki spki +subject spki +toplev spki +valid spki +spki-verifier spki-verifier +verifier spki-verifier +verify spki-verifier +spree spree +allow spree-allow +spree-allow spree-allow +cardlib spree-cardlib +spree-cardlib spree-cardlib +gatherengine spree-gather +spree-gather spree-gather +objstore spree-objstore +spree-objstore spree-objstore +srv srv +append string +drop string +in string +prefix string +quoted string +splitl string +splitr string +splitstrl +splitstrr string +string string +string string string +take string +tobig string +toint string +tolower string +toreal string +toupper string +unquoted string +stringinttab stringinttab +dir2text styx +istmsg styx +packdir styx +packdirsize styx +qid2text styx +readmsg styx +rmsg styx +styx styx +tmsg styx +unpackdir styx +styxconv styxconv +styxflush styxflush +styxpersist styxpersist +styxservers styxservers +nametree styxservers-nametree +styxservers styxservers-nametree +styxservers-nametree styxservers-nametree +intro sys-0intro +sys sys-0intro +sys-intro sys-0intro +bind sys-bind +mount sys-bind +sys-bind sys-bind +unmount sys-bind +byte2char sys-byte2char +char2byte sys-byte2char +sys-byte2char sys-byte2char +chdir sys-chdir +sys-chdir sys-chdir +announce sys-dial +dial sys-dial +listen sys-dial +sys-dial sys-dial +dirread sys-dirread +sys-dirread sys-dirread +dup sys-dup +fildes sys-dup +sys-dup sys-dup +export sys-export +sys-export sys-export +fauth sys-fauth +sys-fauth sys-fauth +fd2path sys-fd2path +sys-fd2path sys-fd2path +file2chan sys-file2chan +sys-file2chan sys-file2chan +fversion sys-fversion +sys-fversion sys-fversion +iounit sys-iounit +sys-iounit sys-iounit +millisec sys-millisec +sys-millisec sys-millisec +create sys-open +open sys-open +sys-open sys-open +pctl sys-pctl +sys-pctl sys-pctl +pipe sys-pipe +sys-pipe sys-pipe +aprint sys-print +fprint sys-print +print sys-print +sprint sys-print +sys-print sys-print +pread sys-read +pwrite sys-read +read sys-read +stream sys-read +sys-read sys-read +write sys-read +remove sys-remove +sys-remove sys-remove +seek sys-seek +sys-seek sys-seek +self sys-self +sys-self sys-self +sleep sys-sleep +sys-sleep sys-sleep +fstat sys-stat +fwstat sys-stat +stat sys-stat +sys-stat sys-stat +wstat sys-stat +sys-tokenize sys-tokenize +tokenize sys-tokenize +sys-utfbytes sys-utfbytes +utfbytes sys-utfbytes +sys-werrstr sys-werrstr +werrstr sys-werrstr +mktabs tabs +tabs tabs +tabsctl tabs +tftp tftp +timers timers +cmd tk +imageget tk +imageput tk +keyboard tk +namechan tk +pointer tk +quote tk +tk tk +toplevel tk +handler tkclient +makedrawcontext tkclient +onscreen tkclient +settitle tkclient +snarfget tkclient +snarfput tkclient +startinput +tkclient tkclient +tkclient tkclient tkclient +toplevel tkclient +wmctl tkclient +mkdictname translate +opendict translate +opendicts translate +translate translate +readubf ubfa +ubfa ubfa +uvalue ubfa +writeubf ubfa +venti venti +virgil virgil +volume volume +w3c w3c-css +w3c-css w3c-css +w3c w3c-uris +w3c-uris w3c-uris +w3c w3c-xpointers +w3c-xpointers w3c-xpointers +wait wait +makedrawcontext wmclient +snarfget wmclient +snarfput wmclient +window wmclient +wmclient wmclient +wmlib wmlib +wmsrv wmsrv +workdir workdir +xml xml diff --git a/static/inferno/man2/Makefile b/static/inferno/man2/Makefile new file mode 100644 index 00000000..b938fb36 --- /dev/null +++ b/static/inferno/man2/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.2) + +include ../../mandoc.mk diff --git a/static/inferno/man2/alphabet-intro.2 b/static/inferno/man2/alphabet-intro.2 new file mode 100644 index 00000000..bb8c2bc4 --- /dev/null +++ b/static/inferno/man2/alphabet-intro.2 @@ -0,0 +1,236 @@ +.TH ALPHABET-INTRO 2 +.SH NAME +Alphabet \- experimental typed shell +.SH DESCRIPTION +.SS "Values, type characters and signatures" +Each Alphabet typeset defines one Limbo data type, conventionally +named +.BR Value . +It is usually a discriminated union (pick), with each arm of the +pick representing one of the types in the typeset. +Each one of these types is given a character. These characters are +used to describe all value- and module-types within alphabet. +The set of typeset characters implemented by a typeset is +known as its +.IR alphabet . +.PP +For example, in the +.I alphabet +root typeset +(see +.IR alphabet-main (2)), +a string is represented by +the letter ``s'', held at the Limbo level as +a +.BR "ref Value.S" . +.PP +Each alphabet module has a +.I "type signature" +which describes its +return type and the number and type of any flags or +arguments that it allows. +Inside an +.I alphabet +typeset, this signature is represented as a simple +string where the first character (always present) +indicates the return type of the module. Subsequent +characters up until the first minus (``-'') sign (or the +end of the string) indicate +the module's required argument types. +If the last character is an asterisk +.RB ( * ), +it allows an unlimited repetition of the preceding argument type. +.PP +These may be followed by any number of options, each indicated with a +minus character, followed by the option character and then the type +characters of any arguments it requires. +.PP +For instance, the following Alphabet declaration: +.EX + /mount [-abc] [-x /string] /wfd /string -> /status +.EE +can be represented by the signature +.BR `` rws-a-b-xs-c ''. +.SS "Typesets and proxies" +The root typeset +(see +.IR alphabet-main(2)) +is implemented internally to the +.I alphabet +module. All other types are defined by +.I external +typesets. +.PP +An external +.I alphabet +typeset is conventionally represented by two header files +defining the interface to the typeset, and two modules +giving its implementation. Suppose we are to +create a new typeset, say +.B /foo . +We would create the following files: +.TP 10 +.B /module/alphabet/foo.m +.B Foo.m +declares the interface used by all modules within the typeset. +The existing typeset interface files (for instance +.BR alphabet/grid.m , +documented in +.IR alphabet-grid (2)) +provide examples of this kind of interface. +.TP +.B /appl/alphabet/footypes.b +This module translates +between +.I "internal values" +(each held as a +.B Value +as declared in +.BR foo.m ) +and +.I "external values" +(each held as a +.B Value +as declared in the parent typeset, in this case by +the +.I alphabet +module itself). +Since Limbo does not provide a way of +holding an arbitrary type directly, internal +values are instead stored in a table by a local +.IR proxy +(see below), +and referred to externally by their index there. +.TP +.B /appl/alphabet/foo.b +.B Foo.b +provides the basic type-manipulation +primitives needed by the typeset, for instance +the translation from type character to type name. +It is also a convenient place to implement +helper functions to make using the typeset easier. +For instance, it is conventional for +a typeset's +.B Value +adt to contain one eponymously named member function for each +type character, making sure that the +.B Value +is actually of that type and returning the widened type, +or raising an exception otherwise. +For instance, in the root typeset, +.IB v .s() +returns the type +.BR "ref Value.S" , +or raises an error if +.I v +is not of that type. +.TP +.B /module/alphabet/footypes.m +.B Footypes.m +provides an interface to the typeset proxy module, +.BR footypes.b , +that allows direct +access to values in the +.B foo +typeset, while still allowing +manipulation of those values by an +.I alphabet +instance. +.PP + +The proxy module, +.BR footypes.b , +must define at least one function, +.BR proxy , +which returns a channel through which +all operations on the typeset take place. +The +.B Proxy +module (see +.IR alphabet-proxy (2)) +provides a generic implementation of such a translator; +if +.B footypes.b +uses this, it needs only define the mapping +between values in its parent typeset and its own values. +.PP + + +.SS "alphabet-main(2)" +.TP 10 +.B types() +.B Types +is always the first function in a module to be called. +It should do nothing but return the type signature string of the module. +.TP +.B init() +.B Init +is called to allow the module to initialise its global +state. It is called once only. +It is permissible for this function to raise a +.RB `` fail: '' +exception on failure. The text +following the +.RB `` fail: '' +prefix should describe the reason why. +.TP +\f5run\fR(\fIerrorc\fP, \fIr\fP, \fIopts\fP, \fIargs\fP) +.RS +.B Run +runs an actual instance of the module. It must be re-entrant. +The signature of the +.B run +function varies from typeset to typeset, +but usually includes the above arguments. +.I Args +holds a list of the arguments passed to the module; +.I opts +holds all the flags that have been specified. +Each flag is represented with a tuple, say: (\fIc\fR, \fIoptargs\fP), +where +.I c +gives the option character, and +.I optargs +is a list holding any arguments the flag requires. +The arguments and options passed to the module are guaranteed +to conform with the type signature returned from +.BR types . +Note that each flag may be passed multiple times to the module. +.PP +If the run succeeds, it should return the +resulting value. If the module returns a value that was passed in, +and it contains a reference-count, the count should +be incremented before returning, +If the module succeeds, it is responsible for the +disposal of any arguments and option arguments that it has been given. +Appropriate disposal depends on the type of the argument, +but +.IB v .free(0) +is always sufficient to dispose of value +.IR v . +.PP +If the run fails, it should return +.BR nil ; +its arguments will automatically be freed in this case. +.PP +While processing the +.B run +request, the module should send error and debugging diagnostics +to the +.I errorc +channel (it should take care never to send an empty string). +If it spawns any new processes, it can use the +.BR Report , +.IR r , +(see +.IR alphabet-reports (2)) +to create new diagnostic channels for these processes. +When such an diagnostic channel is no longer in use, +the module should send an empty string on it. +It should take care that +.B Report.start +is called +.I before +.B run +returns. +.RE diff --git a/static/inferno/man2/arg.2 b/static/inferno/man2/arg.2 new file mode 100644 index 00000000..4cb8d937 --- /dev/null +++ b/static/inferno/man2/arg.2 @@ -0,0 +1,168 @@ +.TH ARG 2 +.SH NAME +arg \- parse program arguments +.SH SYNOPSIS +.EX +include "arg.m"; +arg := load Arg Arg->PATH; + +init: fn(argv: list of string); +setusage: fn(s: string); +usage: fn(); +progname: fn(): string; +opt: fn(): int; +arg: fn(): string; +earg: fn(): string; +argv: fn(): list of string; +.EE +.SH DESCRIPTION +.B Arg +parses a program's argument list in a traditional form, +as received from a shell or other program +(see +.IR command (2)). +The list must be passed to +.B init +to set the state for the other functions. +.PP +.B Arg +takes the first argument to be the program name. +Subsequent calls to +.B progname +return it. +.PP +Options are arguments containing one or more letters preceded by +.B \- +(dash, hyphen, minus). +The list of options ends +before the first argument that does not begin with a +.BR \- . +Option lists also end +after an argument +.BR \-\- , +to allow programs +to accept arguments +that would otherwise look like options +(eg, file names for +.IR rm (1) +or a pattern for +.IR grep (1)). +Finally, option lists end +before an argument +.BR \- , +which is traditionally interpreted by some commands as referring to the standard input or output +(depending on context). +.PP +Successive calls to +.B opt +return option characters in turn; 0 is returned at the end of the list. +A program might take a parameter to a given option (eg, an option of the form +.BI -f file +or +.BI -f " file" \f1).\f0 +Following a call to +.BR opt , +a call to +.BR arg +will return the rest of the current argument string if not empty, +failing that, the next argument string if any, +and otherwise +.BR nil . +.B Earg +is like +.B arg +except that if there is no argument associated +with the option, an error message is printed to +standard error, and a "\f5fail:usage\fP" +exception raised. +.B Setusage +sets the error message that will be printed in +this case (preceded by +.RB ` usage: ' +and followed by a newline). +.PP +The argument list remaining after the last call to +.B opt +is returned by +.BR argv . +.SH EXAMPLE +The following Limbo program takes options +.BR b , +.B c +and +.BR f , +where +.B f +takes a file name argument. +.br +.ne 2i +.PP +.EX +.ps -1 +.vs -1 +.ta \w'12345678'u +\w'12345678'u +\w'12345678'u +\w'12345678'u +\w'12345678'u +implement Prog; +include "sys.m"; + sys: Sys; +include "draw.m"; +include "arg.m"; + arg: Arg; +Prog: module +{ + init: fn(nil: ref Draw->Context, nil: list of string); +}; + +init(nil: ref Draw->Context, args: list of string) +{ + sys = load Sys Sys->PATH; + arg = load Arg Arg->PATH; + + bflag := cflag := 0; + file := ""; + arg->init(args); + while((c := arg->opt()) != 0) + case c { + 'b' => bflag = 1; + 'c' => cflag = 1; + 'f' => file = arg->arg(); + * => sys->print("unknown option (%c)\en", c); + } + args = arg->argv(); + sys->print("%s %d %d %s\en", arg->progname(), bflag, cflag, file); + for(; args != nil; args = tl args) + sys->print("%s\en", hd args); +} +.ps +1 +.vs +1 +.EE +.PP +When invoked as follows: +.IP +.B "prog -bc -ffile a b c" +.PP +the output is: +.IP +.EX +prog 1 1 file +a +b +c +.EE +.PP +and when invoked by: +.IP +.B "./prog -b -f file -z -- -bc" +.PP +the output is: +.IP +.EX +unknown option (z) +\&./prog 1 0 file +-bc +.EE +.SH SOURCE +.B /appl/lib/arg.b +.SH SEE ALSO +.IR sh (1), +.IR mash (1), +.IR command (2) diff --git a/static/inferno/man2/asn1.2 b/static/inferno/man2/asn1.2 new file mode 100644 index 00000000..45613473 --- /dev/null +++ b/static/inferno/man2/asn1.2 @@ -0,0 +1,621 @@ +.TH ASN1 2 +.SH NAME +asn1: decode, encode \- ASN.1 (X.208), BER (X.209) encoding +.SH SYNOPSIS +.EX +include "asn1.m"; +asn1 := load ASN1 ASN1->PATH; +asn1->init(); + +Elem: adt { + tag: Tag; + val: ref Value; + + is_seq: fn(e: self ref Elem): (int, list of ref Elem); + is_set: fn(e: self ref Elem): (int, list of ref Elem); + is_int: fn(e: self ref Elem): (int, int); + is_bigint: fn(e: self ref Elem): (int, array of byte); + is_bitstring: fn(e: self ref Elem): (int, int, array of byte); + is_octetstring: fn(e: self ref Elem): (int, array of byte); + is_oid: fn(e: self ref Elem): (int, ref Oid); + is_string: fn(e: self ref Elem): (int, string); + is_time: fn(e: self ref Elem): (int, string); + tostring: fn(e: self ref Elem): string; +}; + +Tag: adt { + class: int; + num: int; + constr: int; + + tostring: fn(t: self Tag): string; +}; + +Value: adt { + pick { + Bool or Int => + v: int; + Octets or BigInt or Real or Other => + bytes: array of byte; + BitString => + unusedbits: int; + bits: array of byte; + Null or EOC => + ; + ObjId => + id: ref Oid; + String => + s: string; + Seq or Set => + l: list of ref Elem; + } + + tostring: fn(v: self ref Value): string; +}; + +Oid: adt { + nums: array of int; + tostring: fn(o: self ref Oid): string; +}; + +init: fn(); +decode: fn(a: array of byte): (string, ref Elem); +decode_seq: fn(a: array of byte): (string, list of ref Elem); +decode_value: fn(a: array of byte, kind, constr: int): + (string, ref Value); +encode: fn(e: ref Elem): (string, array of byte); +oid_lookup: fn(o: ref Oid, tab: array of Oid): int; +print_elem: fn(e: ref Elem); + +.EE +.SH DESCRIPTION +.B ASN1 +supports decoding and encoding of the ASN.1 Basic Encoding Rules +(BER, ITU-T Recommendation X.209). +Despite its name, the module is not a parser for Abstract Syntax Notation One +(ASN.1, ITU-T Recommendation X.208). +.PP +.B ASN1 +handles the BER encodings of all types from the ASN.1 Universal class, and +provides a simple OBJECT IDENTIFIER comparison facility. +.PP +For simplicity, +.B ASN1 +does not take a description of the ASN.1 module of the data being +processed. +Consequently, the (de)composition of tagged types must be performed by the +application. +.B ASN1 +does not know the +context of tagged values and so cannot determine the underlying Universal type +to be able to encode or decode the value automatically. +See the section on Tagging for details on how the application +should handle both implicit and explicit tagging. +.TP +.B init() +The module must be initialised by calling this function +before any other module functions or associated adt member functions are called. +.TP +.BI decode( a ) +Convert the BER encoding given by the byte array +.I a +into an +.B Elem +representing the ASN.1 value. +The byte array must contain +the entire BER encoding of the value and any component values. +.IP +Item values not tagged as a Universal type are converted to an +.B Elem +comprised of the decoded +.B Tag +and a +value given by the +.B Value.Octets +variant, which contains +the original encoding of the value +stripped of the BER tag and length header. +.IP +The function returns a tuple composed of an error string and +the decoded +.BR Elem . +If no errors are encountered the error string is nil. +.TP +.BI decode_seq( a ) +Like +.B decode +except that the data in +.I a +is the encoding of an item of type SEQUENCE, SEQUENCE OF, SET or SET OF +which has been stripped of its tag and length header. +The function decodes all of the items in the SEQUENCE or SET. +.IP +The return value is a tuple composed of an error string and the list of +.BR Elem s +forming the SEQUENCE or SET. +.HP +.BI decode_value( a , +.IB kind , +.IB constr ) +.br +Convert the encoding of a single item value to a +.B Value +data structure. +.IP +The array +.I a +does not include the tag and length header. +Instead, the value's Universal type is given by the +.I kind +argument and length is given by that of the array. +The +.B constr +argument indicates if the encoding is in the BER +constructed form or not. +A value of 0 indicates that the primitive encoding is used, all other values +indicate the constructed encoding. +.IP +The function returns a tuple composed of an error string and a +.B Value +reference. +.TP +.BI encode( e ) +Convert the +.B Elem +.I e +to a BER encoding of the element. +If the element is of a structured type, such as SEQUENCE or SET, +then all component values are also exhaustively encoded. +.IP +The encoding can fail if the +.B Tag +and +.B Value +of the element are not compatible. +The +.I constr +field of the +.B Tag +is currently ignored. +.IP +The function returns a tuple comprising an error string and +the BER encoding. +If no errors are encountered the error string is nil and the +second part of the returned tuple is a byte array of the +BER encoding. +.TP +.BI oid_lookup( o ", " tab ) +Lookup an OBJECT IDENTIFIER value in an array of such values. +Returns the index of the first exact match of +.I o +in the +.I tab +array. +Returns -1 if no match is found. +.TP +.BI print_elem( e ) +Print a textual representation of the element to standard output. +The output is that given by +.BR Elem.tostring() , +followed by a newline character. +.SS "Elem adt" +This is the principal data structure, representing the value of an ASN.1 item. +The adt couples a data representation, the +.BR Value , +with its type specifier, the +.BR Tag . +.TP +.B "Elem.tag" +Specifies the ASN.1 type of the element value. +See the description of the +.B Tag +adt for more details. +.TP +.B "Elem.val" +The value of the element. +See the description of the +.B Value +adt for more details. +.PP +All of the +.IB e .is_ Type +member functions test whether the specific +.B Value +pick variant of +.B Elem.val +and the ASN.1 Universal type, given by +the tag, match and are of the requested form. +A successful match yields the type specific data from the +.B Value +pick variant. +The association of Universal types to +.B Value +pick variants is given in the section on the +.B Value +adt. +.PP +The function +.IB e .is_int +succeeds for BOOLEAN and INTEGER ASN.1 types. +The function +.IB e .is_string +succeeds for all of the ASN.1 Universal string types. +.PP +Except for +.BR is_bitstring , +each function returns a tuple of two values. +The first tuple item is an integer, 1 for success, 0 for failure. +The second item is the type specific data from the +.B Value +pick variant. +.PP +.TP +.IB e ".is_bitstring()" +Like the +.BI is_ Type +functions described above. +Tests that the element is a BIT STRING and returns its data. +.IP +The return value is a tuple comprised of two integers and an array of bytes. +The byte array represents the bit string. +The first integer is 1 for success, 0 for failure. +The second integer is the number of unused bits in the last byte of the data +array. +See the description of the +.B Value.BitString +variant for more information. +.TP +.IB e ".tostring()" +returns a textual representation of the element formed by joining +the strings returned from +.IB e ".tag.tostring()" +and +.IB e ".val.tostring()" . +.PP +.SS "Tag adt" +The +.B Tag +adt denotes the ASN.1 type of a +.B Value +instance. +.TP +.B "Tag.class" +Specifies the class of the type and can take one of the values: +.BR ASN1->Universal , +.BR ASN1->Application , +.B ASN1->Context +or +.BR ASN1->Private . +.TP +.B "Tag.num" +Identifies the particular type, or tag, within the specified class. +Tag numbers for the Universal class are given in the +.B asn1.m +header file. +The inconsistent use of upper-case and mixed-case identifiers comes +straight from the ITU-T Recommendation. +.TP +.B "Tag.constr" +This flag is set by the +.B ASN1 +decode functions to mark if the BER +.I constructed +encoding was used for the value. +A zero value indicates the BER primitive encoding, non-zero indicates +the constructed encoding. +.TP +.IB t ".tostring()" +Returns a string representation of the +.BR Tag . +For Universal class tags the function returns +the string +.RB `` UNIVERSAL +.IR "Name" '', +where +.I Name +is the standard name of the specified Universal type. +For other classes the function returns the class name, in upper-case, +followed by the tag number. +.SS "Value adt" +This pick adt provides the representation for values of each of the various +Universal class types. +Values of all other classes are represented by the +.B Value.Octets +branch of the pick. +.TP +.IB v ".tostring()" +Returns a string representation of the +.BR Value . +.PP +The following table lists +each variant of the pick, indicating the ASN.1 Universal type values +it represents, followed by a brief description. +For each variant of the pick, +.I v +is taken to be of that particular type. +.TP +.B Value.Bool +BOOLEAN +.IP +.IB v .v +equals zero for FALSE, non-zero values represent TRUE. +.TP +.B Value.Int +INTEGER, ENUMERATED +.IP +The value is given by +.IB v .v +.TP +.B Value.BigInt +Used for INTEGER values too large to fit a Limbo int. +.IP +The array +.IB v .bytes +contains the encoding of the value. +The array does not include the tag and length prefix. +.TP +.B Value.Octets +OCTET_STRING, ObjectDescriptor +.IP +The octet string is given by the +.IB v .bytes +array. +.TP +.B Value.Null +NULL +.TP +.B Value.ObjId +OBJECT_ID +.IP +The OBJECT_ID value is represented by the +.B Oid +adt given by +.IB v .id . +.TP +.B Value.Real +REAL +.IP +.B ASN1 +does not convert the value into the Limbo +.B real +data type. +The encoding of the value is given by the +.IB v .bytes +array, which does not include the tag and length prefix. +.TP +.B Value.Other +EXTERNAL, EMBEDDED_PDV and Unknown Universal types +.IP +The raw bytes of the value, excluding the tag nad length header, +are given by the +.IB v .bytes +array. +.TP +.B Value.BitString +BIT_STRING +.IP +The number of bits in the BIT_STRING value does not have to be +a multiple of 8. +Bits are packed into bytes MSB first. +The bytes representing the BIT_STRING value, including the potentially +incomplete last byte, are given by the +.IB v .bits +array. +The number of unused bits in the last byte of the array is given by +.IB v .unused , +counting from the LSB. +.IP +The BER constructed encoding of values other than zero-length is not implemented. +.TP +.B Value.EOC +End of Contents octets marker. +.IP +This value is not normally returned to the application; it is used +privately by BER to support indefinite length value encodings. +.TP +.B Value.String +NumericString, PrintableString, TeletexString, +VideotexString, IA5String, UTCTime, +GeneralizedTime, GraphicString, VisibleString, +GeneralString, UniversalString or BMPString. +.IP +The text is given by the +.IB v .s +Limbo string. +Currently no character-set conversion is performed between +the ASN.1 string byte codes and the Unicode code-points of the Limbo string. +.TP +.B Value.Seq +SEQUENCE, SEQUENCE OF +.IP +ASN.1 assigns both constructs the same type tag. +The difference between them is that, within the +ASN.1 notation, the elements +of a SEQUENCE OF structure are constrained to be of the same type. +BER and, consequently, +.B ASN1 +do not directly enforce the restriction. +.IP +The elements of the sequence are given by the +.IB v .l +list. +.TP +.B Value.Set +SET, SET OF +.IP +ASN.1 assigns both constructs the same type tag. +The difference between them is that, within the ASN.1 notation, +SET items are formed from an unordered list of distinct types, whereas +SET OF items are formed from an unordered list of the same type. +BER and +.B ASN1 +do not enforce these constraints. +.IP +The elements of the set are given by the +.IB v .l +list. +.SS "Oid adt" +The +.B Oid +adt provides the value representation for OBJECT IDENTIFERs. +Within the ASN.1 notation OBJECT IDENTIFIERs ultimately map +to an ordered list of INTEGERs. +.TP +.B Oid.nums +The value of the OBJECT IDENTIFIER, given as an +.BR "array of int" . +.TP +.IB o .tostring() +Returns a textual representation of the OBJECT IDENTIFIER in the +form of a `.' separated list of numbers. +.SS Tagging +Tagging is an ASN.1 mechanism for disambiguating values. +It is usually applied to component types, where several components +of a structured type have the same underlying Universal class type. +Tagging allows the client application to determine to which item of the +structured type a value instance belongs. +.PP +There are two types of tagging, implicit and explicit, defining +the manner in which the values are encoded. +.PP +Implicitly tagged values are encoded in the same way as the underlying type, +but with the tag class and number replaced by that specified. +.PP +Explicitly tagged values are encoded in a nested fashion. +The outermost item bears the specified tag and its contents is the +full encoding of the original value using the tag of its underlying type. +.PP +The following examples of how to decode and encode simple tagged types +should make the distinction clear. +.SS "Decoding Tagged Values" +Consider the following ASN.1 type definitions: +.PP +.EX + Type1 ::= INTEGER + Type2 ::= [Application 2] Type1 -- Explicitly tagged + Type3 ::= [3] IMPLICIT Type1 -- Implicitly tagged + +.EE +For each of the types +the value 16r55 will be decoded as follows: +.PP +.EX + (error, elem) := asn1->decode(data); +.EE +.TP +.BR Type1 " (primitive type)" +.EX +elem.tag.class == Universal +elem.tag.num == INTEGER +tagof elem.val == tagof Value.Int +elem.is_int() == (1, 16r55) +.EE +.TP +.BR Type2 " (explicitly tagged)" +.EX +elem.tag.class == Application +elem.tag.num == 2 +tagof elem.val == tagof Value.Octets + +.EE +The +.B bytes +array of the +.B Value.Octets +value contains the complete encoding of the +.B Type1 +value. +The actual value can be obtained as follows: +.IP +.EX +pick v := elem.val { +Octets => + (err2, e2) := asn1->decode(v.bytes); +} +.EE +with +.B e2 +having exactly the same properties as +.B elem +in the +.B Type1 +case above. +.TP +.BR Type3 " (implicitly tagged)" +.EX +elem.tag.class == Context +elem.tag.num == 3 +tagof elem.val == tagof Value.Octets + +.EE +In this case the +.B bytes +array of the +.B Value.Octets +value contains the encoding of just the value part of the Type1 value, +not the complete encoding. +The actual value can be obtained as follows: +.IP +.EX +pick v := e.val { +Octets => + constr := e.tag.constr; + (err, val) := asn1->decode_value(v.bytes, INTEGER, constr); +} + +.EE +Note that the application has to infer the type of the value from +the context in which it occurs. +The resultant +.B val +is of the type +.B Value.Int +with the value 16r55 stored in the +.B v +member variable. +.SS "Encoding Tagged Values" +To encode the value 16r55 in each of the above types, the following +data structures are required. +.TP +.BR Type1 "(primitive type)" +.EX +tag := Tag(Universal, INTEGER, 0); +val := Value.Int(16r55); +elem := ref Elem(tag, val); +(err, data) := asn1->encode(elem); +.EE +.TP +.BR Type2 "(explicitly tagged)" +.EX +tag1 := Tag(Universal, INTEGER, 0); +val1 := Value.Int(16r55); +elem1 := ref Elem(tag1, val1); +(err1, data1) := asn1->encode(elem1); +tag2 := Tag(Application, 2, 0); +val2 := Value.Octets(data1); +elem2 := ref Elem(tag2, val2); +(err, data) := asn1->encode(elem2); +.EE +.TP +.BR Type3 "(implicitly tagged)" +.EX +tag := Tag(Context, 3, 0); +val := Value.Int(16r55); +elem := ref Elem(tag, val); +(err, data) := asn1->encode(elem); +.EE +.SH SOURCE +.B /appl/lib/asn1.b +.SH BUGS +It is irritating that REAL values are not converted by the module. +This forces the application to do the conversion to and from the +raw BER encoding. Fortunately they are rarely used. +.PP +String encodings are converted as UTF-8 byte sequences. +This will result in strings comprising any character codes above 127 +being incorrectly converted. +.PP +There is a particular form of BER encoding that the module will +handle incorrectly, resulting in a decoding error. +The error occurs when a tagged value is encoded using the +indefinite length specifier and the constructed representation. diff --git a/static/inferno/man2/attrdb.2 b/static/inferno/man2/attrdb.2 new file mode 100644 index 00000000..76f11706 --- /dev/null +++ b/static/inferno/man2/attrdb.2 @@ -0,0 +1,215 @@ +.TH ATTRDB 2 +.SH NAME +attrdb \- database of attribute-value pairs +.SH SYNOPSIS +.EX +include "bufio.m"; +include "attrdb.m"; +attrdb := load Attrdb Attrdb->PATH; + +Attr: adt { + attr: string; + val: string; + tag: int; # application-defined data, initially 0 +}; + +Tuples: adt { + n: int; + pairs: list of ref Attr; + + hasattr: fn(t: self ref Tuples, attr: string): int; + haspair: fn(t: self ref Tuples, + attr: string, value: string): int; + find: fn(t: self ref Tuples, attr: string): list of ref Attr; + findbyattr: fn(t: self ref Tuples, + attr: string, value: string, rattr: string): + list of ref Attr; +}; + +Dbentry: adt { + n: int; + lines: list of ref Tuples; + + find: fn(e: self ref Dbentry, attr: string): + list of (ref Tuples, list of ref Attr); + findfirst: fn(e: self ref Dbentry, attr: string): string; + findpair: fn(e: self ref Dbentry, + attr: string, value: string): + list of ref Tuples; + findbyattr: fn(e: self ref Dbentry, + attr: string, value: string, rattr: string): + list of (ref Tuples, list of ref Attr); +}; + +Db: adt { + open: fn(path: string): ref Db; + sopen: fn(data: string): ref Db; + changed: fn(db: self ref Db): int; + reopen: fn(db: self ref Db): int; + append: fn(db1: self ref Db, db2: ref Db): ref Db; + + find: fn(db: self ref Db, start: ref Dbptr, + attr: string): (ref Dbentry, ref Dbptr); + findpair: fn(db: self ref Db, start: ref Dbptr, + attr: string, value: string): + (ref Dbentry, ref Dbptr); + findbyattr: fn(db: self ref Db, start: ref Dbptr, + attr: string, value: string, rattr: string): + (ref Dbentry, ref Dbptr); +}; + +init: fn(): string; + +parseentry: fn(s: string, lno: int): (ref Dbentry, int, string); +parseline: fn(s: string, lno: int): (ref Tuples, string); +.EE +.SH DESCRIPTION +.B Attrdb +fetches data from textual databases that contain groups of attribute-value pairs. +The format is defined by +.IR attrdb (6). +.PP +.B Init +must be called before any other function in the module. +.PP +Each logical database is represented by a +.B Db +value. +It can span several physical files, named in the body of a +.B database +attribute in the primary file of the database. +(If no such attribute appears, there is just the one physical file in the database.) +.TP +.BI Db.open( path ) +Opens +.I path +as a database, and +returns a (reference to a) +.B Db +value that represents it. +On an error, it returns nil and the system error string contains a diagnostic. +If +.I path +contains a +.B database +attribute with associated attributes of the form +.BI file= filename, +the logical database is formed by (logically) concatenating the contents +of each +.I filename +in the order listed. +See +.IR attrdb (6) +for details. +.TP +.BI Db.sopen( data ) +Treat the contents of the string +.I data +as a database, and return a +.B Db +value representing it. +.TP +.IB db1 .append( db2 ) +Return a +.B Db +value that represents the result of logically appending +the contents of database +.I db2 +to +.IR db1 . +.TP +.IB db .changed() +Return true iff one or more of the underlying files have changed since they were last read. +.TP +.IB db .reopen() +Discard any cached data, and reopen the database files. +Return 0 on success but -1 if any file could not be reopened. +.TP +.IB db .find( ptr , attr ) +Starting at +.IR ptr , +look in +.I db +for the next entry that contains an attribute +.I attr +and return a tuple +.BI ( e , ptr ) +where +.I e +is a +.B Dbentry +value representing the whole entry, and +.I ptr +is a database pointer for the next entry. +If +.I attr +cannot be found, +.I e +is nil. +.TP +.IB db .findpair( ptr\fP,\fP\ attr\fP,\fP\ value\fP) +Starting at +.IR ptr , +look in +.I db +for the next entry that contains the pair +.IB attr = value, +and return a tuple +.BI ( e , ptr ) +where +.I e +is a +.B Dbentry +value representing the whole entry, and +.I ptr +is a database pointer for the next entry. +If the given pair +cannot be found, +.I e +is nil. +.TP +.IB db .findbyattr( ptr\fP,\fP\ attr\fP,\fP\ value\fP,\fP\ rattr\fP ) +Starting at +.I ptr +in +.IR db , +look for the next entry containing both the pair +.IB attr = value +and a pair with attribute +.IR rattr ; +return a tuple +.BI ( e , ptr ) +where +.I e +is a +.B Dbentry +value representing the whole entry, and +.I ptr +is a database pointer for the next entry. +If no such entry can be found, +.I e +is nil. +.PP +.B Parseline +takes a line containing a set of space-separated +.IB attribute = value +pairs, and returns a tuple +.BI ( ts , err ) . +If the line's syntax is correct, +.I ts +is a +.B Tuples +value that represents the pairs as a list of +.B Attr +values. +If the syntax is wrong (eg, unmatched quote), +.I ts +is nil and +.I err +contains a diagnostic. +.SH SOURCE +.B /appl/lib/attrdb.b +.SH SEE ALSO +.IR cfg (2), +.IR attrdb (6), +.IR ndb (6) diff --git a/static/inferno/man2/bloomfilter.2 b/static/inferno/man2/bloomfilter.2 new file mode 100644 index 00000000..8049fd63 --- /dev/null +++ b/static/inferno/man2/bloomfilter.2 @@ -0,0 +1,89 @@ +.TH BLOOMFILTER 2 +.SH NAME +Bloomfilter \- Bloom filters +.SH SYNOPSIS +.EX +include "sets.m"; +include "bloomfilter.m"; +bloomfilter := load Bloomfilter Bloomfilter->PATH; + +init: fn(); +filter: fn(d: array of byte, logm, k: int): Sets->Set; +.EE +.SH DESCRIPTION +A Bloom filter is a method of representing a set to support probabilistic +membership queries. It uses independent hash functions of members +of the set to set elements of a bit-vector. +.I Init +should be called first to initialise the module. +.I Filter +returns a Set +.I s +representing the Bloom filter for the single-member +set +.RI { d }. +.I K +independent hash functions are used, each of range +.RI "[0, 2^" logm ), +to return a Bloom filter +.RI 2^ logm +bits wide. It is an error if +.I logm +is less than 3 or greater than 30. +.PP +Bloom filters can be combined by set union. +The set represented by Bloom filter +.I a +is not a subset of another +.I b +if there are any members in +.I a +that are not in +.IR b . +Together, +.IR logm , +.IR k , +and +.IR n +(the number of members in the set) +determine the +.I "false positve" rate +(the probability that a membership test will not eliminate +a member that is not in fact in the set). +The probability of a +.I "false positive" +is approximately (1-e^(-\fIkn\fP/(2^\fIlogm\fP))^\fIk\fP. +For a given false positive rate, +.IR f , +a useful formula to determine appropriate parameters +is: \fIk\fP=ceil(-log₂(\fIf\fP)), +and \fIlogm\fP=ceil(log₂(\fInk\fP)). +.SH EXAMPLES +Create a 128 bit-wide bloom filter +.I f +representing all the elements +in the string array +.IR elems , +with +.IR k =6. +.EX + A, B, None: import Sets; + for(i:=0; iprint("'%s' might be a member of f\en", s); +.EE +.SH SOURCE +.B /appl/lib/bloomfilter.b +.SH SEE ALSO +.IR sets (2) diff --git a/static/inferno/man2/bufio-chanfill.2 b/static/inferno/man2/bufio-chanfill.2 new file mode 100644 index 00000000..f5908dd3 --- /dev/null +++ b/static/inferno/man2/bufio-chanfill.2 @@ -0,0 +1,57 @@ +.TH BUFIO-CHANFILL 2 +.SH NAME +bufio: chanfill \- buffered I/O interface to named channel +.SH SYNOPSIS +.EX +include "bufio.m"; +chanfill := load ChanFill ChanFill->PATH; + +init: fn(data: array of byte, fid: int, + wc: Sys->Rwrite, r: ref Sys->FileIO, + b: Bufio): ref Bufio->Iobuf; +fill: fn(b: ref Bufio->Iobuf): int; +.EE +.SH DESCRIPTION +.B ChanFill +is an implementation of +.B BufioFill +(see +.IR bufio (2)) +that refills an +.B Iobuf +as data is written to a file created by +.IR sys-file2chan (2), +which is allowed only one writer. +.B Init +returns an +.B Iobuf +allocated from the +.B Bufio +instance +.IR b , +that when read will return data written to the file by another process. +.IR Data , +.IR fid +and +.IR wc +are the values in the tuple presented by +.B Sys->file2chan +on the first write. +.I Data +becomes the initial data for the +.BR Iobuf ; +.B init +replies to the writer on +.IR wc . +The other values are saved for use by +.BR fill : +on later calls to +by +.B Bufio +to refill the buffer, +.B fill +waits for a new write request on +.IB fio .write +and either fills the buffer or signals end-of-file appropriately. +.SH SEE ALSO +.IR bufio (2) diff --git a/static/inferno/man2/bufio.2 b/static/inferno/man2/bufio.2 new file mode 100644 index 00000000..22f454a8 --- /dev/null +++ b/static/inferno/man2/bufio.2 @@ -0,0 +1,318 @@ +.TH BUFIO 2 +.SH NAME +bufio, bufiofill \- buffered input/output module +.SH SYNOPSIS +.EX +include "bufio.m"; + +bufio := load Bufio Bufio->PATH; +Iobuf: import bufio; + +SEEKSTART: con Sys->SEEKSTART; +SEEKRELA: con Sys->SEEKRELA; +SEEKEND: con Sys->SEEKEND; + +OREAD: con Sys->OREAD; +OWRITE: con Sys->OWRITE; +ORDWR: con Sys->ORDWR; + +EOF: con -1; +ERROR: con -2; + +Iobuf: adt { + seek: fn(b: self ref Iobuf, n: big, where: int): big; + offset: fn(b: self ref Iobuf): big; + + read: fn(b: self ref Iobuf, a: array of byte, n: int): int; + write: fn(b: self ref Iobuf, a: array of byte, n: int): int; + + getb: fn(b: self ref Iobuf): int; + getc: fn(b: self ref Iobuf): int; + gets: fn(b: self ref Iobuf, sepchar: int): string; + gett: fn(b: self ref Iobuf, sepstring: string): string; + + ungetb: fn(b: self ref Iobuf): int; + ungetc: fn(b: self ref Iobuf): int; + + putb: fn(b: self ref Iobuf, b: byte): int; + putc: fn(b: self ref Iobuf, c: int): int; + puts: fn(b: self ref Iobuf, s: string): int; + + flush: fn(b: self ref Iobuf): int; + close: fn(b: self ref Iobuf); + + setfill: fn(b: self ref Iobuf, f: BufioFill); +}; + +open: fn(name: string, mode: int): ref Iobuf; +create: fn(name: string, mode, perm: int): ref Iobuf; +fopen: fn(fd: ref Sys->FD, mode: int): ref Iobuf; +aopen: fn(a: array of byte): ref Iobuf; +sopen: fn(s: string): ref Iobuf; + +BufioFill: module +{ + fill: fn(b: ref Bufio->Iobuf): int; +}; +.EE +.SH DESCRIPTION +.B Bufio +provides an interface for buffered I/O. +A buffer is an adt which +is created with +.BR open , +.BR fopen , +.BR create , +.B aopen +and +.BR sopen . +.PP +.B Open +takes two parameters, a +.I filename +and a +.IR mode . +The mode must be +one of +.BR OREAD , +.BR OWRITE , +or +.B ORDWR +(also defined in the +.B Sys +module). +.PP +.B Create +is similar, but +creates a new file if necessary, with file permissions +specified by +.IR perm +(see +.B create +in +.IR sys-open (2)), +or truncates an existing file (without changing its permissions), +before opening it in the given +.IR mode , +and returning a reference to an +.B Iobuf +instance. +.PP +Buffered I/O on an already open file is made possible using +.BR "fopen" , +which takes a file descriptor +.I fd +and an open +.IR mode , +which must be compatible with the mode of the file descriptor. +.PP +The file open functions return a +.B ref +.B Iobuf +to be used in subsequent calls. Thus: +.PP +.EX + lc := bufio->open("/net/tcp/0/local", bufio->OREAD); + addr := lc.gets('\en'); + lc = nil; +.EE +.PP +will open the file +.B /net/tcp/0/local +and read a line (including the terminating newline +character) from this file to initialize the string variable +.BR addr . +The file is closed implicitly by discarding (assigning +.B nil +to) the only +reference to its +.BR Iobuf . +.PP +The function +.B aopen +makes the contents of an array of byte +.I a +readable through an Iobuf (it may not be written). +The function +.B sopen +similarly makes the contents of a string +.I s +readable. +.PP +Processes can share the same instance of +.B Bufio +and safely open and close different files concurrently, but two processes must not access the same +.B Iobuf +concurrently; they must coordinate their access using some external mechanism +(eg, +.IR lock (2)). +.PP +Each output file must be flushed or closed individually (see +.B flush +and +.B close +operations below). +.PP +The calls implemented by +.B Iobuf +are: +.PP +.TF setfill +.PD +.TP +.BR seek , \ read ", and " write +Each has the same parameters as its complement in +.B Sys +(see +.IR sys-seek (2), +.IR sys-read (2)). +Note that +.BR SEEKSTART +etc. are defined by +.B Bufio +as well as by +.BR Sys , +for use by +.BR seek . +.TP +.B offset +Return the current file offset in bytes, taking account of buffered data. +.TP +.B getb +Read a single byte from the buffered stream and return its value +as an +.BR int . +.TP +.B getc +Read a single Unicode character, encoded in UTF +(see +.IR utf (6)), +and +return its value as an +.BR int . +.TP +.B gets +Read a line, up to and including a character specified by +.IR sepchar , +typically a newline. +If none is found, read to the end of the file. +The returned string includes the terminating character. +.TP +.B gett +Read characters until one of the characters in +.IR sepstring . +The returned string includes the separator. +If none of the separator characters is found, +read to the end of the file. +.TP +.BR ungetb , \ ungetc +Undoes the effect of the last +.B getb +or +.BR getc , +so that a subsequent read will reread the byte +.RB ( ungetb ), +or reread the byte(s) of a UTF-encoded character +.RB ( ungetc ) +.TP +.BR putb , \ putc ", and " puts +Each +writes its argument, a byte, a character, or +a string, respectively. +Text is encoded in UTF. +.TP +.B setfill +Associates a +.B BufioFill +module instance +.I f +with +.B Iobuf +.IR b ; +discussed below. +.TP +.B flush +Flush remaining data in the buffer, if necessary. +For files opened for writing, data is flushed to the file. +For files opened for reading, any internally buffered data is discarded, +and the next read will read from the file. +.TP +.B close +Flush remaining data in the buffer, if necessary, close the +associated file, and discard buffers associated with the file. +After close, no further method calls are allowed on the +.B iobuf +adt. +.PP +The +.B BufioFill +module interface can be ignored by most applications. +It allows an +.B Iobuf +to be used to read data from an arbitrary source. +There is no `standard' implementation to load. +Instead, +an application using this interface uses a separate +.B BufioFill +module instance such as +.IR bufio-chanfill (2), +or provides one itself using +.IR sys-self (2). +The resulting module reference is associated, +using +.BR setfill , +with an +.B Iobuf +previously obtained by +.BR sopen +(the string parameter limits the buffer space allocated). +It is up to the +.B BufioFill +module's implementation how its +.B fill +function replenishes the buffer; +it should return the number of bytes now in the buffer, or +.BR Bufio->EOF . +.SH SOURCE +.B /appl/lib/bufio.b +.SH SEE ALSO +.IR bufio-chanfill (2), +.IR intro (2), +.IR sys-open (2), +.IR sys-read (2), +.IR sys-seek (2) +.SH DIAGNOSTICS +Calls that return a +.B ref +type +(eg. +.RB open , +.BR fopen , +.BR gets , +and +.BR gett ) +return +.B nil +when encountering end of file or errors. When an error occurs, the +error string, printable with the +.B %r format, +will usually be set as a consequence of an error in the underlying +.B Sys +module. +The other calls return +.B EOF +upon encountering end of file, and +.B ERROR +when encountering other errors. +.SH BUGS +A given +.B Iobuf +instance may not be accessed concurrently. +.PP +An +.B Iobuf +instance must be manipulated by the same module instance that created it. +.PP +The +.B BufioFill +interface is subject to change. diff --git a/static/inferno/man2/cfg.2 b/static/inferno/man2/cfg.2 new file mode 100644 index 00000000..f7dbaf5e --- /dev/null +++ b/static/inferno/man2/cfg.2 @@ -0,0 +1,159 @@ +.TH CFG 2 +.SH NAME +Cfg, Record, Tuple, Attr \- configuration file parser +.SH SYNOPSIS +.EX +include "cfg.m"; +cfg := load Cfg Cfg->PATH; + +Attr: adt { + name: string; + value: string; +}; + +Tuple: adt { + lnum: int; + attrs: list of Attr; + lookup: fn(t: self ref Tuple, name: string): string; +}; + +Record: adt { + tuples: list of ref Tuple; + lookup: fn(r: self ref Record, name: string) + : (string, ref Tuple); +}; + +init: fn(path: string): string; +lookup: fn(name: string): list of (string, ref Record); +getkeys: fn(): list of string; + +.EE +.SH DESCRIPTION +.B Cfg +parses its configuration file format into a set of +.BR Record s. +.PP +Each line of the configuration file is comprised of a tuple of attributes. +Comments are introduced by the +.RB ' # ' +character and run to the end of the input line. +Empty lines and comments are ignored. +.PP +An attribute has a name followed by an optional value. +The value is specified by separating the name and value +by an +.RB ' = ' +character. +Attribute names and values are input +.IR words . +A word is delimited by spacing characters and the +.RB ' = ' +character. +If a word needs to include any of these characters then the word may be +quoted using single or double quotes. +The start and end quotes must be the same. +The quoting character may be included in the word by appearing twice. +.PP +Examples: +.EX + 'a b c' yields a b c + "a b c" yields a b c + 'a " c' yields a " c + 'a '' c' yields a ' c +.EE +.PP +The name of the first attribute of a tuple is its +.IR key . +The +.I primary tuple value +is the value of its first attribute. +.PP +Tuples whose first attribute name appears at the start of a line (having no +preceeding spacing characters) +are treated as the start of a new record. +A record incorporates all tuples up to the start of the next record. +The +.I record key +is defined to be the name of its first attribute. +The +.I primary record value +is the value of the first attribute. +.PP +The +.B adt +types +.BR Attr , +.B Tuple +and +.B Record +are direct analogues of the constructs defined above. +.P +.TP +.BI init( path ) +.B Init +initialises the +.B Cfg +module, causing it to open and parse the configuration file +given by the +.I path +argument. +If an error is encountered in processing the file then +an error string is returned. +If there are no errors +.B init +returns +.BR nil . +.TP +.BI lookup( name ) +.B Lookup +returns +the set of +.BR Record s +whose +.I key +matches the +.I name +argument. +The return value is a list of +.RI ( "primary record value" , " record" ) +pairs. +.TP +.B getkeys() +.B Getkeys +returns a list of the record keys that appear in the configuration file. +Note that more than one record can have the same key. +Duplicate key names are not returned by +.BR getkeys() . +.TP +.IB record .lookup( name ) +Returns the first tuple in +.I record +whose key matches +.IR name . +The return value is +.RI ( "primary tuple value" , " tuple" ). +If no matching tuple is found then the value +.B (nil, nil) +is returned. +Note that more than one tuple of the record could have a +.I key +that matches +.IR name . +Only the first matching tuple is returned. +If an application makes use of +multiple tuples with the same +.I key +then the +.IB record .tuple +list will have to be handled explicitly by the application. +.TP +.IB tuple .lookup( name ) +Returns the first attribute in +.I tuple +whose name matches +.IR name . +The return value is the value of the attribute or +.B nil +if no matching attribute was found. +.SH SOURCE +.B /appl/lib/cfg.b diff --git a/static/inferno/man2/command.2 b/static/inferno/man2/command.2 new file mode 100644 index 00000000..58d773b0 --- /dev/null +++ b/static/inferno/man2/command.2 @@ -0,0 +1,131 @@ +.TH COMMAND 2 +.SH NAME +command \- command interface +.SH SYNOPSIS +.nf +.B +include "sh.m"; +.BI "cmd := load Command" " path" ; + +.EX +PATH: con "/dis/sh.dis"; +init: fn(ctxt: ref Draw->Context, args: list of string); +.EE +.SH DESCRIPTION +.B Command +defines the module interface for programs started by the Inferno shells +.IR sh (1) +and +.IR mash (1), +and the window manager +.IR wm (1). +Applications to be run as commands must adhere to it, +and any application wishing to start another command may use it. +.PP +Every command must have an +.B init +function with the signature shown above. +Note that Limbo rules allow a module to expose a larger interface for use by +other applications (see for instance +.IR sh (2)); +provided it includes the form of +.B init +shown above, +the module can also be invoked as a command. +.PP +.B Ctxt +provides the graphics context for a windowing application, +which typically passes it to +.IR wmlib (2) +(eg, to +.IR titlebar ) +or directly to +.IR tk (2). +It is +.B nil +for commands started by the shells. +.PP +The arguments to the command are passed as a simple list of strings, +.BR args . +By convention, the name of the command or the name of its +.B .dis +file heads the list. +.PP +.B PATH +names the file containing +.IR sh (1), +(on small systems, this might actually name an +instance of +.IR tiny (1)) +but usually the path name of +another command will be given to the Limbo +.B load +operator: +.IP +.EX +include "sh.m"; +.EE +\&... +.IP +.EX +cmd := load Command "/dis/date.dis"; +cmd->init(nil, "date" :: nil); +.EE +.PP +In practice more care must be taken when invoking programs. +In the example above, the current process executes the body of +.B cmd->init +and if that executes +.BR exit , +raises an exception, +or otherwise modifies the state of the process, +the caller is affected. +The following is more prudent: +.IP +.EX +.ta 6n +6n +child(file: string, args: list of string, pidc: chan of int) +{ + pidc <-= sys->pctl(Sys->NEWFD|Sys->FORKNS|Sys->NEWPGRP, + list of {0, 1, 2}); + cmd := load Command file; + if(cmd == nil){ + sys->print("can't load %s: %r\en", file); + exit; + } + cmd->init(nil, args); +} +parent() +{ + pidc := chan of int; + spawn child(disfile, args, pidc); + pid := <-pidc; + \&... +} +.EE +.PP +A new +.B child +process runs the command only after using +.IR sys-pctl +to insulate the caller from untoward changes to its environment. +Note the idiomatic use of a channel to return the child's process ID +to its parent, which can then if desired use the +.B wait +file of +.IR prog (3) +to watch over the child and wait for its demise. +or use the +.B ctl +file of +.IR prog (3) +to dispose of it. +Furthermore, any state shared between parent and child can safely +be accessed by the child before it sends the ID +because the parent is blocked on the receive. +.SH SEE ALSO +.IR mash (1), +.IR sh (1), +.IR wm (1), +.IR sh (2), +.IR sys-pctl (2) diff --git a/static/inferno/man2/complete.2 b/static/inferno/man2/complete.2 new file mode 100644 index 00000000..927c220b --- /dev/null +++ b/static/inferno/man2/complete.2 @@ -0,0 +1,83 @@ +.TH COMPLETE 2 +.SH NAME +complete \- file name completion +.SH SYNOPSIS +.EX +include "complete.m"; +complete := load Complete Complete->PATH; + +Completion: adt { + advance: int; # whether forward progress has been made + complete: int; # whether the completion now represents a file or directory + str: string; # string to advance, suffixed " " (file) or "/" (directory) + nmatch: int; # number of files that matched + filename: array of string; # their names +}; + +init: fn(); +complete: fn(dir, s: string): (ref Completion, string); +.EE +.SH DESCRIPTION +.B Complete +implements file name completion. +.PP +.B Init +must be called before any other operation of the module. +.PP +Given a directory +.I dir +and a string +.IR s , +.B complete +returns a tuple +.BI ( c,\ err ), +where +.I c +is an analysis of the file names in that directory that begin with the string +.IR s . +The field +.B nmatch +will be set to the number of files that match the prefix and +.B filename +will be filled in with their names. +If the file named is a directory, a slash character will be appended to it. +On an error, +.I c +is nil and +.I err +is a diagnostic string. +.PP +If no files match the string, +.B nmatch +will be zero, but +.I complete +will return the full set of files in the directory. +.PP +The flag +.B advance +reports whether the string +.I s +can be extended without changing the set of files that match. If true, +.B str +will be set to the extension; that is, the value of +.B str +may be appended to +.I s +by the caller to extend the embryonic file name unambiguously. +.PP +The flag +.B complete +reports whether the extended file name uniquely identifies a file. +If true, +.B str +will be suffixed with a blank, or a slash and a blank, +depending on whether the resulting file name identifies a plain file or a directory. +.SH SOURCE +.B /appl/lib/complete.b +.SH SEE ALSO +.IR names (2) +.SH DIAGNOSTICS +The +.I complete +function returns a nil reference and a diagnostic string +if the directory is unreadable or there is some other error. diff --git a/static/inferno/man2/convcs.2 b/static/inferno/man2/convcs.2 new file mode 100644 index 00000000..65c75508 --- /dev/null +++ b/static/inferno/man2/convcs.2 @@ -0,0 +1,367 @@ +.TH CONVCS 2 +.SH NAME +Convcs, Btos, Stob \- character set conversion suite +.SH SYNOPSIS +.EX +include "convcs.m"; +convcs := load Convcs Convcs->PATH; + +Btos: module { + init: fn(arg: string): string; + btos: fn(s: Convcs->State, b: array of byte, nchars: int) + : (Convcs->State, string, int); +}; + +Stob: module { + init: fn (arg: string): string; + stob: fn(s: Convcs->State, str: string) + : (Convcs->State, array of byte); +}; + +Convcs: module { + State: type string; + Startstate: con ""; + + init: fn(csfile: string): string; + getbtos: fn(cs: string): (Btos, string); + getstob: fn(cs: string): (Stob, string); + enumcs: fn(): list of (string, string, int); + aliases: fn(cs: string): (string, list of string); +}; + +.EE +.SH DESCRIPTION +The +.I Convcs +suite is a collection of +modules for converting various standard +coded character sets and character encoding schemes +to and from the Limbo strings. +.PP +The +.B Convcs +module provides an entry point to the suite, mapping character set names and aliases +to their associated +converter implementation. +.SS "The Convcs module" +.TP +.BI init( csfile ) +.B Init +should be called once to initialise the internal state of +.BR Convcs . +The +.I csfile +argument specifies the path of the converter mapping file. +If this argument is nil, the default mapping file +.B /lib/convcs/charsets +is used. +.TP +.BI getbtos( cs ) +.B Getbtos +returns an initialised +.B Btos +module for converting from the requested encoding. +.IP +The return value is a tuple, holding the module reference and an error string. +If any errors were encountered in locating, loading or initialising the requested +converter, the module reference will be nil and the string will contain an explanation. +.IP +The character set name, +.IR cs , +is normalised by mapping all upper-case latin1 characters to lower-case before +comparison with character set names and aliases from the +.B charsets +file. +.TP +.BI getstob( cs ) +.B Getstob +returns an initialised +.B Stob +module for converting from strings to the requested encoding. +Apart from the different module type, the return value and semantics are +the same as for +.BR getbtos() . +.TP +.B enumcs() +Returns a list describing the set of available converters. +The list is comprised of +.RI ( name , +.IR desc , +.IR mode ) +tuples. +.IP +.I Name +is the standard name of the character set. +.IP +.I Desc +is a more friendly description taken directly from the +.B desc +attribute given in the +.I charsets +file. +If the attribute is not given then +.I desc +is set to +.IR name . +.IP +.I Mode +is a bitmap that details the converters available for the given character set. +Valid +.I mode +bits are +.B Convcs->BTOS +and +.BR Convcs->STOB . +For convenience, +.B Convcs->BOTH +is also defined. +.TP +.BI aliases( cs ) +Returns the aliases for the character set name +.IR cs . +The return value is the tuple +.BI ( desc ", " aliases ). +.IP +.I Desc +is the descriptive text for the character set, as returned by +.BR enumcs() . +.IP +.I Aliases +lists all the known aliases for +.IR cs . +The first name in the list is the default character set name \- the name +that all the other aliases refer to. +If the +.I aliases +list is +.B nil +then there was an error in looking up the character set name and +.I desc +will detail the error. +.SS "Using a Btos converter" +The +.B Btos +module returned by +.B getbtos() +is already initialised and is ready to start the conversion. +Conversions can be made on a individual basis, +or in a `streamed' mode. +.PP +.IB converter "->btos(" s , +.IB b , +.IB nchars ) +.RS +Converts raw byte codes of the character set encoding to a Limbo string. +.PP +The argument +.I s +is a converter state as returned from the previous call to +.B btos +on the same input stream. +The first call to +.B btos +on a particular input stream should give +.B Convcs->Startstate +(or +.BR nil) +as the value for +.IR s . +The argument +.I b +is the bytes to be converted. +The argument +.I nchars +is the maximal length of the string to be returned. +If this argument is +.B -1 +then as much of +.I b +will be consumed as possible. +A value of +.B 0 +indicates to the converter that there is no more data and +that any pending state should be flushed. +.PP +The return value of +.B btos +is the tuple +.RI ( state , +.IR str , +.IR nbytes ) +where +.I state +is the new state of the converter, +.I str +is the converted string, and +.I nbytes +is the number of bytes from +.I b +consumed by the conversion. +.PP +The same converter module can be used for multiple conversion streams +by maintaining a separate +.I state +variable for each stream. +.RE +.SS "Using an Stob converter" +The +.B Stob +module returned by +.B getstob() +is already initialised and is ready to start the conversion. +.PP +.IB converter "->stob(" s , +.IB str ) +.RS +Converts the limbo string +.I str +to the raw byte codes of the character set encoding. +The argument +.I s +represents the converter state and is treated in the same way as for +.IB converter ->btos() +described above. +To terminate a conversion +.B stob +should be called with an empty string in order to flush +the converter state. +.PP +The return value of +.B stob +is the tuple +.RI ( state , +.IR bytes ) +where +.I state +is the new state of the converter and +.I bytes +is the result of the conversion. +.RE +.SS "Conversion errors" +When using +.IB converter "->btos()" +to convert data to Limbo strings, +any byte sequences that are not valid for the specific character encoding scheme +will be converted to the Unicode error character 16rFFFD. +.PP +When using +.IB converter "->stob()" +to convert Limbo strings, +any Unicode characters that can not be mapped +into the character set will normally be substituted by the US-ASCII code for `?'. +Note that this may be inappropriate for certain conversions, such converters will use +a suitable error character for their particular character set and encoding scheme. +.SS "Charset file format" +The file +.B /lib/convcs/charsets +provides the mapping between character set names and their implementation modules. +The file format conforms to that supported by +.IR cfg (2). +The following description relies on terms defined in the +.IR cfg (2) +manual page. +.PP +Each record name defines a character set name. +If the primary value of the record is non-empty then the name is an alias, +the value being the real name. +An alias record must point to an actual converter record, not to another alias, as +.I Convcs +only follows one level of aliasing. +.PP +Each converter record consists of a set of tuples with the following primary attributes: +.TP +.B desc +A more descriptive name for the character set encoding. +This attribute is used for the description returned by +.BR enumcs() . +.TP +.B btos +The path to the +.B Btos +module implementation of this converter. +.TP +.B stob +The path to the +.B Stob +module implementation of this converter. +.PP +Both the +.B btos +and +.B stob +tuples can have an optional +.B arg +attribute which is passed to the +.B init() +function of the converter when initialised by +.IR Convcs . +If a converter record has neither an +.B stob +nor a +.B btos +tuple, then it is ignored. +.PP +The following example is an extract from the standard Inferno +.I charsets +file: +.PP +.EX +cp866=ibm866 +866=ibm866 +ibm866= + desc='Russian MS-DOS CP 866' + stob=/dis/lib/convcs/cp_stob.dis arg=/lib/convcs/ibm866.cp + btos=/dis/lib/convcs/cp_btos.dis arg=/lib/convcs/ibm866.cp +.EE +.PP +This entry defines +.I Stob +and +.I Btos +converters for the character set called +.BR ibm866 . +The converters are actually the generic codepage converters +.B cp_stob +and +.B cp_btos +paramaterized with a codepage file. +The entry also defines the aliases +.B cp866 +and +.B 866 +for the name +.BR ibm866 . +.SH FILES +.TP +.B /lib/convcs/charsets +The default mapping between character set names and their implementation modules. +.TP +.BI /lib/convcs/ csname .cp +Codepage files for use by the generic codepage converters +.B cp_stob +and +.BR cp_btos . +Each file consists of 256 unicode runes mapping codepage byte values to unicode by their index. +The runes are stored in the utf-8 encoding. +.SH SOURCE +.TF /appl/lib/convcs/convcs.b +.TP +.B /appl/lib/convcs/convcs.b +Implementation of the +.B Convcs +module. +.TP +.B /appl/lib/convcs/cp_btos.b +Generic +.I Btos +codepage converter. +.TP +.B /appl/lib/convcs/cp_stob.b +Generic +.I Stob +codepage converter. +.br +.PP +.SH SEE ALSO +.IR tcs (1), +.IR cfg (2) diff --git a/static/inferno/man2/crc.2 b/static/inferno/man2/crc.2 new file mode 100644 index 00000000..f3bc96c4 --- /dev/null +++ b/static/inferno/man2/crc.2 @@ -0,0 +1,62 @@ +.TH CRC 2 +.SH NAME +crc \- Crc module +.SH SYNOPSIS +.EX +include "crc.m"; +crc := load Crc Crc->PATH; + +CRCstate: adt { + crc: int; + crctab: array of int; + reg: int; +}; + +init: fn(poly: int, reg: int): ref CRCstate; +crc: fn(state: ref CRCstate, buf: array of byte, nb: int): int; +reset: fn(state: ref CRCstate); +.EE +.SH DESCRIPTION +.B Crc +provides the routines to calculate the CRC (cyclic redundancy +check) over blocks of data. +.PP +.B Init +initializes the module and must be called first. The parameter +.I poly +is the polynomial to use when calculating the CRC value. If a value of +0 is given, the default polynomial 16redb88320 (8r035556101440) is used. The polynomial +has its implicit top bit set. The second parameter +.I reg +is the number with which to initialize the CRC register. This is commonly 0 but, for example, is +16rffffffff in the CRC32 algorithm. The final CRC value is also XORed with this number. +The function +returns a pointer to an adt that holds the current CRC value, +the auxiliary table the algorithm uses and the initial register value. These fields should not be accessed +directly - they are only for internal use. +.PP +.B Crc +calculates the CRC value of the first +.I nb +bytes of the array +.I buf +given the CRC state +.I state +as returned by the +.I init +function. It returns the current CRC value. It may be called repeatedly +to calculate the CRC of a series of arrays of bytes, for example, when +calculating the CRC value for the bytes in a file. +.PP +.B Reset +sets the CRC state to its initial value in readiness for a new CRC +calculation. It avoids the need to call +.I init +again. +.SH SOURCE +.B /appl/lib/crc.b +.SH SEE ALSO +.IR sum (1) + + + diff --git a/static/inferno/man2/crypt-0intro.2 b/static/inferno/man2/crypt-0intro.2 new file mode 100644 index 00000000..3add273e --- /dev/null +++ b/static/inferno/man2/crypt-0intro.2 @@ -0,0 +1,98 @@ +.TH CRYPT-INTRO 2 +.SH NAME +Crypt intro \- introduction to the +.B Crypt +cryptography +module +.SH SYNOPSIS +.EX +include "ipints.m"; +ipints := load IPints IPints->PATH; +IPint: import ipints; + +include "crypt.m"; +crypt := load Crypt Crypt->PATH; +.EE +.SH DESCRIPTION +.B Crypt +contains a mixed set of functions that variously: +.IP \(bu +form cryptographically secure digests; see +.IR crypt-sha1 (2) +.IP \(bu +generate public/private key pairs; see +.IR crypt-gensk (2) +.IP \(bu +encrypt data, using AES, DES, or IDEA; see +.IR crypt-crypt (2) +.IP \(bu +create and verify cryptographic signatures using the +public keys; see +.IR crypt-sign (2) +.SS "Public Key Cryptography" +Public key cryptography has many uses. +Inferno relies on it only for digital signatures. +The private key may be used to digitally +sign data, the public one to verify the signature. +.PP +Inferno provides three data types to represent the different components of the public key signature scheme. +The +.B PK +adt contains the data necessary to construct a public key; +the +.B SK +adt contains the data necessary to construct a secret key. +A key contains the public or secret parameters for the signature algorithm specified by the adt's pick tag. +Ownership of a key is not recorded in the key value itself but in a separate certificate. +Finally, +the +.B PKsig +adt contains one or more values representing a given form of digital signature. +.PP +Certificates and indeed signature representations are varied, and implemented by other modules. +.SS "Large Precision Arithmetic" +Many +.B Crypt +operations require integers much larger than +.B int +or +.BR big . +It therefore uses the multiple-precision package +.IR ipints (2). +That module's +.B IPint +adt +stands for infinite precision integer, though, for +space considerations, our +implementation limits the maximum integer to +2\u\s-2\&8192\s0\d-1. +.PP +An +.B IPint +can be converted into two external formats. +The first is +an array of bytes in which the first byte is the highest order +byte of the integer. This format is useful when +communicating with the +.IR ssl (3) +device. +The second is similar but represents the array of bytes as text, using either base 16 or a MIME base 64 format, +allowing +.BR IPint s +to be stored in files or transmitted across +networks in a human readable form. +.SH SOURCE +.br +.B /libinterp/crypt.c +.br +.B /libinterp/ipint.c +.br +.B /libmp +.br +.B /libsec +.SH SEE ALSO +.IR security-intro (2) +.br +B. Schneier, +.IR "Applied Cryptography" , +1996, J. Wiley & Sons, Inc. diff --git a/static/inferno/man2/crypt-crypt.2 b/static/inferno/man2/crypt-crypt.2 new file mode 100644 index 00000000..dba64c59 --- /dev/null +++ b/static/inferno/man2/crypt-crypt.2 @@ -0,0 +1,139 @@ +.TH CRYPT-CRYPT 2 +.SH NAME +crypt: aessetup, aescbc, dessetup, descbc, desecb, ideasetup, ideacbc, ideaecb \- data encryption +.SH SYNOPSIS +.EX +include "ipints.m"; +include "crypt.m"; +crypt := load Crypt Crypt->PATH; + +Encrypt: con 0; +Decrypt: con 1; + +AESbsize: con 16; + +aessetup: fn(key: array of byte, ivec: array of byte): ref AESstate; +aescbc: fn(state: ref AESstate, buf: array of byte, + n: int, direction: int); + +BFbsize: con 8; + +blowfishsetup: fn(key: array of byte, ivec: array of byte): ref BFstate; +blowfishcbc: fn(state: ref BFstate, buf: array of byte, + n: int, direction: int); + +DESbsize: con 8; + +dessetup: fn(key: array of byte, ivec: array of byte): ref DESstate; +descbc: fn(state: ref DESstate, buf: array of byte, + n: int, direction: int); +desecb: fn(state: ref DESstate, buf: array of byte, + n: int, direction: int); + +IDEAbsize: con 8; + +ideasetup: fn(key: array of byte, ivec: array of byte): ref IDEAstate; +ideacbc: fn(state: ref IDEAstate, buf: array of byte, + n: int, direction: int); +ideaecb: fn(state: ref IDEAstate, buf: array of byte, + n: int, direction: int); +.EE +.SH DESCRIPTION +These functions encrypt and decrypt blocks of data using different +encryption algorithms. +The interfaces are similar. +.PP +Each algorithm has an adt that holds the current state for a given encryption. +It is produced by the setup function for the algorithm, +.IB alg setup , +which is given a secret +.I key +and an initialisation vector +.IR ivec . +A sequence of blocks of data can then be encrypted or decrypted by repeatedly calling +.IB alg cbc +(for `cipher block chaining'), or +.IB alg ebc +(the less secure `electronic code book', if provided). +On each call, +.I buf +provides +.I n +bytes of the data to encrypt or decrypt. +.I N +must be a multiple of the encryption block size +.IB ALG bsize . +Exceptionally, +.B aescbc +allows +.I n +to be other than a multiple of +.B AESbsize +in length, but then +for successful decryption, the decryptor must use the same +sequence of buffer sizes as the encryptor. +.I Direction +is the constant +.B Encrypt +or +.B Decrypt +as required. +.I State +maintains the encryption state, initially produced by the setup function, +and updated as each buffer is encrypted or decrypted. +.PP +The algorithms currently available are: +.TP +.B aes +The Advanced Encryption Standard, AES (also known as Rijndael). +The +.I key +should be 16, 24 or 32 bytes long (128, 192 or 256 bits). +.I Ivec +should be +.B AESbsize +bytes of random data: random enough to be unlikely to be reused but +not cryptographically strongly unpredictable. +.TP +.B blowfish +Bruce Schneier's symmetric block cipher. +The +.I key +is any length from 4 to 56 bytes. +.I Ivec +if non-nil is +.B BFbsize +bytes of random data. +For +.BR blowfishcbc , +.I n +must be a multiple of +.BR BFbsize . +.TP +.B des +The older Data Encryption Standard, DES. +.I Key +is 8 bytes (64 bits), containing a 56-bit key +encoded into 64 bits where every eighth bit is parity. +.I Ivec +is +.B DESbsize +bytes of random data. +.TP +.B idea +The International Data Encryption Standard, IDEA™. +The +.I key +is 16 bytes long (128 bits). +.I Ivec +is +.B IDEAbsize +bytes of random data. +.SH SEE ALSO +.IR crypt-intro (2), +.IR crypt-rc4 (2), +.IR security-random (2) +.PP +IDEA was patented by Ascom-Tech AG (EP 0 482 154 B1, US005214703), +currently held by iT_SEC Systec Ltd. +The patent expired in 2012. diff --git a/static/inferno/man2/crypt-dsagen.2 b/static/inferno/man2/crypt-dsagen.2 new file mode 100644 index 00000000..7ccedc16 --- /dev/null +++ b/static/inferno/man2/crypt-dsagen.2 @@ -0,0 +1,94 @@ +.TH CRYPT-DSAGEN 2 +.SH NAME +crypt: dsagen, eggen, rsagen, rsafill, rsaencrypt, rsadecrypt \- specific public key systems +.SH SYNOPSIS +.EX +include "ipints.m"; +ipints := load IPints IPints->PATH; +IPint: import ipints; + +include "crypt.m"; +crypt := load Crypt Crypt->PATH; + +dsagen: fn(oldpk: ref PK.DSA): ref SK.DSA; + +eggen: fn(nlen: int, nrep: int): ref SK.Elgamal; + +rsagen: fn(nlen: int, elen: int, nrep: int): ref SK.RSA; +rsafill: fn(n: ref IPint, ek: ref IPint, dk: ref IPint, + p: ref IPint, q: ref IPint): ref SK.RSA; +rsaencrypt: fn(k: ref PK.RSA, m: ref IPint): ref IPint; +rsadecrypt: fn(k: ref SK.RSA, m: ref IPint): ref IPint; +.EE +.SH DESCRIPTION +.IR Crypt-gensk (2) +describes a set of functions that generate public/private key pairs given an algorithm name +and a key length. +Some key types allow further parameters for key generation or support further operations. +.PP +.B Dsagen +generates a DSA public/private key pair, represented by the pick adt +.BR SK.DSA , +and compatible with the containing type +.BR SK . +If the parameter +.B oldpk +is not nil, +.B dsagen +takes the new key's modulus and group order from the existing key; +otherwise it generates a new pair of primes. +.PP +.B Eggen +generates a new El-Gamal key pair, represented by the pick adt +.BR SK.Elgamal . +.I Nlen +is the length of the modulus; +.I nrep +is the number of repetitions of the Miller-Rabin primality test (0 gives the default, currently 18). +.PP +.B Rsagen +generates an RSA public/private key pair, represented by the pick adt +.BR SK.RSA , +and compatible with the containing type +.BR SK . +.I Nlen +gives the length of the key modulus in bits; +.I elen +gives the exponent length in bits; and +.I nrep +is as above. +.PP +The RSA private key representation used by Inferno includes some extra values to speed computation. +.B Rsagen +provides those values but keys imported from other systems might not. +Given the essential set of RSA private key parameters for a given key, represented as IPints, +.B rsafill +returns a suitable +.B SK.RSA +for that key, including the extra values. +.PP +The public key of type +.B PK.RSA +can be extracted from a given private key value +.I sk +by referencing the field +.BI sk .pk . +.PP +.B Rsaencrypt +encrypts a message +.IR m , +represented by an IPint, +using the public key +.IR pk . +.PP +.B Rsadecrypt +decrypts +.I m +using private key +.IR sk . +The result is again returned as an IPint. +.SH SEE ALSO +.IR crypt-gensk (2), +.IR crypt-sha1 (2), +.IR security-auth (2), +.IR security-oldauth (2) diff --git a/static/inferno/man2/crypt-gensk.2 b/static/inferno/man2/crypt-gensk.2 new file mode 100644 index 00000000..df51b4ee --- /dev/null +++ b/static/inferno/man2/crypt-gensk.2 @@ -0,0 +1,159 @@ +.TH CRYPT-GENSK 2 +.SH NAME +crypt: genSK, genSKfromPK, sktopk, dhparams, sign, verify \- generate keys and digital signatures +.SH SYNOPSIS +.EX +include "ipints.m"; +ipints := load IPints IPints->PATH; +IPint: import ipints; + +include "crypt.m"; +crypt := load Crypt Crypt->PATH; + +PK: adt +{ + pick { + RSA => + n: ref IPint; # modulus + ek: ref IPint; # exp (encryption key) + Elgamal => + p: ref IPint; # modulus + alpha: ref IPint; # generator + key: ref IPint; # encryption key (alpha**secret mod p) + DSA => + p: ref IPint; # modulus + q: ref IPint; # group order, q divides p-1 + alpha: ref IPint; # group generator + key: ref IPint; # encryption key (alpha**secret mod p) + } +}; + +SK: adt +{ + pick { + RSA => + pk: ref PK.RSA; + dk: ref IPint; # exp (decryption key) + p: ref IPint; # q in pkcs + q: ref IPint; # p in pkcs + # precomputed crt values + kp: ref IPint; # k mod p-1 + kq: ref IPint; # k mod q-1 + c2: ref IPint; # for converting residues to number + Elgamal => + pk: ref PK.Elgamal; + secret: ref IPint; # decryption key + DSA => + pk: ref PK.DSA; + secret: ref IPint; # decryption key + } +}; + +PKsig: adt +{ + pick { + RSA => + n: ref IPint; + Elgamal => + r: ref IPint; + s: ref IPint; + DSA => + r: ref IPint; + s: ref IPint; + } +}; + +genSK: fn(algname: string, length: int): ref SK; +genSKfromPK: fn(pk: ref PK): ref SK; +sktopk: fn(sk: ref SK): ref PK; + +sign: fn(sk: ref SK, m: ref IPint): ref PKsig; +verify: fn(pk: ref PK, sig: ref PKsig, m: ref IPint): int; + +dhparams: fn(nbits: int): (ref IPint, ref IPint); +.EE +.SH DESCRIPTION +.B Crypt +implements a set of public-key signature algorithms. +The public/private key pairs are represented by values of the adt +.BR SK , +containing both the private (secret) and public parts of the pair, +and +.BR PK , +containing only the public part. +The several algorithms are represented by different pick variants. +.PP +.B GenSK +generates a new public/private key pair, represented by +.BR SK . +.I Algname +is the name of the algorithm to use; in the current implementation, +.BR dsa , +.B elgamal +and +.B rsa +are possible. +.I Length +gives the length of the key modulus in bits. +.B GenSK +returns nil if an unknown algorithm has been specified. +.PP +.B GenSKfromPK +generates a private key that has the system parameters as the public key +.IR pk . +It is used to generate new keys that are of the same complexity as old keys. +.PP +.B Sktopk +returns a reference to the public part of private key +.IR sk . +.PP +.B Sign +creates a digital signature of a message +.IR m , +represented by an IPint, +using the private key +.IR sk . +Typically +.I m +represents a secure hash (eg, using +.IR crypt-sha1 (2)) +of a much larger message. +.PP +.B Verify +uses public key +.I pk +to verify that the value +.I sig +is a digital signature of the message +.I m +using the private key corresponding to +.IR pk . +It returns non-zero (true) if the signature is valid; zero (false) otherwise. +.PP +Most applications use generic operations on public and private keys, +referring to +.B PK +and +.BR SK , +but specific variants can be named, such as +.BR PK.RSA +for RSA keys, allowing use of RSA-specific operations. +.IR Crypt-dsagen (2) +describes functions for key generation that are specific to various algorithms, +using algorithm-specific parameters. +.PP +.B Dhparams +creates Diffie-Hellman parameters. It returns +a tuple of IPints +.RI ( alpha , p ). +.I P +is an +.I nbits +long prime number that serves as the modulus. +.I Alpha +is a primitive root in the integer field defined by that modulus. +.SH SEE ALSO +.IR crypt-dsagen (2), +.IR crypt-sha1 (2), +.IR security-auth (2), +.IR security-oldauth (2) diff --git a/static/inferno/man2/crypt-rc4.2 b/static/inferno/man2/crypt-rc4.2 new file mode 100644 index 00000000..8f04705e --- /dev/null +++ b/static/inferno/man2/crypt-rc4.2 @@ -0,0 +1,49 @@ +.TH CRYPT-RC4 2 +.SH NAME +crypt: rc4setup, rc4, rc4skip, rc4back \- RC4 encryption +.SH SYNOPSIS +.EX +include "ipints.m"; +ipints := load IPints IPints->PATH; +IPint: import ipints; + +include "crypt.m"; +crypt := load Crypt Crypt->PATH; + +rc4setup: fn(seed: array of byte): ref RC4state; +rc4: fn(state: ref RC4state, buf: array of byte, n: int); +rc4skip: fn(state: ref RC4state, n: int); +rc4back: fn(state: ref RC4state, n: int); +.EE +.SH DESCRIPTION +These functions implement the stream encryption algorithm that is claimed to +be equivalent to RSA Security's RC4. +It is a pseudo-random number generator with a 256 +byte state and a long cycle. +.PP +.B Rc4setup +sets the initial +.IR seed , +which can be any non-zero length, and +returns a representation of the initial state of the algorithm, +which is used in subsequent calls. +.PP +.B Rc4 +runs the generator starting with the given +.IR state , +and XORs the output of the generator with +the first +.I n +bytes of +.IR buf , +updating the +.IR state . +.B Rc4 +is symmetric and is used both to encrypt and decrypt. +.B Rc4skip +skips over bytes (eg, to account for lost transmissions); +.B rc4back +runs the generator backwards (eg, to account for retransmissions). +.SH SEE ALSO +.IR crypt-intro (2), +.IR crypt-crypt (2) diff --git a/static/inferno/man2/crypt-sha1.2 b/static/inferno/man2/crypt-sha1.2 new file mode 100644 index 00000000..adfe763a --- /dev/null +++ b/static/inferno/man2/crypt-sha1.2 @@ -0,0 +1,144 @@ +.TH CRYPT-SHA1 2 +.SH NAME +crypt: sha1, sha224, sha256, sha384, sha512, md4, md5, hmac_sha1, hmac_md5 \- cryptographic digests +.SH SYNOPSIS +.EX +include "ipints.m"; +ipints := load IPints IPints->PATH; +IPint: import ipints; + +include "crypt.m"; +crypt := load Crypt Crypt->PATH; + +DigestState: adt +{ + # hidden state + copy: fn(d: self ref DigestState): ref DigestState; +}; + +.ta \w'verify:\ 'u +\w'fn(\ \ \ 'u +sha1: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +sha224: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +sha256: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +sha384: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +sha512: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +md4: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +md5: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; + +SHA1dlen, SHA224dlen, SHA256dlen, SHA384dlen, SHA512dlen, MD4dlen, MD5dlen: con ...; + +hmac_sha1: fn(buf: array of byte, n: int, key: array of byte, + digest: array of byte, + state: ref DigestState): ref DigestState; +hmac_md5: fn(buf: array of byte, n: int, key: array of byte, + digest: array of byte, + state: ref DigestState): ref DigestState; +.EE +.SH DESCRIPTION +.BR Sha1 , +.BR sha224 , +.BR sha256 , +.BR sha384 , +.BR sha512 , +.B md4 +and +.B md5 +are cryptographically secure hash functions that produce output called a message digest. +Each function computes a hash of +.I n +bytes of the data in +.IR buf , +using the named algorithm, +and updates the current +.IR state . +They can be called iteratively to form a single digest for many data blocks. +The state is kept in the +.B DigestState +value referenced by +.I state +between calls. +.I State +should be +.B nil +on the first call, and a newly allocated +.B DigestState +will be returned for use in subsequent calls. +On a call in which +.I digest +is not +.BR nil , +the hash is completed and copied into the +.I digest +array. +.B Sha1 +produces a 20-byte hash +.RB ( SHA1dlen ), +.B sha224 +a 28-byte hash +.RB ( SHA224dlen ), +.B sha256 +a 32-byte hash +.RB ( SHA256dlen ), +.B sha384 +a 48-byte hash +.RB ( SHA384dlen ), +.B sha256 +a 64-byte hash +.RB ( SHA512dlen ), +.B md4 +and +.B md5 +a 16-byte one +.RB ( MD4len +and +.BR MD5len ). +.PP +.B Hmac_sha1 +and +.B hmac_md5 +are keyed versions of the hashing functions, following Internet RFC2104. +The +.I key +must be provided in each call, but otherwise +the calling conventions are those of +.BR sha1 . +The +.I key +must currently be no more than 64 bytes. +.PP +.B DigestState +hides the state of partially completed hash functions during processing. +Its +.B copy +operation returns a reference to a new copy of a given state. +.SH EXAMPLES +A program to read a file and hash it using SHA might contain the following inner loop: +.IP +.EX +state: ref DigestState = nil; +while((n := sys->read(fd, buf, len buf)) > 0) + state = kr->sha1(buf, n, nil, state); +digest := array[kr->SHA1dlen] of byte; +kr->sha1(buf, 0, digest, state); +.EE +.SH SOURCE +.B /libinterp/crypt.c +.br +.B /libsec/port/hmac.c +.br +.B /libsec/port/md4.c +.br +.B /libsec/port/md5.c +.br +.B /libsec/port/sha1.c +.SH BUGS +The MD4 algorithm is included only to allow communication with software +that might still use it; it should not otherwise be used now, because it +is easily broken. diff --git a/static/inferno/man2/csv.2 b/static/inferno/man2/csv.2 new file mode 100644 index 00000000..00b10ffc --- /dev/null +++ b/static/inferno/man2/csv.2 @@ -0,0 +1,58 @@ +.TH CSV 2 +.SH NAME +csv \- comma-separated values +.SH SYNOPSIS +.EX +include "bufio.m"; +include "csv.m"; +csv := load CSV CSV->PATH; + +init: fn(bufio: Bufio); +getline: fn(fd: ref Bufio->Iobuf): list of string; +quote: fn(s: string): string; +.EE +.SH DESCRIPTION +.B CSV +provides a few functions to help read and write data in ``comma-separated value'' format. +The +.I csv +format has a sequence of fields on a line (terminated by a newline, carriage return, +or carriage return and newline). +Fields are separated by commas, and may be empty. +A field that starts with a double-quote is a quoted field, continuing +to the next lone double-quote character, including commas and line terminators, +but taking two double-quotes to represent one double-quote. +Any text following quoted text, up to the next comma or line terminator, is included +in the field value. +Note that in a field that does not start with a double-quote, double-quotes are not treated specially. +.PP +.B Init +must be called before any other operation of the module. +.I Bufio +is the instance of the +.IR bufio (2) +module that will provide the open files to be read. +.PP +.B Getline +reads a sequence of fields in +.I csv +format from +.B Iobuf +.IR fd , +unquotes fields as required, and returns them in order in a list. +It returns nil on end-of-file (or read error). +An empty line is regarded as containing a single empty field. +.PP +.B Quote +returns string +.I s +quoted as required by the +.I csv +format: +the result is quoted if +.I s +contains comma, newline, or a quote (and all embedded quotes are doubled). +.SH SOURCE +.B /appl/lib/csv.b +.SH SEE ALSO +.IR sh-csv (1) diff --git a/static/inferno/man2/daytime.2 b/static/inferno/man2/daytime.2 new file mode 100644 index 00000000..04e6cda8 --- /dev/null +++ b/static/inferno/man2/daytime.2 @@ -0,0 +1,145 @@ +.TH DAYTIME 2 +.SH NAME +daytime: text, filet, gmt, local, now, string2tm, time, tm2epoch \- time conversions +.SH SYNOPSIS +.EX +include "daytime.m"; +daytime := load Daytime Daytime->PATH; + +Tm: adt +{ + sec: int; # seconds (0 to 59) + min: int; # minutes (0 to 59) + hour: int; # hours (0 to 23) + mday: int; # day of the month (1 to 31) + mon: int; # month (0 to 11) + year: int; # year-1900; 2000AD is 100 + wday: int; # day of week (0 to 6, Sunday is 0) + yday: int; # day of year (0 to 365) + zone: string; # time zone name + tzoff: int; # time zone offset (seconds from GMT) +}; + +text: fn(tm: ref Tm): string; +filet: fn(now, t: int): string; +gmt: fn(tim: int): ref Tm; +local: fn(tim: int): ref Tm; +now: fn(): int; +time: fn(): string; +tm2epoch: fn(tm: ref Tm): int; +string2tm: fn(date: string): ref Tm; +.EE +.SH DESCRIPTION +These routines perform time conversions relative to the +epoch 00:00:00 GMT, Jan. 1, 1970. +Note the range of values for each member of the +.B Tm +adt. +The conventions are the same as those of C's +.IR ctime . +.PP +.B Text +converts a time structure referenced by +.I tm +from local or GMT time to a string in the format: +.IP +.B "Sat Jan 1 13:00:00 GMT 2000" +.PP +.B Filet +converts the file access or modification time +.I t +from seconds since the epoch to local time as a string +in the format: +.IP +.B "Jan 1 13:00" +.PP +if the file is less than 6 months old or +.IP +.B "Jan 1 2000" +.PP +if the file is older than 6 months, compared to the time +.IR now . +.PP +.B Gmt +converts seconds since the epoch, received in +.IR tim , +to a time structure in Greenwich Mean Time (GMT). +.PP +.B Local +converts seconds since the epoch, received in +.IR tim , +to a time structure in local time. +.PP +.B Now +returns the time in seconds since the epoch, obtained by reading +.B /dev/time +(see +.IR cons (3)). +.PP +.B Time +converts seconds since the epoch +to the local time as a string in the format +.BR "Fri May 19 17:01:36 BST 2000" . +.PP +.B Tm2epoch +converts a time structure referenced by +.I tm +from local or GMT time to seconds since the epoch. +.PP +.B String2tm +returns a reference to a +.B Tm +value corresponding to the date and time in textual form in string +.IR s , +which must have one of the forms below: +.IP +.EX +Sun, 06 Nov 1994 08:49:37 GMT \fR(RFC822, RFC1123)\fP +Sunday, 06-Nov-94 08:49:37 GMT \fR(RFC850)\fP +Sun Nov 6 08:49:37 GMT 1994 \fR(output of \fPtext\fR, above)\fP +.EE +.PP +A missing time zone in any format is assumed to be +.BR GMT . +.B String2tm +returns nil if +.I s +is not correctly formed. +.PP +When local time is first requested, +.B daytime +reads a table for time zone conversion from the +.B timezone +environment variable, if that is set, +and otherwise from the file +.BR /locale/timezone , +which is copied from one of the other files in +.B /locale +when the system is installed. +The timezone table is a text file containing lines of space-separated fields. +The first line gives the normal time zone name and its difference from GMT +in seconds followed by an alternative time zone name (eg, for `daylight savings' or `summer' time) and +its difference from GMT followed by a newline. +The remainder is a list of pairs of times +(seconds past the start of 1970, in the first time zone) +when the alternative time zone applies. +For example: +.IP +.EX +EST -18000 EDT -14400 + 9943200 25664400 41392800 57718800 ... +.EE +.PP +Greenwich Mean Time is represented by +.IP +.EX +GMT 0 +.EE +.SH SOURCE +.B /appl/lib/daytime.b +.SH SEE ALSO +.IR cons (3), +.IR sys-millisec (2) +.SH BUGS +The sign bit of a Limbo integer holding a time will turn on 68 years from the +epoch. diff --git a/static/inferno/man2/dbm.2 b/static/inferno/man2/dbm.2 new file mode 100644 index 00000000..71935a86 --- /dev/null +++ b/static/inferno/man2/dbm.2 @@ -0,0 +1,222 @@ +.TH DBM 2 +.SH NAME +Dbm: Dbf, init \- data base with hashed indexing +.SH SYNOPSIS +.EX +include "dbm.m"; + +dbm := load Dbm Dbm->PATH; +Datum, Dbf: import dbm; + +Datum: type array of byte; + +Dbf: adt { + create: fn(file: string, perm: int): ref Dbf; + open: fn(file: string, flags: int): ref Dbf; + + fetch: fn(db: self ref Dbf, key: Datum): Datum; + delete: fn(db: self ref Dbf, key: Datum): int; + store: fn(db: self ref Dbf, key: Datum, data: Datum, + replace: int): int; + + firstkey: fn(db: self ref Dbf): Datum; + nextkey: fn(db: self ref Dbf, key: Datum): Datum; + + flush: fn(db: self ref Dbf); + isrdonly: fn(db: self ref Dbf): int; +}; + +init: fn(); +.EE +.SH DESCRIPTION +.B Dbm +maintains +key/content pairs in a data base. +The functions will handle very large +(a billion blocks) +databases and will access a keyed item +in one or two filesystem accesses. +.PP +.IR Key s +and +.IR content s +are both represented by arrays of bytes +(with the synonym +.BR Datum ), +allowing +arbitrary binary values. +.PP +The data base is stored in two files. +One file is a directory containing a bit map +and has +.L .dir +as its suffix. +The second file contains all data and has +.L .pag +as its suffix. +An application can access several databases at once, but must avoid +concurrent operations on any one database (eg, by using a monitor process to control access). +.PP +.B Init +must be called before any other operation of the module. +.PP +A database is created by +.IR Dbf.create , +which accepts a file permission parameter +.IR perm , +as described for +.B Sys->create +(see +.IR sys-open (2)); +it creates the two files +.IB file .dir +and +.IB file .pag . +If successful, it returns a +.B Dbf +reference describing the database, which +is open for reading and writing. +(It will truncate an existing database.) +It returns nil if it cannot create the database for some reason, +and sets the error string. +.PP +.B Dbf.open +accepts a +.I mode +parameter as described in +.IR sys-open (2), +and opens the existing database in +.IB file .dir +and +.IB file .pag . +If successful, it returns a +.B Dbf +reference describing the database, +which is open either for reading and writing (ie, +.BR Sys->ORDWR ), +or only for reading +.RB ( Sys->OREAD ) +as determined by +.IR mode . +It returns nil if the database cannot be opened successfully, and sets the error string. +.PP +The remaining operations apply to an existing +.B Dbf +reference +.IR db : +.TP +.IB db .fetch( key ) +Return the data stored under a +.IR key ; +nil is returned if the key is not in the database. +.TP +.IB db .store( key,\ data,\ replace ) +Store +.I data +under the given +.IR key . +If +.I replace +is non-zero, +.B store +will simply replace the existing value by the new one if the key is already +in the database; +if +.I replace +is zero +.B store +will return 0 if the new item was inserted, but +1 if the key already appears in the database, +and the new value will not be stored. +.TP +.IB db .delete( key ) +.I Key +and its associated value +is removed from the database. +.TP +.IB db .firstkey() +Return the first key in the database; +return nil if the database is empty. +.TP +.IB db .nextkey( key ) +Return the key following the given +.IR key , +or nil if there is none. +.TP +.IB db .flush() +Discard any data cached from the file. +The cache is write-through, so it is not necessary to flush the file +before the application exits. +.TP +.IB db .isrdonly() +Return true if +.I db +was opened only for reading and writes are not allowed. +.SH EXAMPLE +.PP +A linear pass through all keys in a database +may be made, +in an (apparently) random order, +by use of +.B Dbf.firstkey +and +.BR Dbf.nextkey . +This code will traverse the data base: +.IP +.EX +for(key := db.firstkey(); key != nil; key = db.nextkey(key)){ + d := db.fetch(key); +} +.EE +.PP +The order of keys presented by +.B Dbf.firstkey +and +.B Dbf.nextkey +depends on a hashing function, not on anything +interesting. +.SH SOURCE +.B /appl/lib/dbm.b +.SH DIAGNOSTICS +All functions that return an +.I int +indicate errors with negative values. +A zero return indicates success. +Routines that return pointers, including values of +.BR Datum , +return nil values on error. +.B Dbf.create +and +.B Dbf.open +return nil on failure to access the database, +setting the error string to a more detailed diagnostic. +.SH BUGS +On some systems (notably Plan 9 but also some Unix systems), +the +.B .pag +file might contain holes where no data block has ever been written so +that its apparent size is about +four times its actual content. +These files cannot be copied +by normal means (cp, cat) +without filling in the holes. +.PP +Except for +.B firstkey +and +.BR nextkey , +.B Datum +values returned +by these functions +point to storage +that is changed by subsequent calls. +.PP +The sum of the sizes of a +key/content pair must not exceed +the internal block size +(currently 512 bytes). +Moreover all key/content pairs that hash +together must fit on a single block. +.B Dbf.store +will return an error in the event that +a block fills with inseparable data. diff --git a/static/inferno/man2/debug.2 b/static/inferno/man2/debug.2 new file mode 100644 index 00000000..b0cd837f --- /dev/null +++ b/static/inferno/man2/debug.2 @@ -0,0 +1,382 @@ +.TH DEBUG 2 +.SH NAME +debug \- process debugging +.SH SYNOPSIS +.EX +include "debug.m"; +debug := load Debug Debug->PATH; + +Pos: adt +{ + file: string; + line: int; + pos: int; +}; +Src: adt +{ + start: Pos; # range within source files + stop: Pos; +}; +Sym: adt +{ + srctopc: fn(s: self ref Sym, src: ref Src): int; + pctosrc: fn(s: self ref Sym, pc: int): ref Src; +}; + +Module: adt +{ + addsym: fn(m: self ref Module, sym: ref Sym); + stdsym: fn(m: self ref Module); + dis: fn(m: self ref Module): string; + sbl: fn(m: self ref Module): string; +}; + +Prog: adt +{ + cont: fn(p: self ref Prog): string; + delbpt: fn(p: self ref Prog, dis: string, pc: int): string; + event: fn(p: self ref Prog): string; + grab: fn(p: self ref Prog): string; + kill: fn(p: self ref Prog): string; + setbpt: fn(p: self ref Prog, dis: string, pc: int): string; + stack: fn(p: self ref Prog): (array of ref Exp, string); + start: fn(p: self ref Prog): string; + status: fn(p: self ref Prog): (int, string, string, string); + step: fn(p: self ref Prog, how: int): string; + stop: fn(p: self ref Prog): string; + unstop: fn(p: self ref Prog): string; +}; + +Exp: adt +{ + name: string; + m: ref Module; + + expand: fn(e: self ref Exp): array of ref Exp; + val: fn(e: self ref Exp): (string, int); + src: fn(e: self ref Exp): ref Src; + findsym:fn(e: self ref Exp): string; + srcstr: fn(e: self ref Exp): string; +}; + +init: fn(): int; +startprog: fn(dis, dir: string, ctxt: ref Draw->Context, + argv: list of string): (ref Prog, string); +prog: fn(pid: int): (ref Prog, string); +sym: fn(sbl: string): (ref Sym, string); +.EE +.SH DESCRIPTION +.B Debug +is the module interface to the debugging facilities provided by +.IR prog (3). +It allows facilities for inspection of a program's data structures, +as it is running, and to start and stop a running program +under program control. +.B Init +must be called before any other function to initialise +.IR debug 's +global state. +.PP +.B Startprog +starts up a program under control of the debug module. +.I Dis +is the full pathname of the Dis module to load (which must +be compatible with +.IR command (2); +.I dir +is the current directory in which to put the new process; +.I ctxt +and +.I argv +are the arguments given to the new process. +.B Startprog +returns a tuple +.RI ( prog ,\ err ) +where +.I prog +can be used to interrogate and control the running process, +as detailed below, unless there is an error, in which case +.I prog +will be nil, and +.I err +contains a description of the error. +.B Prog +is similar to startprog, except that it attaches to an +already running process identified by +.IR pid . +.SS Controlling a process +A +.B Prog +adt provides routines for controlling a running process. +It implements the following routines. +Unless otherwise stated, they return +.B nil +on success and a diagnostic string on error. +.TP 10 +.IB prog .cont() +Run the program until a break point is reached. +.TP +.IB prog .delbpt(\fIdis\fP,\ \fIpc\fP) +.B Delbpt +deletes the breakpoint in the Dis module with filename +.I dis +at Dis instruction +.IR pc . +.TP +.IB prog .event() +.B Event +waits for a state transition in the running +.I prog +and returns the new state, as returned by a read +of the +.B dbgctl +file (see +.IR prog (3)). +.TP +.IB prog .grab() +.B Grab +stops the +.I prog +and puts it into a state where single stepping +is possible. +.TP +.IB prog .kill() +.B Kill +kills +.IR prog . +.TP +.IB prog .setbpt(\fIdis\fP,\ \fIpc\fP) +.B Setbpt +sets a breakpoint in the Dis module with filename +.I dis +at Dis instruction +.IR pc . +.TP +.IB prog .stack() +.B Stack +returns a tuple +.RI ( exps ,\ err ) +where +.I exps +is an array of +.B Exp +adts, each representing one frame of the current +execution stack of +.IR prog . +If an error occurs, +.I exps +will be nil, and +.I err +will contain a description of the error. +.TP +.IB prog .start() +.B Start +runs +.I prog +until it hits a breakpoint or exits. +.TP +.IB prog .status() +.B Status +returns a tuple +(\fIpgrp\fP, \fPuser\fP, \fPstate\fP, \fPmodule\fP) +where +.I pgrp +is the process group id of +.IR prog , +.I user +is the owner of the process, +.I state +is the current state of the process, and +.I module +is the module implementation name of the currently +executing module. +.TP +.IB prog .step(\fIhow\fP) +.B Step +steps +.I prog +forward in a manner specified by +.IR how , +which is one of the following constants: +.RS +.TP +.B StepExp +Step one expression evaluation. +.TP +.B StepStmt +Step one source statement. +.TP +.B StepOver +Step over one called function. +.TP +.B StepOut +Step until the current function has returned. +.RE +.TP +.IB prog .stop() +Stop +.IR prog +from running. +.TP +.IB prog .unstop() +Release a program from its stopped state; +breakpoints will no longer be triggered. +.SS "Inspecting data" +The +.B Exp +adt provides facilities for inspecting +the data structures of a running Dis process. +A hierarchical data structure can be expanded into +an array of its component +.BR Exp s, +as long as the appropriate symbol information has +been located correctly using +.B stdsym +or +.BR addsym , +and +.BR findsym . +.PP +A +.B Pos +represents a position in a Limbo source code file; +it holds the source file name, the line number (origin 1) +and the character within the line (origin 0). +The +.B Src +adt represents a range in a Limbo source code file; +.B Src.start +and +.B Src.stop +represent the beginning and the end of the +range, respectively. +.PP +A +.B Sym +represents a +.B .sbl +symbol file, and is created by calling +.BI sym( p ) +where +.I p +is the pathname of the symbol file; +.B sym +returns a tuple +.RI ( sym ,\ err ), +where if +.I sym +is nil, +.I err +contains an error message. +A +.B Sym +can map between a Dis PC and a source file address, +and vice versa. +For a given +.B Sym +.IR sym , +.IB sym .srctopc( src ) +returns the PC associated with +.IR src +(or -1 on error); +.IB sym .pctosrc +converts the other way (and returns +.B nil +on error). +.PP +Each element +.I e +in the top level stack, as returned by +.BR Prog.stack , +has an associated +.B Module +.IB e .m +which needs to be associated with a +.B Sym +so that +.I debug +can glean from it the type information it needs. +Given a module +.IR m , +.IB m .stdsym() +will try and find a symbol file in +a standard place, but this will fail if the symbol file +or the Dis file is in a non-standard place. +.IB M .addsym( s ) +sets the symbol file for +.I m +to the +.B Sym +.IR s . +.IB M .dis() +and +.IB m .sbl() +return the paths of the Dis and symbol files associated +with +.I m +respectively. +.PP +Each top level stack element +expands into three elements, ``args'', ``locals'', +and ``module'', representing the arguments to the function, +the function's local variables, and the module-global +variables of the function's module respectively. +Before a top level stack element can be expanded, +it is necessary to call +.B findsym +on it to locate the function's data. +.TP 10 +.IB exp .name +The name of the symbol. +.TP +.IB exp .expand() +Expand a hierarchical structure into an array of its +component elements. A list element expands into two +elements named ``hd'' and ``tl''; a tuple into elements +named ``t0'', ``t1'',..., an array into elements named ``0'', ``1'',..., etc. +.TP +.IB exp .val() +.B Val +returns a tuple +.RI ( s ,\ flag ) +where +.I s +is a string representation of the value of +.IR exp , +and if +.I flag +is zero, +.I exp +cannot be expanded. +.TP +.IB exp .src() +.B Src +returns the file range associated with +.IR exp. +.TP +.IB exp .findsym() +If +.I exp +is a top level stack frame (i.e. one of the members of the array +returned by +.BR Prog.stack ) +then +.B findsym +will attempt to locate its type and name. If it succeeds, +it returns the null string, otherwise it returns +an error indicating the problem. +.TP +.IB exp .srcstr() +.B Srcstr +returns a string representing the position in the source file +of +.IR exp . +.SH FILES +.BI /prog/ pid /* +.SH SOURCE +.B /appl/lib/debug.b +.SH SEE ALSO +.IR wm-deb (1), +.IR prog (3) +.SH BUGS +There is no way of looking at the types of the data extracted. diff --git a/static/inferno/man2/devpointer.2 b/static/inferno/man2/devpointer.2 new file mode 100644 index 00000000..19c82f13 --- /dev/null +++ b/static/inferno/man2/devpointer.2 @@ -0,0 +1,78 @@ +.TH DEVPOINTER 2 mux +.SH NAME +devpointer \- I/O interface for the pointer device +.SH SYNOPSIS +.EX +include "draw.m"; # for Draw->Pointer +include "devpointer.m"; +ptr := load Devpointer Devpointer->PATH; + +init: fn(); +reader: fn(file: string, posn: chan of ref Draw->Pointer, + pid: chan of (int, string)); +bytes2ptr: fn(buf: array of byte) : ref Draw->Pointer; +ptr2bytes: fn(ptr: ref Draw->Pointer): array of byte; +.EE +.SH DESCRIPTION +.B Devpointer +reads messages from pointer devices with the same data format as +.BR /dev/pointer , +converting them to +.B Pointer +adts. +.PP +.B Init +must be called before any other operation of the module. +.PP +.B Reader +should be spawned by the caller. +It opens the pointer device specified by +.IR file , +and sends a value +.BI ( id,\ err ) +on channel +.IR pid . +On success, +.I id +is the process ID of the spawned process and +.I err +is nil; on an error, +.I err +is a diagnostic, and +.I id +is undefined. +If the file was opened successfully, +.B reader +continually reads the pointer device and sends +.B Pointer +adts over the channel +.IR posn . +If +.I file +is +.BR nil , +the default device is +.BR /dev/pointer . +.PP +.B Bytes2ptr +converts the array of bytes +.I buf +to a +.B Pointer +and returns a reference to it. +.I Buf +should consist of exactly +.B Devpointer->Size +bytes and be in the format returned by +.BR /dev/pointer . +.PP +.B Ptr2bytes +provides the inverse transformation of +.BR bytes2ptr : +it packs the data into an array of bytes of appropriate format, +which it returns. +.SH FILES +.B /dev/pointer +.SH "SEE ALSO" +.IR draw-intro (2), +.IR draw-pointer (2) diff --git a/static/inferno/man2/dhcpclient.2 b/static/inferno/man2/dhcpclient.2 new file mode 100644 index 00000000..7cab98de --- /dev/null +++ b/static/inferno/man2/dhcpclient.2 @@ -0,0 +1,354 @@ +.TH DHCPCLIENT 2 +.SH NAME +Dhcpclient: Bootconf, Lease, bootp, dhcp, applycfg, removecfg \- client's side of dynamic host configuration protocol +.SH SYNOPSIS +.EX +include "dhcp.m"; # sic +dhcpclient := load Dhcpclient Dhcpclient->PATH; +Bootconf, Lease: import dhcpclient; + +Bootconf: adt { + ip: string; + ipgw: string; + ipmask: string; + bootf: string; + bootip: string; + dhcpip: string; + siaddr: string; + serverid: string; + sys: string; + dom: string; + lease: int; + options: array of array of byte; + vendor: array of array of byte; + + new: fn(): ref Bootconf; + get: fn(c: self ref Bootconf, n: int): array of byte; + getint: fn(c: self ref Bootconf, n: int): int; + getip: fn(c: self ref Bootconf, n: int): string; + getips: fn(c: self ref Bootconf, n: int): list of string; + gets: fn(c: self ref Bootconf, n: int): string; + put: fn(c: self ref Bootconf, n: int, a: array of byte); + putint: fn(c: self ref Bootconf, n: int, v: int); + putips: fn(c: self ref Bootconf, n: int, ips: list of string); + puts: fn(c: self ref Bootconf, n: int, s: string); +}; + +Lease: adt { + configs: chan of (ref Bootconf, string); + + release: fn(l: self ref Lease); +}; + +init: fn(); +tracing: fn(debug: int); +bootp: fn(net: string, ctlifc: ref Sys->FD, device: string, + init: ref Bootconf): (ref Bootconf, string); +dhcp: fn(net: string, ctlifc: ref Sys->FD, device: string, + init: ref Bootconf, options: array of int): + (ref Bootconf, ref Lease, string); + +applycfg: fn(net: string, ctlifc: ref Sys->FD, + conf: ref Bootconf): string; +removecfg: fn(net: string, ctlifc: ref Sys->FD, + conf: ref Bootconf): string; +.EE +.SH DESCRIPTION +.B Dhcpclient +implements the client side of the Dynamic Host Configuration Protocol (DHCP) of Internet RFC2131. +In the interface, Internet addresses are represented as strings, in forms that +.IR ip (2) +can parse, and that can be written directly to control files in +.IR ip (3). +.PP +.B Init +must be called before invoking any other operation of the module. +.PP +.B Bootp +reserves the UDP port on +.I net +for use by BOOTP/DHCP clients, and sends a BOOTP request (ie, one without a DHCP operation code). +.I Net +is the name of the network directory (if nil, the default is +.BR /net ). +If +.B bootp +is to configure the interface according to the results received, +.I ctlifc +should be open on the control file of the +.IB net /ipifc +directory for the interface to be configured; otherwise it should be nil. +.B Bootp +repeats the request periodically until it either receives a reply or has made 5 attempts. +It returns a tuple +.BI ( conf,\ err ). +If it has received a reply, +.I conf +refers to a +.B Bootconf +value that contains the values received, and +.I err +is nil. +If +.I ctlifc +is not nil, the interface will also have been configured appropriately. +If a valid reply has not been received, or some other error occurred, +.I conf +is nil, and +.I err +is a diagnostic. +.PP +.B Dhcp +has a similar interface, but runs the full DHCP protocol. +The +.I options +array has integers representing possible DHCP options; +.B dhcp +asks the server to provide values for them. +If +.I options +is nil, a few option values are requested that might be useful for Inferno +(eg, subnet mask, gateway, DNS server, authentication and file servers, and so on). +If the server does supply them, they can be retrieved either from +specific fields of +.BR Bootconf , +or using its +.I get +operations. +.I Init +is also usually nil, but can refer to a +.B Bootconf +that provides some values to suggest to the server, for instance if the client +knows a previously-assigned address stored in non-volatile memory. +.B Dhcp +returns a tuple +.BI ( conf,\ lease,\ err ), +where +.I conf +and +.I err +are just as for +.BR bootp , +and the new component +.I lease +is a reference to a +.B Lease +value that gives access to the state of the client's address assignment. +.PP +DHCP allows a server to assign a client an address permanently, or to lease it for a specified time. +In the latter case, +.B Bootconf.lease +will have a non-zero value, and +the client must periodically renew the lease to retain the address, and +.B dhcp +creates a process to do so. +The +.B Lease +value provides a way for that process to communicate changes (if any) to the network configuration. +Each time the configuration changes, the process will send a message on the channel +.BR configs . +(The channel is buffered, and +.B dhcp +first discards any previous notifications not yet received, so there are no ill effects +if no process ever receives from the channel.) +Each message is a tuple +.BI ( conf,\ diag ). +If a new state change has been made successfully, +.I conf +refers to a +.B Bootconf +value with the details. +Otherwise, +.I conf +is nil and +.I diag +explains what went wrong. +In any case, the watchdog process continues to try to extend the lease, or failing that, +obtain a new network configuration, perhaps from another server. +.B Lease.release +may be called to release the leased address and stop the watchdog. +.PP +.B Bootconf +has the following operations: +.TP +.B new() +Return a reference to a +.B Bootconf +with values initialised to nil or 0. +.TP +.IB bc .get( n ) +Return the value of DHCP option +.I n +as a raw array of bytes. +Return nil if the option is not set. +.TP +.IB bc .getint( n ) +Return the value of option +.I n +interpreted as an integer. +Return zero if the option is not set. +.TP +.IB bc .getip( n ) +Return the first Internet address provided for option +.IR n . +.TP +.IB bc .getips( n ) +Return a list of all the Internet addresses provided for option +.IR n . +.TP +.IB bc .gets( n ) +Return the value of option +.I n +as a string. +.TP +.IB bc .put( n,\ a ) +Set the value of DHCP option +.I n +to the bytes of byte array +.IR a . +If +.I a +is nil, +.B put +removes any existing value for the option. +.TP +.IB bc .putint( n,\ v) +Set option +.I n +to the integer value +.IR v . +.TP +.IB bc .putips( n,\ ips ) +Set option +.I n +to the list of Internet addresses +.IR ips . +.TP +.IB bc .puts( n,\ s ) +Set option +.I n +to the string +.IR n . +.PP +.B Dhcpclient +names a few constants representing commonly-used configuration options (attributes). +They are suitable parameters for the option selector +.I n +of +.BR Bootconf 's +.I get +and +.I put +functions. +The first set of constants name options for both BOOTP and DHCP: +.PP +.PD 0 +.TP 25 +.B Odnsserver +Internet address(es) of Domain Name Servers +.TP +.B Odomainname +Current domain (see +.BR Bootconf.dom ) +.TP +.B Ohostname +Host name (see +.BR Bootconf.sys ) +.TP +.B Omask +Network mask (IPv4). +Also see +.BR Bootconf.ipmask . +.TP +.B Onetbiosns +NetBIOS servers +.TP +.B Ontpserver +Network Time Protocol servers +.TP +.B Opop3server +POP3 mail servers +.TP +.B Orouter +Default router for subnet (see +.BR Bootconf.ipgw ) +.TP +.B Osmtpserver +SMTP mail delivery servers +.TP +.B Ovendorinfo +Vendor-specific data (see below) +.TP +.B Owwwserver +HTTP proxy +.PD +.PP +The second set has DHCP options: +.PP +.PD 0 +.TP 25 +.B Obootfile +Name of the file containing a kernel for the client to load (eg, by TFTP); see +.BR Bootconf.bootf . +.TP +.B Olease +Lease time for IP address, in seconds (also see +.BR Bootconf.lease ) +.TP +.B Omaxmsg +Maximum DHCP size the client is willing to accept (minimum 576 bytes). +.TP +.B Orebindingtime +Time interval in seconds from address assignment to the time address must be rebound. +.TP +.B Orenewaltime +Time interval in seconds from address assignment to first attempt to renew the address. +.TP +.B Otftpserver +TFTP server from which to fetch kernel and parameter files; see +.BR Bootconf.bootip . +.TP +.B Ovendorclass +Identify vendor type and configuration of client. Inferno sets +this to +.B plan9_386 +(sic) to encourage Plan 9 DHCP servers to respond; other servers will ignore it. +.PD +.PP +The final set give vendor-specific options that Inferno shares with Plan 9: +.PP +.PD 0 +.TP 25 +.B Ovendor +Flag OR'd in to an option number to mark it as destined for the `vendor information' section. +.TP +.B OP9auth +Authentication server +.RB ( Ovendor|129 ) +.TP +.B OP9fs +File server +.RB ( Ovendor|128 ) +.PD +.PP +Given a network configuration in +.IR conf , +and a valid file descriptor for a network interface's control file, +in the network +.IR net , +.B applycfg +sets the basic interface parameters (address, network mask, default gateway), +and writes other parameters to +.IR net /ndb ; +conversely, +.B removecfg +removes from the interface just those parameters set by +.IR conf . +Normally these functions are called automatically, as required, by +.B dhcp +and its watchdog process. +.SH SOURCE +.B /appl/lib/dhcpclient.b +.SH SEE ALSO +.IR bootpd (8), +.IR dhcp (8) diff --git a/static/inferno/man2/dial.2 b/static/inferno/man2/dial.2 new file mode 100644 index 00000000..2398c17b --- /dev/null +++ b/static/inferno/man2/dial.2 @@ -0,0 +1,332 @@ +.TH DIAL 2 +.SH NAME +Dial: accept, announce, dial, listen, netinfo, netmkaddr, reject \- make network connections +.SH SYNOPSIS +.EX +include "dial.m"; +dial := load Dial Dial->PATH; + +Connection: adt +{ + dfd: ref FD; # data file + cfd: ref FD; # control file + dir: string; # pathname of line directory +}; + +announce: fn(addr: string): ref Connection; +dial: fn(addr, local: string): ref Connection; +listen: fn(c: ref Connection): ref Connection; +accept: fn(c: ref Connection): ref Sys->FD; +reject: fn(c: ref Connection, why: string); + +netmkaddr: fn(addr, defnet, defsvc: string): string; + +Conninfo: adt +{ + dir: string; # connection directory + root: string; # network mount point + spec: string; # its binding spec + lsys: string; # local host address + lserv: string; # local service + rsys: string; # remote host address + rserv: string; # remote service + laddr: string; # local address in dial form + raddr: string; # remote address in dial form +}; + +netinfo: fn(c: ref Connection): ref Conninfo; +.EE +.SH DESCRIPTION +.B Dial +establishes network connections. +The description below uses the following definitions: +.TF network +.PD +.TP +.I addr +is a network address in one of the following forms: +.br +.IP +.IB network ! netaddr ! service\f1 +.br +.IB network ! netaddr\f1 +.br +.IR netaddr +.TP +.I network +Any directory listed in +.B /net +(eg, +.BR tcp ), +or the special token, +.BR net . +The special name +.B net +stands for any network that connects +the current host and +.IR netaddr . +A network name can be preceded by the full path name of a directory +of networks, using the form +.I /dir/network +(eg, +.BR /net.alt/tcp ). +.TP +.I netaddr +A host name, a domain name, a network address, +or a meta-name of the form +.BI $ attribute\f1, +which +is replaced by +.I value +from the corresponding attribute-value pair +in the connection server data base (see +.IR db (6)). +.PP +The functions +.B dial +and +.B announce +translate a given +.I addr +to an actual network address using +the connection server +.IR cs (8). +If a logical name +.I addr +corresponds to several network addresses, +for instance if a destination machine has several interfaces, +.I cs +will return them all; +.B dial +or +.B announce +will try each in turn until one works. +In particular, if +.I addr +is +.BR net , +.I cs +will return addresses on +all networks that are common to source and destination. +The translation procedure accesses +.I cs +using its interface file +.BR cs , +which is sought as follows: +first, in an explicit directory +.BI / dir +if one was given in +.IR network ; +second, in the standard directory +.BR /net ; +and finally in the directory +.BR /net.alt +.RB ( dial +only). +If the connection server cannot be found, +the +.I addr +is used as-is. +.PP +If a connection attempt is successful, the +.B dir +member of the resulting +.B Connection +will be +the path name of a +.I line directory +that has files for accessing the connection. +One line directory exists for each possible connection. +The +.B data +file in the line directory is opened to +make a connection, and read and written to communicate with the destination. +The +.B ctl +file in the line directory can be used to send commands to the line. +See +.IR ip (3) +for messages that can be written to the +.B ctl +file. +The last close of both +.B data +and +.B ctl +file will close the connection. +The +.B remote +file in the line directory contains the address called; the file +.B local +contains the local address assigned. +.PP +The function +.B dial +calls destination +.I addr +on a multiplexed network. +If the connection server returns several possible locations for +.IR addr , +.B dial +tries each in turn, until a connection is made, +or no address remains to be tried. +.B Dial +returns a reference to a +.B Connection +value containing a string +.B dir +that names the conversation directory for the connection, +a file descriptor +.B dfd +open for reading and writing the +.B data +file in that directory, and +a file descriptor +.B cfd +open for reading and writing the directory's +.B ctl +file. +If +.IR local +is non-empty, and the network allows the local address to be set, +as is the case with UDP and TCP port numbers, +the local address will be set to +.IR local . +.PP +.B Announce +and +.B listen +are the complements of +.BR dial . +.B Announce +establishes a network name to which incoming calls can be made. +In +.IR addr , +.I netaddr +gives the name or address of one of the local host's interfaces on which to listen for +calls to the given +.IR service ; +it can be +.B * +to listen for calls on any interface on +.IR network . +.B Announce +returns a reference to a +.B Connection +value in which only the +.B cfd +descriptor is open, on the control file representing the announcement. +.B Listen +takes as its only argument a reference to the +.B Connection +returned by a successful call to +.BR announce . +When a call is received, +.B listen +returns a reference to a new +.B Connection +value that refers to the conversation directory for the incoming call; +only the +.B cfd +descriptor is open. +That call can be accepted or rejected. +Use +.B accept +to obtain a file descriptor for the data file for the conversation. +Use +.B reject +to reject the incoming call; some networks will also tell the caller the reason +.IR why . +.PP +.B Netmkaddr +makes +.I addr +into a full network address, +suitable for +.B dial +or +.BR announce . +It adds the default network +.I defnet +(usually "\f5net\fP") +and a default service +.I defsvc +to the given +.I addr +as required, including +.RB ` ! ' +separators, +and returns the result. +.PP +Given a +.BR Connection , +.B netinfo +returns a reference to a +.B Conninfo +value that gives details about the connection and its network. +.SH EXAMPLES +.PP +Make a call and return an open file descriptor to +use for communications: +.IP +.EX +callkremvax(): ref Sys->FD +{ + c := dial->dial("tcp!kremvax!80", nil); + if(c == nil) + return nil; + return c.dfd; +} +.EE +.PP +Call the local certificate signer: +.IP +.EX +dialsigner(service: string): ref Sys->FD +{ + c := dial->dial("net!$SIGNER!inflogin", nil); + if(c == nil) + return nil; + return c.dfd; +} +.EE +.PP +Listen for incoming calls. +.IP +.EX +listener() +{ + ac := dial->announce("tcp!*!9995"); + if(ac == nil){ + sys->print("can't announce: %r\en"); + exit; + } + for(;;){ + lc := dial->listen(ac); + if(lc == nil){ + sys->print("listen: %r\en"); + exit; + } + sys->print("incoming: %s\en", hd ctext(lc)); + spawn client(lc); + } +} + +client(c: ref Connection) +{ + dfd := dial->accept(c); + if(dfd == nil){ + sys->print("%s: can't accept: %r\en", c.dir); + exit; + } + buf := array[Sys->ATOMICIO] of byte; + while((n := sys->read(dfd, buf, len buf)) > 0) + sys->write(dfd, buf, n); +} +.EE +.SH SOURCE +.B /appl/lib/dial.b +.SH DIAGNOSTICS +The integer valued functions return 0 on success and -1 on error; +functions returning a reference return nil on error. +In those cases the system error string is set. diff --git a/static/inferno/man2/dialog.2 b/static/inferno/man2/dialog.2 new file mode 100644 index 00000000..bec2f045 --- /dev/null +++ b/static/inferno/man2/dialog.2 @@ -0,0 +1,74 @@ +.TH DIALOG 2 +.SH NAME +dialog: prompt, getstring \- +basic dialog boxes +.SH SYNOPSIS +.EX +include "dialog.m"; +dialog := load Dialog Dialog->PATH; + +init: fn(); +prompt: fn(ctxt: ref Draw->Context, p: ref Draw->Image, + icon, title, msg: string, + dflt: int, labs: list of string): int; +getstring: fn(ctxt: ref Draw->Context, p: ref Draw->Image, + s: string): string; +.EE +.SH DESCRIPTION +.B Dialog +module provides two simple dialog boxes +for use by +.IR wm (1) +applications. +.B Init +should be called once to initialise its internal state. +.PP +.B Prompt +uses the graphics context +.I ctxt +to pop up a dialog box to prompt the user to choose from a set of alternatives, +or to acknowledge a message. +The box is created near the northwest corner of +the parent window +.IR p , +represented by the window's image. +(If the parent window is a Tk Toplevel +.IR t , +for instance, the appropriate value is +.IB t .image \f1.)\fP +If +.I p +is nil, the box is centred on the screen. +The box +has the given +.I title +and an optional +.IR icon . +It displays the given +.I msg +and a number of buttons, labelled with the strings in +.IR labs . +The dialog box waits for the user to push a button, and then +returns the index of the button pushed (the first element of +.I labs +is index 0). +If the user types a newline, the +.I dflt +value is returned. The button with the +.I dflt +index is specially outlined in the dialog box. +.PP +.B Getstring +pops up a dialog box near the parent window +.IR p . +The box contains the +.I msg +and an entry widget. +It waits for the user to type a string and a newline, +and then returns the typed string, without the newline. +.SH SOURCE +.B /appl/lib/dialog.b +.SH SEE ALSO +.IR draw-context (2), +.IR tk (2), +.IR wmlib (2) diff --git a/static/inferno/man2/dict.2 b/static/inferno/man2/dict.2 new file mode 100644 index 00000000..6564e278 --- /dev/null +++ b/static/inferno/man2/dict.2 @@ -0,0 +1,57 @@ +.TH DICT 2 +.SH NAME +dict - list of string pairs +.SH SYNOPSIS +.EX +include "dict.m"; +dict := load Dictionary Dictionary->PATH; + +Dict: adt { + add: fn(d: self ref Dict, e: (string, string)); + delete: fn(d: self ref Dict, k: string); + lookup: fn(d: self ref Dict, k: string): string; + keys: fn(d: self ref Dict): list of string; +}; +.EE +.SH DESCRIPTION +.B Dict +provides a simple string to string association list: +.TP +.IB d .add( e ) +Adds a new tuple +.IR e +to the list, +representing a new +.RI ( "key ,\ value" ) +pair. +.TP +.IB d .delete ( k ) +Deletes all pairs with key +.I k +from the list. +.TP +.IB d .lookup( k ) +Tries to find a pair with key +.I k +and returns its associated value, +or nil if the key was not found. +.TP +.IB d .keys() +Returns a list of all +keys +in the list. +.SH SOURCE +.B /appl/lib/dict.b +.SH SEE ALSO +.IR hash (2) +.SH BUGS +No attempt is made to +keep keys unique in the list; if more +than one pair exists with the same key, then +.B lookup +will select one of them arbitrarily. +.PP +Computational overhead of lookup and deletion of +keys is proportional +to the number of pairs in the list. + diff --git a/static/inferno/man2/dis.2 b/static/inferno/man2/dis.2 new file mode 100644 index 00000000..bb3cdc91 --- /dev/null +++ b/static/inferno/man2/dis.2 @@ -0,0 +1,488 @@ +.TH DIS 2 +.SH NAME +dis \- read Dis object files +.SH SYNOPSIS +.EX +include "dis.m"; +dis := load Dis Dis->PATH; + +Inst: adt +{ + op: int; + addr: int; + mid: int; + src: int; + dst: int; +}; + +Type: adt +{ + size: int; + map: array of byte; +}; + +Data: adt +{ + op: int; # encoded op + n: int; # number of elements + off: int; # byte offset in data space + pick { + Zero => # DEFZ + Bytes => # DEFB + bytes: array of byte; + Words => # DEFW + words: array of int; + String => # DEFS + str: string; + Reals => # DEFF + reals: array of real; + Array => # DEFA + typex: int; + length: int; + Aindex => # DIND + index: int; + Arestore => # DAPOP + Bigs => # DEFL + bigs: array of big; + } +}; + +Link: adt +{ + pc: int; + desc: int; + sig: int; + name: string; +}; + +Import: adt +{ + sig: int; + name: string; +}; + +Except: adt +{ + s: string; + pc: int; +}; + +Handler: adt +{ + pc1: int; + pc2: int; + eoff: int; + ne: int; + t: ref Type; + etab: array of ref Except; +}; + +Mod: adt +{ + name: string; + srcpath: string; + + magic: int; + rt: int; + ssize: int; + isize: int; + dsize: int; + tsize: int; + lsize: int; + entry: int; + entryt: int; + + inst: array of ref Inst; + types: array of ref Type; + data: list of ref Data; + links: array of ref Link; + imports: array of array of ref Import; + handlers: array of ref Handler; + + sign: array of byte; +}; + +init: fn(); +loadobj: fn(file: string): (ref Mod, string); +op2s: fn(op: int): string; +inst2s: fn(i: ref Inst): string; +.EE +.SH DESCRIPTION +The +.B Dis +module decodes the contents of a Dis object file containing a single module, +of the format defined by +.IR dis (6). +The module defines many constants, giving symbolic names to +Dis instruction codes, addressing mode masks, magic numbers, and other +bits of the object code. +.PP +.B Init +must be called before any other function, to initialise the module. +.PP +.B Loadobj +reads a Dis object file from +.IR file , +and returns a reference to a +.B Mod +adt that represents the module's contents, as the first element of the tuple; +the string element of the tuple is nil. +On error, the string element contains a diagnostic, and the +reference is nil. +.PP +.B Op2s +returns the assembly-language representation, as used by +.IR asm (1), +of the Dis operation code +.IR op . +It returns the string +.IB ` OP op' +if +.I op +does not correspond to a known operation code. +.PP +.B Inst2s +returns a string corresponding to a disassembly of Dis instruction +.IR i , +including addressing modes. +.PP +The module defines integer constants giving +symbolic names to the Dis instruction codes, all of the form +.BI I name +where +.I name +is the name of the instruction, all in upper case: +.IP +.BR INOP , +.BR IALT , +.BR INBALT , +\&... +.BR INEWZ , +.BR INEWAZ , +.BR IRAISE +.PP +The name +.B MAXDIS +is also defined; it has the value of the first unassigned Dis operation code. +.PP +Most of the members of the adt types have an obvious interpretation +on reference to +.IR dis (6). +.PP +The adt +.B Mod +represents a single module. +It contains values extracted from the module's header, +and references to structures representing the contents of +the Dis file's code, data, type +and external linkage sections: +.TF entryt +.PD +.TP +.B magic +The constant +.B XMAGIC +(unsigned Dis module) +or the constant +.B SMAGIC +(signed Dis module). +.TP +.B sign +If +.B magic +is +.BR SMAGIC , +the +.B sign +field contains the bytes in the signature section of the module header. +Otherwise, there is no signature and +.B sign +is +.BR nil . +.TP +.B name +The name of the implementation module. +.TP +.B srcpath +The source of the dis file relative to the inferno root. +.TP +.B rt +Run-time options: a bit mask of the constants +.BR MUSTCOMPILE , +.B DONTCOMPILE +and +.BR SHAREMP . +.TP +.B ssize +Stack extent +.TP +.B isize +Number of instructions +.TP +.B dsize +Size in bytes of the module's global data area +.TP +.B tsize +Number of type descriptors +.TP +.B lsize +Number of external linkage descriptors +.TP +.B entry +PC (instruction offset) of the default entry point for the module +.TP +.B entryt +Index of the type descriptor for the module's entry point +.TP +.B inst +Array representing the contents of the code segment; +length +.IB m .isize +.TP +.B types +Array of the module's type descriptors; +length +.IB m .tsize +.TP +.B data +list of data descriptors representing instructions for creating the module's data segment +.TP +.B links +array of the module's external linkage descriptors (for exported functions); length +.IB m .lsize +.TP +.B imports +an array of import descriptor tables, one table for each module imported by this +module. Each table is an array of pairs giving the signature and name of each +function imported. +.TP +.B handlers +an array of exception handlers used in this module. Each handler consists of +the range of pc's it covers, the exception structure offset within the +frame, the number of declared exceptions (as opposed to strings) in the handler, +the type (if any) of any memory to clear when the exception occurs and a table +of exceptions. The latter is an array containing pairs of exceptions and +pc values. The final entry gives the pc to jump to +in the '*' case or -1 if not applicable. +.PP +The +.B Type +adt represents the value of a type descriptor: +.TF entryt +.PD +.TP +.B size +Size in bytes of the object represented by this descriptor +.TP +.B map +Bitmap describing the location of pointers in the object (see +.IR dis (6)) +.PP +The +.B Link +adt represents the value of a link descriptor: +.TF entryt +.PD +.TP +.B name +Name of the exported function +.TP +.B pc +Instruction index in +.B Mod.code +of the function's entry point +.TP +.B desc +Index in +.B Mod.types +of the type describing the function's stack frame +.TP +.B sig +Integer hash of the function's type signature +.PP +The +.B Inst +adt represents a single Dis instruction in the instruction stream. +The member +.B op +is the Dis instruction code. +The member +.B addr +contains the addressing mode flags for middle, source and destination operands. +Constants are defined to help unpack it. +.PP +The middle operand description is selected by the constant mask +.BR ARM : +.IP +.IB i ".addr & ARM" +.PP +The valid results and interpretation are as follows: +.IP +.RS +.TF AXNON +.TP +.B AXNON +No middle operand. +.TP +.B AXIMM +.BI $ n +.TP +.B AXINF +.IB n (fp) +.TP +.B AXINM +.IB n (mp) +.PD +.RE +.PP +The source operand's addressing mode is extracted as follows: +.IP +.BI ( i ".addr>>3)&AMASK" +.PP +The following combinations are valid, where +.I n +is the value in +.IB i .src : +.IP +.RS +.TF AIND|AMP +.TP +.B AXXX +No operand +.TP +.B AFP +The operand is +.IB n (fp) +.TP +.B AMP +The operand is +.IB n (mp) +.TP +.B AIMM +The operand is +.BI $ n +(ie, immediate literal +.IR n ) +.TP +.B AIND|AFP +The operand is +.IB si ( fi (fp)) +.TP +.B AIND|AMP +The operand is +.IB si ( fi (mp)) +.RE +.PD +.PP +where +.I fi +is the offset for the first indirection, extracted from +.IR n : +.IP +.BI ( n ">>16)&16rFFFF)" , +.PP +and +.I si +is the offset for the second indirection, also extracted from +.IR n: +.IP +.BI ( n "&16rFFFF)" . +.PP +The destination addressing mode is interpreted in a similar way, +except that the addressing mode is extracted as follows: +.IP +.BI ( i ".addr&AMASK)" +.PP +and the value of the offset +.I n +is found in +.IB i .dst . +.I Fi +and +.I si +are extracted from +.I n +as before. +.PP +Finally, +.B Data +adt represents a data item, which tells the system's module loader +how to initialise part of the module's global data segment. +It has the following members: +.TP +.B op +the encoded type and length; usually ignored: the +.B pick +tag and +.BR n , +below, +usually suffice +.TP +.B n +the number of data values +.TP +.B off +the byte offset of the first data value to initialise, relative to the current loading base +.PP +The alternatives of the +.B pick +select the correct variant to see the data values encoded in the +object file as Limbo values +of the correct type. +The interpretation is straightforward for the tags +.BR Bytes , +.BR Words , +.B Bigs +and +.BR Reals : +the corresponding array members are arrays of +.B n +elements of the appropriate type. +The remaining cases are as follows: +.TF Arestore +.PD +.TP +.B String +The member +.B str +has the decoded representation of the +corresponding +.I n +data bytes from the object file. +.TP +.B Array +The member +.B typex +is the index in +.B Mod.types +of the array's type, and member +.B length +is its length. +.TP +.B Aindex +This alternative can appear only following a value of +.BR Data.Array . +The member +.B index +is an index into the corresponding array as represented in the global data space, +which determines a new loading base address for subsequent +.B Data +items. +The previous base address is stacked on an internal stack. +.TP +.B Arestore +Pop the address from the internal address stack and make that the current +loading address. +The request marks the end of a sequence of +.B Data +items initialising an array. +.SH SOURCE +.B /appl/lib/dis.b +.SH SEE ALSO +.IR disdep (1), +.B wm/rt +in +.IR wm-misc (1), +.IR dis (6) +.br +"The Dis Virtual Machine", in Volume 2. diff --git a/static/inferno/man2/diskblocks.2 b/static/inferno/man2/diskblocks.2 new file mode 100644 index 00000000..15c79e26 --- /dev/null +++ b/static/inferno/man2/diskblocks.2 @@ -0,0 +1,120 @@ +.TH DISKBLOCKS 2 +.SH NAME +Diskblocks: Block, Disk, tempfile \- temporary storage of variable-sized blocks +.SH SYNOPSIS +.EX +include "diskblocks.m"; +diskblocks := load Diskblocks Diskblocks->PATH; + +Block: adt { + addr: big; # address on file + n: int; # size in bytes +}; + +Disk: adt { + init: fn(fd: ref Sys->FD, gran: int, maxblock: int): ref Disk; + new: fn(d: self ref Disk, n: int): ref Block; + release: fn(d: self ref Disk, b: ref Block); + read: fn(d: self ref Disk, b: ref Block, + a: array of byte, n: int): int; + write: fn(d: self ref Disk, b: ref Block, + a: array of byte, n: int): ref Block; +}; + +init: fn(); +tempfile: fn(): ref Sys->FD; +.EE +.SH DESCRIPTION +.B Diskblocks +manages a set of variable-sized blocks on a temporary file. +.PP +.B Init +must be called before any other function in the module. +.PP +Each block has an address and a size in bytes, represented by a value of type +.BR Block . +.PP +Each file is represented by the type +.BR Disk , +providing the following operations: +.TF 8n +.TP +.BI init( fd\f5,\fP\ gran\f5,\fP\ maxblock ) +Initialises the file +.I fd +for use as temporary block storage and returns a reference to a +.B Disk +to describe it. +.I Fd +must be open for reading and writing, and must refer to a file that allows random access. +Blocks are allocated in multiples of the granularity +.IR gran , +in bytes; +the largest possible block is +.I maxblock +bytes, which must be a multiple of +.IR gran . +.TP +.IB d .new( n ) +Allocate a block of +.I n +bytes on Disk +.I d +and return a reference to it. +.TP +.IB d .release( b ) +Free the Block +.IR b , +making it available for reallocation. +.TP +.IB d .write( b\f5,\fP\ a\f5,\fP\ n ) +Write +.I n +bytes from array +.I a +to Block +.I b +on Disk +.IR d , +returning a reference to the resulting Block. +If +.I b +is nil or +.I n +exceeds +.IR b 's +current size, +.B write +allocates a new block (releasing +.IR b ). +Thus the returned value might differ from +.IR b , +and must be used in subsequent IO requests. +.TP +.IB d .read( b\f5,\fP\ a\f5,\fP\ n ) +Read +.I n +bytes from Block +.I b +on Disk +.I d +into array +.IR a , +returning the number of bytes read. +.I N +must not exceed +.IB b .n . +.PD +.PP +.B Tempfile +returns a file descriptor referring to a newly-created temporary file, +suitable for use by +.BR Disk.init . +The file will be removed automatically +when the file descriptor is closed. +.SH SOURCE +.B /appl/lib/diskblocks.b +.SH DIAGNOSTICS +A function that returns an integer returns -1 on error; a function that returns a reference +returns nil on error. +The system error string is set in either case. diff --git a/static/inferno/man2/disks.2 b/static/inferno/man2/disks.2 new file mode 100644 index 00000000..17970a52 --- /dev/null +++ b/static/inferno/man2/disks.2 @@ -0,0 +1,317 @@ +.TH DISKS 2 +.SH NAME +disks: Disk, PCpart, readn, chstext \- generic disk and partition interface +.SH SYNOPSIS +.EX +include "disks.m"; + +disks := load Disks Disks->PATH; + +Disk: adt { + prefix: string; # prefix before partition name + part: string; # partition name (nil if not partition) + fd: ref Sys->FD; + wfd: ref Sys->FD; + ctlfd: ref Sys->FD; + rdonly: int; # non-zero if readonly + dtype: string; # device type + + secs: big; # number of sectors in device or partition + secsize: int; # device's sector size + size: big; # size of device or partition + offset: big; # within larger disk, perhaps + width: int; # of disk size in bytes as decimal string + c: int; # geometry: cyl, head, sectors + h: int; + s: int; + chssrc: string; # source of c/h/s values + + open: fn(f: string, mode: int, noctl: int): ref Disk; +}; + +PCpart: adt { + active: int; # Active or 0 + ptype: int; + base: big; # base block address + offset: big; # block offset from base to partition + size: big; # in sectors + + extract: fn(a: array of byte, d: ref Disk): PCpart; + bytes: fn(p: self PCpart, d: ref Disk): array of byte; +}; + +init: fn(); +readn: fn(fd: ref Sys->FD, buf: array of byte, n: int): int; +chstext: fn(p: array of byte): string; +.EE +.SH DESCRIPTION +.B Disks +provides a simple way to gather +and use information about +.IR floppy (3) +and +.IR sd (3) +disks and disk partitions, +as well as plain files. +.PP +.B Init +must be called before invoking any other operations of the module +.PP +.B Disk.open +opens +.I file +and returns a reference to a +.B Disk +value to represent the disk. +.I Mode +should be either +.BR Sys->OREAD +or +.BR Sys->ORDWR +to establish the open mode. +.B Open +always opens +.I file +for reading and stores that file descriptor in +the element +.IR fd . +If the mode is not +.BR Sys->OREAD , +.I opendisk +also opens +.I file +for writing and stores that file descriptor in +.BR wfd . +The two file descriptors are kept separate to +help prevent accidents. +If +.I noctl +is not set, +.B open +looks for a +.B ctl +file in the same directory as the +disk file; +if it finds one, it declares +the disk to be +an +.IR sd (3) +device, +setting +.B dtype +to +\f5"sd"\fP. +If the passed +.I file +is named +.BI fd n disk \fR, +it looks for a file +.BI fd n ctl \fR, +and if it finds that, +declares the disk to be +a floppy disk, of type +\f5"floppy"\fP. +If either control +file is found, it is opened for reading +and writing, and the resulting file descriptor +is saved as +.BR ctlfd . +Otherwise the returned disk +has type +\f5"file"\fP. +.PP +.B Open +then stores the file's length +(as given by +.IR sys-stat (2)) +in +.BR size . +If the disk is an +.IR sd (3) +partition, +.B open +reads the sector size from the control +file and stores it in +.BR secsize ; +otherwise the sector size is assumed to be 512, +as is the case for floppy disks. +.B Open +stores the disk size measured in sectors in +.BR secs . +.PP +If the disk is an +.IR sd (3) +partition, +.B open +parses the +control +file to find the partition's offset +within its disk; +otherwise it sets +.B offset +to zero. +If the disk is an ATA disk, +.B open +reads +the disk geometry (number of cylinders, heads, and sectors) +from the +.B geometry +line in the +.I sd +control file; +otherwise it sets these to zero as well. +.B Name +is initialized with the base name of +the disk partition, and is useful for forming messages to the +.I sd +control file. +.B Prefix +is set to the original +.I file +name without the +.B name +suffix. +.PP +The IBM PC BIOS interface allocates +10 bits for the number of cylinders, 8 for +the number of heads, and 6 for the number of sectors per track. +Disk geometries are not quite so simple +anymore, but to keep the interface useful, +modern disks and BIOSes present geometries +that still fit within these constraints. +These numbers are still used when partitioning +and formatting disks. +.B Open +employs a number of heuristics to discover this +supposed geometry and store it in the +.BR c , +.BR h , +and +.B s +elements of +.BR Disk . +Disk offsets in partition tables and +in FAT descriptors are stored in a form +dependent upon these numbers, so +.I opendisk +works hard to report numbers that +agree with those used by other operating +systems; the numbers bear little or no resemblance +to reality. +.PP +.B Chssrc +names the source of the geometry values: +.B disk +(values returned by disk itself); +.B part +(values stored in PC partition table); +or +.B guess +(calculated by module's heuristics). +.PP +.B Readn +attempts to read exactly +.I n +bytes from file +.I fd +into +.IR buf , +using as many +.IR sys-read (2) +calls as required. +It helps insulate a program from any peculiar underlying IO boundaries +of a device. +It returns less than +.I n +only if end-of-file is reached. +It returns -1 if the first read fails. +.PP +The PC BIOS and operating systems support an arcane system of disk partitions: +a partition table at the end of the master boot record +defines up to four partitions. +One (or perhaps more) of those can be an extended partition +that heads a chain (or perhaps roots a tree) of partition tables +elsewhere on disk, allowing many more than four partitions in all. +.B Disks +represents a partition table entry by a value of type +.BR PCpart . +It provides the following operations and values: +.TP +.B active +Has the value +.B Disks->Active +if it is bootable, and zero otherwise. +.TP +.B ptype +Partition type; +.B Disks->Type9 +is used by Plan 9 and Inferno (see +.IR prep (8)). +.TP +.B base +Address of the extended partition that started the chain (or rooted the tree) containing this partition. +Zero for primary partitions defined by the master boot record. +.TP +.B offset +Block address of the start of the partition relative to the +.BR base . +.TP +.B size +Size of the partition in sectors. +.TP +.BI extract( "a, d" ) +Extracts the relevant data from an array of bytes +.I a +containing a PC-format partition table entry on +.B Disk +.IR d , +and returns a +.B PCpart +value that represents the partition. +.TP +.IB pc .bytes( d ) +Return an array of bytes containing the PC-format partition +table entry corresponding to +.IR pc . +It will always be +.B TentrySize +bytes long. +.PP +Several other values are defined here for convenience: +.TP +Active +Value for +.B PCpart.active +if the partition is bootable. +.TP +.B Type9 +Partition type used by Plan 9 and Inferno. +.TP +.B Toffset +Offset (in bytes) of the partition table in a master boot record or extended partition start sector. +.TP +.B TentrySize +Size in bytes of a partition table entry. +.TP +.B NTentry +Number of table entries. +.TP +.B Magic0 +.PD0 +.TP +.B Magic1 +Each sector containing a partition table should end with +these two bytes (a master boot record must end with them). +.PP +.B Chstext +takes a 3-byte array containing the packed cylinder/head/sector +representation of a disk address and returns the corresponding text +in the form +.BI c / h / s. +.SH SOURCE +.B /appl/lib/disks.b +.SH SEE ALSO +.IR scsiio (2), +.IR floppy (3), +.IR sd (3), +.IR prep (3) diff --git a/static/inferno/man2/dividers.2 b/static/inferno/man2/dividers.2 new file mode 100644 index 00000000..710308d7 --- /dev/null +++ b/static/inferno/man2/dividers.2 @@ -0,0 +1,68 @@ +.TH DIVIDERS 2 +.SH NAME +Dividers \- user-draggable tk dividing bars +.SH SYNOPSIS +.EX +include "dividers.m"; +dividers := load Dividers Dividers->PATH; +Divider: import dividers; + +init: fn(); +Divider: adt { + new: fn(win: ref Tk->Toplevel, w: string, wl: list of string, dir: int): + (ref Divider, chan of string); + event: fn(d: self ref Divider, e: string); +}; +.EE +.SH DESCRIPTION +.I Dividers +presents an interface allowing Tk widgets to +be arranged within a window, divided by bars which +can be dragged by the user to determine the proportion +of the available space to allocate to each widget. +The groups can be stacked vertically or horizontally. +.I Divider +widgets can be nested. +.PP +.B Init +must be called before anything else, to allow +.I Dividers +to initialise its internal state. +.B Divider.new +creates a new divider widget; it will be named +.IR w , +and it will divide up the widgets named in +the list +.IR wl . +.I Dir +can be +.BR Dividers->NS , +to stack the widgets one on top of another, +or +.BR Dividers->EW +to stack the widgets left-right. +.B Divider.new +returns a new +.B Divider +adt, and a channel through which +.B Divider +events will be received. +The application should arrange that events +received on this channel be passed to the +.B event() +function. +.PP +A +.B Divider +widget must be informed if its size has changed +by configuring its width and height appropriately; +it does the same to the items it is dividing. +.SH SOURCE +.B /appl/lib/dividers.b +.SH BUGS +It should not be necessary to inform the +.B Divider +widget of size changes. +.PP +The event-based mechanism seems somewhat +contrary to the preferred Limbo way of doing things. diff --git a/static/inferno/man2/draw-0intro.2 b/static/inferno/man2/draw-0intro.2 new file mode 100644 index 00000000..6fb4384a --- /dev/null +++ b/static/inferno/man2/draw-0intro.2 @@ -0,0 +1,268 @@ +.TH DRAW-INTRO 2 +.SH NAME +draw \- basic graphics facilities module +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +setalpha: fn(rgba: int, alpha: int): int; +.EE +.SH DESCRIPTION +Inferno's +.B Draw +module provides basic graphics facilities, defining drawing +contexts, images, character fonts, and rectangular geometric operations. +See +.IR wmlib (2) +and +.IR tk (2) +for higher level operations, such as windows and menu handling. +.SS Pixels +Images are defined on a rectangular region of +an integer plane with a picture element, or +.IR pixel , +at each grid point. +Pixel values are integers with between 1 and 32 bits per pixel, and all +pixels in a given image have the same size, or +.IR depth . +Some operations allow images with different depths to be combined, +for example to do masking. +Images have one or more channels: colour channels, greyscale channels, colour map indices, +and others, as described in +.IR colour (6). +Each pixel value contains a component of each such channel. +All pixels in an image have the same size, or +.IR depth , +and the same component structure. +.PP +When an image is displayed, the value of each pixel determines the colour +of the display, according to the interpretation of the image's channels. +For instance, on `true colour' displays, the display image might contain red, blue and green +colour channels, and each pixel value will have red, blue and green colour components. +For displays with only 8 bits per pixel or less, +Inferno uses a fixed colour map for each display depth (see +.IR colour (6)). +Facilities exist in +.IR draw-display (2) +to convert between (red, green, blue) +triplets and colour-mapped pixel values, +but the mapping is often done automatically by the graphics operations +when images with different channel structures are combined. +.PP +.B Draw +uses a standard representation of colour constants in calls to create coloured images +or to initialise new images with a given colour. +This is referred to as `32-bit RGBA format'. +Each constant colour is represented as a 32-bit integer, with 8-bit red, blue and green colour components, +and an 8-bit alpha component, in that order from most to least significant byte. +.PP +The RGB values in a colour are +.I premultiplied +by the alpha value; for example, a 50% red is +.B "int 16r7F00007F" +not +.BR "int 16rFF00007F" . +The function +.B Draw->setalpha +performs the alpha computation on a given colour +.I rgba +in 32-bit RGBA format, +ignoring its initial alpha value, and returning the +result of multiplying each colour component by the supplied +.BR alpha . +For example, to make a 50% red color value, one could execute +.B draw->setalpha(Draw->Red, +.BR 16r7F) . +.SS Terminology +.TF Pointer +.PD +.TP +.B Point +The graphics plane is defined on an integer grid, +with each +.RI ( x ",\ " y ) +coordinate identifying +the upper left corner of the corresponding pixel. +The plane's origin, (0,\ 0), resides at the upper left corner of the screen; +.I x +and +.I y +coordinates increase to the right and down. +The abstract data type, +.BR Point +defines a coordinate position. +.TP +.B Rect +The type +.B Rect +defines a rectangular region of the plane. +It comprises two +.BR Points , +.B min +and +.BR max , +and specifies the region defined by pixels with coordinates +greater than or equal to +.B min +and strictly less than +.BR max , +in both +.I x +and +.IR y . +This +.I half-open +property allows rectangles that share an edge to have equal coordinates on the edge. +.TP +.B Display +The type +.B Display +represents a physical display, corresponding to a single connection to a +.IR draw (3) +device. +Besides the image of the display itself, the +.B Display +type also stores references to off-screen images, fonts, and so on. +The contents of such images are stored in the display device, not in the client +of the display, which affects how they are allocated and used, see for example +.IR draw-image (2). +.TP +.B Screen +The +.B Screen +type is used to manage a set of windows on an image, typically but not necessarily +that of a display. +.B Screens +and hence windows may be built recursively upon windows for +subwindowing or even on off-screen images. +.TP +.B Image +The +.B Image +type provides basic operations on groups of pixels. +Through a few simple operations, most importantly the +.B draw +image combination operator +(see +.IR draw-image (2)), +the +.B Image +type provides the building blocks for +.BR Display , +.BR Screen , +and +.BR Font . +.TP +.B Font +A +.B Font +defines which character image to draw for each character code value. +Although all character drawing operations ultimately use the +.B draw +primitive on the underlying images, +.B Fonts +provide convenient and efficient management of display text. +Inferno uses the 16-bit Unicode character encoding, so +.B Fonts +are managed hierarchically to control their size and to make +common subsets such as ASCII or Greek efficient in practice. +See +.IR draw-font (2), +.IR utf (6), +and +.IR font (6). +.TP +.B Context +A +.B Context +provides an interface to the system graphics and interactive devices. +The system creates this context when it starts an application. +.TP +.B Pointer +The +.B Pointer +type conveys information for pointing devices, such as mice or trackballs. +.SS More about Images +.PP +An image occupies a rectangle, +.BR Image.r , +of the graphics plane. +A second rectangle, +.BR Image.clipr , +defines a clipping region for the image. +Typically, the clipping rectangle is the same as the basic image, +but they may differ. +For example, the clipping region may be made smaller and centered on +the basic image to define a protected border. +.PP +The pixel structure of an +.B Image +is stored as +.B Chans +value +.BR Image.chans ; +the image's pixel depth in bits is stored as integer +.BR Image.depth . +.PP +An image may be marked for replication: when set, the boolean +.B Image.repl +causes the image +to behave as if replicated across the entire integer plane, +thus tiling the destination graphics area +with copies of the source image. +When replication is turned on, +the clipping rectangle limits the extent of the replication and may +even usefully be disjoint from +.BR Image.r . +See +.IR draw-image (2) +for examples. +.PP +The +.B Image +member functions provide facilities for drawing text and geometric objects, +manipulating windows, and so on. +.PP +Objects of type +.BR Display , +.BR Font , +.BR Screen , +and +.B Image +must be allocated by the member functions; +if such objects are created with a regular Limbo +definition, they will not behave properly and may generate run-time errors. +.PP +There are no ``free'' routines for graphics objects. +Instead Limbo's garbage +collection frees them automatically. +As is generally so within Limbo, +one can eliminate references by assigning +.B nil +to reference variables, returning from functions +whose local variables hold references, etc. +.SH RETURN VALUES +Most drawing operations operate asynchronously, so they have +no error return. +Functions that allocate objects return +.B nil +for failure; in such cases the system error string may be +interrogated (such as by the +.B %r +format (see +.IR sys-print (2))) +for more information. +.SH SOURCE +.B /libinterp/draw.c +.br +.B /libdraw/*.c +.SH SEE ALSO +.IR draw (3), +.IR ir (2), +.IR prefab-intro (2), +.IR tk (2), +.IR wmlib (2), +.IR colour (6), +.IR font (6), +.IR image (6) diff --git a/static/inferno/man2/draw-context.2 b/static/inferno/man2/draw-context.2 new file mode 100644 index 00000000..98dde368 --- /dev/null +++ b/static/inferno/man2/draw-context.2 @@ -0,0 +1,167 @@ +.TH DRAW-CONTEXT 2 +.SH NAME +Context \- +graphics environment +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +Context: adt +{ + display: ref Display; # frame buffer on which windows reside + wm: chan of (string, + chan of (string, ref Wmcontext)); # wmgr connection +}; + +# connection to window manager for one or more windows (as Images) +Wmcontext: adt +{ + kbd: chan of int; # incoming characters from keyboard + ptr: chan of ref Pointer; # incoming stream of mouse positions + ctl: chan of string; # commands from wm to application + wctl: chan of string; # commands from application to wm + images: chan of ref Image; # exchange of images + connfd: ref Sys->FD; # connection control + ctxt: ref Draw->Context; +}; +.EE +.SH DESCRIPTION +The +.B Context +type encapsulates the data types and channels used by an interactive application, +and establishes a context for graphics output and window management. +A reference to the +.B Context +is passed as the first argument to an application when it begins execution: +.PP +.EX +include "draw.m" + +Command: module +{ + init: fn(nil: ref Draw->Context; nil: list of string); +}; +.EE +.PP +Most programs do not create +.B Contexts +but instead inherit one from their parent, typically a shell or window system. +.PP +.SS Context interface +.PP +The following elements of +.B Context +are used by +.IR wm : +.TF display +.PD +.TP +.B display +The +.B Display +adt to which the application is connected; may be +.BR nil . +See +.IR draw-display (2). +.TP +.B wm +A shared channel through which a private channel +can be set up with a window manager. +A client application sends a tuple containing a request string +(of a format defined by the window manager) and a private reply channel. +It receives a tuple in reply on that channel; the tuple contains +a string (eg, an acknowledgement or diagnostic) and a reference to +a +.B Wmcontext +value containing channels by which the application can interact with the +window manager. +.SS Wmcontext interface +The +.B Wmcontext +provides a set of channels and file descriptors +through which the window manager and application interact. +The elements of the adt are used as follows: +.PP +.TF connfd +.PD +.TP +.B kbd +A channel of type +.B int +that delivers keystrokes from a keyboard. +.TP +.B ptr +A channel of type +.B ref +.B Pointer +that delivers events from a pointing device such as a mouse. +See +.IR devpointer (2). +.TP +.B ctl +A channel of type +.B string +that delivers control messages from the +window manager to the application. +.TP +.B wctl +A channel of type +.BR string , +which if initialised is +used by the application to send control messages to the window manager. +It is not used by the current +.IR wm (1) +or +.IR tkclient (2). +.TP +.B images +A channel of type +.B ref +.B Image +that allows the window manager and application to exchange images +(eg, when resizing, or to supply a cursor image). +.TP +.B connfd +A file descriptor that can be used to provide per-client connection control. +For instance, a client can store a file descriptor open on a +.IR sys-file2chan (2) +provided by the window manager, and the window manager will shut down +input to the application when the connection closes (eg, if the application +exits unexpectedly). +.B Connfd +is also used to write requests to the window manager. +Conventionally a request is a list of words formatted as +by +.B quoted +in +.IR string (2). +A request starting with an exclamation mark +.BR "" ( ! ) +if successful will result in an image being sent down the +.B image +channel; the rectangle of the image indicates the rectangle +that has been allocated on the screen. If only the origin +is to be changed by the window manager, a nil image is +sent first (giving the application a chance to suspend operations +on the window), and then the original image, with its origin set +appropriately. +.TP +.B image +This is used as described above. +.TP +.B ctxt +Initialised with the +.B ctxt +value that provided the initial connection on the +.B wm +channel. +.RE +.SH SEE ALSO +.IR wm (1), +.IR wmlib (2), +.IR mux (1), +.IR draw-intro (2), +.IR ir (2), +.IR prefab-intro (2), +.IR tk (2) diff --git a/static/inferno/man2/draw-display.2 b/static/inferno/man2/draw-display.2 new file mode 100644 index 00000000..7eb3898f --- /dev/null +++ b/static/inferno/man2/draw-display.2 @@ -0,0 +1,389 @@ +.TH DRAW-DISPLAY 2 +.SH NAME +Display \- +connection to draw device +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +Display: adt +{ + image: ref Image; + white: ref Image; + black: ref Image; + opaque: ref Image; + transparent: ref Image; + + allocate: fn(dev: string): ref Display; + startrefresh:fn(d: self ref Display); + publicscreen:fn(d: self ref Display, id: int): + ref Screen; + newimage: fn(d: self ref Display, + r: Rect, chans: Chans, + repl, rgba: int): + ref Image; + color: fn(d: self ref Display, rgba: int): + ref Image; + colormix: fn(d: self ref Display, one: int, three: int): + ref Image; + rgb: fn(d: self ref Display, red, green, blue: int): + ref Image; + namedimage: fn(d: self ref Display, name: string): + ref Image; + open: fn(d: self ref Display, name: string): + ref Image; + readimage: fn(d: self ref Display, fd: ref Sys->FD): + ref Image; + writeimage: fn(d: self ref Display, fd: ref Sys->FD, + i: ref Image): int; + rgb2cmap: fn(d: self ref Display, red, green, blue: int): + int; + cmap2rgb: fn(d: self ref Display, c: int): + (int, int, int); + cmap2rgba: fn(d: self ref Display, c: int): + int; +}; + +Chans: adt +{ + mk: fn(s: string): Chans; + text: fn(c: self Chans): string; + eq: fn(c: self Chans, d: Chans): int; + depth: fn(c: self Chans): int; +}; +.EE +.SH DESCRIPTION +The +.B Display +type represents a connection to a +.IR draw (3) +device. +This device is the external representation of a physical +display, such as a CRT, and its associated memory. +It contains the storage for all images, +even invisible ones, so all +.B Image +objects must be allocated +through +.B Display +member functions. +Graphics operations that use multiple +.B Image +objects may not mix images from different +.BR Displays . +.PP +The pixel channel structure of an +.B Image +is determined when the image is allocated (including the image allocated by the system +to represent a physical display). +This structure is described externally by a channel format string, +described in +.IR colour (6), +and internally by a value of the +.B Chans +adt, +which is used when allocating new images in the calls below. +.B Draw +defines a set of constants of type +.B Chans +for common channel types: +.BR GREY1 , +.BR GREY2 +and +.BR GREY8 +for greyscale (depths 1, 2 and 8); +.BR CMAP8 +for 8-bit +.IR rgbv (8) +colour-mapped images; +.BR RGB16 +for 16-bit +.B r5g6b5 +colour images; +.BR RGB24 +for 24-bit colour; +and +.BR RGBA32 +for 24-bit colour with alpha channel. +.B Chans +has the following operations: +.TP 10 +.BI Chans.mk( s ) +Return the +.B Chans +value corresponding to the channel format string +.I s +(see +.IR image (6) +for the syntax of +.IR s ). +.TP 10 +.IB c .depth() +Return the depth in bits of +.IR c . +The result is 0 if +.I c +is invalid; in particular, +.BI Chans.mk( s ).depth() +is zero if +.I s +is invalid. +.TP +.IB c .text() +Return the format string corresponding to +.IR c . +.TP +.IB c .eq( d ) +Return true if +.I d +has the same channel structure as +.IR c ; +return false otherwise. +.PP +Colours in the calls below are specified as 32-bit integers (`32-bit RGBA format') containing +red, green, blue and alpha components as 8-bit values, in order +from most to least significant byte. +The 8-bit colour component values express illumination, ranging from 0 (no colour) +to 255 (saturated). +For the alpha component, 0 is fully transparent, and 255 is fully opaque. +.PP +.B Display +itself has the following components: +.PP +.TP 10 +.B image +The visible contents of the display; +draw on +.B image +to change the display. +.TP +.BR white ", " black +Replicated images of a single pixel, +either all ones (white) or all zeroes (black). +.TP +.BR opaque ", " transparent +Replicated images of a single pixel, +either all ones (fully opaque) or all zeroes (fully transparent). +Used as mattes for +basic graphical operations. +.TP +.BI allocate( dev ) +Attach to a new display, represented by the +.IR draw (3) +device mounted in the specified +.I dev +directory. +If +.I dev +is the empty string, +.B /dev +is used. +The return value is +.B nil +if the allocation fails. +.TP +.IB d .startrefresh() +After allocating a +.B Display +object, the application should spawn a process to call +.BR startrefresh ; +this thread will receive and process window refresh events +from the device. +.TP +.IB d .publicscreen( id ) +Create a locally addressable pointer to a public +.BR Screen ; +see \f2display-screen\fP(2). +.TP +.IB d .newimage( r\fP,\fP\ chans\fP,\fP\ repl\fP,\fP\ rgba ) +Allocate an off-screen +.BR Image . +The arguments supply values for the +.BR Image 's +.BR r , +.BR chans , +and +.BR repl , +and an initial pixel value +.I rgba +in 32-bit RGBA format, +used to paint the image +when created. +It can be +.B Draw\->Transparent +to create a fully transparent image to draw on to form an +arbitrarily-shaped image or matte. +If it is +.BR Draw\->Nofill , +the image is not initialised. +The image's +.B clipr +is initialized to +.BR r . +.TP +.IB d .color( rgba ) +Creates a single-pixel, +replicated off-screen image of the specified colour, +expressed in 32-bit RGBA format. +The +.B Draw +module defines constants for several dozen colours: +.RS +.IP +.EX +Opaque: con int 16rFFFFFFFF; +Transparent: con int 16r00000000; +Black: con int 16r000000FF; +White: con int 16rFFFFFFFF; +Red: con int 16rFF0000FF; +Green: con int 16r00FF00FF; +Blue: con int 16r0000FFFF; +Cyan: con int 16r00FFFFFF; +Magenta: con int 16rFF00FFFF; +Yellow: con int 16rFFFF00FF; +Grey: con int 16rEEEEEEFF; +Paleyellow: con int 16rFFFFAAFF; +Darkyellow: con int 16rEEEE9EFF; +Darkgreen: con int 16r448844FF; +Palegreen: con int 16rAAFFAAFF; +Medgreen: con int 16r88CC88FF; +Darkblue: con int 16r000055FF; +Palebluegreen: con int 16rAAFFFFFF; +Paleblue: con int 16r0000BBFF; +Bluegreen: con int 16r008888FF; +Greygreen: con int 16r55AAAAFF; +Palegreygreen: con int 16r9EEEEEFF; +Yellowgreen: con int 16r99994CFF; +Medblue: con int 16r000099FF; +Greyblue: con int 16r005DBBFF; +Palegreyblue: con int 16r4993DDFF; +Purpleblue: con int 16r8888CCFF; +Notacolor: con int 16rFFFFFF00; +Nofill: con Notacolor; +.EE +.PP +The special values +.BR Draw\->Opaque +(fully opaque) +and +.BR Draw\->Transparent +(fully transparent) +are useful as the pixel values for +.B Display.newimage +when forming a matte. +The special value +.B Draw\->Nofill +tells +.B Display.newimage +not to paint a new image with any colour, leaving it uninitialised. +.RE +.TP +.IB d .colormix( one\fP,\fP\ three ) +Allocate background colours. +On true color displays, it returns a 1×1 replicated image whose pixel is the result of mixing the two +colours in a one to three ratio; +both colours are expressed in 32-bit RGBA format. +On 8-bit color-mapped displays, it returns a 2×2 replicated image +with one pixel coloured +.I one +and the other three +with +.I three +(after translation through the colour map). +This simulates a wider range of tones than can +be represented by a single pixel value on a colour-mapped display. +.TP +.IB d .rgb( red\fP,\fP\ green\fP,\fP\ blue ) +Uses the values of red, green, and blue to create +a single-pixel replicated image of that colour. +The values are intensities that range from 0 (no colour) to 255 (saturated). +The alpha component is always 255 (fully opaque). +.TP +.IB d .namedimage ( name ) +Returns a reference to the image published as +.I name +on display +.I d +by +.B Image.name +(see +.IR draw-image (2)). +This allows unrelated processes to share the image (eg, a window manager and client). +.TP +.IB d .open( name ) +Read an image +description from the named +file and return an +.B Image +holding the picture. +See +.IR image (6) +for more information about image files. +.TP +.IB d .readimage( fd ) +Analogous to +.BR open , +but from an open file descriptor rather than a named file. +.TP +.IB d .writeimage( fd\fP,\fP\ i ) +Complement of +.BR readimage : +write an image file representing +.B i +to the open file descriptor. +.TP +.IB d .rgb2cmap( red\fP,\fP\ green\fP,\fP\ blue ) +Return the +.I rgbv +colour map index (see +.IR colour (6)) +of the colour that best matches +the given colour triple. The values of the components range from +0 (no colour) to 255 (saturated). +.TP +.IB d .cmap2rgb( c ) +Return the colour triple (red, blue, green) corresponding to colour +map index +.IR c . +.TP +.IB d .cmap2rgba( c ) +Return the 32-bit RGBA representation of the colour corresponding to colour +map index +.IR c . +The alpha component is always 255 (fully opaque). +.ig +.TP +.IB d .cursor(\fIi\fP,\ \fIp\fP) +Set the current cursor. +If +.I i +is the image of the current display, +then the graphics cursor will be set +to its default value, otherwise +.I i +must be an image with ldepth 0 +and the following rules apply: the size of the +cursor will be half the horizontal height of +.I i +(subject to system-dependent restrictions on cursor +size). The top half and the bottom half of the image +are treated as two independent masks. When the +cursor is drawn, pixels congruent with non-zero bits +in the top half are cleared +and then pixels congruent with non-zero bits in the +bottom half are set. +.I P +gives the offset added to the mouse position when drawing +the cursor image. +.TP +.IB d .cursorset(\fIp\fP) +Set the position of the mouse cursor to +.IR p . +.SH BUGS +The interface to +.B cursor +does not allow the use of colour mouse cursors, +even on systems that allow them. The interface is likely +to change in this respect. +.. diff --git a/static/inferno/man2/draw-example.2 b/static/inferno/man2/draw-example.2 new file mode 100644 index 00000000..e006e724 --- /dev/null +++ b/static/inferno/man2/draw-example.2 @@ -0,0 +1,116 @@ +.TH DRAW-EXAMPLE 2 +.SH NAME +draw: example \- +simple program illustrating image primitives +.SH DESCRIPTION +This manual page presents a self-contained simple program that illustrates most +of the feature of the basic draw library. +It must be run at the top-level Inferno shell prompt, not within a window system, +as it establishes its own connection to the display and writes directly +on the display, not in a private window. +.PP +The program exercises the drawing primitives, taking particular care +to maintain a consistent coordinate system for the combinations of +images on the display. Comments in the code introduce each step. +.PP +.EX +implement Test; + +include "sys.m"; + +include "draw.m"; + +Test: module +{ + init: fn(ctxt: ref Draw->Context, argv: list of string); +}; + +init(nil: ref Draw->Context, nil: list of string) +{ + sys := load Sys Sys->PATH; + draw := load Draw Draw->PATH; + Display, Font, Rect, Point, Image, Screen: import draw; + + # + # Set up connection to display and initialize colours. + # + display := draw->Display.allocate(nil); + disp := display.image; + red := display.color(Draw->Red); + blue := display.color(Draw->Blue); + white := display.color(Draw->White); + yellow := display.color(Draw->Yellow); + + # + # Paint the screen red. + # + disp.draw(disp.r, red, nil, disp.r.min); + sys->sleep(5000); + + # + # Texture a region with rectangular tiles. + # + texture := display.newimage(((0,0),(2,3)), + disp.chans, 1, Draw->Black); + texture.clipr = ((-10000,-10000),(10000,10000)); + # put something in the texture + texture.draw(((0,0),(1,3)), white, nil, (0,0)); + texture.draw(((0,0),(2, 1)), white, nil, (0,0)); + # use texture as both source and mask to let + # destination colour show through + disp.draw(((100,100),(200,300)), texture, + texture, (0,0)); + sys->sleep(5000); + + # + # White-out a quarter of the pixels in a region, + # to make the region appear shaded. + # + stipple := display.newimage(((0,0),(2,2)), + disp.chans, 1, Draw->Transparent); + stipple.draw(((0,0),(1,1)), display.opaque, + nil, (0,0)); + disp.draw(((100,100),(300,250)), white, + stipple, (0,0)); + sys->sleep(5000); + + # + # Draw textured characters. + # + font := Font.open(display, "*default*"); + disp.text((100,310), texture, (0,0), font, + "Hello world"); + sys->sleep(5000); + + # + # Draw picture in elliptical frame. + # + delight := display.open("/icons/delight.bit"); + piccenter := delight.r.min.add(delight.r.max).div(2); + disp.fillellipse((250,250), 150, 50, + delight, piccenter); + disp.ellipse((250,250), 150, 50, 3, yellow, (0,0)); + sys->sleep(5000); + + # + # Draw a parabolic brush stroke using an elliptical brush + # to reveal more of the picture, consistent with what's + # already visible. + # + dx : con 15; + dy : con 3; + brush := display.newimage(((0,0),(2*dx+1,2*dy+1)), disp.chans, + 0, Draw->Black); + brush.fillellipse((dx,dy), dx, dy, display.white, + (0,0)); + for(x:=delight.r.min.x; xPATH; + +Font: adt +{ + name: string; + height: int; + ascent: int; + display: ref Display; + + open: fn(d: ref Display, file: string): ref Font; + build: fn(d: ref Display, name, desc: string): ref Font; + width: fn(f: self ref Font, str: string): int; +}; +.EE +.SH DESCRIPTION +The +.B Font +type defines the appearance of characters drawn with the +.B Image.text +primitive (see +.IR draw-image (2)). +.B Fonts +are usually read from files and are selected based on their +size, their style, the portion of Unicode space they represent, +and so on. +.PP +Fonts are built from a series of subfonts that define contiguous portions +of the Unicode character space, such as the ASCII or the +Greek alphabet. +Font files are textual descriptions of the allocation of characters in +the various regions of the Unicode space; see +.IR font (6) +for the format. +Subfonts are not visible from Limbo. +.PP +A default font, named +.BR *default* , +is always available. +.PP +The type incorporates: +.TP 10 +.BR ascent ", " height +These define the vertical sizes +of the font, in pixels. +The +.B ascent +is the distance from the font baseline to the top of +a line of text; +.B height +gives the interline spacing, that is, the distance from +one baseline to the next. +.TP +.B name +This field +identifies the font, either +the name of +the file from which the font was read, or +.B +"*default*" +for the default font. +.TP +.B display +Tells on which display the font resides. +.TP +.BI open( d\fP,\fP\ file\fP) +The +.B open +method creates a +.B Font +by reading the contents of the named +.IR file . +Fonts are cached, so an open request may return a pointer to an +existing +.BR Font , +without rereading the file. +The name +.B +"*default*" +always describes a defined font. +Fonts are created for an instance of a +.B Display +object, even though the creation +functions are in type +.BR Font . +.TP +.BI build( d\fP,\fP\ name\fP,\fP\ desc ) +.B Build +creates a +.B Font +object by reading the description from the string +.B desc +rather than a file. +.I Name +specifies the name of the font to be created. +.TP +\f2f\fP\f5.width(\fP \f2str\fP \f5)\fP +The +.B width +method returns the width in pixels that +.I str +would occupy if drawn by +.B Image.text +in the Font +.IR f . diff --git a/static/inferno/man2/draw-image.2 b/static/inferno/man2/draw-image.2 new file mode 100644 index 00000000..477e69e0 --- /dev/null +++ b/static/inferno/man2/draw-image.2 @@ -0,0 +1,909 @@ +.TH DRAW-IMAGE 2 +.SH NAME +Image \- +pictures and drawing +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +# compositing operators +SinD: con 1<<3; +DinS: con 1<<2; +SoutD: con 1<<1; +DoutS: con 1<<0; + +S: con SinD|SoutD; +SoverD: con SinD|SoutD|DoutS; +SatopD: con SinD|DoutS; +SxorD: con SoutD|DoutS; + +D: con DinS|DoutS; +DoverS: con DinS|DoutS|SoutD; +DatopS: con DinS|SoutD; +DxorS: con DoutS|SoutD; + +Clear: con 0; + +Image: adt +{ + r: Rect; + clipr: Rect; + chans: Chans; + depth: int; + repl: int; + + display: ref Display; + screen: ref Screen; + + draw: fn(dst: self ref Image, r: Rect, src: ref Image, + mask: ref Image, p: Point); + drawop: fn(dst: self ref Image, r: Rect, src: ref Image, + mask: ref Image, p: Point, op: int); + gendraw: fn(dst: self ref Image, r: Rect, src: ref Image, + p0: Point, mask: ref Image, p1: Point); + gendrawop: fn(dst: self ref Image, r: Rect, src: ref Image, + p0: Point, mask: ref Image, p1: Point, op: int); + line: fn(dst: self ref Image, p0,p1: Point, + end0,end1,thick: int, + src: ref Image, sp: Point); + lineop: fn(dst: self ref Image, p0,p1: Point, + end0,end1,thick: int, + src: ref Image, sp: Point, op: int); + poly: fn(dst: self ref Image, p: array of Point, + end0,end1,thick: int, + src: ref Image, sp: Point); + polyop: fn(dst: self ref Image, p: array of Point, + end0,end1,thick: int, + src: ref Image, sp: Point, op: int); + bezspline: fn(dst: self ref Image, p: array of Point, + end0,end1,thick: int, + src: ref Image, sp: Point); + bezsplineop: fn(dst: self ref Image, p: array of Point, + end0,end1,thick: int, + src: ref Image, sp: Point, op: int); + fillpoly: fn(dst: self ref Image, p: array of Point, + wind: int, src: ref Image, sp: Point); + fillpolyop: fn(dst: self ref Image, p: array of Point, + wind: int, src: ref Image, sp: Point, op: int); + fillbezspline: fn(dst: self ref Image, p: array of Point, + wind: int, src: ref Image, sp: Point); + fillbezsplineop: fn(dst: self ref Image, p: array of Point, + wind: int, src: ref Image, sp: Point, op: int); + ellipse: fn(dst: self ref Image, c: Point, a, b, + thick: int, src: ref Image, sp: Point); + ellipseop: fn(dst: self ref Image, c: Point, a, b, + thick: int, src: ref Image, sp: Point, op: int); + fillellipse:fn(dst: self ref Image, c: Point, a, b: int, + src: ref Image, sp: Point); + fillellipseop:fn(dst: self ref Image, c: Point, a, b: int, + src: ref Image, sp: Point, op: int); + arc: fn(dst: self ref Image, c: Point, a, b, thick: int, + src: ref Image, sp: Point, alpha, phi: int); + arcop: fn(dst: self ref Image, c: Point, a, b, thick: int, + src: ref Image, sp: Point, + alpha, phi: int, op: int); + fillarc: fn(dst: self ref Image, c: Point, a, b: int, + src: ref Image, sp: Point, alpha, phi: int); + fillarcop: fn(dst: self ref Image, c: Point, a, b: int, + src: ref Image, sp: Point, + alpha, phi: int, op: int); + bezier: fn(dst: self ref Image, a,b,c,d: Point, + end0,end1,thick: int, + src: ref Image, sp: Point); + bezierop: fn(dst: self ref Image, a,b,c,d: Point, + end0,end1,thick: int, + src: ref Image, sp: Point, op: int); + fillbezier: fn(dst: self ref Image, a,b,c,d: Point, wind:int, + src: ref Image, sp: Point); + fillbezierop: fn(dst: self ref Image, a,b,c,d: Point, wind:int, + src: ref Image, sp: Point, op: int); + arrow: fn(a,b,c: int): int; + text: fn(dst: self ref Image, p: Point, src: ref Image, + sp: Point, font: ref Font, str: string): Point; + textop: fn(dst: self ref Image, p: Point, src: ref Image, + sp: Point, font: ref Font, str: string, + op: int): Point; + textbg: fn(dst: self ref Image, p: Point, src: ref Image, + sp: Point, font: ref Font, str: string, + bg: ref Image, bgp: Point): Point; + textbgop: fn(dst: self ref Image, p: Point, src: ref Image, + sp: Point, font: ref Font, str: string, + bg: ref Image, bgp: Point, op: int): Point; + border: fn(dst: self ref Image, r: Rect, i: int, + src: ref Image, sp: Point); + borderop: fn(dst: self ref Image, r: Rect, i: int, + src: ref Image, sp: Point, op: int); + + readpixels: fn(src: self ref Image, r: Rect, + data: array of byte): int; + writepixels:fn(dst: self ref Image, r: Rect, + data: array of byte): int; + name: fn(im: self ref Image, s: string, in: int): int; + top: fn(win: self ref Image); + bottom: fn(win: self ref Image); + flush: fn(win: self ref Image, func: int); + origin: fn(win: self ref Image, log, scr: Point): int; +}; +.EE +.SH DESCRIPTION +The +.B Image +type defines rectangular pictures and the methods to draw upon them; +it is also the building block for higher level objects such as +windows and fonts. +In particular, a window is represented as an +.BR Image ; +no special operators are needed to draw on a window. +Off-screen images can have an alpha channel, which gives each pixel an opacity +factor, which in turn allows non-rectangular images to be defined +(ie, pixels made fully transparent by the alpha channel +do not appear when the image is displayed). +Many drawing operations allow images to be shaped, or partial transparency added, by using the alpha +channel of another image as a mask (also called a `matte'). +There are two functions in +.B Image +for each such operation. +One has an +.B op +suffix, and takes an explicit image compositing operator: +.BR S , +.BR D , +.BR SinD , ..., +.BR SoverD +and so on. +(See the Porter-Duff paper mentioned below for the meaning of each operation.) +The other function (without the +.B op +suffix) provides as its default operation the most common operation, +.BR SoverD , +by which the source image, within its matte, is drawn over the destination image. +.PP +An +.B Image +has a pixel channel structure as described in +.IR colour (6), +represented by a value of the +.B Chans +adt, +defined in +.IR draw-display (2). +The channel structure of an image is fixed when the image is allocated. +.PP +.B Image +has the following components: +.TP 10 +.B display +Tells on which display the image resides. +.TP +.B screen +If the image is a window on a +.B Screen +(see +.IR draw-screen (2)), +this field refers to that screen; otherwise it is nil. +.TP +.B r +The coordinates of the rectangle in the plane for which the +.B Image +has defined pixel values. +It should not be modified after the image is created. +.TP +.B clipr +The clipping rectangle: operations that read or write +the image will not access pixels outside +.BR clipr . +Frequently, +.B clipr +is the same as +.BR Image.r , +but it may differ; see in particular the discussion of +.BR Image.repl . +The clipping region may be modified dynamically. +.TP +.B chans +The pixel channel structure of the image; the value +should not be modified after the image is created. +.TP +.B depth +The number of bits per pixel in the picture: +it is simply a convenience since it is necessarily equal to +.BR chans.depth() , +and it should not be modified after the image is created. +.TP +.B repl +A boolean value specifying whether the image is tiled to cover +the plane when used as a source for a drawing operation. +If +.B Image.repl +is zero, operations are restricted to the intersection of +.B Image.r +and +.BR Image.clipr . +If +.B Image.repl +is set, +.B Image.r +defines the tile to be replicated and +.B Image.clipr +defines the portion of the plane covered by the tiling, in other words, +.B Image.r +is replicated to cover +.BR Image.clipr ; +in such cases +.B Image.r +and +.B Image.clipr +are independent. +.IP +For example, a replicated image with +.B Image.r +set to ((0,\ 0),\ (1,\ 1)) and +.B Image.clipr +set to ((0,\ 0),\ (100,\ 100)), +with the single pixel of +.B Image.r +set to blue, +behaves identically to an image with +.B Image.r +and +.B Image.clipr +both set to ((0,\ 0),\ (100,\ 100)) and all pixels set to blue. +However, +the first image requires far less memory. +The replication flag may be modified dynamically along with the clipping +rectangle. +.TP +.IB dst .draw( r\fP,\fP\ src\fP,\fP\ mask\fP,\fP\ p\fP ) +.PD0 +.TP +.IB dst .drawop( r\fP,\fP\ src\fP,\fP\ mask\fP,\fP\ p\fP,\fP\ op ) +.PD +.B Draw +is the standard drawing function. +Only those pixels within the intersection of +.IB dst .r +and +.IB dst .clipr +will be affected; +.B draw +ignores +.IB dst .repl\fR. +The operation proceeds as follows +(this is a description of the behavior, not the implementation): +.RS +.IP 1. +If +.B repl +is set in +.I src +or +.IR mask , +replicate their contents to fill +their clip rectangles. +.IP 2. +Translate +.I src +and +.I mask +so +.I p +is aligned with +.IB r .min\fR. +.IP 3. +Set +.I r +to the intersection of +.I r +and +.IB dst .r\fR. +.IP 4. +Intersect +.I r +with +.IB src .clipr\fR. +If +.IB src .repl +is false, also intersect +.I r +with +.IB src .r\fR. +.IP 5. +Intersect +.I r +with +.IB mask .clipr\fR. +If +.IB mask .repl +is false, also intersect +.I r +with +.IB mask .r\fR. +.IP 6. +For each location in +.IR r , +combine the +.I dst +pixel using the alpha value corresponding to the +.I mask +pixel. +If the +.I mask +has an explicit alpha channel, the alpha value corresponding to the +.I mask +pixel is simply that pixel's alpha channel. +Otherwise, the alpha value is the NTSC greyscale equivalent of the colour value, +with white meaning opaque and black transparent. +.RE +.IP +In terms of the Porter-Duff compositing algebra, +.I draw +replaces the +.I dst +pixels with +.RI ( src +in +.IR mask ) +over +.IR dst . +.I Drawop +is almost identical, but applies the compositing operation +.I op +instead: +.RI ( src +in +.IR mask ) +.I op +.IR dst . +.IP +The various +pixel channel formats +involved need not be identical. +If the channels involved are smaller than 8-bits, they will +be promoted before the calculation by replicating the extant bits; +after the calculation, they will be truncated to their proper sizes. +For +.B draw +and +.B gendraw +only, +if +.I mask +is nil, no mask is used. +.TP +\f2dst\fP.\f5gendraw(\f2r\fP, \f2src\fP, \f2p0\fP, \f2mask\fP, \f2p1\fP)\fP +.PD0 +.TP +\f2dst\fP.\f5gendrawop(\f2r\fP, \f2src\fP, \f2p0\fP, \f2mask\fP, \f2p1\fP\f5, \f2op\fP)\fP +.PD +Similar to \f5draw()\fP except that it aligns the source and mask differently: +.I src +is aligned so +.I p0 +corresponds to +.IB r . min +and +.I mask +is aligned so +.I p1 +corresponds to +.IB r . min . +For most purposes with simple masks and source images, +.B draw +is sufficient, but +.B gendraw +is the general operator and the one the other drawing primitives are built upon. +.TP +\f2dst\fP.\f5line(\f2p0\fP, \f2p1\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5lineop(\f2p0\fP, \f2p1\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Line +draws in +.I dst +a line of width +.RI 1+2* thick +pixels joining points +.I p0 +and +.IR p1 . +The line is drawn using pixels from the +.I src +image aligned so +.I sp +in the source corresponds to +.I p0 +in the destination. +The line touches both +.I p0 +and +.IR p1 , +and +.I end0 +and +.I end1 +specify how the ends of the line are drawn. +.B Draw->Endsquare +terminates the line perpendicularly to the direction of the line; a thick line with +.B Endsquare +on both ends will be a rectangle. +.B Draw->Enddisc +terminates the line by drawing a disc of diameter +.RI 1+2* thick +centered on the end point. +.B Draw->Endarrow +terminates the line with an arrowhead whose tip touches the endpoint. +See the description of +.B arrow +for more information. +.IP +.B Line +and the other geometrical operators are equivalent to calls to +.B gendraw +using a mask produced by the geometric procedure. +.TP +\f2dst\fP.\f5poly(\f2p\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5polyop(\f2p\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Poly +draws a general polygon; it +is equivalent to a series of calls to +.B line +joining adjacent points in the array of +.B Points +.IR p . +The ends of the polygon are specified as in +.BR line ; +interior lines are terminated with +.B Enddisc +to make smooth joins. +The source is aligned so +.I sp +corresponds to +.IB p [0]\f1. +.TP +\f2dst\fP.\f5bezspline(\f2p\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5bezsplineop(\f2p\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Bezspline +takes the same arguments as +.B poly +but draws a quadratic B-spline (despite its name) rather than a polygon. +If the first and last points in +.I p +are equal, the spline has periodic end conditions. +.TP +\f2dst\fP.\f5fillpoly(\f2p\fP, \f2wind\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5fillpolyop(\f2p\fP, \f2wind\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Fillpoly +is like +.B poly +but fills in the resulting polygon rather than outlining it. +The source is aligned so +.I sp +corresponds to +.IB p [0]\f1. +The winding rule parameter +.I wind +resolves ambiguities about what to fill if the polygon is self-intersecting. +If +.I wind +is +.BR ~0 , +a pixel is inside the polygon if the polygon's winding number about the point +is non-zero. +If +.I wind +is 1, +a pixel is inside if the winding number is odd. +Complementary values (0 or ~1) cause outside pixels to be filled. +The meaning of other values is undefined. +The polygon is closed with a line if necessary. +.TP +\f2dst\fP.\f5fillbezspline(\f2p\fP, \f2wind\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5fillbezsplineop(\f2p\fP, \f2wind\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Fillbezspline +is like +.B fillpoly +but fills the quadratic B-spline rather than the polygon outlined by +.IR p . +The spline is closed with a line if necessary. +.TP +\f2dst\fP.\f5ellipse(\f2c\fP, \f2a\fP, \f2b\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5ellipseop(\f2c\fP, \f2a\fP, \f2b\fP, \f2thick\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Ellipse +draws in +.I dst +an ellipse centered on +.I c +with horizontal and vertical semiaxes +.I a +and +.IR b . +The source is aligned so +.I sp +in +.I src +corresponds to +.I c +in +.IR dst . +The ellipse is drawn with thickness +.RI 1+2* thick . +.TP +\f2dst\fP.\f5fillellipse(\f2c\fP, \f2a\fP, \f2b\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5fillellipseop(\f2c\fP, \f2a\fP, \f2b\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Fillellipse +is like +.B ellipse +but fills the ellipse rather than outlining it. +.TP +.IB dst .arc(\fIc\fP,\ \fIa\fP,\ \fIb\fP,\ \fIthick\fP,\ \fIsrc\fP,\ \fIsp\fP,\ \fIalpha\fP,\ \fIphi\fP) +.PD0 +.TP +.IB dst .arcop(\fIc\fP,\ \fIa\fP,\ \fIb\fP,\ \fIthick\fP,\ \fIsrc\fP,\ \fIsp\fP,\ \fIalpha\fP,\ \fIphi\fP,\ \fIop\fP) +.PD +.I Arc +is like +.IR ellipse , +but draws only that portion of the ellipse starting at angle +.I alpha +and extending through an angle of +.IR phi . +The angles are measured in degrees counterclockwise from the positive +.I x +axis. +.TP +.IB dst .fillarc(\fIc\fP,\ \fIa\fP,\ \fIb\fP,\ \fIsrc\fP,\ \fIsp\fP,\ \fIalpha\fP,\ \fIphi\fP) +.PD0 +.TP +.IB dst .fillarcop(\fIc\fP,\ \fIa\fP,\ \fIb\fP,\ \fIsrc\fP,\ \fIsp\fP,\ \fIalpha\fP,\ \fIphi\fP,\ \fIop\fP) +.PD +.I Fillarc +is like +.IR arc , +but fills the sector with the source color. +.TP +\f2dst\fP.\f5bezier(\f2a\fP, \f2b\fP, \f2c\fP, \f2d\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5bezierop(\f2a\fP, \f2b\fP, \f2c\fP, \f2d\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Bezier +draws the +cubic Bezier curve defined by +.B Points +.IR a , +.IR b , +.IR c , +and +.IR d . +The end styles are determined by +.I end0 +and +.IR end1 ; +the thickness of the curve is +.RI 1+2* thick . +The source is aligned so +.I sp +in +.I src +corresponds to +.I a +in +.IR dst . +.TP +\f2dst\fP.\f5fillbezier(\f2a\fP, \f2b\fP, \f2c\fP, \f2d\fP, \f2wind\fP, \f2src\fP, \f2sp\fP) +.PD0 +.TP +\f2dst\fP.\f5fillbezierop(\f2a\fP, \f2b\fP, \f2c\fP, \f2d\fP, \f2wind\fP, \f2src\fP, \f2sp\fP, \f2op\fP) +.PD +.B Fillbezier +is to +.B bezier +as +.B fillpoly +is to +.BR poly . +.TP +.BI arrow( "a,\ b,\ c" ) +.B Arrow +is a function to describe general arrowheads; its result is passed as +.I end +parameters to +.BR line , +.BR poly , +etc. +If all three parameters are zero, it produces the default arrowhead, +otherwise, +.I a +sets the distance along line from end of the regular line to tip, +.I b +sets the distance along line from the barb to the tip, +and +.I c +sets the distance perpendicular to the line from edge of line to the tip of the barb, +all in pixels. +.TP +.IB dst .border( r\fP,\fP\ i\fP,\fP\ src\fP,\fP\ sp\fP) +.PD0 +.TP +.IB dst .borderop( r\fP,\fP\ i\fP,\fP\ src\fP,\fP\ sp\fP,\ \f2op\fP) +.PD +.I Border +draws in +.I dst +an outline of rectangle +.I r +in the given +.I src +colour. +The outline has width +.IR i ; +if positive, the border goes inside the rectangle; negative, outside. +The source is aligned so +.I sp +corresponds to +.IB r .min . +.TP +.IB dst .text( p\fP,\fP\ src\fP,\fP\ sp\fP,\fP\ font\fP,\fP\ str\fP) +.PD0 +.TP +.IB dst .textop( p\fP,\fP\ src\fP,\fP\ sp\fP,\fP\ font\fP,\fP\ str\fP,\ \f2op\fP) +.TP +.IB dst .textbg( p\fP,\fP\ src\fP,\fP\ sp\fP,\fP\ font\fP,\fP\ str\fP,\ \f2bg\fP,\ \f2bgp\fP) +.PD0 +.TP +.IB dst .textbgop( p\fP,\fP\ src\fP,\fP\ sp\fP,\fP\ font\fP,\fP\ str\fP,\ \f2bg\fP,\ \f2bgp\fP,\ \f2op\fP) +.PD +.B Text +draws in +.I dst +characters specified by the string +.I str +and font +.IR font ; +it is equivalent to a series of calls to +.B gendraw +using source +.I src +and masks determined by the character shapes. +The text is positioned with the left of the first character at +.IB p .x +and the top of the line of text at +.IB p .y\f1. +The source is positioned so +.I sp +in +.I src +corresponds to +.I p +in +.IR dst . +.B Text +returns a +.B Point +that is the position of the next character that would be drawn if the string were longer. +.IP +For characters with undefined +or zero-width images in the font, the character at font position 0 (NUL) is drawn. +.IP +.B Text +draws the text leaving the background intact. +.B Textbg +draws the background colour +.I bg +behind the characters, with the alignment specified by point +.IR bgp ; +it is otherwise the same as +.BR text . +.TP +.IB src .readpixels( r\fP,\fP\ data ) +.B Readpixels +fills the +.I data +array with pixels from the specified rectangle of the +.I src +image. +The pixels are presented one horizontal line at a time, +starting with the top-left pixel of +.IR r . +Each scan line starts with a new byte in the array, +leaving the last byte of the previous line partially empty, if necessary. +Pixels are packed as tightly as possible within +.IR data , +regardless of the rectangle being extracted. +Bytes are filled from most to least significant bit order, +as the +.I x +coordinate increases, aligned so +.IR x =0 +would appear as the leftmost pixel of its byte. +Thus, for a 1-bit deep greyscale image, +the pixel at +.I x +offset 165 within the rectangle will be in a +.I data +byte with mask value +.B 16r04 +regardless of the overall +rectangle: 165 mod 8 equals 5, and +.B "16r80\ >>\ 5" equals +.BR 16r04 . +It is an error to call +.B readpixels +with an array that is too small to hold the rectangle's pixels. +The return value is the number of bytes copied. +The arrangement of pixels in arrays of bytes is described in +.IR image (6). +.TP +.IB dst .writepixels( r\fP,\fP\ data ) +.B Writepixels +copies pixel values from the +.I data +array to the specified rectangle in the +.I dst +image. +The format of the data is that produced by +.BR readpixels . +The return value is the number of bytes copied. +It is an error to call +.B writepixels +with an array that is too small to fill the rectangle. +.TP +.IB im .name( s , in ) +Publish the image +.I im +on its display under name +.IR s , +if +.I in is non-zero; +otherwise, +.I s +must be an already published name and it is withdrawn from publication. +A published image can be retrieved using +.B Display.namedimage +(see +.IR draw-display (2)). +This function returns -1 on error, typically because the name is already in use +(for +.I in +non-zero), or does not exist +(for +.I in +zero). +.TP +.IB win .top() +If the image +.I win +is a window, +.B top +pulls it to the ``top'' of the stack of windows on its +.BR Screen , +perhaps obscuring other images. +If +.I win +is not a window, +.B top +has no effect. +.TP +.IB win .bottom() +If the image +.I win +is a window, +.B bottom +pulls it to the ``bottom'' of the stack of windows on its +.BR Screen , +perhaps obscuring it. +If +.I win +is not a window, +.B bottom +has no effect. +.TP +.IB image .flush( flag ) +The connection to a display has a buffer used to gather graphics requests +generated by calls to the draw library. +By default, the library flushes the buffer at the conclusion of any +call that affects the visible display +image itself. +The +.B flush +routine allows finer control of buffer management. +The +.I flag +has three possible values: +.B Flushoff +turns off all automatic flushing caused by writes to +.IR image , +typically a window or the display image itself +(buffers may still be written when they fill or when other objects on the display +are modified); +.B Flushnow +causes the buffer to be flushed immediately; +and +.B Flushon +restores the default behaviour. +.TP +\f2win\fP.\f5origin(\f2log\fP, \f2scr\fP) +When a window is created (see +.IR draw-screen (2)), +the coordinate system within the window is identical to that of the screen: +the upper left corner of the window rectangle is its physical location on the display, +not for example (0, 0). +This symmetry may be broken, however: +.B origin +allows control of the location of the window on the display and the coordinate +system used by programs drawing on the window. +The first argument, +.IR log , +sets the upper left corner of the logical (in-window) coordinate system without +changing the position of the window on the screen. +The second argument, +.IR scr , +sets the upper left corner of physical (on-screen) coordinate system, that is, the +window's location on the display, without changing the internal coordinate system. +Therefore, changing +.I scr +without changing +.I log +moves the window without requiring the client using it to be notified of the change; +changing +.I log +without changing +.I scr +allows the client to set up a private coordinate system regardless of the window's +location. +It is permissible for values of +.I scr +to move some or all of the window off screen. +.B Origin +returns \-1 if the image is not a window or, in the case of changes to +.IR scr , +if there are insufficient resources available to move the window; +otherwise it returns 1. +.SH SOURCE +.B /libdraw +.SH SEE ALSO +.IR draw-intro (2), +.IR draw-display (2), +.IR draw-point (2), +.IR draw-rect (2), +.IR draw-screen (2), +.IR colour (6), +.IR image (6), +.IR font (6) +.IR utf (6) +.PP +T. Porter, T. Duff. +``Compositing Digital Images'', +.I "Computer Graphics +(Proc. SIGGRAPH), 18:3, pp. 253-259, 1984. +.SH DIAGNOSTICS +These functions raise exceptions if argument images are nil, +except for +.B draw +and +.B gendraw +where the mask image is optional and may be nil. +.SH BUGS +Anti-aliased characters can be drawn by defining a font +with multiple bits per pixel, but there are +no anti-aliasing geometric primitives. diff --git a/static/inferno/man2/draw-point.2 b/static/inferno/man2/draw-point.2 new file mode 100644 index 00000000..a64a3665 --- /dev/null +++ b/static/inferno/man2/draw-point.2 @@ -0,0 +1,66 @@ +.TH DRAW-POINT 2 +.SH NAME +Point \- +coordinate position +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +Point: adt +{ + x: int; + y: int; + + add: fn(p: self Point, q: Point): Point; + sub: fn(p: self Point, q: Point): Point; + mul: fn(p: self Point, i: int): Point; + div: fn(p: self Point, i: int): Point; + eq: fn(p: self Point, q: Point): int; + in: fn(p: self Point, r: Rect): int; +}; +.EE +.SH DESCRIPTION +.PP +The +.B Point +data type specifies a position in the integer grid. +.TP 10 +.BR x ", " y +The coordinate position. The coordinates increase to the right +.RI ( x ) +and down +.RI ( y ). +.TP +.IB p .add( q ) +Returns the point +.BI ( p .x+ q .x, +.IB p .y+ q .y)\fR. +.TP +.IB p .sub( q ) +Returns the point +.BI ( p .x\- q .x, +.IB p .y\- q .y)\fR. +.TP +.IB p .mul( i ) +Returns the point +.BI ( p .x* i , +.IB p .y* i )\fR. +.TP +.IB p .div( i ) +Returns the point +.BI ( p .x/ i , +.IB p .y/ i )\fR. +.TP +.IB p .eq( q ) +Returns non-zero if the points' coordinates are equal and zero otherwise. +.TP +.IB p .in( r ) +Returns non-zero if point +.I p +lies within rectangle +.I r +and zero otherwise. +.SH SEE ALSO +.IR draw-intro (2), +.IR draw-rect (2) diff --git a/static/inferno/man2/draw-pointer.2 b/static/inferno/man2/draw-pointer.2 new file mode 100644 index 00000000..3383362e --- /dev/null +++ b/static/inferno/man2/draw-pointer.2 @@ -0,0 +1,38 @@ +.TH DRAW-POINTER 2 +.SH NAME +Pointer \- +state of a pointer device such as a mouse +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +Pointer: adt +{ + buttons: int; + xy: Point; +}; +.EE +.SH DESCRIPTION +.TP 10 +.B buttons +Each button on the device corresponds to a bit in +.BR buttons ; +zero bits indicate released (or non-existent), and one bits indicate pressed. +The bits, from least to most significant positions, +represent the buttons from left to right. +.TP +.B xy +The pointer's screen coordinates. +.PP +.IR Mux (1) +uses the +.B cptr +member of the +.B Draw->Context +adt to pass pointer events through to applications. +.SH SEE ALSO +.IR devpointer (2), +.B mouse +in +.IR tk (2) diff --git a/static/inferno/man2/draw-rect.2 b/static/inferno/man2/draw-rect.2 new file mode 100644 index 00000000..ca069378 --- /dev/null +++ b/static/inferno/man2/draw-rect.2 @@ -0,0 +1,138 @@ +.TH DRAW-RECT 2 +.SH NAME +Rect \- +rectangular portion of the plane +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +Rect: adt +{ + min: Point; + max: Point; + + canon: fn(r: self Rect): Rect; + dx: fn(r: self Rect): int; + dy: fn(r: self Rect): int; + eq: fn(r: self Rect, s: Rect): int; + Xrect: fn(r: self Rect, s: Rect): int; + inrect: fn(r: self Rect, s: Rect): int; + clip: fn(r: self Rect, s: Rect): (Rect, int); + combine: fn(r: self Rect, s: Rect): Rect; + contains: fn(r: self Rect, p: Point): int; + addpt: fn(r: self Rect, p: Point): Rect; + subpt: fn(r: self Rect, p: Point): Rect; + inset: fn(r: self Rect; n: int): Rect; +}; +.EE +.SH DESCRIPTION +The type +.B Rect +defines a rectangular portion of the integer grid. +.TP 10 +.BR min ", " max +These +members define the upper left +.RB ( min ) +and lower right +.RB ( max ) +points for the rectangle. +The rectangle contains the pixels +.BI "min.x\ \fR\(<=\ " "x\ \fR<\ " max.x +and +.BI "min.y\ \fR\(<=\ " "y\ \fR<\ " max.y\fR. +In general, +.B Rect +coordinates should be in canonical form: +.BR min.x "\ \(<=\ " max.x +and +.BR min.y "\ \(<=\ " max.y . +Some functions give undefined results if the +input rectangles are not canonical. +.TP +.IB r .canon() +Returns a canonical rectangle by sorting the coordinates of +.IR r . +.TP +.IB r .dx() +Returns the horizontal dimension of +.IR r . +.TP +.IB r .dy() +Returns the vertical dimension of +.IR r . +.TP +.IB r .eq( s ) +Returns non-zero if the rectangles +.I r +and +.I s +have the same coordinates and zero otherwise. +.TP +.IB r .Xrect( s ) +Returns non-zero if the rectangles +.I r +and +.I s +intersect and zero otherwise. +.I Intersection +means the rectangles share at least one pixel; zero-sized rectangles do not intersect. +.TP +.IB r .inrect( s ) +Returns non-zero if +.I r +is completely inside +.I s +and zero otherwise. +Rectangles with equal coordinates are considered to be inside each other. +Zero-sized rectangles contain no rectangles. +.TP +.IB r .clip( s ) +Computes the intersection between +.I r +and +.IR s . +If the input rectangles intersect, +.B clip +returns the resulting rectangle +and a non-zero integer value. +If the rectangles do not intersect, +.B clip +returns +.I r +and a zero value. +.TP +.IB r .combine( s ) +Returns the smallest rectangle sufficient +to cover all the pixels of +.I r +and +.IR s . +.TP +.IB r .contains( p ) +Returns non-zero if the rectangle +.I r +contains the pixel with the coordinates of +.I p +and zero otherwise. +Zero-sized rectangles contain no points. +.TP +.IB r .addpt( p ) +Returns the rectangle +.BI ( r .min.add( p ), +.IB r .max.add( p ))\fR. +.TP +.IB r .subpt( p ) +Returns the rectangle +.BI ( r .min.sub( p ), +.IB r .max.sub( p ))\fR. +.TP +.IB r .inset( n ) +Returns the rectangle +.BI ( r .min.add(( n , +.IB n )), +.IB r .max.sub(( n , +.IB n ))\fR. +The result will not be in canonical form if the inset amount is +too large for the rectangle. diff --git a/static/inferno/man2/draw-screen.2 b/static/inferno/man2/draw-screen.2 new file mode 100644 index 00000000..17a65781 --- /dev/null +++ b/static/inferno/man2/draw-screen.2 @@ -0,0 +1,137 @@ +.TH DRAW-SCREEN 2 +.SH NAME +Screen \- +windows and subwindows on a display +.SH SYNOPSIS +.EX +include "draw.m"; +draw := load Draw Draw->PATH; + +Screen: adt +{ + id: int; + image: ref Image; + fill: ref Image; + display: ref Display; + + allocate: fn(image, fill: ref Image, public: int): ref Screen; + newwindow: fn(screen: self ref Screen, r: Rect, + backing:int, rgba: int): ref Image; + top: fn(screen: self ref Screen, wins: array of ref Image); +}; +.EE +.SH DESCRIPTION +A +.B Screen +is the data structure representing a set of windows visible on a particular +.B Image +such as the display or a parent window. +.TP 10 +.B id +When a +.B Screen +object is allocated (see +.B allocate +below), the system assigns it a unique integer, +.BR id . +It may be declared ``public'' and accessible to +arbitrary processes and machines with access to the screen's +.BR Display . +The +.B id +value may be used as an argument to +.BR Display.publicscreen ; +see +.IR draw-display (2). +.TP +.B fill +When windows are deleted from a screen, the system uses the +.B fill +image to repaint the screen's base image. +.TP +.B image +The image upon which the windows appear. +.TP +.B display +The display upon which the screen resides. +.TP +.BI allocate( image\fP,\fP\ fill\fP,\fP\ public ) +.B Allocate +makes a new +.B Screen +object. +The +.I image +argument provides the base image on which the windows will be made. +The +.I fill +argument provides the +.B Screen.fill +image. +.B Allocate +does not affect the contents of +.IR image ; +it may be necessary after allocation to paint the base image with +.BR fill . +.IP +Using a non-zero +.I public +argument allocates a public screen; zero requests a private screen. +Public screens may be attached by any process +on any machine with access to the +.B Display +upon which the screen is allocated, enabling remote processes to +create windows on the screen. +Knowing only the +.B id +field of the original +.BR Screen , +the remote process can call the +.B Display.publicscreen +function to acquire a handle to the screen. +The +.B image +and +.B fill +fields of a +.B Screen +obtained this way are +.BR nil , +but they are not needed for ordinary window management. +.TP +.IB screen .newwindow( r\fP,\fP\ backing\fP,\fP\ rgba ) +Allocates a window +on the display at the specified rectangle with the background +colour +.IR rgba , +expressed in 32-bit RGBA format; the return value is an +.B Image +that may be used like any other. +The +.I backing +parameter can be +.BR Draw->Refbackup , +which provides backing store to store obscured parts of the window when necessary, +and is used by the window manager and its clients; or +.BR Draw->Refnone , +which provides no refresh, and is used for windows that are transient, or are already protected by backing +store. +.TP +.IB screen .top( wins ) +.B Top +organizes a group of windows on a screen. +Given +.IR wins , +an array of window images, it places the +.I wins[0] +element at the top, +.I wins[1] +behind that, and so on, +with the last element of +.I wins +in front of the all the windows on the screen not in +.IR wins . +Images in the array must be on the specified +.I screen +.RB ( nil +elements are ignored). diff --git a/static/inferno/man2/drawmux.2 b/static/inferno/man2/drawmux.2 new file mode 100644 index 00000000..3c3989db --- /dev/null +++ b/static/inferno/man2/drawmux.2 @@ -0,0 +1,68 @@ +.TH DRAWMUX 2 +.SH NAME +drawmux \- multiplex stream of draw requests +.SH SYNOPSIS +.EX +include "drawmux.m"; +drawmux := load Drawmux Drawmux->PATH; + +init: fn(): (string, ref Draw->Display); +newviewer: fn(fd: ref Sys->FD); +.EE +.SH DESCRIPTION +.B Drawmux +puts itself between the invoking application and +.B /dev/draw +(see +.IR draw (3)), +so that the contents of the current display can be replicated elsewhere. +.PP +.B Init +returns a new +.B Display +(see +.IR draw-display (2)) +representing a connection to a virtual display device. +Subsequent +.B Draw +requests to that display +(see +.IR draw-intro (2)) +are forwarded to the underlying +.IR draw (3) +device to appear on the physical display, but can also replicated +elsewhere, typically in a window on a remote display. +.PP +.B Newviewer +prepares the virtual display end of a +.B Drawmux +connection for each new viewer of the display created by a previous call to +.BR init . +The file descriptor +.I fd +is a connection to the viewer. +The remote viewer must first write 24 bytes on that connection, +containing two decimal numbers (each 11 digits and a space), +giving the identifier of a public screen on the viewer's display, on which +.B newviewer +will replicate the +.B Drawmux +display, +and the log (base 2) of the number of bits per pixel for windows created on that screen. +The remote viewer must then use +.B Sys->export +(see +.IR sys-export (2)) +to export its +.BR /dev/draw , +which +.B newviewer +expects to find as the root of the exported hierarchy. +Subsequent draw operations on the +.B Drawmux +display will be replicated on the public screen exported by the viewer. +Shutting down the connection shuts down the multiplexor for that viewer. +.SH SEE ALSO +.IR wm-dmview (1), +.IR draw-intro (2), +.IR draw (3) diff --git a/static/inferno/man2/encoding.2 b/static/inferno/man2/encoding.2 new file mode 100644 index 00000000..6dc5189f --- /dev/null +++ b/static/inferno/man2/encoding.2 @@ -0,0 +1,50 @@ +.TH ENCODING 2 +.SH NAME +Encoding: enc, dec \- encoding and decoding of byte arrays as text +.SH SYNOPSIS +.EX +include "encoding.m"; +base16 := load Encoding Encoding->BASE16PATH; +base32 := load Encoding Encoding->BASE32PATH; +base32a := load Encoding Encoding->BASE32APATH; +base64 := load Encoding Encoding->BASE64PATH; + +enc: fn(a: array of byte): string; +dec: fn(s: string): array of byte +.EE +.SH DESCRIPTION +.B Encoding +presents a common interface to several ways of encoding binary data (represented in arrays of bytes) +as printable text, to be included in essentially textual data (such as XML) or +sent through e-mail systems (as in MIME). +.PP +.B Enc +returns a string with a textual encoding of the binary data in +.IR a . +.PP +.B Dec +returns an array of bytes containing the binary data encoded in +.IR s . +.PP +Four encodings are provided, including all those defined by RFC3548; +load the one required from the given path. +.TP +.B BASE16PATH +Encode in base 16, representing each byte as a pair of hexadecimal digits, using upper-case letters (RFC3548). +.TP +.B BASE32PATH +Encode in base 32, encoding 5 bits per character, using upper-case letters, digits `2' to `7', padded with `=', as per RFC3548. +.TP +.B BASE32APATH +Alternative encoding in base 32, encoding 5 bits per character, using digits `2' to `7', letters (either case) except `l' and `o', not padded. +.TP +.B BASE64PATH +Encode in base 64, encoding 6 bits per character, using upper- and lower-case letters, digits, `+' and `/', +padded with `=' (RFC3548). +.PP +When decoding, white space and illegal characters are ignored; +base 16 and base 32 decoders are case-insensitive. +.SH SOURCE +.B /appl/lib/encoding +.SH SEE ALSO +.IR convcs (2) diff --git a/static/inferno/man2/env.2 b/static/inferno/man2/env.2 new file mode 100644 index 00000000..185bd332 --- /dev/null +++ b/static/inferno/man2/env.2 @@ -0,0 +1,52 @@ +.TH ENV 2 +.SH NAME +env \- environment module +.SH SYNOPSIS +.EX +include "env.m"; +env = load Env Env->PATH; + +getenv: fn(var: string): string; +setenv: fn(var: string, val: string): int; +getall: fn(): list of (string, string); +clone: fn(): int; +new: fn(): int; +.EE +.SH DESCRIPTION +.B Env +provides an interface to manipulate environment variables which may then be shared +between processes. +.B Getenv +returns the value of the environment variable +.I var +passed as a parameter, +or +.B nil +if the variable is not set. It does +this by reading the contents of +.BI /env/ var. +.B Setenv +sets the value of the environment variable +.I var +to +.I val. +The value may be nil to unset the variable. It does this by writing the string +.I val +to +.BI /env/ var. +The routine returns a negative number if it fails to set the variable for any reason. +.B Getall +returns all the variables in the current environment as a list of (variable, value) pairs. +.B Clone +copies the current environment and places the process in a new environment group. Changes now +made to the environment will not affect the environment of other processes. +.B New +places the process in a new empty environment group. Changes made in this new environment will +not affect other processes. +.SH SOURCE +.B /appl/lib/env.b +.SH SEE ALSO +.IR env (1), +.IR sys-pctl (2), +.IR env (3) + diff --git a/static/inferno/man2/ether.2 b/static/inferno/man2/ether.2 new file mode 100644 index 00000000..fdd144af --- /dev/null +++ b/static/inferno/man2/ether.2 @@ -0,0 +1,77 @@ +.TH ETHER 2 +.SH NAME +ether \- Ethernet address manipulation +.SH SYNOPSIS +.EX +include "ether.m"; +ether := load Ether Ether->PATH; + +Eaddrlen: con 6; + +init: fn(); +parse: fn(s: string): array of byte; +text: fn(a: array of byte): string; +addressof: fn(dev: string): array of byte; +eqaddr: fn(a, b: array of byte): int; +.SH DESCRIPTION +.B Ether +provides a small set of functions that manipulate Ethernet MAC addresses, +for the use of the few applications such as +.IR bootpd (8) +that must work with them. +.PP +.B Init +must be called before using any other function in the module. +.PP +.B Parse +takes a textual representation of a MAC address in +.I s +and returns its internal representation as an array of bytes of length +.BR Eaddrlen , +the form used in packets read and written via +.IR ether (3). +.I S +is a string of twelve hexadecimal digits, corresponding to the six bytes of a MAC address. +Each pair of digits can optionally be separated by a colon. +If +.I s +is invalid, +.B parse +returns nil. +.PP +.B Text +takes an array of bytes of length +.B Eaddrlen +and returns its textual representation (a string of twelve hexadecimal digits). +It returns +.LR +if the array is less than +.BR Eaddrlen , +but it ignores any bytes beyond that. +.PP +.B Addressof +returns the MAC address of the given Ether device +.I dev +(eg, +.LR /net/ether0 ), +which it reads from +.IB dev /addr . +It returns nil and sets the error string if that file does not exist or is invalid. +.PP +.B Eqaddr +returns true iff +.I a +and +.I b +are the same address. +.SH FILES +.TF /net/etherN/addr +.TP +.IB net /ether N /addr +hardware address of Ether +.I N +.SH SOURCE +.B /appl/lib/ether.b +.SH SEE ALSO +.IR ip (2), +.IR ether (3) diff --git a/static/inferno/man2/exception.2 b/static/inferno/man2/exception.2 new file mode 100644 index 00000000..7a2befee --- /dev/null +++ b/static/inferno/man2/exception.2 @@ -0,0 +1,65 @@ +.TH EXCEPTION 2 +.SH NAME +exception \- obtain data about exceptions and set exception-handling modes +.SH SYNOPSIS +.EX +include "exception.m"; +exc := load Exception Exception->PATH; + +NOTIFYLEADER, PROPAGATE: con iota; + +getexc: fn(pid: int): (int, string, string); +setexcmode: fn(mode: int): int; +.EE +.SH DESCRIPTION +.B Exception +provides functions to fetch data about exceptions in other processes +and change exception-handling modes. +It encapsulates exception-related operations on files in +.IR prog (3). +.PP +When a process incurs an exception, the system saves details before processing the exception, +following Limbo's rules. +.B Getexc +returns a tuple +.BI ( pc,\ module,\ description ) +that describes the most recent exception raised in process +.IR pid . +(A process id of -1 is taken to mean the current process.) +The tuple contains the pc value, the module name, and the exception name. +The value +.B "(0,\ nil,\ nil)" +is returned if no exception has occurred. +.PP +By default, when a process incurs an exception that is not handled — +no +.B exception +clause matches that exception — +the process is stopped in a `Broken' state for debugging, +and the exception does not propagate further. +.B Setexcmode +changes the way that the system handles exceptions for the current process +and those it later spawns. +A +.I mode +of +.BR NOTIFYLEADER +makes the invoking process the leader of the +current process group for exception handling. +Subsequently, an exception in any process in the current process group +will atomically destroy all processes in the group except the leader, +and the exception will be raised in the leader. +(This works even when the leader itself incurs the exception.) +A +.I mode +of +.B PROPAGATE +instead causes an exception in any process in the group to be raised in +all processes in the group, allowing them all to initiate local error recovery +(ie, within each process). +.SH SOURCE +.B /appl/lib/exception.b +.SH DIAGNOSTICS +Both functions return -1 on error and set the system error string. +.SH SEE ALSO +.IR prog (3) diff --git a/static/inferno/man2/factotum.2 b/static/inferno/man2/factotum.2 new file mode 100644 index 00000000..338e6022 --- /dev/null +++ b/static/inferno/man2/factotum.2 @@ -0,0 +1,366 @@ +.TH FACTOTUM 2 +.SH NAME +Factotum: attrtext, challenge, copyattrs, delattr, findattr, findattrval, getuserpassd, mount, open, parseattrs, proxy, +publicattrs, takeattrs, respond, response, rpc, rpcattrs \- client interface to factotum +.SH SYNOPSIS +.EX +include "factotum.m"; +auth := load Factotum Factotum->PATH; + +Authinfo: adt{ + cuid: string; # ID on caller + suid: string; # ID on server + cap: string; # capability (only valid on server side) + secret: array of byte; # key for encryption +}; + +AuthRpcMax: con \fR...\fP; + +init: fn(); +mount: fn(fd: ref Sys->FD, mnt: string, flags: int, + aname: string, keyspec: string): (int, ref Authinfo); + +getuserpasswd: fn(keyspec: string): (string, string); + +Challenge: adt { + user: string; # user (some protocols) + chal: string; # challenge string +}; + +challenge: fn(keyspec: string): ref Challenge; +response: fn(c: ref Challenge, resp: string): ref Authinfo; +respond: fn(chal: string, keyspec: string): (string, string); + +open: fn(): ref Sys->FD; +rpc: fn(facfd: ref Sys->FD, verb: string, a: array of byte): + (string, array of byte); +proxy: fn(afd: ref Sys->FD, facfd: ref Sys->FD, arg: string): + ref Authinfo; +rpcattrs: fn(facfd: ref Sys->FD): list of ref Attr; + +Attr: adt { + tag: int; # Aattr, Aval, or Aquery + name: string; + val: string; + + text: fn(a: self ref Attr): string; +}; + +parseattrs: fn(s: string): list of ref Attr; +copyattrs: fn(l: list of ref Attr): list of ref Attr; +delattr: fn(l: list of ref Attr, n: string): list of ref Attr; +takeattrs: fn(l: list of ref Attr, names: list of string): list of ref Attr; +findattr: fn(l: list of ref Attr, n: string): ref Attr; +findattrval: fn(l: list of ref Attr, n: string): string; +publicattrs: fn(l: list of ref Attr): list of ref Attr; +attrtext: fn(l: list of ref Attr): string; +.EE +.SH DESCRIPTION +.B Factotum +interacts with an instance of the authentication agent +.IR factotum (4) +to authenticate a client to a server. +It can also interact with Plan 9's +.I factotum +if that is in the name space (as well as or instead of +.IR factotum (4)). +.PP +.B Factotum +supports both the basic RPC interface to +.I factotum +and various high-level operations built on that. +The high-level functions will be described first. +.PP +.B Init +must be called before any other function. +.PP +.B Mount +is similar to +.B Sys->mount +(see +.IR sys-bind (2)), +but uses +.I factotum +to authenticate, +if the server requires it. +.B Factotum->mount +should be used instead of +.B Sys->mount +when mounting file servers that use +.IR attach (5) +to authenticate. +(If the server on +.I fd +does not require authentication, +.B Factotum->mount +simply calls +.BR Sys->mount .) +.B Mount +returns +.RI ( v , ai ). +If the integer +.I v +is non-negative, the mount succeeded; +on error, +.I v +is negative, either the authentication or the mount failed, +.I ai +is nil, and the system error string contains a diagnostic. +If the server required authentication and that was successful, +.I ai +is a non-nil reference to an +.B Authinfo +value containing the agreed user IDs, a capability for +.IR cap (3) +that is valid only on the server, and an array of bytes +containing a shared secret that can be used by client +and server to create encryption and hashing keys for the conversation. +.PP +.B Getuserpasswd +returns a tuple +.RI ( user , password ) +containing the values for the +.B user +and +.B !password +attributes of a factotum entry that has +.B proto=pass +and matches the given +.IR keyspec . +The tuple values are nil if no entry matches or the caller lacks permission to see them. +.PP +The pair of functions +.B challenge +and +.B response +give servers access to challenge/response protocols provided by +.IR factotum . +All such authentication protocols are embedded in an application-level protocol +such as FTP, IMAP, POP3 and so on, in a way specific to that protocol. +These functions calculate parameters for application-specific messages. +.PP +A server calls +.B challenge +to get a challenge value to present to the user who will answer the challenge. +The server verifies the user's response by calling +.BR response , +which returns an +.B Authinfo +value (as described above) if the response is correct. +The specific challenge/response protocol is selected by the +.B proto +attribute in the +.I keyspec +for +.BR challenge , +which opens a connection to +.IR factotum , +obtains a string representing a challenge value, +and returns a reference to a +.B Challenge +adt that gives the challenge and a user name. +Some protocols take the user name from a +.B user +attribute in the +.IR keyspec , +and others negotiate it within the authentication protocol. +In the latter case, the +.B user +field of the resulting +.B Challenge +gives the name negotiated. +.PP +In the other direction, a process uses +.B respond +to calculate the correct response to a given challenge. +.I Chal +is the challenge presented by a server, and +.I keyspec +gives the attributes of the relevant key in the local +.IR factotum . +.B Respond +interacts with +.I factotum +and returns a tuple +.RI ( response,\ user ) +that gives the +.I response +string to return to the server, and an optional +.I user +name, depending on the protocol. +On error, the +.I response +is nil, and the system error string contains a diagnostic. +.PP +.IR Factotum (4) +represents keys as attribute value pairs in textual form, with space-separated fields. +A field can be a value-less +.IR attribute , +an +.IB attribute = value +pair, or +.IB attribute ? +to mark a required attribute with unknown value. +An +.I attribute +name that begins with an exclamation mark +.RB ( ! ) +is to be considered hidden or secret. +Values containing white space or special characters can be quoted using the conventions of +.IR sh (1). +.PP +.B Parseattrs +parses a string +.I s +of that form into a list of +.B Attr +references. +Each +.B Attr +has a +.B tag +that identifies the value as +.B Aattr +(a value-less attribute), a +.B Aval +(an attribute-value pair), or +.B Aquery +(an attribute for which a value is needed). +Other operations include: +.TP 15n +.B copyattrs +Return a copy of attribute list +.IR l . +.TP +.B delattr +Return a copy of +.I l +removing all attributes with name +.IR n . +.TP +.B takeattrs +Return the subset of list +.I l +that contains only the attributes listed in +.IR names . +.TP +.B findattr +Return a reference to the first +.B Attr +in +.I l +with the name +.IR n . +.TP +.B findattrval +Return the value of the first attribute in +.I l +with name +.IR n ; +return nil if the attribute is not found or has no value. +.TP +.B publicattrs +Return a copy of +.I l +in which all secret attributes have been removed. +.TP +.B attrtext +Return the textual representation of attribute list +.IR l , +acceptable to +.BR parseattrs . +.PP +The low-level interfaces to +.I factotum +are as follows. +.PP +.B Proxy +links an authenticating server on +.I afd +with the +.I factotum +agent on +.IR facfd . +Typically +.I facfd +is the result of calling +.BR Factotum->open , +which is equivalent to +.IP +.EX +sys->open("/mnt/factotum/rpc", Sys->ORDWR) +.EE +.PP +.I Afd +is a file descriptor that represents a connection to the service that requires authentication. +It is typically the result of +.IR sys-open (2), +.IR dial (2), +or +.IR sys-fauth (2). +.I Params +gives any parameters for +.IR factotum , +as a string containing space-separated +.IB attr = value +pairs. +.B Proxy +ferries messages between the server and +.I factotum +until the end of the selected authentication protocol. +If authentication failed, +.B proxy +returns nil; otherwise on success it always returns a non-nil reference to an +.B Authinfo +value with contents as above, but if the protocol does not +supply that authentication data, all the values are nil. +.PP +.B Rpcattrs +returns the initial attributes provided in the +.B start +request, and any others added later by the protocol. +.PP +.B Rpc +does one message exchange with the +.I factotum +on +.IR facfd . +It writes a message containing the given +.I verb +and optional binary parameter +.IR a , +and returns +.RI ( v , a ) +where +.I v +is the response string from +.I factotum +and +.I a +is an optional binary parameter for that response. +Exceptionally, +.I v +is the string +\f5"rpc failure"\fP +if communication fails or a message is garbled, or +\f5"no key"\fP +if +.B rpc +cannot find a suitable key. +See +.IR factotum (4) +for details of the protocol. +.PP +.B AuthRpcMax +is an integer constant giving the maximum size of a message in an +.B rpc +exchange. +.SH SOURCE +.B /appl/lib/factotum.b +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-fauth (2), +.IR factotum (4), +.IR attach (5) +.SH DIAGNOSTICS +Functions that return nil references on error also set the system error string. diff --git a/static/inferno/man2/filepat.2 b/static/inferno/man2/filepat.2 new file mode 100644 index 00000000..0f8eff5b --- /dev/null +++ b/static/inferno/man2/filepat.2 @@ -0,0 +1,80 @@ +.TH FILEPAT 2 +.SH NAME +filepat: expand, match \- file pattern matching +.SH SYNOPSIS +.EX +include "filepat.m"; +filepat := load Filepat Filepat->PATH; + +expand: fn(pat: string): list of string; +match: fn(pat, name: string): int; +.EE +.SH DESCRIPTION +.B Expand +builds a list of file names in alphabetical order that match +the pattern +.IR pat . +The pattern is tokenised using +.B / +as a delimiter. +.PP +.B Match +returns 1 if +.I name +matches the pattern +.IR pat , +and 0 otherwise. +.PP +The +.I pat +passed to +.B match +and +.B expand +may include combinations of the special characters +.BR * , +.BR ? , +.BR [ , +and +.BR ] . +.PP +The asterisk +.B * +matches a string of zero or more characters. +.PP +The query +.B ? +matches any single character. +.PP +The notation +.BI [ s ]\f1, +where +.I s +is a nonempty string, matches any +single character in +.IR s . +The notation +.BI [^ s ]\f1, +where +.IR s +is a nonempty string, matches any +single character not in +.IR s . +The characters +.BR * , +.BR ? , +and +.BR [ +have no special meaning within s. +.PP +If any character +is preceded by the character +.BR \e , +that character loses any special meaning +and is interpreted literally. +.SH SOURCE +.B /appl/lib/filepat.b +.SH SEE ALSO +.IR sys-tokenize (2), +.IR readdir (2) +.IR regex (2) diff --git a/static/inferno/man2/filter-deflate.2 b/static/inferno/man2/filter-deflate.2 new file mode 100644 index 00000000..6de01912 --- /dev/null +++ b/static/inferno/man2/filter-deflate.2 @@ -0,0 +1,101 @@ +.TH FILTER-DEFLATE 2 +.SH NAME +deflate, inflate \- data compression filters +.SH SYNOPSIS +.EX +include "filter.m"; + +deflate := load Filter Filter->DEFLATEPATH; +inflate := load Filter Filter->INFLATEPATH; + +init: fn(); +start: fn(param: string): chan of ref Rq; +.EE +.SH DESCRIPTION +These implementation modules conform to the +.B Filter +module interface for data-processing filters. +For details of the interface, see +.IR filter (2). +.PP +.I Deflate +implements gzip-compatible stream compression. +The +.I param +string argument to +.B start +can contain one or more of the following option characters: +.RS 10 +.TP +.RB ` d ' +Enable debugging output. Each line of debugging output +is provided in an +.B Rq.Info +message. +.TP +.RB ` v ' +Enable verbose mode. Each line of verbose output +is provided in an +.B Rq.Info +message. +.TP +.RB ` h ' +Add a gzip header and footer to the data. With this flag, +the data after filtering will be in exactly the same +format as a gzip file, with accompanying checksum. +.TP +.RB ` z ' +Add a zlib header and footer to the data. The footer contains a +checksum. +.TP +.RB ` 0 '\ to\ ` 9 ' +Specifies the level of compression to be used (9 highest). See +.IR gzip (1). +.RE +.PP +.I Inflate +performs the inverse operation to +.BR deflate . +If the +.I param +argument to +.B start +begins with the character +.RB ` h ' +then the input to the filter is assumed to be in the +standard gzip file format; if it starts with the character +.RB ` z ' +it is assumed to be in zlib format; the output will be checked +for integrity in both cases. While processing a gzip stream, the +.B Rq.Info +message is used to transmit some information; the type +of information is determined by the first word of +.IR msg , +as follows: +.RS +.TP +.B file +The rest of +.I msg +(after a following space) is the name of the original filename +before compression. +.TP +.B mtime +The rest of +.I msg +(after a following space) is the modification time of the +original file before compression. +.RE +.SH SOURCE +.B /appl/lib/deflate.b +.br +.B /appl/lib/inflate.b +.SH SEE ALSO +.IR gzip (1), +.IR filter (2) +.br +Internet RFCs +.IR RFC1950 , +.IR RFC1951 , +and +.IR RFC1952 . diff --git a/static/inferno/man2/filter-slip.2 b/static/inferno/man2/filter-slip.2 new file mode 100644 index 00000000..6b35f46c --- /dev/null +++ b/static/inferno/man2/filter-slip.2 @@ -0,0 +1,52 @@ +.TH FILTER-SLIP 2 +.SH NAME +slip \- SLIP data framing protocol +.SH SYNOPSIS +.EX +include "filter.m"; + +slip := load Filter Filter->SLIPPATH; + +init: fn(); +start: fn(param: string): chan of ref Rq; +.EE +.SH DESCRIPTION +.I Slip +provides the SLIP data framing protocol described by RFC1055. +The module is an implementation of the general data-processing module type +.BR Filter ; +see +.IR filter (2) +for details of that general interface. +.PP +.B Init +must be called before any other operation of the module. +.PP +.B Start +begins SLIP line encoding or decoding via the channel it returns, +following the protocol of +.IR filter (2). +.I Param +is one of the two following strings: +.TF encode +.PD +.TP +.B encode +The filter takes the block of data obtained by each +.B Rq.Fill +message, adds framing and escape characters as required, +and returns the resulting data block in an +.B Rq.Result +message. +.TP +.B decode +The filter operates on the data in +.B Rq.Fill +messages as a single stream of bytes, providing an +.B Rq.Result +message for each framed message found in the stream, +with escape characters processed to retrieve the original data. +.SH SOURCE +.B /appl/lib/slip.b +.SH SEE ALSO +.IR filter (2) diff --git a/static/inferno/man2/filter.2 b/static/inferno/man2/filter.2 new file mode 100644 index 00000000..0922337b --- /dev/null +++ b/static/inferno/man2/filter.2 @@ -0,0 +1,112 @@ +.TH FILTER 2 +.SH NAME +filter \- data processing interface +.SH SYNOPSIS +.B +include "filter.m"; +.br +.BI "filter := load Filter " filterpath ";" + +.EX +Rq: adt { + pick { + Start => + pid: int; + Fill or Result => + buf: array of byte; + reply: chan of int; + Finished => + buf: array of byte; + Info => + msg: string; + Error => + e: string; + } +}; + +init: fn(); +start: fn(param: string): chan of ref Rq; +.EE +.SH DESCRIPTION +.B Filter +defines a general module interface for byte-stream processing. +This manual page documents how to use the interface, and +by implication how a +.B Filter +module should behave. +There is a different implementation module for each filter type +and algorithm (eg, for compression or line encoding). +All implementations are instances of type +.BR Filter , +loaded from the Dis file +.IR filterpath , +given in the manual page for each standard filter +(or you can write your own to match this specification). +For details of each existing filter module, see +.IR filter-deflate (2) +and following manual pages. +.PP +.B Init +must be called before any other operation of a filter module. +.PP +.B Start +sets the filter going; +.I param +can be used to pass any filter-specific information +to the processor. +.B Start +spawns a new thread to do the processing; it returns +a channel that is used to receive requests from the +filter. +The first message sent is always +.BR Rq.Start ; +.I pid +is the process id of the new process spawned. +.PP +Subsequent messages are: +.TF Rq.Finished +.PD +.TP +.B Rq.Fill +A request by the filter to fill +.I buf +with data. +The number of bytes that have actually +been placed in the buffer should be sent +on +.IR reply . +If \-1 is sent, the filter will terminate. +If the value is 0, the filter will terminate once it has processed +all its input. +.TP +.B Rq.Result +.I Buf +contains data from the filter. +Receipt of the the data must be acknowledged +by sending a value on +.IR reply . +If the value is \-1, the filter will terminate. +.TP +.B Rq.Finished +The filter has finished processing. +.I Buf +contains any data that was not consumed +by the filter. The filter terminates after +sending this message. +.TP +.B Rq.Info +This message is used to send a string of +arbitrary information from the filter +during the course of its processing. +.TP +.B Rq.Error +The filter has encountered an error when processing. +.I E +is a string describing the error. The filter terminates +after sending this message. +.SH SOURCE +.B /module/filter.m +.SH SEE ALSO +.IR gzip (1), +.IR filter-deflate (2), +.IR filter-slip (2) diff --git a/static/inferno/man2/format.2 b/static/inferno/man2/format.2 new file mode 100644 index 00000000..8f95ae5c --- /dev/null +++ b/static/inferno/man2/format.2 @@ -0,0 +1,249 @@ +.TH FORMAT 2 +.SH NAME +format \- structured data interchange +.SH SYNOPSIS +.EX +include "sys.m"; +include "bufio.m"; +include "sexprs.m"; +include "format.m"; +format := load Format Format->PATH; + +Fmtspec: adt { + name: string; + fields: cyclic array of Fmtspec; +}; +Fmt: adt { + kind: int; + fields: cyclic array of Fmt; +}; +Fmtval: adt { + text: fn(v: self Fmtval): string; + val: ref Sexprs->Sexp; + recs: cyclic array of array of Fmtval; +}; +Fmtfile: adt { + spec: array of Fmtspec; + descr: array of byte; + + new: fn(spec: array of Fmtspec): Fmtfile; + open: fn(f: self Fmtfile, name: string): + ref Bufio->Iobuf; + read: fn(f: self Fmtfile, iob: ref Bufio->Iobuf): + (array of Fmtval, string); +}; +init: fn(); +spec2se: fn(spec: array of Fmtspec): list of ref Sexprs->Sexp; +spec2fmt: fn(spec: array of Fmtspec): array of Fmt; +se2fmt: fn(spec: array of Fmtspec, se: ref Sexprs->Sexp): + (array of Fmt, string); +rec2val: fn(spec: array of Fmtspec, rec: ref Sexprs->Sexp): + (array of Fmtval, string); +.EE +.SH DESCRIPTION +.B Format +provides support for programs that wish to marshal and unmarshal +structured data. It is designed to enable a client to +request that the structure data is provided by the server in a particular +format, and for the server to be able to check that it is capable of providing +that format. +.PP +A +.I record +consists of a set of +.IR fields , +each represented by one element in an +.IR sexprs (2) +list. The content of a field can be a simple value, or it can hold a list containing +any number of sub-records, each holding a set of fields, recursively defined as above. +.PP +The +.B Fmtspec +type defines the format for a field in a record. +.I Name +gives the name of the field, and +.I fields +gives the structure of the fields in any sub-records it contains +(for a field with a simple value, this will be nil). +Thus an array of +.B Fmtspec +values can define the structure of all the fields in a record. +Here is an example structure specification: +.IP +.EX +Name, Address, Phone: con iota; +Number, Kind: con iota; +spec := array[] of { + Address => Fmtspec("address", nil), + Name => Fmtspec("name", nil), + Phone => Fmtspec("phone", array[] of { + Kind => Fmtspec("kind", nil), + Number => Fmtspec("number", nil), + }), +}; +.EE +.PP +By placing each field in the structure specification +at a known index, a link is made from the symbolic constants in the program +to the textual field names. +.PP +A structure specification may also be represented by +a list of S-expressions, where each member of the list +names a field in the structure. If a member is itself +a list, it specifies a field containing sub-records: its first member gives the name of the field, and +subsequent members specify the fields in its sub-records. +For example, the above specification could be written as the +S-expression: +.IP +.EX +(name address (phone number kind)) +.EE +.PP +The +.B Fmt +type also defines a record structure, but +.I "with respect" +to an existing +.B Fmtspec +structure specification. +An +.B Fmt +value represents a field, and +.I kind +holds the index of that field in the original structure specification. +.PP +.I Se2fmt +converts from an S-expression list, +.IR se +(a structure specification), +to a set of +.B Fmt +values. +The specification must be a subset of +.IR spec ; +i.e. each field in +.I se +must exist in +.IR spec . +.I Se2fmt +returns a tuple +.BI ( "f, err" ) . +If the specification is bad, +.I f +will be nil, and +.I err +describes the error. +Otherwise, each member of +.I f +gives a field specified by +.IR se . +For example, given the above structure definition, after executing: +.IP +.EX + se := Sexp.parse("(address (phone number))").t0; + (f, err) := se2fmt(spec, se); +.EE +.PP +.IB f [0].kind +will hold the symbolic constant +.BR Address , +and +.IB f [1].fields[0].kind +will hold +.BR Number . +.PP +.I Spec2se +converts from a structure representation to its S-expression +equivalent. +.I Spec2fmt +converts it to an array of +.B Fmt +structures mirroring it (equivalent to, but more efficient than, +.BI se2fmt(spec2se( spec )).t0\fR) +.SS "Data representation" +The above specifications do not define a format for the +representation of the actual data. For convenience however, +.B Format +defines its own S-expression-based data format. +In this form, the fields in a record are represented by items +in an S-expression list. A field containing sub-records is represented as +a (possibly empty) list containing the sub-records; +otherwise the value of a field may be an arbitrary S-expression. +.PP +For example, a record corresponding to the +structure specification +.IP +.EX +(name address (phone kind number)) +.EE +.PP +might look like: +.IP +.EX +("Jonny Dawes" "24 Crag Lane" + ((home "+44 7924 43535") (office "034 433 645"))) +.EE +.PP +.I Rec2val +cracks such a record, +.IR rec , +into its component values, checking +that it is structurally compatible with the specification, +.IR spec , +and returning a tuple +.BI ( "fields, err" ) . +If it failed, +.I fields +will be nil, and +.I err +describes the error. Otherwise +each member of +.IR fields , +say +.IR v , +holds the value of its equivalent field in +.IR spec . +For fields without sub-records, +.IB v .val +holds the field's value; +otherwise +.IB v .recs +holds an array with one member for each +sub-record, each holding an array of fields +defined recursively as above. +.PP +Some file servers +provide files to which a format specification may +be written, and which provide a sequence of records +in that format when read. +The +.B Fmtfile +type provides support for such files. +It provides the following operations: +.TP +.BI Fmtfile.new( spec ) +returns a new +.B Fmtfile +value +that can be used to open files and read records +conforming to the given +.IR spec . +.TP +.IB f .open(\fIname\fP) +opens such a file, writes the format specification to it, +and returns an +.B Iobuf +(see +.IR bufio (2)) +ready for reading the file. +.TP +.IB f .read +reads a record from the file; its return is the +same as that from +.BR rec2val . +.SH SOURCE +/appl/lib/format.b +.SH SEE ALSO +.IR sexprs (2), +.IR bufio (2), +.IR sexprs (6) diff --git a/static/inferno/man2/fsproto.2 b/static/inferno/man2/fsproto.2 new file mode 100644 index 00000000..d67368ef --- /dev/null +++ b/static/inferno/man2/fsproto.2 @@ -0,0 +1,88 @@ +.TH FSPROTO 2 +.SH NAME +FSproto: readprotofile, readprotostring \- read file system prototype file +.SH SYNOPSIS +.EX +include "fsproto.m"; +fsproto := load FSproto FSproto->PATH; + +Direntry: type (string, string, ref Sys->Dir); + +init: fn(): string; + +readprotofile: fn(proto: string, root: string, + entries: chan of Direntry, + warnings: chan of (string, string)): string; + +readprotostring: fn(proto: string, root: string, + entries: chan of Direntry, + warnings: chan of (string, string)); +.EE +.SH DESCRIPTION +.B FSproto +provides an interface to read a file system prototype file, +as defined by +.IR proto (6). +.PP +.B Init +must be called before any other function in the module. +.PP +.B Readprotofile +reads a file system prototype from the file +.IR proto . +It traverses the file system, starting at the given +.IR root , +and each file or directory encountered that is mentioned +in the prototype causes +.B readprotofile +to send a +.B Direntry +tuple on the channel +.IR entries . +The tuple has the form +.BI ( old , new , dir\fP\f5)\fP +where +.I old +is the name of the current file or directory, +rooted at +.IR root , +.I new +is the same file's name +.I relative +to +.IR root , +and +.I dir +is a reference to the +.B Sys->Dir +directory information for +.IR old , +as produced by +.IR sys-stat (2). +When all files in +.I root +have been examined, +.B readprotofile +sends a single tuple with all nil components on +.IR entries . +For each error that occurs during processing (eg, unable to open a directory) +.B readprotofile +sends a tuple +.BI ( old , diag ) +on the channel +.IR warnings , +naming the file and giving a diagnostic string, +but processing continues. +.PP +.B Readprotostring +reads a file system prototype from the string +.I proto +itself. +Otherwise, its operation is the same as +.BR readprotofile . +.SH SOURCE +.B /appl/lib/fsproto.b +.SH SEE ALSO +.IR fs (1), +.IR proto (6), +.IR mkfs (8) diff --git a/static/inferno/man2/geodesy.2 b/static/inferno/man2/geodesy.2 new file mode 100644 index 00000000..73c5331a --- /dev/null +++ b/static/inferno/man2/geodesy.2 @@ -0,0 +1,146 @@ +.TH GEODESY 2 +.SH NAME +geodesy \- Geodesy module +.SH SYNOPSIS +.EX +include "geodesy.m"; +geodesy := load Geodesy Geodesy->PATH; + +# easting, northing +Eano: adt{ + e: real; + n: real; +}; + +# latitude, longitude in radians +Lalo: adt{ + la: real; + lo: real; +}; + +OSGB36, Ireland65, ED50, WGS84, ITRS2000, ETRS89: con iota; + +Natgrid, IrishNatgrid, UTMEur, UTM: con iota; + +init: fn(d: int, t: int, z: int); +format: fn(d: int, t: int, z: int); +os2en: fn(s: string): (int, Eano); +en2os: fn(en: Eano): string; +str2lalo: fn(s: string): (int, Lalo); +lalo2str: fn(lalo: Lalo): string; +str2en: fn(s: string): (int, Eano); +en2lalo: fn(en: Eano): Lalo; +lalo2en: fn(lalo: Lalo): Eano; +datum2datum: fn(lalo: Lalo, f: int, t: int): Lalo; +.EE +.SH DESCRIPTION +.B Geodesy +provides routines to deal with (some) terrestrial coordinate systems. +.PP +Eastings and northings are defined by the +.B Eano +adt and are measured in metres and latitude and longitude (which should be in radians) by the +.B Lalo +adt. Latitude is in the range -π/2 to π/2 radians and longitude in the +range -π to π radians. +.PP +.B OSGB36 +(Ordnance Survey Great Britain 1936), +.B Ireland65 +(Ireland 1965), +.B ED50 +(European Datum 1950), +.B WGS84 +(World Geodetic System 1984), +.B ITRS2000 +(International Terrestrial Reference System 2000), and +.B ETRS89 +(European Terrestrial Reference System 1989) are the current datums defined. Helmert transformations are used +to convert between them. Note that +.B Ireland65 +and +.B ED50 +are currently not supported and +.B WGS84 +and +.B ITRS2000 +are considered equivalent. +.PP +.B Natgrid +(National Grid), +.B IrishNatgrid +(Irish National Grid), +.B UTMEur +(European Universal Transverse Mercator), and +.B UTM +(Universal Transverse Mercator) are the current transverse Mercator projections supported. +.PP +The following functions are provided +.TP +.B init +The module should always be initialized first. The parameters are +the required datum (default WGS84), transverse Mercator projection (default Natgrid) and UTM zone (default 30) if appropriate. Negative values or out of range values are +ignored. +.TP +.B format +Parameters as above. Alters the current settings at any time though care +must be taken to ensure existing coordinates are still treated as in their +original form. +.TP +.B os2en +Converts an Ordnance Survey National Grid reference to an easting, northing. +The formats XYen, XYeenn, XYeeennn, XYeeeennnn, XYeeeeennnnn, eenn, +eeennn, eeeennnn, eeeeennnnn and eeeeeennnnnn are allowed. Here X and +Y are upper case letters, e is an easting digit and n is a northing digit. The +reference can therefore be rounded to the nearest decakilometre, kilometre, +hectometre, decametre or metre. The first element of the returned tuple is zero +if the string has an incorrect format. +.TP +.B en2os +Converts an easting, northing to an OS reference in the form XYeeeeennnnn +as above. +.TP +.B str2lalo +Converts a latitude/longitude string to a latitude, longitude. The string +may have the formats deg[N|S], deg:min[N|S] or deg:min:sec[N|S] for +latitude, deg[E|W], deg:min[E|W] or deg:min:sec[E|W] for longitude. The +latitude must come first, then optional white space, then the longitude. +Degrees, minutes and seconds may be integer or real. Format errors +are indicated as in +.B os2en. +.TP +.B lalo2str +Converts a latitude, longitude to string format as above. Seconds are given +to two decimal places. +.TP +.B str2en +Converts a string in OS or latitude/longitude format as above to an easting, northing. +Format errors indicated as in +.B os2en. +.TP +.B en2lalo +Converts an easting, northing to latitude, longitude using the current transverse +Mercator projection.If the latter is +.B UTM +or +.B UTMEur +the current zone setting will be used. +.TP +.B lalo2en +Converts latitude, longitude to an easting, northing using the current transverse +Mercator projection. +.TP +datum2datum +Approximate (Helmert) transformation of a latitude, longitude between any of +.B OSGB36, +.B WGS84, +.B ITRS2000 +or +.B ETRS89. +The `from' datum appears first in the parameter list. +.SH SOURCE +.B /module/math/geodesy.m +.br +.B /appl/math/geodesy.b +.SH BUGS +The module is heavily biased towards Great Britain. diff --git a/static/inferno/man2/hash.2 b/static/inferno/man2/hash.2 new file mode 100644 index 00000000..522069a0 --- /dev/null +++ b/static/inferno/man2/hash.2 @@ -0,0 +1,91 @@ +.TH HASH 2 +.SH NAME +hash, HashTable \- hash table +.SH SYNOPSIS +.EX +include "hash.m"; +hash := load Hash Hash->PATH; + +new: fn(size:int):ref HashTable; + +HashTable: adt{ + insert: fn(h:self ref HashTable, key:string, val:HashVal); + find: fn(h:self ref HashTable, key:string):ref HashVal; + delete: fn(h:self ref HashTable, key:string); + all: fn(h:self ref HashTable): list of HashNode; +}; +HashVal: adt{ + i: int; + r: real; + s: string; +}; +HashNode: adt{ + key: string; + val: ref HashVal; +}; +fun1, fun2: fn(s:string, n:int):int; +.EE +.SH DESCRIPTION +The hash module provides support for arrays that are indexed by keys of type +.BR string . + +The values may be any combination of +.BR int , +.BR real , +or +.BR string . +.B New +creates and returns a new +.B HashTable +with +.I size +slots. The hashing works best if +.I size +is a prime number. The +.B HashVal +adt contains the data values of the hash. +The +.B HashNode +adt contains the key/value pair for each element in the table. +.TP +.IB ht .insert( "key, value" ) +Adds a new +.IR key / value +pair to the table. +If an element with the same +.I key +already exists, +it will acquire the new +.IR value . +.TP +.IB ht .find( key ) +Search the table for an element with the given +.I key +and return the value found; return nil if none was found. +.TP +.IB ht .delete( key ) +Removes any element with the given +.I key +from the table. +.TP +.IB ht .all() +Returns a list of all key/value pairs stored in the table. +.PP +.B Fun1 +and +.B fun2 +provide access to two different string hashing functions. +.B Fun1 +is the function used internally; +.B fun2 +is the same as that used in the Limbo compiler. +They each compute the hash value of +.I s +and return a value between 0 and +.IR n \-1. +.SH SOURCE +.B /appl/lib/hash.b +.SH BUGS +.B HashVal +should really be a +.BR pick . diff --git a/static/inferno/man2/ida.2 b/static/inferno/man2/ida.2 new file mode 100644 index 00000000..127926a8 --- /dev/null +++ b/static/inferno/man2/ida.2 @@ -0,0 +1,151 @@ +.TH IDA 2 +.SH NAME +Ida: Frag, fragment, consistent, reconstruct \- information dispersal algorithm +.SH SYNOPSIS +.EX +include "ida.m"; +ida := load Ida Ida->PATH; + +Frag: adt { + dlen: int; # length of original data + m: int; # minimum pieces for reconstruction + a: array of int; # encoding array row for this fragment + enc: array of int; # encoded data + + tag: array of byte; # user data, such as SHA1 hash + pack: fn(f: self ref Frag): array of byte; + unpack: fn(d: array of byte): ref Frag; +}; + +init: fn(); +fragment: fn(data: array of byte, m: int): ref Frag; +consistent: fn(frags: array of ref Frag): array of ref Frag; +reconstruct: fn(frags: array of ref Frag): (array of byte, string); +.EE +.SH DESCRIPTION +.B Ida +implements Rabin's Information Dispersal Algorithm (IDA), an effective scheme +for fault-tolerant storage and message routing. +The algorithm breaks an array of bytes (for instance a file or a block of data) into +.I n +pieces, +in such a way that the original data can be recovered using only +.I m +of them, where +.I n +and +.I m +are parameters. +The module provides the fundamental operations. +.PP +.B Init +must be called before invoking any other operation of the module. +.PP +.B Fragment +takes an array of +.IR data , +and +.IR m , +the minimum number of pieces required for reconstruction, +and returns a reference to a +.B Frag +value representing one encoded fragment of the data. +At least +.I m +calls must be made to +.B fragment +to obtain enough such fragments to be able to rebuild the data; +invariably more fragments are generated to provide the desired level of redundancy. +.PP +Each fragment +.B Frag +has the following components: +.TP +.B dlen +The length in bytes of the +.IR data . +.TP +.B m +The minimum number of fragments for reconstruction. +.TP +.B a +The row of an \fIm\fP×\fIm\fP encoding matrix that corresponds to this fragment. +.TP +.B enc +The encoded data, represented by an array of integer values. +For +.I L +bytes of input data, the array will have length +.\\"$ left ceil L over 2m right ceil $. +.rm 11 +.ds 12 "\f2L\fP +.ds 13 "\f12\fP\f2\^m\fP +.nr 12 0\w'\s+0\*(12' +.nr 13 0\w'\s+0\*(13' +.nr 14 \n(12 +.if \n(13>\n(14 .nr 14 \n(13 +.nr 14 \n(14+0.5m +.ds 12 \v'0.7m'\h'\n(14u-\n(13u/2u'\*(13\v'-0.7m'\ +\h'-\n(13u-\n(12u/2u'\v'-0.6m'\*(12\v'0.6m'\ +\h'-\n(14u-\n(12u/2u+0.1m'\v'-0.3m'\l'\n(14u-0.2m'\h'0.1m'\v'0.3m' +.ds 12 \^\v'0.13m'\b'\(lc\(bv\(bv'\v'-0.13m'\*(12\v'0.13m'\b'\(rc\(bv\(bv'\v'-0.13m' +.ds 12 \x'0-0.85m'\*(12\x'1.05m' +.as 11 \*(12 +.lf 4 +.as 11 ". +\*(11 +.lf 5 +.PP +All those values must be stored or transmitted for later use, to reconstruct the data. +The values in +.B a +are in the interval +.RI "[ 1,\ 65536 ]" +and those in +.B enc +are in the interval +.RI "[ 0,\ 65536 ]." +.PP +.B Reconstruct +takes an array +.I frags +of distinct fragments previously produced by repeated calls to +.BI fragment( data,\ m ) +and returns a tuple +.BI ( data,\ err ) . +Provided at least +.I m +suitable fragments are found in +.IR frags , +the +.I data +returned will be that originally provided to +.BR fragment . +If the parameters of the various fragments in +.I frags +disagree, or some other error occurs, +.I data +will be nil and +.I err +will contain a diagnostic. +.B Reconstruct +assumes the fragments it receives are consistent: +they represent the same encoding parameters, including the value of +.IR m . +If it detects an inconsistency, it returns a diagnostic. +.PP +.B Consistent +checks the consistency of a set of fragments, and returns a new subset containing +only those fragments that agree with the majority in +.I frags +on each parameter. +.SH SOURCE +.B /appl/lib/ida/ida.b +.br +.B /appl/lib/ida/idatab.b +.SH SEE ALSO +M Rabin, ``Efficient Dispersal of Information for Security, Load Balancing, and Fault Tolerance'', +.I JACM +.BR 36(2) , +April 1989, +pp. 335-348. diff --git a/static/inferno/man2/imagefile.2 b/static/inferno/man2/imagefile.2 new file mode 100644 index 00000000..7ba9e415 --- /dev/null +++ b/static/inferno/man2/imagefile.2 @@ -0,0 +1,157 @@ +.TH IMAGEFILE 2 +.SH NAME +imagefile: readgif, readjpg, readpicfile, readpng, readxbitmap, remap \- processing external image file formats +.SH SYNOPSIS +.EX +include "imagefile.m"; + +gifreader := load RImagefile RImagefile->READGIFPATH; +jpgreader := load RImagefile RImagefile->READJPGPATH; +xbmreader := load RImagefile RImagefile->READXBMPATH; +picreader := load RImagefile RImagefile->READPICPATH; +pngreader := load RImagefile RImagefile->READPNGPATH; + +imageremap := load Imageremap Imageremap->PATH; + +Rawimage: adt +{ + r: Draw->Rect; + cmap: array of byte; + nchans: int; + chans: array of array of byte; + chandesc: int; + + init: fn(bufio: Bufio); + read: fn(fd: ref Bufio->Iobuf): (ref Rawimage, string); + readmulti: fn(fd: ref Bufio->Iobuf): + (array of ref Rawimage, string); +}; + +init: fn(bufio: Bufio); +writeimage: fn(fd: ref Bufio->Iobuf, image: ref Draw->Image) + : string; + +remap: fn(i: ref RImagefile->Rawimage, d: ref Draw->Display, + errdiff: int): (ref Draw->Image, string); +.EE +.SH DESCRIPTION +The +.B Rawimage +.B adt +of module +.B RImagefile +defines an internal representation +and routines for reading images such as GIF and JPEG files. +To read a set of files of a given format, load the appropriate module, +pass its +.B init +function an implementation of the +.B Bufio +module, and pass +.B read +an +.B Bufio->Iobuf +for each file. +.B Read +returns a tuple: a +.B ref +.B Rawimage +that holds the image and an error string. +If the +.B Rawimage +is +.BR nil , +the error string will report the reason. +Files (particularly GIF files) are often incorrectly encoded but yield usable pictures, +so even if a +.B Rawimage +is returned, the error string may still report problems. +.PP +Some image file types (eg, GIF) support having several images in a single file. +They can be read in all at once using +.BR readmulti , +which returns a tuple with the array of images, and an error string as above. +.PP +The +.B Rawimage +is always defined as one or more bytes per pixel, with +.B nchans +channels of data stored in the array +.BR chans . +The +.B chandesc +field, described below, specifies the contents of +.BR chans . +The +rectangle +.B r +describes the shape of the picture. +.PP +The +.B Rawimage +type can be converted to a regular +.B Image +(see +.IR draw-image (2)) +by calling module +.BR Imageremap 's +function +.B remap. +.B Remap +is passed the +.BR Rawimage , +a +.B Display +on which to create the image, and a flag that specifies whether to apply Floyd-Steinberg +error diffusion code to the result, for smoother rendering of colours at the cost of +some noise in the image. +.PP +How to remap is defined by the +.B RImagefile +itself: the field +.B chandesc +specifies the type of the various +.B chans +of data: +.B RImagefile->CRGB +specifies a 3-colour RGB image with no colour map; +.B RImagefile->CY +a monotone (luminance-only, grey-scale) image with no colour map; +and +.B RImagefile->CRGB1 +a single-channel image with RGB colour map in +.BR cmap . +The file readers set +.B chandesc +as appropriate for the format of the file. +.PP +The writing of image files is defined by the module +.BR WImagefile. +To initialize the module, call its +.B init +function with an instance of the +.B Bufio +module and pass its +.B writeimage +function a +.B Bufio->Iobuf +representing the output stream and an image of type +.B Draw->Image. +.PP +These functions are split into separate modules to give applications control over +the memory they need to process images. +.SH SOURCE +.B /appl/lib/readgif.b +.br +.B /appl/lib/readjpg.b +.br +.B /appl/lib/readxbitmap.b +.br +.B /appl/lib/readpicfile.b +.br +.B /appl/lib/readpng.b +.SH NOTES +The JPEG reader handles only the Baseline sequential format as defined by +the JFIF 1.02 file exchange format. +.PP +Functions to write these formats are as yet unimplemented. diff --git a/static/inferno/man2/ip.2 b/static/inferno/man2/ip.2 new file mode 100644 index 00000000..7739c2b5 --- /dev/null +++ b/static/inferno/man2/ip.2 @@ -0,0 +1,334 @@ +.TH IP 2 +.SH NAME +IP \- Internet Protocol addresses and interfaces +.SH SYNOPSIS +.EX +include "ip.m"; +ip := load IP IP->PATH; +IPaddr: import IP; + +IPaddr: adt { + newv6: fn(nil: array of byte): IPaddr; + newv4: fn(nil: array of byte): IPaddr; + copy: fn(nil: self IPaddr): IPaddr; + eq: fn(nil: self IPaddr, v: IPaddr): int; + mask: fn(nil: self IPaddr, m: IPaddr): IPaddr; + isv4: fn(nil: self IPaddr): int; + ismulticast: fn(nil: self IPaddr): int; + isvalid: fn(nil: self IPaddr): int; + + v4: fn(nil: self IPaddr): array of byte; + v6: fn(nil: self IPaddr): array of byte; + class: fn(nil: self IPaddr): int; + classmask: fn(nil: self IPaddr): IPaddr; + + parse: fn(s: string): (int, IPaddr); + parsemask: fn(s: string): (int, IPaddr); + parsecidr: fn(s: string): (int, IPaddr, IPaddr); + + text: fn(nil: self IPaddr): string; + masktext: fn(nil: self IPaddr): string; +}; + +v4bcast, v4allsys, v4allrouter, noaddr, allbits: IPaddr; +selfv6, selfv4: IPaddr; +v4prefix: array of byte; + +Ifcaddr: adt { + ip: IPaddr; # local interface address + mask: IPaddr; # subnet mask + net: IPaddr; # ip & mask + preflt: big; # preferred life time + validlt: big; # valid life time +}; + +Ipifc: adt { + index: int; # /net/ipifc/N + dev: string; # bound device + addrs: list of ref Ifcaddr; + sendra: int; # !=0, send router adverts + recvra: int; # !=0, receive router adverts + mtu: int; + pktin: big; # packets in + pktout: big; # packets out + errin: big; # input errors + errout: big; # output errors + rp: IPv6rp; # IPv6 route advert parameters +}; + +IPv6rp: adt { + mflag: int; + oflag: int; + maxraint: int; # max route advert interval + minraint: int; # min route advert interval + linkmtu: int; + reachtime: int; + rxmitra: int; + ttl: int; + routerlt: int; +}; + +init: fn(); +readipifc: fn(net: string, index: int): (list of ref Ipifc, string); +.EE +.SH DESCRIPTION +.B IP +provides data types and operations that manipulate Internet Protocol addresses, +and operations that convert between internal and textual address forms, +for both IPv4 and IPv6. +The textual forms are those defined by RFC2373. +Briefly, an IPv6 address is 16 bytes, represented textually as a sequence +of 8 colon-separated hexadecimal values ranging from +.B 0 +to +.BR FFFF , +except that any one sequence of zeroes can be replaced by +.BR :: . +IPv4 addresses are embedded in the IPv6 space with a prefix of either +.B 0:0:0:0:0:FFFF +(for addresses of `IPv4-mapped' nodes), or +.BR 0:0:0:0:0:0 +(for `IPv4-compatible' IPv6 nodes). +See RFC2373 for the distinction. +For convenience in working with such addresses, the textual syntax +allows the last 4 bytes of an IPv6 address to be specified using a +restricted IPv4 syntax, allowing an address to end in four dot-separated decimal values +(for example, +.BR 0:0:0:0:0:FFFF:127.0.0.1 +for the IPv4 loopback address). +The functions here also accept the common forms of IPv4 syntax with one or two values +omitted (eg, +.B 127.1 +for the loopback address), +and accept IPv4 format for masks +(eg, +.BR 255.255.254.0 ). +.PP +.B Init +must be called once before using any value or function of the module. +.PP +An Internet address or network mask is represented by an +.B IPaddr +value. +It has the following operations: +.TP +.BI IPaddr.newv6( a ) +Return an +.B IPaddr +representing the IPv6 address stored in +.I a +as an array of 16 bytes +.TP +.BI IPaddr.newv4( a ) +Return an +.B IPaddr +representing the IPv4 address stored in +.I a +as an array of 4 bytes +.TP +.BI IPaddr.parse( s ) +Return a tuple +.BI ( ok , ip ). +If +.I ok +is 0, +.I ip +is an +.B IPaddr +representing the address in textual format in the string +.IR s , +which can be in either IPv4 or IPv6 syntax. +If +.I ok +is negative, +.I s +was invalid. +.TP +.BI IPaddr.parsemask( s ) +.I S +is a text string defining a mask, in one of three forms: +.BI / nbits +where +.I nbits +is the number of leading one bits in the mask, ranging from 0 to 128; +an IPv4 mask (eg, +.BR 255.255.254.0 ); +or an IPv6 mask. +Return a tuple +.BI ( ok , m )\fR. +If +.I ok +is 0, +.I m +is an +.B IPaddr +representing the mask given by +.IR s . +If +.I ok +is negative, +.I s +was invalid. +.TP +.BI IPaddr.parsecidr( s ) +.I S +is an address-mask combination in Classless Inter-Domain Routing (CIDR) format: +.IB ip-address / prefix-length, +where +.I ip-address +is an address in any form accepted by +.B parse +above, and +.I prefix-length +is a decimal value giving the number of leftmost bits in +.I ip-address +that form the addressing prefix (ie, subnet prefix). +Return a tuple +.BI ( ok , ip , m\fR). +If +.I ok +is 0, +.I ip +and +.I m +are +.B IPaddr +values for the address and mask given by +.IR s . +If +.I ok +is negative, +.I s +is invalid. +.TP +.IB ip .copy() +Return a copy of the value +.I ip +.TP +.IB ip .eq( v ) +Return true (non-zero) if +.I ip +represents the same address as +.IR v ; +return false (zero) otherwise. +.TP +.IB ip .mask( m ) +Return the value +.BI ( ip & m ) , +that is, address +.I ip +masked by +.I m +.TP +.IB ip .isv4() +Return true if +.I ip +is an IPv4 address; return false if +otherwise (it can only be used on a full IPv6 network) +.TP +.IB ip .v4() +Return the value of +.I ip +as a 4-byte array in IPv4 representation if it can be so represented; +if +.I ip +is not an IPv4 address, return nil. +.TP +.IB ip .v6() +Return the value of +.I ip +in IPv6 addressing format as an array of 16 bytes +.TP +.IB ip .class() +If +.I ip +is an IPv4 address, return its class (0 to 3); if it is an IPv6 address, return 6. +.TP +.IB ip .classmask() +If +.I ip +is an IPv4 address, return the mask associated with its class; if +.I ip +is an IPv6 address, return a mask that is all ones. +.TP +.IB ip .ismulticast() +Return true if +.I ip +is a multicast or broadcast address. +.TP +.IB ip .isvalid() +Return true if +.I ip +is not the zero address in either IPv4 or IPv6 address space +.TP +.IB ip .text() +Return a textual representation of the address +.I ip +in either IPv4 or IPv6 format as appropriate. +.TP +.IB ip .masktext() +Return a textual representation of the address +.I ip +as one of: an IPv4 mask; +.BI / n +where +.I n +is the number of leading 1 bits, as used in CIDR syntax; or +as a full IPv6 textual address. +The format used is appropriate to the structure of the value. +.PP +The module provides some predefined +.B IPaddr +values, mainly for common IPv4 addresses: +.B v4bcast +(broadcast address), +.B v4allsys +(all hosts multicast address), +.B v4allrouter +(all routers multicast address), +.B selfv4 +(loopback in IPv4), +.B selfv6 +(loopback in IPv6), +.B noaddr +(all zero address, used before a node has an address), +.B v4noaddr +(all zero address with IPv4 prefix), +and +.B allbits +(address of all 1 bits). +The 12-byte IPv6 prefix for IPv4 embedded addresses is provided in +the array of bytes +.BR v4prefix . +.PP +.B Readipifc +returns a list of the host's IP interfaces +and the attributes and addresses of each, +read from the interface status files in +.BR /net/ipifc . +On an error, the string in the returned tuple contains a diagnostic and the list is nil. +Each interface is represented by an +.B Ipifc +value, which contains a list of local interface addresses, +.BR addrs . +Each local address is represented by an +.B Iplifc +value in that list. +.SH FILES +.TF /net/ipifc/N/status +.TP +.B /net/ipifc +directory of IP interfaces +.TP +.BI /net/ipifc/ n /status +status and addresses of interface +.I n +.SH SOURCE +.B /appl/lib/ip.b +.SH SEE ALSO +.IR ether (2), +.IR ip (3) +.SH BUGS +.B Readipifc +is currently only usable in native Inferno. +That will change shortly. diff --git a/static/inferno/man2/ipints-genprime.2 b/static/inferno/man2/ipints-genprime.2 new file mode 100644 index 00000000..5ec5f66c --- /dev/null +++ b/static/inferno/man2/ipints-genprime.2 @@ -0,0 +1,112 @@ +.TH IPINTS-GENPRIME 2 +.SH NAME +ipints: genprime, gensafeprime, genstrongprime, DSAprimes, probably_prime \- prime number generation +.SH SYNOPSIS +.EX +include "ipints.m"; +ipints := load IPints IPints->PATH; +IPint: import ipints; + +probably_prime: fn(n: ref IPint, nrep: int): int; + +genprime: fn(nbits: int, nrep: int): ref IPint; +gensafeprime: fn(nbits: int, nrep: int): (ref IPint, ref IPint); # p, alpha +genstrongprime: fn(nbits: int, nrep: int): ref IPint; +DSAprimes: fn(): (ref IPint, ref IPint, array of byte); # q, p, seed +.EE +.SH DESCRIPTION +This set of functions in +.B IPints +(see +.IR ipints (2)) +helps Limbo applications +generate and test large prime numbers with relative efficiency. +The numbers are all represented by +.BR IPint . +.PP +.I Probably_prime +uses the Miller-Rabin test to test +.IR n . +It returns true (non-zero) if +.I P +is probably prime. The probability of +.I n +not being prime is +1/4**\fInrep\fR. +If +.I probably_prime +returns false (zero), +.I n +is certainly not prime. +.PP +.I Genprime +returns a random prime of length +.IR nbits . +Since it uses the Miller-Rabin test, +.I nrep +is the repetition count passed to +.IR probably_prime . +.PP +.I Gensafeprime +returns a tuple +.BI ( p,\ alpha ), +where +.I p +is a prime of length +.I nbits +and +.I alpha +is a generator of the multiplicative group of integers mod \fIp\fR; +there is a prime \fIq\fR such that \fIp-1=2*q\fR. +.PP +.I Genstrongprime +returns a prime +.I p +with the following properties: +.IP \- +(\fIp\fR-1)/2 is prime. Therefore +.IR p -1 +has a large prime factor, +.IR p '. +.IP \- +.IR p '-1 +has a large prime factor +.IP \- +.IR p +1 +has a large prime factor +.PP +.I DSAprimes +uses the NIST recommended algorithm for generating DSA primes and +returns a tuple +.BI ( q,\ p,\ seed ) , +where +.I p +and +.I q +are primes, and +.I q +divides +.IR p -1. +The random +.I seed +used is also returned, so that sceptics +can later confirm the computation. +.SH SOURCE +.B /libinterp/ipint.c +.br +.B /libsec/port/probably_prime.c +.br +.B /libsec/port/dsaprimes.c +.br +.B /libsec/port/genprime.c +.br +.B /libsec/port/gensafeprime.c +.br +.B /libsec/port/genstrongprime.c +.br +.SH SEE ALSO +.IR crypt-intro (2), +.IR crypt-crypt (2), +.IR crypt-dsagen (2), +.IR crypt-gensk (2), +.IR ipints (2) diff --git a/static/inferno/man2/ipints.2 b/static/inferno/man2/ipints.2 new file mode 100644 index 00000000..2d4bdb8b --- /dev/null +++ b/static/inferno/man2/ipints.2 @@ -0,0 +1,193 @@ +.TH IPINTS 2 +.SH NAME +ipints: IPint \- `infinite' precision integer utility functions +.SH SYNOPSIS +.EX +include "ipints.m" +ipints:= load IPints IPints->PATH; + +IPint: adt +{ + iptob64: fn(i: self ref IPint): string; + iptob64z: fn(i: self ref IPint): string; + b64toip: fn(str: string) : ref IPint; + iptobytes: fn(i: self ref IPint): array of byte; + bytestoip: fn(buf: array of byte): ref IPint; + iptobebytes: fn(i: self ref IPint): array of byte; + bebytestoip: fn(buf: array of byte): ref IPint; + inttoip: fn(i: int): ref IPint; + iptoint: fn(i: self ref IPint): int; + iptostr: fn(i: self ref IPint, base: int): string; + strtoip: fn(str: string, base: int): ref IPint; + random: fn(nbits: int): ref IPint; + copy: fn(i: self ref IPint): ref IPint; + bits: fn(i: self ref IPint): int; + expmod: fn(base: self ref IPint, exp, mod: ref IPint):ref IPint; + add: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + sub: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + neg: fn(i: self ref IPint): ref IPint; + mul: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + div: fn(i1: self ref IPint, i2: ref IPint): (ref IPint, ref IPint); + mod: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + eq: fn(i1: self ref IPint, i2: ref IPint): int; + cmp: fn(i1: self ref IPint, i2: ref IPint): int; + shl: fn(i: self ref IPint, n: int): ref IPint; + shr: fn(i: self ref IPint, n: int): ref IPint; + and: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + ori: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + not: fn(i: self ref IPint): ref IPint; + xor: fn(i1: self ref IPint, i2: ref IPint): ref IPint; +}; +.EE +.SH DESCRIPTION +.B IPint +provides the following arbitrary-length integer manipulation functions required for cryptographic support in Limbo: +.TP +.IB i .iptob64() +Returns a string that represents a large integer textually in base 64 for convenient transmission over a network connection. +.TP +.IB i .iptob64z() +Returns a similar representation to +.B iptob64 +but ensures that the top bit of the received value is zero. +.TP +.BI b64toip( str ) +Returns the +.B IPint +represented by the base-64 encoded +.IR str . +.TP +.IB i .iptobytes() +Returns an array of bytes representing a large integer. The representation includes both positive and negative numbers. +.TP +.BI bytestoip( buf ) +The inverse operation of +.BR iptobytes . +.TP +.IB i .iptobebytes() +Returns an array of bytes in big-endian format representing the magnitude of a large integer; used for instance to pass a value to +.IR ssl (3). +Only non-negative numbers are represented. +.TP +.BI bebytestoip( buf ) +The inverse operation of +.BR iptobebytes . +.TP +.BI inttoip( i ) +Creates a new large integer from integer +.IR i . +.TP +.IB i .iptoint() +Converts a large integer +.I i +to an +.BR int ; +returns 0 on error. +.TP +.IB i .iptostr( base ) +Converts a large integer to a string in base +.IR base ; +returns nil on error. +Only the bases 10, 16, 32, and 64 are +supported. Anything else defaults to 16. +.TP +.BI strtoip( str , base ) +Converts a string +.I str +representing a number in in base +.I base +to a large integer; returns nil on error. +Only the bases 10, 16, 32, and 64 are +supported. +.TP +.BI random( nbits ) +Returns a large random number of length at most +.IR minbits . +The largest number allowed in the current implementation is +2^8192-1 . +The seed for the generator is obtained by duelling clocks. +.TP +.IB i .copy() +Returns a reference to the same value as +.IR i . +.TP +.IB i .bits() +Returns the number of bits of precision of +.IR i . +.TP +.IB base .expmod( "exp , mod" ) +Returns +.BI ( base ** exp ") mod " mod. +.TP +.IB i1 .add( i2 ) +Returns +.RI ( i1 + i2 ). +.TP +.IB i1 .sub( i2 ) +Returns +.RI ( i1 - i2 ). +.TP +.IB i1 .mul ( i2 ) +Returns +.IR i1*i2 . +.TP +.IB i1 .div ( i2 ) +Returns +.RI ( i1 / i2, +.IR i1 rem i2 ). +.TP +.IB i1 .mod ( i2 ) +Returns +.RI ( i1 mod i2 ). +.TP +.IB i1 .eq( i2 ) +Returns 1 if +.I i1 +and +.I i2 +are equal; 0 otherwise. +.TP +.IB i1 .cmp( i2 ) +Compares two large integers, returning 1 if +.I i1 +is larger, +-1 if +.I i2 +is larger, and 0 if they are equal. +.TP +.IB i .shl( n ) +Returns +.IR i << n +.TP +.IB i .shr( n ) +Returns +.IR i >> n +.TP +.IB i1 .and( i2 ) +Returns +.IR i & n , +bitwise AND +.TP +.IB i1 .ori( i2 ) +Returns +.IR i | n , +bitwise inclusive-OR +(it is +.B ori +because plain +.B or +is a Limbo keyword) +.TP +.IB i .not() +Returns +.RI ~ i , +bitwise ones-complement +.TP +.IB i1 .xor( i2 ) +Returns +.IR i ^ n , +bitwise exclusive-OR +.SH SOURCE +.B /libinterp/ipint.c +.br +.B /libmp diff --git a/static/inferno/man2/ir.2 b/static/inferno/man2/ir.2 new file mode 100644 index 00000000..e86bef06 --- /dev/null +++ b/static/inferno/man2/ir.2 @@ -0,0 +1,254 @@ +.TH IR 2 +.SH NAME +ir \- infrared remote control module +.SH SYNOPSIS +.EX +include "ir.m"; + +ir := load Ir Ir->PATH; # for real remotes +simir := load Ir Ir->SIMPATH; # for keyboard simulator + +init: fn(irc: chan of int, pidc: chan of int): int; +translate: fn(key: int): int; +.EE +.SH DESCRIPTION +Programs running with the Prefab +toolkit (see +.IR prefab-intro (2)) +are controlled by an infrared remote +control device. +If such a device is not present, the system may simulate +it from the keyboard by loading the module in file +.BR Ir->SIMPATH . +Although originally designed for use with Prefab, +these modules are general enough to be used directly by non-Prefab +applications. +.PP +The +.B Ir +module defines codes +for representing the remote control keys. +Whether the remote is real or simulated, the +.B init +function does the appropriate actions to initialize the device, and then spawns +a process to return the codes on the +.I irc +channel. +The process ID of that process +is sent on the channel +.I pidc +when the process starts; +.BR init 's +caller must receive it. +It can be used to kill the controlling process when the application finishes. +.PP +The codes are: +.PP +.TP +.BR Ir\->ChanUP ", " Ir\->ChanDN +The Channel-Up and Channel-Down buttons. +The keyboard equivalents are +.B r +and +.BR c . +.TP +.B Ir\->Enter +The Enter button. +The keyboard equivalent is the \s-1SPACE\s0 bar. +.TP +.B Ir\->EOF +An end of file from the remote device. +After sending one, no more codes will be sent on +.IR irc . +.TP +.B Ir\->Error +An unknown or invalid input from the remote device. +.TP +.BR Ir\->FF ", " Ir\->Rew +The Fast-Forward and Rewind buttons. +The keyboard equivalents are +.B k +and +.BR j . +.TP +.B Ir\->Mute +The Mute button. +There is no keyboard equivalent. +.TP +.B Ir\->Power +The Power button. +The keyboard equivalent is the +.B Delete +key. +.TP +.B Ir\->Rcl +The Recall button. +The keyboard equivalent is +.BR x . +.TP +.B Ir\->Record +The Record button. +There is no keyboard equivalent. +.TP +.B Ir\->Select +The Select button. +The keyboard equivalent is the +.B Return +or +.B Enter +key. +.TP +.BR Ir\->Up ", " Ir\->Dn +The Up and Down buttons. +The keyboard equivalents are +.B i +and +.BR m . +.TP +.BR Ir\->VolUP ", " Ir\->VolDN +The Volume-Up and Volume-Down buttons. +The keyboard equivalents are +.B t +and +.BR v . +.TP +.B +Ir\->Zero\fR,\fP Ir\->One\fR,\fP Ir\->Two\fR, etc. +.PD +The digit buttons, 0 through 9. +The keyboard equivalents are the corresponding numeral keys. +.PP +The +.B translate +function converts the device's raw codes into the constants defined by +the module. +For example, with the simulated remote control, +.B translate('3') +returns +.BR Ir->Three . +.B Translate +is only necessary for programs that wish to manage their own simulation of the remote. +.PP +Programs +that drive the remote control directly, +must load the appropriate Ir implementation module and initialise it. +The following example uses the absence of a simulator module +to infer that a real remote control is available. +.PP +.EX +implement Irtest; + +include "sys.m"; +include "draw.m"; +include "ir.m"; + +Irtest: module +{ + init: fn(ctxt: ref Draw->Context, argv: list of string); +}; + +init(nil: ref Draw->Context, nil: list of string) +{ + sys := load Sys Sys->PATH; + + # First try the keyboard Ir simulator. + # If that is not present, use Ir directly. + + ir := load Ir Ir->SIMPATH; + if(ir == nil) + ir = load Ir Ir->PATH; + if(ir == nil){ + sys->print("Ir module not loaded: %r\en"); + return; + } + irc := chan of int; + pidc := chan of int; + if(ir->init(irc, pidc) < 0){ + sys->print("Can't initialize Ir device: %r\en"); + return; + } + pid := <-pidc; + while((irraw := <-irc) != Ir->EOF) { + irval := ir->translate(irraw); + if(irval == Ir->Power) + break; + sys->print("command %d -> %d\en", irraw, irval); + } + kill(pid); +} +.EE +.PP +.IR Mux (1) +provides one model for the use of an infrared remote control to control +a group of applications. +.B Init +is invoked once by +.IR mux , +and the codes then multiplexed between its applications as follows. +.I Mux +creates a graphics context for each application +(see +.IR draw-context (2)). +This context includes channels to the +.B mux +program and to the +.B Ir +device: +.B Draw->Context.ctomux +and +.BR Draw->Context.cinput . +Applications do not see the +.B Ir->Rcl +command. +Instead, +.I mux +program intercepts it and reactivates its own menu. +The following example establishes communication with +.I mux +and then reads +.B Ir +commands until it see +.BR Ir->Enter . +.PP +.EX +implement Command; + +include "sys.m"; +include "draw.m"; +include "ir.m"; + +Command: module +{ + init: fn(ref Draw->Context; list of string); +}; + +init(ctxt: ref Draw->Context; argv: list of string) +{ + sys := load Sys Sys->PATH; + + # Tell mux to start sending input. + ctxt.ctomux <-= Draw->AMstartinput; + for(;;) { + key := <-ctxt.cinput; + sys->print("command %d\en", key); + if(key == Ir->Enter) + break; + } + + # Tell mux this thread is going away. + ctxt.ctomux <-= Draw->AMexit; +} +.EE +.SH SOURCE +.B /appl/lib/ir.b +.br +.B /appl/lib/irmpath.b +.br +.B /appl/lib/irsim.b +.SH SEE ALSO +.IR limbo (1), +.IR mux (1), +.IR intro (2), +.IR draw-intro (2), +.IR prefab-intro (2) + diff --git a/static/inferno/man2/itslib.2 b/static/inferno/man2/itslib.2 new file mode 100644 index 00000000..a98602c4 --- /dev/null +++ b/static/inferno/man2/itslib.2 @@ -0,0 +1,102 @@ +.TH ITSLIB 2 +.SH NAME +itslib \- test library +.SH SYNOPSIS +.EX +include "itslib.m"; +itslib := load Itslib Itslib->PATH; + +S_INFO: con 0; +S_WARN: con 1; +S_ERROR: con 2; +S_FATAL: con 3; +S_STIME: con 4; +S_ETIME: con 5; +ENV_VERBOSITY: con "ITS_VERBOSITY"; +ENV_MFD: con "ITS_MFD"; + +Tconfig: adt { + verbosity: int; + mfd: ref Sys->FD; + report: fn(t: self ref Tconfig, sev: int, verb: int, msg: string); + done: fn(t: self ref Tconfig); +}; + +init: fn(): ref Tconfig; +.EE +.SH DESCRIPTION +.B Itslib +provides a simple error reporting facility for tests which can be run +by +.IR itest (1) . +.PP +The module must first be initialised by calling +.B init +which returns an adt containing the verbosity setting specified +for this test run, and the message file descriptor +used to pass messages back to +.I itest. +These two items of information are passed to the test via the +environment variables ITS_VERBOSITY and ITS_MFD. +.TP +.BI Tconf.report( severity , verbosity , message) +Report a message with specified severity and verbosity. +.I Severity +must be one of S_INFO, S_WARN, S_ERROR or S_FATAL for Information, +warnings, errors and fatal errors respectively. +.I Verbosity +is an integer between 0 and 9. +For informatory messages (severity S_INFO), the message will only be +displayed if the current +verbosity level is greater than or equal to +.I verbosity. +.TP +.BI Tconf.done() +Tell the test system that all significant work has been completed. +This useful when for example results are displayed in an interactive +manner following the test proper. For recording purposes the test +will be regarded as having finished when this function is called, +rather than when the test finally exits. +.SH EXAMPLE +A very simple test program. +.EX + +implement T; +include "sys.m"; + sys: Sys; +include "draw.m"; + draw: Draw; +include "itslib.m"; + itslib: Itslib; + Tconfig, S_INFO, S_WARN, S_ERROR, S_FATAL: import itslib; + +T: module +{ + init: fn(ctxt: ref Draw->Context, argv: list of string); +}; + +tconf: ref Tconfig; + +init(ctxt: ref Draw->Context, argv: list of string) +{ + sys = load Sys Sys->PATH; + itslib = load Itslib Itslib->PATH; + if (itslib != nil) tconf = itslib->init(); + report(S_INFO, 5, "Testing addition of 1 + 2"); + x := 1 + 2; + if (x == 3) + report(S_INFO, 6, "Addition of 1 + 2 OK"); + else + report(S_ERROR, 5, sys->sprint("Addition of 1 + 2 gave %d", x)); +} + +report(sev: int, verb: int, msg: string) +{ + if (tconf != nil) tconf.report(sev, verb, msg); + else sys->print("%d:%s\en", sev, msg); +} + +.EE +.SH SEE ALSO +.IR itest (1), +.IR sh-test (2) diff --git a/static/inferno/man2/json.2 b/static/inferno/man2/json.2 new file mode 100644 index 00000000..7443b0e4 --- /dev/null +++ b/static/inferno/man2/json.2 @@ -0,0 +1,218 @@ +.TH JSON 2 +.SH NAME +json: readjson, writejson, JValue \- read, write and represent values in JavaScript Object Notation +.SH SYNOPSIS +.EX +include "json.m"; +json := load JSON JSON->PATH; + +JValue: adt { + pick{ + Object => + mem: cyclic list of (string, ref JValue); + Array => + a: cyclic array of ref JValue; + String => + s: string; + Int => + value: big; + Real => + value: real; + True or + False or + Null => + } + isarray: fn(v: self ref JValue): int; + isfalse: fn(v: self ref JValue): int; + isint: fn(v: self ref JValue): int; + isnull: fn(v: self ref JValue): int; + isnumber: fn(v: self ref JValue): int; + isobject: fn(v: self ref JValue): int; + isreal: fn(v: self ref JValue): int; + isstring: fn(v: self ref JValue): int; + istrue: fn(v: self ref JValue): int; + copy: fn(v: self ref JValue): ref Jvalue; + eq: fn(v: self ref JValue, v: ref JValue): int; + get: fn(v: self ref JValue, mem: string): ref JValue; + set: fn(v: self ref JValue, mem: string, value: ref JValue); + text: fn(v: self ref JValue): string; +}; + +init: fn(bufio: Bufio); +readjson: fn(input: ref Bufio->Iobuf): (ref JValue, string); +writejson: fn(output: ref Bufio->Iobuf, val: ref JValue): int; + +jvarray: fn(a: array of ref JValue): ref JValue.Array; +jvbig: fn(b: big): ref JValue.Int; +jvfalse: fn(): ref JValue.False; +jvint: fn(i: int): ref JValue.Int; +jvnull: fn(): ref JValue.Null; +jvobject: fn(m: list of (string, ref JValue)): ref JValue.Object; +jvreal: fn(r: real): ref JValue.Real; +jvstring: fn(s: string): ref JValue.String; +jvtrue: fn(): ref JValue.True; +.EE +.SH DESCRIPTION +.B JSON +provides value representations, and encoding and decoding operations for the JavaScript Object Notation (JSON) +described by Internet RFC4627 +and summarised in +.IR json (6). +.PP +.B Init +must be called before invoking any other operation of the module. +The +.I bufio +parameter must refer to the instance of +.IR bufio (2) +that provides the +.B Iobuf +parameters used for input and output. +.PP +.B JValue +is the internal representation of values transmitted by the JSON encoding. +They are distinguished in a pick adt: +.TP +.B JValue.False +Represents the value +.BR false . +.TP +.B JValue.Null +Represents a null value of any type. +.TP +.B JValue.True +Represents the value +.BR true . +.TP +.B JValue.Int +Represents as a Limbo +.B big +a JavaScript number with no fractional part. +.TP +.B JValue.Real +Represents as a Limbo +.B real +a JavaScript number with a fractional part. +.TP +.B JValue.String +Represents a JavaScript string of Unicode characters from +.B +U'0000' +to +.BR +U'FFFF' . +.TP +.B JValue.Array +Represents a JavaScript array of values of any type. +.TP +.B JValue.Object +Represents a tuple of (member/property name, value) pairs corresponding to the value of a JavaScript object, +or an associative array or table, indexed by strings. +The member names must be unique within a value. +.PP +.B Readjson +reads a single value in JSON +format from the +.I input +stream and returns a tuple +.BI ( val,\ err ). +On success, +.I val +is a +.B JValue +that represents the value successfully read. +If an error occurs, +.I val +is nil and +.I err +contains a diagnostic. +.PP +.B Writejson +writes to the +.I output +stream in JSON format a +representation of the value +.IR v . +It returns 0 on success and -1 on error (setting the system error string). +.PP +The easiest way to create a new +.B JValue +for subsequent output is with one of the module-level functions +.BR jvarray , +.BR jvint , +.BR jvobject , +.BR jvstring , +and so on. +As values of a pick adt, a +.B JValue +can be inspected using Limbo's +.B tagof +operator and the appropriate variant accessed using a +.B pick +statement. +.B JValue +also supports several groups of common operations, for smaller, tidier code. +First, the set of enquiry functions +.IB v .is X () +return true if the value +.I v +is an instance of the JavaScript type +.I X +.RI ( array , +.IR int , +.IR object , +.IR real , +.IR string , +etc). +A +.I numeric +value is either +.I int +or +.IR real . +The other operations are: +.TP +.IB v .copy() +Return a (reference to) a copy of value +.IR v . +The copying is not recursive. +.TP +.IB v .eq( w ) +Return true if the values of +.I v +and +.I w +are equal, including the values of corresponding subcomponents, recursively +.TP +.IB v .get( mem ) +Return the value associated with the member named +.I mem +in +.IR v ; +return null if there is none. +.TP +.IB v .set( mem,\ value ) +Adds or changes the +.I value +associated with the member named +.I mem +in +.IR v , +which must be a +.BR JValue.Object ( +raises exception +.B "json: set non-object" +otherwise). +.TP +.IB v .text() +Return a string containing the JSON representation of +.IR v . +.SH SOURCE +.B /appl/lib/json.b +.SH SEE ALSO +.IR sexprs (2), +.IR ubfa (2) , +.IR json (6), +.IR sexprs (6), +.IR ubfa (6) +.br +D Crockford, ``The application/json Media Type for JavaScript Object Notation (JSON)'', +.IR RFC4627 . diff --git a/static/inferno/man2/keyring-0intro.2 b/static/inferno/man2/keyring-0intro.2 new file mode 100644 index 00000000..5e28b068 --- /dev/null +++ b/static/inferno/man2/keyring-0intro.2 @@ -0,0 +1,296 @@ +.TH KEYRING-INTRO 2 +.SH NAME +Keyring intro \- introduction to the +.B Keyring +module +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; + +SigAlg: adt +{ + name: string; +}; + +PK: adt +{ + sa: ref SigAlg; + owner: string; +}; + +SK: adt +{ + sa: ref SigAlg; + owner: string; +}; + +Certificate: adt +{ + sa: ref SigAlg; + ha: string; + signer: string; + exp: int; +}; + +DigestState: adt +{ + # hidden state + copy: fn(d: self ref DigestState): ref DigestState; +}; + +Authinfo: adt +{ + mysk: ref SK; + mypk: ref PK; + cert: ref Certificate; + spk: ref PK; + alpha: ref IPint; + p: ref IPint; +}; +.EE +.SH DESCRIPTION +This module contains a mixed set of functions that variously: +.IP \(bu +perform infinite precision modular arithmetic; see +.IR keyring-ipint (2) +.IP \(bu +form cryptographically secure digests; see +.IR keyring-sha1 (2) +.IP \(bu +generate public/private key pairs and transform them +to and from textual form; see +.IR keyring-gensk (2) +and +.IR keyring-certtostr (2) +.IP \(bu +encrypt data, using AES, DES, or IDEA; see +.IR keyring-crypt (2) +.IP \(bu +create and verify cryptographic signatures using the +public keys; see +.IR keyring-auth (2) +.IP \(bu +authenticate the parties on a connection; see +.IR keyring-auth (2) +.IP \(bu +read and write files containing the information +needed to authenticate the parties on a connection; see +.IR keyring-auth (2) +.IP \(bu +send Limbo byte arrays and strings across a connection; see +.IR keyring-getstring (2) +.PP +Each collection is discussed in turn. +.SS "Large Precision Arithmetic" +The +.B IPint +adt +is provided to allow some cryptographic functions to +be implemented in Limbo. +.B IPint +stands for infinite precision integer, though, for +space considerations, our +implementation limits the maximum integer to +2\u\s-2\&8192\s0\d-1. +.PP +An +.B IPint +can be converted into two external formats. +The first is +an array of bytes in which the first byte is the highest order +byte of the integer. This format is useful when +communicating with the +.IR ssl (3) +device. +The second is a MIME base 64 format, that +allows +.BR IPint s +to be stored in files or transmitted across +networks in a human readable form. +.SS "Public Key Cryptography" +Public key cryptography has many uses. +Inferno relies on it only for digital signatures. +Each Inferno user may generate a +pair of matched keys, one public and +one private. +The private key may be used to digitally +sign data, the public one to verify the signature. +Public key algorithms have been chosen to +make it difficult to spoof a signature or guess +the private key. +.PP +For public keys algorithms to work, there must be a way to +distribute the public keys: +in order to verify that +.B X +signed something, we must know +.BR X 's +public key. +To simplify the problem, we have instituted a +trust hierarchy that requires people to +know only the public keys of certifying authorities (CAs). +After generating a public key, one can have the +concatenation of one's name, expiration date, and key +signed by a CA. +The information together with the name of the CA +and the signature is called a +.IR certificate . +.PP +At the beginning of a conversation, the parties +exchange certificates. +They then use the CA's public key to verify each +other's public keys. +The CA's public key, a system wide Diffie-Hellman +base and modulus, one's private key, one's +public key and certificate are kept in +a Limbo adt called +.BR Keyring->Authinfo . +An +.B Authinfo +adt can be read from from a file using +.B readauthinfo +or written to a file +using +.BR writeauthinfo , +both from +.IR keyring-auth (2). +.PP +.B Authinfo +adts are normally created during the login and +registration procedures described below. +.SS "Authentication" +Two parties conversing on a network connection can +authenticate each other's identity using the functions in +.IR keyring-auth (2). +They use the +.B Keyring->Authinfo +information to run the Station to Station (STS) +authentication protocol. +STS not only authenticates each party's identity to the other but also +establishes a random bit string known +only to the two parties. +This bit string can be used +as a key to encrypt or authenticate subsequent messages +sent between the two parties. +.SS "Secure Communications" +After exchanging secrets, communicating +parties may encode the conversation to +guarantee varying levels of security: +.IP • +none +.IP • +messages cannot be forged +.IP • +messages cannot be intercepted +.LP +Encoding uses the line formats +provided by the Secure Sockets Layer. +See +.IR security-intro (2) +for more detail. +.SS "Login and registration" +The Inferno authentication procedure +requires that both parties possess an +.B Authinfo +adt containing +a locally generated public/private key pair, +the public key of a commonly trusted CA, +and a signed certificate from the CA that links +the party's identity and public key. +This +.B Authinfo +adt is normally kept in a file. +At some point, however, it must be created, and later +conveyed securely between the user's machine +and the CA. +There are two ways to do this, the login procedure +and the registration procedure. +Both require an out of band channel between the +CA and the user. +.PP +The login procedures are used by typed +commands and by programs using Tk. +The login procedure relies on the CA and +the user having established a common secret +or password. +This is done securely off line, perhaps by mail or telephone. +This secret is then used to provide a secure +path between CA and user machine to transfer +the certificate and CA public key. +See +.IR security-intro (2) +for more detail. +.PP +The registration procedure is built into the +.IR mux (1) +interface and is intended for the set top box +environment. +When the set top box is first turned on, it +creates a public/private key pair and +dials the service provider's CA to get a key +signed. +The CA returns its public key and a signed +certificate, blinded by a random bit string +known only to the CA. +A hash of the information is then displayed on the +user screen. +The user must then telephone the CA and compare this +hashed foot print with the one at the CA. +If they match and the user proves that he is +a customer, the CA makes the blinding string +publicly known. +.SS Data Types +.TP +.B SigAlg +The +.B SigAlg +adt contains a single string that specifies the algorithm used for digital signatures. +The allowable values are +.BR md5 , +.BR md4 +and +.BR sha1 +that specify which one-way hash function is used to produce a digital signature +or message digest. +.TP +.BR PK " and " SK +The +.B PK +adt contains the data necessary to construct a public key; +the +.B SK +adt contains the data necessary to construct a secret key. +Both keys are built from the combination of a specified signature algorithm +and a string representing the name of the owner of the key. +.TP +.B Certificate +The +.B Certificate +adt contains a digital signature with the certification of the trusted authority (CA). +.TP +.B DigestState +The +.B DigestState +adt contains the hidden state of partially completed hash functions during processing. +Its +.B copy +operation returns a reference to a copy of a given state. +.TP +.B Authinfo +The +.B Authinfo +adt contains an individual user's private and public key, the signer's certificate +and the signer's public key, and the Diffie-Hellman parameters. +.SH SOURCE +.B /libcrypt/*.c +.br +.B /libinterp/keyring.c +.br +.B /libkeyring/*.c +.SH SEE ALSO +.IR security-intro (2) +.br +B. Schneier, +.IR "Applied Cryptography" , +1996, J. Wiley & Sons, Inc. diff --git a/static/inferno/man2/keyring-auth.2 b/static/inferno/man2/keyring-auth.2 new file mode 100644 index 00000000..9ed26b2a --- /dev/null +++ b/static/inferno/man2/keyring-auth.2 @@ -0,0 +1,101 @@ +.TH KEYRING-AUTH 2 +.SH NAME +keyring: auth, readauthinfo, writeauthinfo \- authenticate a connection +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; +auth: fn(fd: ref Sys->FD, info: ref Authinfo, setid: int) + : (string, array of byte); +readauthinfo: fn(filename: string): ref Authinfo; +writeauthinfo: fn(filename: string, info: ref Authinfo): int; +.EE +.SH DESCRIPTION +.B Auth +performs mutual authentication over a network connection, usually between a client and a server. +The function is symmetric: each party runs it on their end of the connection. +.I Info +holds the public key of a certifying authority +.RB ( PKca ), +the private key of the user +.RB ( SKu ), +the public key +.RB ( PKu ) +of the user signed by the certifying authority +.RB ( CERTu ), +and Diffie-Hellman parameters +.RB ( alpha , +.BR p ). +.PP +.B Auth +returns a string and a byte array. +If the byte array is nil then the authentication has failed and the string is an error message. If the byte array is non-nil, it represents a secret shared by the two communicating parties, +and the string names the party at the other end of the connection. +.PP +If the authentication is successful and +.I setid +is non-zero then +.B auth +attempts to write the name of the party at the other end of the connection into +.B /dev/user +(see +.IR cons (3)); +no error is generated if that does not succeed. +If the authentication is not successful and +.I setid +is non-zero, +.B auth +writes the name +.B nobody +into +.BR /dev/user . +.PP +The authentication protocol is based on the Station-to-Station protocol. In the following, the parties are labelled 0 and 1. +.BI Sig0( x ) +is +.I x +signed with 0's private key. +.IP +.EX +0 → 1 alpha**r0 mod p, CERTu0, PKu0 +1 → 0 alpha**r1 mod p, CERTu1, PKu1 +0 → 1 sig0(alpha**r0 mod p, alpha**r1 mod p) +1 → 0 sig1(alpha**r0 mod p, alpha**r1 mod p) +.EE +.PP +At this point both 0 and 1 share the secret +.B "alpha**(r0*r1)" +which is returned in the byte array. +Amongst other things, it can be the secret to digest or encrypt a conversation +(see +.IR security-ssl (2)). +.PP +.B Readauthinfo +reads a representation of an +.B Authinfo +from a file. +It returns nil if there is a read error or a conversion error; +it returns a reference to the +.B Authinfo +otherwise. +.PP +.B Writeauthinfo +writes a representation of +.I info +to a file. It returns -1 if the write operation fails, 0 otherwise. +.SH FILES +.TF /usr/user/keyring/defaultxxx +.TP +.BI /usr/ user /keyring +The conventional directory for storing +.B Authinfo +files +.TP +.BI /usr/ user /keyring/default +The key file normally used by server programs +.TP +.BI /usr/ user /keyring/ net ! server +The key file normally used by clients for a given +.I server +.SH SOURCE +.B /libinterp/keyring.c diff --git a/static/inferno/man2/keyring-certtostr.2 b/static/inferno/man2/keyring-certtostr.2 new file mode 100644 index 00000000..55b7f142 --- /dev/null +++ b/static/inferno/man2/keyring-certtostr.2 @@ -0,0 +1,56 @@ +.TH KEYRING-CERTTOSTR 2 +.SH NAME +keyring: certtostr, pktostr, sktostr, strtocert, strtopk, strtosk \- encryption key conversion functions +.SH SYNOPSIS +.EX +include "keyring.m" +keyring:= load Keyring Keyring->PATH; + +strtocert: fn(s: string) : ref Certificate; +certtostr: fn(c: ref Certificate): string; +strtopk: fn(s: string) : ref PK; +pktostr: fn(pk: ref PK) : string; +strtosk: fn(s: string) : ref SK; +sktostr: fn(sk: ref SK) : string; +.EE +.SH DESCRIPTION +Certificates, public keys, and private keys are passed over networks and between applications using a Unicode representation. This collection of functions provide a means to convert adts supplied by the system to and from their portable textual representation. These routines are typically used as part of an I/O package for implementing security. +.PP +.B Strtocert +takes a string argument containing a user name, a hash algorithm, a certifying authority and an expiration time. Fields are separated by a newline. The return value is a +.BR Certificate . +If the string is of improper format, the result is +.IR nil . +.PP +.B Certtostr +performs the inverse operation: takes the +.B Certificate +.I c +and produces a text string suitable for communication over a network. +.PP +.B Strtopk +and +.B strtosk +take as their arguments a string +.I s +representing the public and private keys respectively. +.I S +must contain an algorithm name, a user name and the key. Fields are separated by a newline. +.B Strtopk +returns a reference to the resulting +.BR PK ; +.B strtosk +returns a reference to the resulting +.BR SK . +If the format of +.I s +is invalid, the result is +.IR nil . +.PP +.B Pktostr +and +.B sktostr +perform the inverse operations: +they take a public key (secret key) and produce a printable representation as a string. +.SH SOURCE +.B /libinterp/keyring.c diff --git a/static/inferno/man2/keyring-crypt.2 b/static/inferno/man2/keyring-crypt.2 new file mode 100644 index 00000000..d8bb718c --- /dev/null +++ b/static/inferno/man2/keyring-crypt.2 @@ -0,0 +1,138 @@ +.TH KEYRING-CRYPT 2 +.SH NAME +keyring: aessetup, aescbc, dessetup, descbc, desecb, ideasetup, ideacbc, ideaecb \- data encryption +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; + +Encrypt: con 0; +Decrypt: con 1; + +AESbsize: con 16; + +aessetup: fn(key: array of byte, ivec: array of byte): ref AESstate; +aescbc: fn(state: ref AESstate, buf: array of byte, + n: int, direction: int); + +BFbsize: con 8; + +blowfishsetup: fn(key: array of byte, ivec: array of byte): ref BFstate; +blowfishcbc: fn(state: ref BFstate, buf: array of byte, + n: int, direction: int); + +DESbsize: con 8; + +dessetup: fn(key: array of byte, ivec: array of byte): ref DESstate; +descbc: fn(state: ref DESstate, buf: array of byte, + n: int, direction: int); +desecb: fn(state: ref DESstate, buf: array of byte, + n: int, direction: int); + +IDEAbsize: con 8; + +ideasetup: fn(key: array of byte, ivec: array of byte): ref IDEAstate; +ideacbc: fn(state: ref IDEAstate, buf: array of byte, + n: int, direction: int); +ideaecb: fn(state: ref IDEAstate, buf: array of byte, + n: int, direction: int); +.EE +.SH DESCRIPTION +These functions encrypt and decrypt blocks of data using different +encryption algorithms. +The interfaces are similar. +.PP +Each algorithm has an adt that holds the current state for a given encryption. +It is produced by the setup function for the algorithm, +.IB alg setup , +which is given a secret +.I key +and an initialisation vector +.IR ivec . +A sequence of blocks of data can then be encrypted or decrypted by repeatedly calling +.IB alg cbc +(for `cipher block chaining'), or +.IB alg ebc +(the less secure `electronic code book', if provided). +On each call, +.I buf +provides +.I n +bytes of the data to encrypt or decrypt. +.I N +must be a multiple of the encryption block size +.IB ALG bsize . +Exceptionally, +.B aescbc +allows +.I n +to be other than a multiple of +.B AESbsize +in length, but then +for successful decryption, the decryptor must use the same +sequence of buffer sizes as the encryptor. +.I Direction +is the constant +.B Encrypt +or +.B Decrypt +as required. +.I State +maintains the encryption state, initially produced by the setup function, +and updated as each buffer is encrypted or decrypted. +.PP +The algorithms currently available are: +.TP +.B aes +The Advanced Encryption Standard, AES (also known as Rijndael). +The +.I key +should be 16, 24 or 32 bytes long (128, 192 or 256 bits). +.I Ivec +should be +.B AESbsize +bytes of random data: random enough to be unlikely to be reused but +not cryptographically strongly unpredictable. +.TP +.B blowfish +Bruce Schneier's symmetric block cipher. +The +.I key +is any length from 4 to 56 bytes. +.I Ivec +if non-nil is +.B BFbsize +bytes of random data. +For +.BR blowfishcbc , +.I n +must be a multiple of +.BR BFbsize . +.TP +.B des +The older Data Encryption Standard, DES. +.I Key +is 8 bytes (64 bits), containing a 56-bit key +encoded into 64 bits where every eighth bit is parity. +.I Ivec +is +.B DESbsize +bytes of random data. +.TP +.B idea +The International Data Encryption Standard, IDEA™. +The +.I key +is 16 bytes long (128 bits). +.I Ivec +is +.B IDEAbsize +bytes of random data. +.SH SEE ALSO +.IR keyring-intro (2), +.IR keyring-rc4 (2), +.IR security-random (2) +.PP +IDEA was patented by Ascom-Tech AG (EP 0 482 154 B1, US005214703), +currently held by iT_SEC Systec Ltd. +The patent expired in 2012. diff --git a/static/inferno/man2/keyring-gensk.2 b/static/inferno/man2/keyring-gensk.2 new file mode 100644 index 00000000..a4c7fd65 --- /dev/null +++ b/static/inferno/man2/keyring-gensk.2 @@ -0,0 +1,49 @@ +.TH KEYRING-GENSK 2 +.SH NAME +keyring: genSK, genSKfromPK, sktopk, dhparams \- generate keys +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; +genSK: fn(algname, owner: string, length: int): ref SK; +genSKfromPK: fn(pk: ref PK, owner: string): ref SK; +sktopk: fn(sk: ref SK): ref PK; +dhparams: fn(nbits: int): (ref IPint, ref IPint); +.EE +.SH DESCRIPTION +.B GenSK +generates a public/private key pair, represented by +.BR SK . +(Although we call it a `private key', +.B SK +contains both the private and public parts of a public key.) +.I Algname +is the name of the algorithm to use; in the current implementation, only +.B elgamal +and +.B rsa +are possible. +.I Owner +is the user name to be associated with the key. +.I Length +gives the length of the key modulus in bits. +.B GenSK +returns nil if an unknown algorithm has been specified. +.PP +.B GenSKfromPK +generates a private key that has the same system parameters as the public key +.IR pk . +It is used to generate new keys that are of the same complexity as old keys. +.PP +.B Sktopk +extracts the public part of private key. +.PP +.B Dhparams +creates Diffie-Hellman parameters. The second +.B IPint +returned is an +.I nbits +long prime number that serves as the modulus. +The first +.B IPint +is a primitive root in the integer field defined by that modulus. diff --git a/static/inferno/man2/keyring-getmsg.2 b/static/inferno/man2/keyring-getmsg.2 new file mode 100644 index 00000000..bf6958a0 --- /dev/null +++ b/static/inferno/man2/keyring-getmsg.2 @@ -0,0 +1,68 @@ +.TH KEYRING-GETMSG 2 +.SH NAME +keyring: getmsg, sendmsg, senderrmsg \- send and receive messages on undelimited streams +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; + +getmsg: fn(fd: ref Sys->FD): array of byte; +sendmsg: fn(fd: ref Sys->FD, buf: array of byte, n: int): int; +senderrmsg: fn(fd: ref Sys->FD, s: string): int; +.EE +.SH DESCRIPTION +These functions allow arbitrary data, packed into arrays of bytes, to be exchanged +on network connections using connection-oriented transport protocols that do not preserve +record boundaries (eg, TCP/IP without +.IR ssl (3)). +They are used to implement various authentication protocols, including +.IR auth (6), +as implemented by +.IR keyring-auth (2). +.PP +Each data message is transmitted with a five-byte header containing a four-character zero-padded decimal count +.I n +terminated by a newline, followed by +.I n +bytes of message data. +An error message has a similar structure, except that the first character +of the count is replaced by an exclamation mark +.RB ( ! ); +the message data following +contains the diagnostic string in its UTF-8 encoding (see +.IR utf (6)). +.PP +.B Getmsg +reads the next message from +.I fd +and returns its data content. +.PP +.B Sendmsg +sends the first +.I n +bytes of +.I buf +as a message on +.IR fd , +and returns +.IR n . +.PP +.B Senderrmsg +sends the error message +.IR s . +.SH SOURCE +.B /libinterp/keyring.c +.SH DIAGNOSTICS +.B Sendmsg +and +.B senderrmsg +return -1 if there was an error writing to +.IR fd ; +they set the system error string. +.B Getmsg +returns nil if there was an error reading from +.IR fd ; +it sets the system error string to reflect the cause. +It also returns nil +if an error message was received instead of a data message; +the system error string will contain the error message's diagnostic. diff --git a/static/inferno/man2/keyring-getstring.2 b/static/inferno/man2/keyring-getstring.2 new file mode 100644 index 00000000..783c0106 --- /dev/null +++ b/static/inferno/man2/keyring-getstring.2 @@ -0,0 +1,90 @@ +.TH KEYRING-GETSTRING 2 +.SH NAME +keyring: getstring, putstring, getbytearray, putbytearray, puterror \- exchange data on delimited streams +.SH SYNOPSIS +.EX +include "keyring.m" +keyring:= load Keyring Keyring->PATH; + +getstring: fn(fd: ref Sys->FD): (string, string); +putstring: fn(fd: ref Sys->FD, s: string): int; +getbytearray: fn(fd: ref Sys->FD): (array of byte, string); +putbytearray: fn(fd: ref Sys->FD, a: array of byte, n: int): int; +puterror: fn(fd: ref Sys->FD, s: string): int; +.EE +.SH DESCRIPTION +These functions provide +I/O for strings, byte arrays and error strings over network connections that +provide a record structure for communication (as provided for arbitrary +networks by +.IR ssl (3)). +.PP +.B Putstring +writes string +.I s +to +.IR fd. +It returns the number of bytes written, or -1 if an error occurred. +Messages written by +.B putstring +are truncated to 4096 bytes. +.PP +.B Getstring +reads a string as written by +.B putstring +from +.IR fd +and returns a tuple +.RI ( result , error ). +If successful, the error +string is nil. +.PP +.B Putbytearray +writes the array of bytes +.I a +to +.IR fd . +It returns the number of bytes written, or -1 if an error occurred. +Messages written by +.B putbytearray +are truncated to 4096 bytes. +.PP +.B Getbytearray +reads an array of bytes as written by +.B putbytearray +from +.IR fd +and returns a tuple of the form +.RI ( result , error ). +If successful, the error string is nil. +.PP +.B Puterror +writes an error string +.I s +to +.IR fd . +It can be used in place of +.B putstring +or +.B putbytearray +to cause a corresponding +.B getstring +or +.B getbytearray +to fail +(in the receiving process), +forcing them to return the error string +.IR s . +It may not be longer than +.BR Sys->ERRMAX +bytes. +.SH SOURCE +.B /libinterp/keyring.c +.SH DIAGNOSTICS +The output functions return an +.B int +which is -1 if there was an I/O error, +and a non-negative value otherwise. +The input functions +return a tuple that includes a string indicating the cause of the +error, as the second element of the tuple. diff --git a/static/inferno/man2/keyring-ipint.2 b/static/inferno/man2/keyring-ipint.2 new file mode 100644 index 00000000..c0166316 --- /dev/null +++ b/static/inferno/man2/keyring-ipint.2 @@ -0,0 +1,180 @@ +.TH KEYRING-IPINT 2 +.SH NAME +keyring: IPint \- `infinite' precision integer utility functions +.SH SYNOPSIS +.EX +include "keyring.m" +keyring:= load Keyring Keyring->PATH; + +IPint: adt +{ + iptob64: fn(i: self ref IPint): string; + b64toip: fn(str: string) : ref IPint; + iptobytes: fn(i: self ref IPint): array of byte; + bytestoip: fn(buf: array of byte): ref IPint; + iptobebytes: fn(i: self ref IPint): array of byte; + bebytestoip: fn(buf: array of byte): ref IPint; + inttoip: fn(i: int): ref IPint; + iptoint: fn(i: self ref IPint): int; + iptostr: fn(i: self ref IPint, base: int): string; + strtoip: fn(str: string, base: int): ref IPint; + random: fn(minbits, maxbits: int): ref IPint; + copy: fn(i: self ref IPint): ref IPint; + bits: fn(i: self ref IPint): int; + expmod: fn(base: self ref IPint, exp, mod: ref IPint):ref IPint; + add: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + sub: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + neg: fn(i: self ref IPint): ref IPint; + mul: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + div: fn(i1: self ref IPint, i2: ref IPint): (ref IPint, ref IPint); + eq: fn(i1: self ref IPint, i2: ref IPint): int; + cmp: fn(i1: self ref IPint, i2: ref IPint): int; + shl: fn(i: self ref IPint, n: int): ref IPint; + shr: fn(i: self ref IPint, n: int): ref IPint; + and: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + ori: fn(i1: self ref IPint, i2: ref IPint): ref IPint; + not: fn(i: self ref IPint): ref IPint; + xor: fn(i1: self ref IPint, i2: ref IPint): ref IPint; +}; +.EE +.SH DESCRIPTION +.B IPint +provides the following arbitrary-length integer manipulation functions required for cryptographic support in Limbo: +.TP +.IB i .iptob64() +Returns a string that represents a large integer textually in base 64 for convenient transmission over a network connection. +.TP +.BI b64toip( str ) +Returns the +.B IPint +represented by the base-64 encoded +.IR str . +.TP +.IB i .iptobytes() +Returns an array of bytes representing a large integer. The representation includes both positive and negative numbers. +.TP +.BI bytestoip( buf ) +The inverse operation of +.BR iptobytes . +.TP +.IB i .iptobebytes() +Returns an array of bytes in big-endian format representing the magnitude of a large integer; used for instance to pass a value to +.IR ssl (3). +Only non-negative numbers are represented. +.TP +.BI bebytestoip( buf ) +The inverse operation of +.BR iptobebytes . +.TP +.BI inttoip( i ) +Creates a new large integer from integer +.IR i . +.TP +.IB i .iptoint() +Converts a large integer +.I i +to an +.BR int ; +returns 0 on error. +.TP +.IB i .iptostr( base ) +Converts a large integer to a string in base +.IR base ; +returns nil on error. +Only the bases 10, 16, 32, and 64 are +supported. Anything else defaults to 16. +.TP +.BI strtoip( str , base ) +Converts a string +.I str +representing a number in in base +.I base +to a large integer; returns nil on error. +Only the bases 10, 16, 32, and 64 are +supported. +.TP +.BI random( minbits , maxbits ) +Returns a large random number with length from +.I minbits +to +.IR maxbits . +The largest number allowed in the current implementation is +2^8192-1 . +The seed for the generator is obtained by duelling clocks. +.TP +.IB i .copy() +Returns a reference to the same value as +.IR i . +.TP +.IB i .bits() +Returns the number of bits of precision of +.IR i . +.TP +.IB base .expmod( "exp , mod" ) +Returns +.BI ( base ** exp ") mod " mod. +.TP +.IB i1 .add( i2 ) +Returns +.RI ( i1 + i2 ). +.TP +.IB i1 .sub( i2 ) +Returns +.RI ( i1 - i2 ). +.TP +.IB i1 .mul ( i2 ) +Returns +.IR i1*i2 . +.TP +.IB i1 .div ( i2 ) +Returns +.RI ( i1 / i2, +.IR i1 mod i2 ). +.TP +.IB i1 .eq( i2 ) +Returns 1 if +.I i1 +and +.I i2 +are equal; 0 otherwise. +.TP +.IB i1 .cmp( i2 ) +Compares two large integers, returning 1 if +.I i1 +is larger, +-1 if +.I i2 +is larger, and 0 if they are equal. +.TP +.IB i .shl( n ) +Returns +.IR i << n +.TP +.IB i .shr( n ) +Returns +.IR i >> n +.TP +.IB i1 .and( i2 ) +Returns +.IR i & n , +bitwise AND +.TP +.IB i1 .ori( i2 ) +Returns +.IR i | n , +bitwise inclusive-OR +(it is +.B ori +because plain +.B or +is a Limbo keyword) +.TP +.IB i .not() +Returns +.RI ~ i , +bitwise ones-complement +.TP +.IB i1 .xor( i2 ) +Returns +.IR i ^ n , +bitwise exclusive-OR diff --git a/static/inferno/man2/keyring-rc4.2 b/static/inferno/man2/keyring-rc4.2 new file mode 100644 index 00000000..516ec51a --- /dev/null +++ b/static/inferno/man2/keyring-rc4.2 @@ -0,0 +1,45 @@ +.TH KEYRING-RC4 2 +.SH NAME +keyring: rc4setup, rc4, rc4skip, rc4back \- RC4 encryption +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; + +rc4setup: fn(seed: array of byte): ref RC4state; +rc4: fn(state: ref RC4state, buf: array of byte, n: int); +rc4skip: fn(state: ref RC4state, n: int); +rc4back: fn(state: ref RC4state, n: int); +.EE +.SH DESCRIPTION +These functions implement the stream encryption algorithm that is claimed to +be equivalent to RSA Security's RC4. +It is a pseudo-random number generator with a 256 +byte state and a long cycle. +.PP +.B Rc4setup +sets the initial +.IR seed , +which can be any non-zero length, and +returns a representation of the initial state of the algorithm, +which is used in subsequent calls. +.PP +.B Rc4 +runs the generator starting with the given +.IR state , +and XORs the output of the generator with +the first +.I n +bytes of +.IR buf , +updating the +.IR state . +.B Rc4 +is symmetric and is used both to encrypt and decrypt. +.B Rc4skip +skips over bytes (eg, to account for lost transmissions); +.B rc4back +runs the generator backwards (eg, to account for retransmissions). +.SH SEE ALSO +.IR keyring-intro (2), +.IR keyring-crypt (2) diff --git a/static/inferno/man2/keyring-sha1.2 b/static/inferno/man2/keyring-sha1.2 new file mode 100644 index 00000000..99c5087c --- /dev/null +++ b/static/inferno/man2/keyring-sha1.2 @@ -0,0 +1,142 @@ +.TH KEYRING-SHA1 2 +.SH NAME +keyring: sha1, md4, md5, hmac_sha1, hmac_md5, sign, verify \- cryptographic digests and digital signatures +.SH SYNOPSIS +.EX +include "keyring.m"; +keyring := load Keyring Keyring->PATH; + +.ta \w'verify:\ 'u +\w'fn(\ \ \ 'u +sha1: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +md4: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +md5: fn(buf: array of byte, n: int, digest: array of byte, + state: ref DigestState): ref DigestState; +hmac_sha1: fn(buf: array of byte, n: int, key: array of byte, digest: array of byte, + state: ref DigestState): ref DigestState; +hmac_md5: fn(buf: array of byte, n: int, key: array of byte, digest: array of byte, + state: ref DigestState): ref DigestState; +sign: fn(sk: ref SK, exp: int, state: ref DigestState, + ha: string): ref Certificate; +verify: fn(pk: ref PK, cert: ref Certificate, + state: ref DigestState): int; +.EE +.SH DESCRIPTION +.BR Sha1 , +.B md4 +and +.B md5 +are cryptographically secure hash functions that produce output called a message digest. +Each function computes a hash of +.I n +bytes of the data in +.IR buf , +and updates the current +.IR state . +They can be called iteratively to form a single digest for many data blocks. +The state is kept in the +.B DigestState +value referenced by +.I state +between calls. +.I State +should be +.B nil +on the first call, and a newly allocated +.B DigestState +will be returned for use in subsequent calls. +On a call in which +.I digest +is not +.BR nil , +the hash is completed and copied into the +.I digest +array. +.B Sha1 +produces a 20-byte hash +.RB ( SHA1dlen ), +.B md4 +and +.B md5 +a 16-byte one +.RB ( MD4len +and +.BR MD5len ). +.PP +.B Hmac_sha1 +and +.B hmac_md5 +are keyed versions of the hashing functions, following Internet RFC2104. +The +.I key +must be provided in each call, but otherwise +the calling conventions are those of +.BR sha1 . +The +.I key +must currently be no more than 64 bytes. +.PP +.B Sign +creates a digital signature of a digest from the concatenation of: a message, the name of the signer, and an expiration time. +.I State +is the digest state after running +.BR sha1 , +.B md4 +or +.B md5 +over the message. +.I Ha +is a string specifying the hash algorithm to use: +.B +"sha"\fR, +.B +"sha1"\fR, +.B +"md4"\fR +or +.B +"md5"\fR. +.B Sign +extends the digest to cover the signer's name +(taken from the private key, +.IR sk ) +and the expiration time. +It returns a certificate containing the digital signature of the digest, signer name, hash algorithm and signature algorithm. +If any parameter is invalid, +.B sign +returns nil. +The signature algorithm is implied by the type of the private key. +.PP +.B Verify +uses public key +.I pk +to verify a certificate. +It returns non-zero (true) if the certificate is valid; zero (false) otherwise. +.I State +is the digest state after running the chosen digest algorithm +over the message. +.SH EXAMPLES +A program to read a file and hash it using SHA might contain the following inner loop: +.IP +.EX +state: ref DigestState = nil; +while((n := sys->read(fd, buf, len buf)) > 0) + state = kr->sha1(buf, n, nil, state); +digest := array[kr->SHA1dlen] of byte; +kr->sha1(buf, 0, digest, state); +.EE +.SH SOURCE +.B /libinterp/keyring.c +.br +.B /libcrypt/hmac.c +.br +.B /libcrypt/md4.c +.br +.B /libcrypt/md5.c +.br +.B /libcrypt/sha1.c +.SH BUGS +The MD4 algorithm is included only to allow communication with software +that might still use it; it should not otherwise be used now, because it +is easily broken. diff --git a/static/inferno/man2/keyset.2 b/static/inferno/man2/keyset.2 new file mode 100644 index 00000000..a2efd2f2 --- /dev/null +++ b/static/inferno/man2/keyset.2 @@ -0,0 +1,79 @@ +.TH KEYSET 2 +.SH NAME +keyset \- find authentication keys matching a signer +.SH SYNOPSIS +.EX +include "keyset.m"; +keyset := load Keyset Keyset->PATH; + +init: fn(): string; +keysforsigner: fn(signername: string, spkthumb: string, + user: string, dir: string): + (list of (string, string, string), string); +pkhash: fn(pk: string): string; +.EE +.SH DESCRIPTION +.B Keyset +looks through a set of certified public keys +to find one or more keys that have were certified by a given signer. +.PP +.B Init +must be called before any other function in the module. +It returns nil on success or a diagnostic string on failure. +.PP +.B Keysforsigner +looks for public keys that satisfy given conditions: +.I signername +is either the name of a signer or nil (don't care); +.I spkthumb +is either a thumbprint of the signer's public key (as produced by +.BR pkhash , +below), or nil (don't care). +.I User +is the name of the user that owns the set of keys; if it is nil, +the user's name is read from +.BR /dev/user . +.I Dir +is the name of the directory holding a collection of the +.IR user 's +signed keys as obtained for instance using +.IR getauthinfo (8); +if it is nil, the directory +.BI /usr/ user /keyring +is used by default. +Only signed (certified) unexpired keys are considered. +.B Keysforsigner +returns a tuple +.BI ( keys , err ). +.I Keys +is list of tuples +.BI ( keyfile\fB,\fP\ owner\fB,\fP\ signername ) +where +.I keyfile +is the full name of a file in +.I dir +that holds an apparently suitable key; +.I owner +is the name of the key's owner; and +.I signername +is the name of the signer in the certificate attached to the key. +The list is nil if no keys could be found that matched the criteria. +On an error, +.I err +is non-nil and gives a diagnostic. +.PP +.B Pkhash +returns the hexadecimal representation of the SHA-1 hash of public key +.IR pk , +which must be in the canonical textual form produced by +.B Keyring->pktostr +(see +.IR keyring-certtostr (2)). +.SH SOURCE +.B /appl/lib/keyset.b +.SH SEE ALSO +.IR bind (1), +.IR keyring-gensk (2), +.IR keyring-sha1 (2), +.IR security-auth (2), +.IR logind (8) diff --git a/static/inferno/man2/lists.2 b/static/inferno/man2/lists.2 new file mode 100644 index 00000000..c38db46a --- /dev/null +++ b/static/inferno/man2/lists.2 @@ -0,0 +1,204 @@ +.TH LISTS 2 +.SH NAME +lists: allsat, anysat, append, combine, concat, delete, filter, find, ismember, last, map, pair, partition, reverse, unpair\- list operations +.SH SYNOPSIS +.EX +include "lists.m" +lists := load Lists Lists->PATH; + +append: fn[T](l: list of T, x: T): list of T; +combine: fn[T](l1: list of T, l2: list of T): list of T; +concat: fn[T](l1: list of T, l2: list of T): list of T; +delete: fn[T](x: T, l: list of T): list of T + for { T => eq: fn(a, b: T): int; }; +find: fn[T](x: T, l: list of T): list of T + for { T => eq: fn(a, b: T): int; }; +ismember: fn[T](x: T, l: list of T): int + for { T => eq: fn(a, b: T): int; }; +last: fn[T](l: list of T): T; +pair: fn[T1, T2](l1: list of T1, l2: list of T2): + list of (T1, T2); +reverse: fn[T](l: list of T): list of T; +unpair: fn[T1, T2](l: list of (T1, T2)): + (list of T1, list of T2); + +allsat: fn[T](p: ref fn(x: T): int, l: list of T): int; +anysat: fn[T](p: ref fn(x: T): int, l: list of T): int; +filter: fn[T](p: ref fn(x: T): int, l: list of T): list of T; +map: fn[T](f: ref fn(x: T): T, l: list of T): list of T; +partition: fn[T](p: ref fn(x: T): int, l: list of T): + (list of T, list of T); +.EE +.SH DESCRIPTION +The module provides operations on lists of type +.IR T , +which may be any reference type, or +.BR string . +Reference types are +.BR array , +.BR chan , +.BR list , +.BR module , +and +.BI ref " adt". +None of the operations change their parameter lists: they always return a new list. +.PP +First, there is a group of common list operations. +.PP +.B Append +returns a new list with the elements of +.I l +followed by the element +.IR x . +.PP +.B Combine +returns a new list that has the elements of both +.I l1 +and +.I l2 +in no defined order. +.PP +.B Concat +returns a new list that has the elements of +.I l1 +followed by the elements of +.IR l2 . +.PP +.B Delete +returns a new list in which the first element of +.I l +that is equal to +.I x +has been removed (all others remain). +.I X +must be an adt reference type +.I T +with an operation +.IB T .eq +that returns true (non-zero) if two values of type +.I T +are considered equal. +.PP +.B Find +finds the first instance of +.I x +in list +.I l +and returns the tail of +.I l +with +.I x +at its head. +.B Find +returns nil if there is no +instance of +.I x +in +.IR l . +.PP +.B Ismember +returns 1 if +there is an element of +.I l +that is equal to +.IR x . +.PP +.B Last +returns the value of the element at the end of list +.IR l . +A run-time error occurs if +.I l +is nil. +.PP +.B Pair +takes two lists +.I l1 +and +.IR l2 , +and returns a new list of tuples +.BI ( v1,\ v2 ) +in which each element of +.I l1 +has been paired with the corresponding element of +.IR l2 . +A run-time error occurs if the lists are not equal in length. +.PP +.B Reverse +returns a new list containing the elements of +.I l +in reverse order. +.PP +.B Unpair +takes a list of tuples +.BI ( v1,\ v2 ) +and returns a tuple of lists +.BI ( l1,\ l2 ) +where +.I l1 +contains the first element of each tuple, and +.I l2 +contains the second element of each tuple. +.PP +A second group of operations applies a function +.I f +or a Boolean predicate +.I p +to each element of a list +.IR l , +returning a transformed list or a Boolean value. +A predicate +.I p +must return non-zero if its parameter value satisfies its condition, and must return zero if it does not. +.PP +.B Allsat +returns 1 if all elements of +.I l +satisfy +.IR p , +and returns 0 otherwise. +.PP +.B Anysat +returns 1 if any element of +.I l +satisfies +.IR p , +and returns 0 otherwise. +.PP +.B Filter +returns a new list containing only the elements of +.I l +that satisfy +.IR p . +.PP +.B Map +returns a new list in which each element of +.I l +has been transformed by +.I f +(ie, if +.I l +is +.IB e0 :: e1 :: ... +then the result is +.IB f(e0) :: f(e1) :: ... ). +.PP +.B Partition +returns a tuple of lists +.BI ( l1,\ l2 ) +of lists where +.I l1 +contains all elements of +.I l +that satisfy +.I p +and +.I l2 +contains all elements of +.I l +that do not satisfy +.IR p . +.SH SOURCE +.B /appl/lib/lists.b +.SH BUGS +The current implementation of polymorphism is limited to reference types and strings, +which in turn limits use of this module. diff --git a/static/inferno/man2/lock.2 b/static/inferno/man2/lock.2 new file mode 100644 index 00000000..ff9a0fa7 --- /dev/null +++ b/static/inferno/man2/lock.2 @@ -0,0 +1,39 @@ +.TH LOCK 2 +.SH NAME +lock \- +thread locking. +.SH SYNOPSIS +.EX +include "lock.m"; +lock := load Lock Lock->PATH; +Semaphore: adt { + c: chan of int; + obtain: fn(s: self ref Semaphore); + release: fn(s: self ref Semaphore); + new: fn(): ref Semaphore; +}; +init: fn(); +.EE +.SH DESCRIPTION +.B Lock +provides semaphore-based mutual exclusion. +.B Init +must be called before creating any locks. +.TP +.B Semaphore.new() +Creates and returns a reference to a new +.B Semaphore +(lock). +.TP +.IB s .obtain() +Obtains exclusive access to the lock +.IR s . +It will block until it can do so. +.TP +.IB s .release() +Releases access to the lock +.I s +and allows processes waiting on it to proceed. +.SH SOURCE +.B /appl/lib/lock.b + diff --git a/static/inferno/man2/math-0intro.2 b/static/inferno/man2/math-0intro.2 new file mode 100644 index 00000000..573d6076 --- /dev/null +++ b/static/inferno/man2/math-0intro.2 @@ -0,0 +1,79 @@ +.TH MATH-INTRO 2 +.SH NAME +Math: intro \- elementary numerics +.SH SYNOPSIS +.EX +include "math.m"; +math := load Math Math->PATH; +.EE +.SH DESCRIPTION +Inferno's math module and Limbo compiler provide the +fundamental floating point environment and ``elementary functions''. +.PP +Limbo expressions involving only literal and named constants are +evaluated at compile time with all exceptions ignored. +However, +arithmetic on variables is left to run-time, even if data path analysis +shows the value to be a compile time constant. +This implies that tools +generating Limbo source must do their own simplification, and not +expect the compiler to change +.B x/x +into +.BR 1 , +or +.B -(y-x) +into +.BR x-y , +or even +.BR x-0 +into +.BR x . +.PP +Subexpression elimination and other forms of code motion may be done by the +compiler, +but not across calls to the mode and status functions described in +.IR math-fp (2). +Removal of +parentheses or factoring is not performed by the compiler. +The evaluation +order of +.B a+b+c +follows the parse tree and is therefore the same as for +.BR (a+b)+c . +These rules are the same as for Fortran and C. +.PP +Contracted multiply-add instructions (with a single rounding) are not +generated by the compiler, though they may be used in the native BLAS +(linear algebra) +libraries. +All arithmetic follows the IEEE floating point standard, except that +denormalized numbers may be replaced by flush-to-0, depending on what +the hardware makes feasible. +.PP +Binary/decimal conversion is properly rounded. +In particular, printing +a real using +.B %g +and reading it on a different machine is guaranteed to +recover identical bits, including +conversions done by the compiler. +The one exception is that +smaller, faster, but sloppier run-time conversion +routines may be used when mandated by +limited memory embedded systems. +Programmers may assume, however, +that the +features described in these man pages are present in all Inferno +systems intended for general computing. +.SH SOURCE +.B /libinterp/math.c +.SH SEE ALSO +See +.IR math-fp (2) +for floating point control and primitive arithmetic operations, +.IR math-elem (2) +for the classical elementary functions of applied mathematics, +and +.IR math-linalg (2) +for basic linear algebra functions. diff --git a/static/inferno/man2/math-elem.2 b/static/inferno/man2/math-elem.2 new file mode 100644 index 00000000..fb3e2e2d --- /dev/null +++ b/static/inferno/man2/math-elem.2 @@ -0,0 +1,106 @@ +.TH MATH-ELEM 2 +.SH NAME +Math: cbrt, sqrt, pow, pow10, hypot, exp, expm1, log, log10, log1p, cos, cosh, sin, sinh, tan, tanh, acos, asin, acosh, asinh, atan, atanh, atan2, lgamma, erf, erfc, j0, j1, y0, y1, jn, yn \- elementary functions of applied mathematics +.SH SYNOPSIS +.EX +include "math.m"; +math := load Math Math->PATH; + +cbrt, sqrt: fn(x: real): real; +pow: fn(x, y: real): real; +pow10: fn(p: int): real; +hypot: fn(x, y: real): real; +exp, expm1, log, log10, log1p: fn(x: real): real; + +cos, cosh, sin, sinh, tan, tanh: fn(x: real): real; +acos, asin, acosh, asinh, atan, atanh: fn(x: real): real; +atan2: fn(y, x: real) of real; + +lgamma: fn(x: real): (int,real); +erf, erfc: fn(x: real): real; +j0, j1, y0, y1: fn(x: real): real; +jn, yn: fn(n: int, x: real): real; + +.EE +.SH DESCRIPTION +These routines implement the basic elementary functions of applied mathematics. +.PP +.BI Sqrt( x ) +computes the square root of +.IR x , +.BI cbrt( x ) +the cube root. +.BI Pow( x , y ) +computes +.I x +raised to the exponent +.IR y ; +.B pow10 +raises 10 to the integer power +.IR n . +.BI Hypot( x , y ) +computes +\f5sqrt(\f2x\f5*\f2x\f5+\f2y\f5*\f2y\f5)\f1. +.PP +.BI Exp( x ) +returns the exponential function of +.IR x , +and +.BI expm1( x ) +is +.BI exp( x )-1. +.PP +.BI Log( x ) +returns the natural logarithm of +.IR x , +while +.BI log10( x ) +returns the logarithm base 10 and +.BI log1p( x ) +returns the logarithm of +.BI 1+ x\f1. +.PP +The trigonometric functions use radians. +The ranges of the inverse functions are: +.BI acos +in [0,\(*p]; +.B asin +in [-\(*p/2,\(*p/2]; +.B atan +in [-\(*p/2,\(*p/2]; +and +.BI atan2( y , x ) +.B = +.BI arctan( y / x ) +in [-\(*p,\(*p]; +.PP +The gamma function is implemented by +.BI lgamma( x )\f1; +the tuple it returns, say +.BI ( s , lg )\f1, +encodes the gamma function by +.RI \(*G( x ) += +.IB s *exp( lg )\f1. +.PP +The hyperbolic trigonometric functions +.B sinh +etc. behave as expected. +.B Erf +is the error function and +.BI erfc( x ) +is +.BI 1-erf( x )\f1. +.PP +The Bessel functions are computed by +.BI j0 , +.BI j1 , +.BI jn , +.BI y0 , +.BI y1 , +and +.BR yn . +.SH SOURCE +.B /libinterp/math.c +.SH SEE ALSO +.IR math-intro (2) diff --git a/static/inferno/man2/math-export.2 b/static/inferno/man2/math-export.2 new file mode 100644 index 00000000..9c6c7b63 --- /dev/null +++ b/static/inferno/man2/math-export.2 @@ -0,0 +1,52 @@ +.TH MATH-EXPORT 2 +.SH NAME +Math: export_int, export_real, export_real32, import_int, import_real, import_real32 \- conversion to and from external representation +.SH SYNOPSIS +.EX +include "math.m"; +math := load Math Math->PATH; + +export_int: fn(b: array of byte, x: array of int); +export_real32: fn(b: array of byte, x: array of real); +export_real: fn(b: array of byte, x: array of real); + +import_int: fn(b: array of byte, x: array of int); +import_real32: fn(b: array of byte, x: array of real); +import_real: fn(b: array of byte, x: array of real); +.EE +.SH DESCRIPTION +These routines convert between Limbo's internal representation of +integer and floating-point values, and equivalent external representations as +arrays of bytes, allowing efficient input/output of binary representations. +.PP +.BI Export_int( b , \ x ) +converts each integer element of array +.I x +into a sequence of 4 bytes in array +.IR b . +.PP +.BI Export_real( b , \ x ) +converts each double-precision floating-point element of array +.I x +into a sequence of 8 bytes in array +.IR b . +.PP +.BI Export_real32( b , \ x ) +converts each double-precision floating-point element of array +.I x +to a single-precision value, then encodes it as a sequence of 4 bytes in array +.IR b . +.PP +Each +.BI import_ T +operation reverses the transformation of the corresponding +.BI export_ T +operation, converting an array of bytes containing a sequence of external representations +into an array of values of the appropriate internal form. +.PP +Values are encoded in big-endian order (most significant byte first), with floating-point +values represented in IEEE 32-bit or 64-bit form (again, most significant byte first). +.SH SOURCE +.B /libinterp/math.c +.SH SEE ALSO +.IR math-intro (2) diff --git a/static/inferno/man2/math-fp.2 b/static/inferno/man2/math-fp.2 new file mode 100644 index 00000000..a67b1377 --- /dev/null +++ b/static/inferno/man2/math-fp.2 @@ -0,0 +1,205 @@ +.TH MATH-FP 2 +.SH NAME +math-fp \- floating point +.SH SYNOPSIS +.EX +include "math.m"; +math := load Math Math->PATH; + +Infinity, NaN, MachEps, Pi, Degree: real; +INVAL, ZDIV, OVFL, UNFL, INEX: int; +RND_NR, RND_NINF, RND_PINF, RND_Z, RND_MASK: int; + +getFPcontrol, getFPstatus: fn(): int; +FPcontrol, FPstatus: fn(r, mask: int): int; +ilogb: fn(x: real): int; +scalbn: fn(x: real, n: int): real; +copysign: fn(x, s: real): real; +finite, isnan: fn(x: real): int; +nextafter: fn(x, y: real): real; + +fdim, fmin, fmax: fn(x, y: real): real; +fabs: fn(x: real): real; +ceil, floor: fn(x: real): real; +remainder: fn(x, p: real): real; +fmod: fn(x, y: real): real; +modf: fn(x: real): (int,real); +rint: fn(x: real): real; +.EE +.SH DESCRIPTION +These constants and functions provide control over rounding modes, +exceptions, and other properties of floating point arithmetic. +.PP +.B Infinity +and +.B NaN +are constants containing +the positive infinity and quiet not-a-number values +of the IEEE binary floating point standard, double precision. +.B MachEps +is 2\u\s-2-52\s0\d, the smallest +.I e +such that 1+\f2e\f1 is not equal to 1. +.B Pi +is the nearest machine number to the infinitely precise value. +.B Degree +is +.BR Pi/ 180. +.PP +Each thread has a floating point control word (governing rounding mode and +whether a particular floating point exception causes a trap) +and a floating point status word (storing accumulated exception flags). +The functions +.B FPcontrol +and +.B FPstatus +copy bits to the control or status word, +in positions specified by a mask, returning the previous values of the bits +specified in the mask. +The functions +.B getFPcontrol +and +.B getFPstatus +return the words unchanged. +.PP +.BR INVAL , +.BR ZDIV , +.BR OVFL , +.BR UNFL , +and +.B INEX +are non-overlapping single-bit masks +used to compose arguments or return values. +They stand for the five IEEE exceptions: +`invalid operation' (0/0,0+NaN,Infinity-Infinity,sqrt(-1)), +`division by zero' (1/0), `overflow' (1.8e308), `underflow' (1.1e-308), +and `inexact' (.3*.3). +.PP +.BR RND_NR , +.BR RND_NINF , +.BR RND_PINF , +and +.BR RND_Z +are distinct bit patterns +for `round to nearest even', `round toward negative infinity', +`round toward infinity', and `round toward 0', +any of which can be set or extracted from the floating point control +word using +.BR RND_MASK . +For example, +.B FPcontrol(0, +.B UNFL) +makes underflow silent; +.B FPstatus(0, +.B INEX) +checks and clears the inexact flag; and +.B FPcontrol(RND_PINF, +.B RND_MASK) +sets directed rounding. +.PP +By default, +.B INEX +is quiet, +.BR OVFL , +.BR UNFL , +and +.B ZDIV +are fatal, +and rounding is to nearest even. +Limbo modules are +entitled to assume this, and if they wish to use quiet +underflow, overflow, or zero-divide, they must either +set and restore the control register or clearly document that +their caller must do so. +.PP +The +.B ilogb +function +returns the nearest integral logarithm base 2 of the absolute value of +.IR x: +for positive finite +.IR x , +1 \(<= +.IB x *2\u-\s-2ilogb( x )\s0\d +< 2, +and +.BI ilogb(- x ) +.B = +.BI ilogb( x )\f1. +.BI Scalbn( x , n ) +is a scaled power of two: +.IB x *2\u\s-2n\s0\d\f1. +.BI Copysign( x , s ) +has the magnitude of +.I x +and the +sign bit of +.IR s . +.BI Nextafter( x , y ) +is the machine number nearest x closer to y. +Finally, +.BI finite( x ) +is 0 if +.I x +is +.B Nan +or +.B Infinity, +1 otherwise, and +.BI isnan( x ) +is 1 if +.I x +is +.B Nan +and 0 otherwise. +.PP +The function +.BI fdim( x , y) += +.IB x - y +if +.I x +is greater than +.IR y , +otherwise it is 0. +The functions +.BR fmin , +.BR fmax , +.BR fabs , +.BR ceil , +and +.B floor +are the +customary minimum, +maximum, +absolute value, +and integer rounding routines. +.PP +There are two functions for computing the modulus: +.BI fmod( x , y ) +is the function defined by the C standard which gives the value +.IB x - i*y +for some +.I i +such that the remainder has the sign of +.I x +and magnitude less than the magnitude of +.IR y , +while +.BI remainder( x , y ) +is the function defined by the IEEE standard +which gives a remainder of magnitude no more than half the +magnitude of +.IR y . +The function +.BI modf( x ) +breaks +.I x +into integer and fractional parts returned in a tuple, and +.B rint +rounds to an integer, following the +rounding mode specified in the floating point control word. +.SH SOURCE +.B /libinterp/math.c +.SH SEE ALSO +.IR math-intro (2) diff --git a/static/inferno/man2/math-linalg.2 b/static/inferno/man2/math-linalg.2 new file mode 100644 index 00000000..5a39e838 --- /dev/null +++ b/static/inferno/man2/math-linalg.2 @@ -0,0 +1,146 @@ +.TH MATH-LINALG 2 +.SH NAME +Math: dot, norm1, norm2, iamax, gemm, sort \- linear algebra primitives +.SH SYNOPSIS +.EX +include "math.m"; +math := load Math Math->PATH; + +dot: fn(x, y: array of real): real; +norm1, norm2: fn(x: array of real): real; +iamax: fn(x: array of real): int; +gemm: fn(transa, transb: int, # upper case N or T + m, n, k: int, alpha: real, + a: array of real, lda: int, + b: array of real, ldb: int, beta: real, + c: array of real, ldc: int); + +sort: fn(x: array of real, p: array of int); +.EE +.SH DESCRIPTION +These routines implement the basic functions of linear algebra. +The standard vector inner product and norms are defined as follows: +.IP +.BI dot( "x , y" ) += +.BI sum( x [ i ]* y\fP[\fPi\fP]) +.IP +.BI norm1( x ) += +.BI sum(fabs( x [ i\ \f5])) +.IP +.BI norm2( x ) += +.BI sqrt(dot( "x , x" )) +.PP +For the infinity norm, the function +iamax(x) +computes an integer +.I i +such that +.BI fabs( x [ i ]) +is maximal. +These are all standard BLAS (basic linear algebra subroutines) +except that in Inferno they apply only to contiguous (unit stride) +vectors. +.PP +We assume the convention that matrices are represented as +singly-subscripted arrays with Fortran storage order. +So for an +.I m +by +.I n +matrix +.I A +we use loops +with +.BI 0\(<= i < m +and +.BI 0\(<= j < n +and access +\f2A\f5[\f2i\f5+\f2m\f5*\f2j\f5]\f1. +.PP +Rather than provide the huge number of entry points in BLAS2 and BLAS3, +Inferno provides the matrix multiply primitive, +.BR gemm , +defined by +.PP +.EX + \f2A\fP = \f1\(*a\fP*\f2A\fP\f1'\fP*\f2B\fP\f1'\fP + \f1\(*b\fP*\f2C\fP +.EE +.PP +where the apostrophes indicate an optional transposition. +As shown by the +work of Kagstrom, Ling, and Van Loan, the other BLAS functionality can +be built efficiently on top of +.BR gemm . +.PP +Matrix +.IR a ' +is +.I m +by +.IR k , +matrix +.IR b ' +is +.I k +by +.IR n , +and matrix +.I c +is +.I m +by +.IR n . +Here +.IR a ' +means +.I a +.RI ( a ') +if +.I transa +is the constant +.B 'N' +.RB ( 'T' ), +and similarly for +.IR b '. +The sizes +.IR m , +.IR n , +and +.I k +denote the `active' part of +the matrix. +The parameters +.IR lda , +.IR ldb , +and +.I ldc +denote the `leading dimension' +or size for purposes of indexing. +So to loop over +.I c +use loops +with +.BI 0\(<= i < m +and +.BI 0\(<= j < n +and access +\f2a\f5[\f2i\f5+\f2ldc\f5*\f2j\f5]\f1. +.PP +The sorting function +.BI sort( x , p ) +updates a 0-origin permutation +.I p +so that +.IB x [ p [ i ]] +\(<= +.IB x [ p [ i +1]]\f1, +leaving +.I x +unchanged. +.SH SOURCE +.B /libinterp/math.c +.SH SEE ALSO +.IR math-intro (2) diff --git a/static/inferno/man2/mpeg.2 b/static/inferno/man2/mpeg.2 new file mode 100644 index 00000000..1691a713 --- /dev/null +++ b/static/inferno/man2/mpeg.2 @@ -0,0 +1,74 @@ +.TH MPEG 2 +.SH NAME +mpeg \- interface to the mpeg device driver +.SH SYNOPSIS +.EX +include "draw.m"; +include "mpeg.m"; +mpeg:= load Mpeg Mpeg->PATH; + +play: fn(d: ref Display, + w: ref Image, + dopaint: int, + r: Rect, + file: string, + notify: chan of string): string; +ctl: fn(msg: string): int; +keycolor: fn(d: ref Display): ref Image; +.EE +.SH DESCRIPTION +.B Mpeg +provides a primitive interface to the +.IR mpeg (3) +device. +.PP +.B Play +plays the specified MPEG +.I file +in rectangle +.I r +within window +.I w +on display +.IR d . +The +.I dopaint +flag specifies whether, before playing the movie, to paint the rectangle with the chroma key colour of the device. +.PP +.I Notify +is a channel upon which to receive errors and status. If +.I notify +is +.BR nil , +.B play +runs synchronously, returning the empty string ("") when the movie completes, or a description of any error. +If +.I notify +is not +.BR nil , +.B play +spawns an asynchronous process to play the movie and returns the empty string immediately; the process returns the status on the +.I notify +channel when the movie completes. +.PP +.B Ctl +writes +.IR msg , +the string given as an argument, to the MPEG control interface +.BR /dev/mpegctl . +.PP +.B Keycolor +uses the +.B Display +.I d +to create a single-pixel, replicated off screen +.B Image +of colour +.B Chroma +.RB ( 16r05 ). +.SH FILES +.B /dev/mpeg +.br +.B /dev/mpegctl +.SH SOURCE +.B /appl/lib/mpeg.b diff --git a/static/inferno/man2/msgio.2 b/static/inferno/man2/msgio.2 new file mode 100644 index 00000000..8bb4e4df --- /dev/null +++ b/static/inferno/man2/msgio.2 @@ -0,0 +1,155 @@ +.TH MSGIO 2 +.SH NAME +msgio: getmsg, sendmsg, senderrmsg, getstring, putstring, getbytearray, putbytearray, puterror \- exchange data on delimited and undelimited streams +.SH SYNOPSIS +.EX +include "msgio.m"; +msgio := load Msgio Msgio->PATH; + +init: fn(); + +getmsg: fn(fd: ref Sys->FD): array of byte; +sendmsg: fn(fd: ref Sys->FD, buf: array of byte, n: int): int; +senderrmsg: fn(fd: ref Sys->FD, s: string): int; + +getstring: fn(fd: ref Sys->FD): (string, string); +putstring: fn(fd: ref Sys->FD, s: string): int; +getbytearray: fn(fd: ref Sys->FD): (array of byte, string); +putbytearray: fn(fd: ref Sys->FD, a: array of byte, n: int): int; +puterror: fn(fd: ref Sys->FD, s: string): int; +.EE +.SH DESCRIPTION +.B Msgio +provides two complementary sets of functions for the exchange of data over a network +connection that uses a connection-oriented transport protocols. +The connection is represented by a file descriptor +.IR fd . +.PP +.B Init +must be called before any other operation of the module. +.PP +The first set allows arbitrary data, packed into arrays of bytes, to be exchanged +on network connections using protocols such as TCP/IP that do not preserve +record boundaries. +They are used to implement various authentication protocols, including +.IR auth (6). +.PP +Each data message is transmitted with a five-byte header containing a four-character zero-padded decimal count +.I n +terminated by a newline, followed by +.I n +bytes of message data. +An error message has a similar structure, except that the first character +of the count is replaced by an exclamation mark +.RB ( ! ); +the message data following +contains the diagnostic string in its UTF-8 encoding (see +.IR utf (6)). +.PP +.B Getmsg +reads the next message from +.I fd +and returns its data content. +.PP +.B Sendmsg +sends the first +.I n +bytes of +.I buf +as a message on +.IR fd , +and returns +.IR n . +.PP +.B Senderrmsg +sends the error message +.IR s . +.PP +The second set of functions provide +I/O for strings, byte arrays and error strings over network connections that +provide a record structure for communication (as provided for arbitrary +networks by +.IR ssl (3)). +.PP +.B Putstring +writes string +.I s +to +.IR fd. +It returns the number of bytes written, or -1 if an error occurred. +Messages written by +.B putstring +are truncated to 4096 bytes. +.PP +.B Getstring +reads a string as written by +.B putstring +from +.IR fd +and returns a tuple +.RI ( result , error ). +If successful, the error +string is nil. +.PP +.B Putbytearray +writes the array of bytes +.I a +to +.IR fd . +It returns the number of bytes written, or -1 if an error occurred. +Messages written by +.B putbytearray +are truncated to 4096 bytes. +.PP +.B Getbytearray +reads an array of bytes as written by +.B putbytearray +from +.IR fd +and returns a tuple of the form +.RI ( result , error ). +If successful, the error string is nil. +.PP +.B Puterror +writes an error string +.I s +to +.IR fd . +It can be used in place of +.B putstring +or +.B putbytearray +to cause a corresponding +.B getstring +or +.B getbytearray +to fail +(in the receiving process), +forcing them to return the error string +.IR s . +It may not be longer than +.BR Sys->ERRMAX +bytes. +.SH SOURCE +.B /appl/lib/msgio.b +.SH DIAGNOSTICS +The output functions return an +.B int +which is -1 if there was an I/O error, +and a non-negative value otherwise; +they also set the system error string. +.B Getmsg +returns nil if there was an error reading from +.IR fd ; +it sets the system error string to reflect the cause. +It also returns nil +if an error message was received instead of a data message; +the system error string will contain the error message's diagnostic. +The other input functions (for streams with delimiters) +return a tuple that includes a string indicating the cause of the +error, as the second element of the tuple. +.SH BUGS +The module is really intended to retrofit the original Inferno authentication +protocols into a new regime, and is not yet intended for general-purpose use, +hence the irregular naming and calling conventions, inherited from the original implementation in +.BR Keyring . diff --git a/static/inferno/man2/names.2 b/static/inferno/man2/names.2 new file mode 100644 index 00000000..e28abf08 --- /dev/null +++ b/static/inferno/man2/names.2 @@ -0,0 +1,113 @@ +.TH NAMES 2 +.SH NAME +Names: basename, cleanname, dirname, elements, isprefix, pathname, relative, rooted \- file name manipulation +.SH SYNOPSIS +.EX +include "names.m"; +names := load Names Names->PATH; + +basename: fn(name: string, suffix: string): string; +cleanname: fn(name: string): string; +dirname: fn(name: string): string; +elements: fn(name: string): list of string; +isprefix: fn(a: string, b: string): int; +pathname: fn(els: list of string): string; +relative: fn(name: string, root: string): string; +rooted: fn(root: string, name: string): string; +.EE +.SH DESCRIPTION +.B Names +provides operations on file names (path names): +.TF cleanname +.PD +.TP +.B basename +Return the trailing component of +.I name +(the text after the final +.LR / ), +shorn of +.I suffix +(which may be null). +.TP +.B cleanname +Return a `cleaner' version of +.IR name : +there are no redundant and trailing slashes, +and directory names +.L . +and +.L .. +have been interpreted lexically. +If the result would otherwise be the empty string, +the name +.L . +is returned instead. +.TP +.B dirname +Return the directory component of +.IR name : +the string up to but not including the final slash(es). +.TP +.B elements +Return a list of the path elements of +.IR name : +the words between slashes. +If +.I name +starts with a +.LR / , +the head of the list will be the string +\&\f5"/"\fP +but otherwise slashes do not appear. +.TP +.B pathname +Return a path name formed from a list of elements as produced by +.BR elements . +.TP +.B isprefix +Return true iff path name +.I a +is a prefix of path name +.IR b . +.TP +.B relative +If +.I name +is +.IB root / X +for some +.IR X , +return +.IR X ; +otherwise return +.I name +unchanged. +.TP +.B rooted +Return the path name for +.I name +relative to a given +.I root +directory (either name may be nil). +If +.I name +itself starts with +.L / +or +.LR # , +the result is +.IR name ; +otherwise it is +.IB root / name. +.PP +See +.IR sys-intro (2) +for details of file name syntax and its interpretation. +.SH SOURCE +.B /appl/lib/names.b +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-fd2path (2), +.IR workdir (2) + diff --git a/static/inferno/man2/newns.2 b/static/inferno/man2/newns.2 new file mode 100644 index 00000000..60b64246 --- /dev/null +++ b/static/inferno/man2/newns.2 @@ -0,0 +1,49 @@ +.TH NEWNS 2 +.SH NAME +Newns: newns, newuser \- build a new name space from a description file +.SH SYNOPSIS +.EX +include "newns.m"; +ns := load Newns Newns->PATH; + +newns: fn(user: string, nsfile: string): string; +newuser: fn(user: string, cap: string, nsfile: string): string; +.EE +.SH DESCRIPTION +.B Newns +reads file +.I nsfile +and builds a new name space based on the commands it contains. +The file has the format defined by +.IR namespace (6). +If +.I nsfile +is +.B nil +or empty, then +.B newns +attempts to read file the file +.BR namespace . +.PP +.B Newuser +uses a capability +.I cap +suitable for +.IR cap (3) +to change the current process's user name to +.IR user , +and uses +.B newns +and +.I nsfile +to build it a new name space. +The capability is typically obtained via +.IR factotum (4). +.SH SOURCE +.B /appl/lib/newns.b +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-chdir (2), +.IR sys-pctl (2), +.IR factotum (4), +.IR namespace (6) diff --git a/static/inferno/man2/palmfile.2 b/static/inferno/man2/palmfile.2 new file mode 100644 index 00000000..81d62fc2 --- /dev/null +++ b/static/inferno/man2/palmfile.2 @@ -0,0 +1,542 @@ +.TH PALMFILE 2 +.SH NAME +Palmfile: Categories, DBInfo, Doc, Entry, Pfile, Record \- read Palm™ file formats +.SH SYNOPSIS +.EX +include "bufio.m"; +include "palmfile.m"; + +palmfile := load Palmfile Palmfile->PATH; + +Pfile: adt { + fname: string; + + appinfo: array of byte; + sortinfo: array of int; + + entries: array of ref Entry; + + open: fn(name: string, mode: int): (ref Pfile, string); +. # create: fn(nil: string, mode: int, perm: int, nil: ref DBInfo): ref Pfile; + close: fn(pf: self ref Pfile): int; + read: fn(pf: self ref Pfile, index: int): (ref Record, string); +. # append: fn(pf: self ref Pfile, r: ref Record): int; + stat: fn(pf: self ref Pfile): ref DBInfo; +. # wstat: fn(pf: self ref Pfile, nil: ref DBInfo): string; +. # readid: fn(pf: self ref Pfile, nil: int): (ref Record, string); +. # setappinfo: fn(pf: self ref Pfile, nil: array of byte); +. # setsortinfo: fn(pf: self ref Pfile, nil: array of int); +}; + +DBInfo: adt { + name: string; # database name on Palm + attr: int; # file attributes (defined below) + dtype: string; # database type (byte[4]) + version: int; # version of data layout, defined by application + creator: string; # creating application (byte[4]) + ctime: int; # creation time + mtime: int; # modification time + btime: int; # last backup + modno: int; # modification number + uidseed: int; # unique record ID seed + + new: fn(name: string, attr: int, dtype: string, + version: int, creator: string): ref DBInfo; +}; + +Entry: adt { + id: int; # resource: id; record: unique ID + offset: int; # offset in file + size: int; # size in bytes + name: int; # resource entry only + attr: int; # record entry only +}; + +Record: adt { + id: int; # resource: ID; data: unique record ID + index: int; # record index (origin 0) + name: int; # byte[4]: resource record only + attr: int; # attributes, defined below, data record only + cat: int; # category, data record only + data: array of byte; # content of record + +. # new: fn(size: int): ref Record; +}; + +Categories: adt { + renamed: int; # which categories have been renamed + labels: array of string; # category names + uids: array of int; # corresponding unique IDs + lastuid: int; # last unique ID assigned + appdata: array of byte; # remaining application-specific data + + new: fn(labels: array of string): ref Categories; + unpack: fn(a: array of byte): ref Categories; + pack: fn(c: self ref Categories): array of byte; +}; + +Doc: adt { + version: int; + length: int; # uncompressed + nrec: int; # text records only + recsize: int; # uncompressed + position: int; + sizes: array of int; # sizes of uncompressed records + + open: fn(file: ref Pfile): (ref Doc, string); + read: fn(doc: self ref Doc, i: int): (string, string); + iscompressed: fn(doc: self ref Doc): int; + unpacktext: fn(doc: self ref Doc, a: array of byte): + (string, string); + textlength: fn(doc: self ref Doc, a: array of byte): int; +}; + +init: fn(): string; + +filename: fn(s: string): string; +dbname: fn(s: string): string; + +gets: fn(a: array of byte): string; +puts: fn(a: array of byte, s: string); +get2: fn(a: array of byte): int; +get3: fn(a: array of byte): int; +get4: fn(a: array of byte): int; +put2: fn(a: array of byte, v: int); +put3: fn(a: array of byte, v: int); +put4: fn(a: array of byte, v: int); +.EE +.SH DESCRIPTION +.B Palmfile +provides read-only access to files in the Palm™ database and document formats. +It currently handles three types of files: +Palm Database +.RB ( .pdb ) +files, which store data for applications; +Palm Resource +.RB ( .prc ) +files, which store code resources and user interface resource elements; +and +Palm Doc +.RB ( .doc ) +files, which store compressed documents for the Palm document and e-book readers. +Database and resource files have a similar structure, with slight differences +in representation, and differing mainly in how the contents are used. +.PP +.B Init +must be called before any other function in the file. +It returns a diagnostic if it cannot initialise the module. +.PP +.B Pfile +represents an open Palm file of any type: +.TP +.B open() +Opens file +.I name +with the given +.I mode +(which must currently be +.BR Sys->OREAD ) +and returns a tuple +.RI ( pf , err ). +.I Pf +is a new +.B Pfile +instance giving access to the file, +or nil if the open failed, in which case the +.I err +string contains a diagnostic. +.TP +.IB pf .close() +Close the file (needed only when writing to a file is eventually supported). +.TP +.IB pf .read( index ) +Returns a tuple +.RI ( rec,\ err ) +where +.I rec +is a +.B Record +containing the data of the record +with the given +.I index +(origin 0), or +nil if no such record index exists or it cannot be read. +In the latter case, +.I err +is a diagnostic string. +.TP +.IB pf .stat() +Return the database information for +.IR pf . +.TP +.B entries +An array of +.B Entry +values (see below), one per record. +The length of the array is consequently the length of +the file in records. +It can be nil or empty. +.TP +.B appinfo +Optional application-specific data (see +.B Categories +below). +.TP +.B sortinfo +Optional application-specific data (typically +an array of record IDs in a chosen sorting order). +.TP +.B fname +File name given to +.BR Pfile.open . +.PP +.B DBInfo +gives the database information for a file: +.TF creator +.PD +.TP +.B name +Database name used on the Palm, maximum of 31 characters. +.TP +.B attr +A bit set of file attributes, containing the following values: +.RS +.TF Fappinfodirty +.PD +.TP +.B Fresource +File is a resource file +.RB ( .prc ) +not a database file +.RB ( .pdb ). +.TP +.B Fronly +File is read only. +.TP +.B Fappinfodirty +Application information has changed. +.TP +.B Fbackup +No conduit program exists (the whole file must be backed up). +.TP +.B Foverwrite +Overwrite older copy if present. +.TP +.B Freset +Reset PDA after installing this file. +.TP +.B Fprivate +Don't allow copy of this file to be beamed. +.RE +.TP +.B dtype +String identifying database type (up to 4 characters). +It is usually the string +\f5"appI"\fP for resource files. +.TP +.B version +Identifies the version of the data format (application specific). +.TP +.B creator +String identifying creating application (up to 4 characters). +.TP +.B ctime +File creation time, in seconds from the Inferno epoch (see +.IR daytime (2)). +.TP +.B mtime +Time file last modified, in seconds from the epoch. +.TP +.B btime +Time file last backed up, in seconds from the epoch. +.TP +.B uidseed +Seed for generating unique record IDs (typically set to 0 for database files, +always 0 for resource files). +.TP +.BI new( name,\ attr,\ dtype,\ creator ) +Return a new +.B DBInfo +with the given values. +.PP +In some applications, it is useful to use a data base name +(ie, +.BR DBInfo.name ) +as a component of an Inferno file name. +The device allows space and slash characters in names, though, +which makes it hard to use the name directly. +.B Filename +maps each space character +in +.I s +to U+00A0 (unpaddable space) +and each slash character to U+2215 (`division /'), +and returns the result. +.B Dbname +maps the other way. +.SS Entries and Records +Each record in the file is represented by an +.B Entry +in memory, which holds the record's essential attributes, +leaving the data on file. +The meaning of some of the elements depends on whether +the file is a data file or a resource file. +.TF offset +.PD +.TP +.B id +Resource ID, 16 bits (resource file); unique record ID, 24 bits (data file). +.TP +.B offset +Offset in file, in bytes. +.TP +.B size +Size of record in bytes. +.TP +.B name +Name of the resource (resource record only). +.TP +.B attrs +Record attributes (data record only): +.RS +.TF Rarchive +.PD +.TP +.B Rdelete +Delete the record when file next synchronised. +.TP +.B Rdirty +Record has been modified. +.TP +.B Rinuse +Record in use (not typically used in Inferno). +.TP +.B Rsecret +Record is secret (shown on the device only with use of a password). +.TP +.B Rarchive +Archive this record when file next synchronised. +.TP +.B Rmcat +Mask for the 4-bit category field (in +.B Entry.attrs +only). +.RE +.PP +Records read from the file are represented by a +.B Record +adt containing its data and associated values. +Some fields are valid only for particular classes of records. +.TF index +.PD +.TP +.B id +Resource or record ID, as for +.BR Entry . +.TP +.B index +Index (origin 0) of the record in the file. +.TP +.B name +Resource name (resource record only). +.TP +.B attr +Record attributes, as above (data record only). +.TP +.B cat +Record's category ID (data record only). +.TP +.B data +The actual data. +.SS Application data +The contents of both the ``application information'' and ``sort information'' sections of the file +are defined by an application in general. +Even so, both have conventional uses with many Palm applications. +The Palm software often assigns data records to particular categories (eg, ``Business'' or ``Personal''), +and stores up to 16 category names and IDs in the application data in a fixed format +(possibly followed by further data that is application specific). +This is represented by an instance of +.BR Categories , +which provides the following: +.TF renamed +.PD +.TP +.B renamed +Bit set indicating which categories have been renamed (for category 0, bit +.BR 1<<0 , +for 1, bit +.BR 1<<1 , +and so on). +.TP +.B labels +Array of 16 category labels. +.TP +.B uids +Array of 16 category IDs, each in the range 0 to 255. +(It is said that the Palm itself assigns 0 to 127 and desktop applications assign 128 to 255.) +.TP +.B lastuid +Last unique category ID assigned. +.TP +.B appdata +Any data that remained after unpacking the category data. +.TP +.BI new( labels ) +Return a new +.B Categories +value for the given array of +.IR labels , +assigning unique IDs to each in turn, starting from 128. +There can be at most 16 labels; if there are fewer, the remaining labels will be marked as unused +(empty strings). +.TP +.BI unpack( a ) +Unpack the application data in array +.I a +(typically +.IB pf .appinfo +for some +.B Pfile +.IR pf ), +returning a reference to a new +.B Categories +instance. +A nil value is returned if the array is too short to hold valid category data. +.TP +.IB c .pack() +Pack +.I c +into a form suitable for writing back to a file's application information area. +.PP +Binary data in Palm files is typically encoded in big-endian form. +.B Palmfile +functions account for that internally, but some Palm applications might use +big-endian data in their own data records. +Several functions are therefore provided to decode and encode big-endian data: +.BI get n +retrieves an integer from the first +.I n +bytes of array +.IR a ; +.BI put n +stores a big-endian representation of the value +.I v +in the first +.I n +bytes of array +.IR a . +.PP +Strings are stored in fixed-length arrays of bytes, always terminated by a zero byte. +The character encoding is (apparently) Latin-1 (ISO 8859-1), not UTF-8, +so functions +.B gets +and +.B puts +are provided to convert between that representation and a Limbo string. +.SS Documents +.B Doc +provides read-only access to Palm documents and (unencrypted) e-books: +.TF position +.PD +.TP +.BI open( file ) +Given a +.B Pfile +.IR file , +return a tuple +.RI ( doc,\ err ) +where +.I doc +is a new +.B Doc +instance giving access to the document contents in +.IR file . +If an error occurs, in particular if +.I file +does not appear to be a valid Palm document, +.I doc +is nil and the string +.I err +diagnoses the error. +.TP +.IB doc .iscompressed() +Returns true (non-zero) if the document is compressed; returns false (zero) otherwise. +.TP +.IB doc .read( i ) +Read text record with index +.I i +(origin 0), +returning a tuple +.RI ( s,\ err ) +where +.I s +is the uncompressed text for record +.IR i , +or nil if the record does not exist (or there is an error reading it). +On any error, +.I err +is a diagnostic string. +Note that +.I i +is an index into the set of text records, and is not an index into the set of all records. +It must be no greater than +.IB doc .nrec . +.IB doc .unpacktext( a ) +Returns a tuple +.RI ( s,\ err ) +where +.I s +is the text in array +.IR a , +after uncompressing if +.I doc +contains compressed records. +Following Palm conventions, the text is assumed to be written in the Latin-1 encoding (ISO-8859-1). +If it is compressed but the data in +.I a +is corrupt (cannot be uncompressed), +.I s +is nil and +.I err +diagnoses the problem. +.TP +.IB doc .textlength( a ) +Returns the number of bytes required to store the text in array +.I a +once it has been uncompressed (if necessary). +.TP +.B version +The document's version number. +.TP +.B length +The length of the whole document in bytes, when uncompressed. +.TP +.B nrec +Number of text records in the document. +.TP +.B recsize +Size of uncompressed text records. +.TP +.B position +Possibly records the position where reading last stopped. +.TP +.B sizes +Array giving sizes of all text records, once uncompressed. +.PP +Most document-reading applications require only +.B Doc.open +and +.BR Doc.read , +and perhaps +.BR Doc.length +to guide the construction of scroll bars (for instance). +.SH SOURCE +.B /appl/lib/palmfile.b +.SH SEE ALSO +.IR "Palm® File Format Specification" , +Gary Hillerson, Palm Inc., +Document Number 3008-004, +1 May 2001. +. br +.IR "[Palm®] standard text document file format" , +Paul Lucas, 18 August 1998. diff --git a/static/inferno/man2/plumbmsg.2 b/static/inferno/man2/plumbmsg.2 new file mode 100644 index 00000000..9eba8c5c --- /dev/null +++ b/static/inferno/man2/plumbmsg.2 @@ -0,0 +1,291 @@ +.TH PLUMBMSG 2 +.SH NAME +plumbmsg \- plumbing message module +.SH SYNOPSIS +.EX +include "plumbmsg.m"; +plumbmsg := load Plumbmsg Plumbmsg->PATH; +Msg: import plumbmsg; + +Msg: adt +{ + src: string; + dst: string; + dir: string; + kind: string; + attr: string; + data: array of byte; + # used by applications + send: fn(msg: self ref Msg): int; + recv: fn(): ref Msg; + # used by plumb and send, recv + pack: fn(msg: self ref Msg): array of byte; + unpack: fn(b: array of byte): ref Msg; +}; + +Attr: adt +{ + name: string; + val: string; +}; + +init: fn(willsend: int, rcvport: string, maxdata: int): int; +shutdown: fn(); +string2attrs: fn(s: string): list of ref Attr; +attrs2string: fn(l: list of ref Attr): string; +lookup: fn(attrs: list of ref Attr, name: string): (int, string); +.EE +.SH DESCRIPTION +.B Plumbmsg +is an interface for message-passing between applications +via the +.IR plumber (8). +It allows applications to receive messages from the plumber on a logical input port, +and send messages to other applications via the plumber. +.PP +.B Init +must be called once when the application starts, to +set up its plumbing connections. +Applications can choose to send messages, receive them, or do both. +Note that +the plumber must be running before any of these functions are useful. +Normally, that is done by the window system's initialisation procedure, +but in specialised systems, plumbing can be used for attribute-oriented +communication even without a window system. +.PP +If the application will be sending +messages via the plumber, the value +.I willsend +must be non-zero, and +.B init +will open an appropriate channel to the plumber; if the application +will not send messages, the value should be zero. +.PP +If the application is prepared to receive messages, the parameter +.I rcvport +names its logical input port, +which must also be known to the plumber (ie, it must +be named as a possible destination in +.IR plumbing (6)); +.B init +will open an appropriate channel to receive messages from the plumber. +The parameter +.I maxdata +gives the size in bytes of the largest message +the application is prepared to receive. +Applications that only send messages set +.I rcvport +to nil. +.PP +.B Init +returns returns -1 if for any reason either connection cannot be set up correctly, +in particular if the plumber is not running or the input port is unknown. +Otherwise it returns a non-negative value. +.PP +The following program fragment establishes input and output plumbing +for an application `edit': +.IP +.EX +plumbed := 0; +plumbmsg = load Plumbmsg Plumbmsg->PATH; +if(plumbmsg->init(1, "edit", 1000) >= 0) + plumbed = 1; +.EE +.PP +The variable +.B plumbed +is set to allow the application to disable its plumbing user interface +(and not attempt to send messages) if initialisation fails. +.PP +The +.B Msg +adt +encapsulates the message data routed between applications and +provides member functions to send and receive them. +Its components are used as follows: +.TF dataxx +.PD +.TP +.B src +The name of the program generating the message. +.TP +.B dst +The output port to which the plumber should route the message. +In practice, destination is often left empty, and +the destination port will be determined by +the plumber applying the automatic routing rules +(cf. +.IR plumbing (6)) +.TP +.B dir +The directory in which to interpret the data (eg, if the data is a local file name). +.TP +.B kind +The format of the data. +Currently, +.RB ` text ' +is the only type that applications understand, but the plumbing system +can route any kind of data. +.TP +.B attr +A string containing +.IB name = value +pairs (eg, +.BR click=7 ), +separated by tabs. +Normally the value should be created using +.B attrs2string +and parsed using +.BR string2attrs , +described below. +.TP +.B data +The message to be conveyed. +If +.B kind +is +.BR text , +and the message is a string +.IR s , +.B data +will be +.RB ` array +.B of +.BI byte " s'" +(ie, its UTF encoding). +.PD +.PP +Plumbing messages are created directly using Limbo's +.B ref +operator, giving the desired value to each field. +For example: +.IP +.EX + msg := ref Msg( + "WmSh", + "", + workdir->init(), + "text", + attr, + array of byte text); +.EE +.PP +The plumbing messages are exchanged with +the plumber +using two member functions: +.TP +.IB m .send( msg ) +Writes a plumbing message to the +plumber. +It returns the number of bytes written (the result of +.I write +in +.IR sys-read (2) +which does the writing). +It returns -1 if the plumber cannot route the message. +.TP +.B Msg.recv() +Reads a plumbing message from the file +representing the application's input port, +previously opened by +.BR init . +It waits for a message, and returns a reference to a +.B Msg +that contains the message data. +.PP +.B Shutdown +sends a message to the plumber +that shuts down plumbing for the application's input port +.IR rcvport . +An application +.I must +call it before it exits if it has an active input port. +.PP +.B String2attrs +takes a string containing a tab-separated list of attribute pairs and returns a list of references to +.B Attr +adts. +.PP +.B Attr2string +converts a list of references to +.B Attr +adts into a string of the form +.IB name = value name = value +\&. . . . +The +.IB name = value +pairs are separated by a single tab. +.PP +.B Lookup +searches +.I attrs +for an attribute +.IR name , +and if found, returns the tuple +.BI (1, value ) . +If +.I name +is not found, +.B lookup +returns +.BR "(0, nil)" . +.SS Packed message format +The format of plumbing messages as transmitted, and member functions +that encapsulate it, are documented here for completeness, and in case +the details are useful in interpreting plumbing messages outside the Inferno environment. +.PP +Plumbing messages have a fixed structure: five lines of text +giving UTF representations of the +corresponding fields of +.BR Msg , +then a line giving the length of +.B data +in decimal, +followed by the bytes of +.BR data : +.IP +.nf +.IB source \en +.IB destination \en +.IB directory \en +.IB kind \en +.IB attributes \en +.IB n \en +.IB n " bytes" +.fi +.PP +The details are encapsulated in two functions: +.TP +.IB m .pack() +.B Pack +packs the contents +.B Msg +.I m +into an array of byte for subsequent transmission using +.I write +(see +.IR sys-read (2)). +.TP +.BI Msg.unpack( b ) +Unpack unpacks an array of byte +.I b +to form a copy of the original +.BR Msg , +which it returns. +.SH FILES +.TF /chan/plumb.rcvport +.TP +.B /chan/plumb.input +file to send messages to the plumber +.TP +.BI /chan/plumb. rcvport +file to receive messages routed to the logical name +.I rcvport +.SH SOURCE +.B /appl/lib/plumbmsg.b +.SH BUGS +.I Shutdown +should not be needed: +the +.IR plumber (8), +as a file server, must know that a particular client has vanished. diff --git a/static/inferno/man2/pop3.2 b/static/inferno/man2/pop3.2 new file mode 100644 index 00000000..938f02c9 --- /dev/null +++ b/static/inferno/man2/pop3.2 @@ -0,0 +1,80 @@ +.TH POP3 2 +.SH NAME +pop3 \- Post Office Protocol +.SH SYNOPSIS +.EX +include "pop3.m"; +pop3 := load Pop3 Pop3->PATH; + +open: fn(user, password, server: string): (int, string); +stat: fn(): (int, string, int, int); +msglist: fn(): (int, string, list of (int, int)); +msgnolist: fn(): (int, string, list of int); +top: fn(m: int): (int, string, string); +get: fn(m: int): (int, string, string); +delete: fn(m: int): (int, string); +close: fn(): (int, string); +.EE +.SH DESCRIPTION +.B Pop3 +provides an interface to the Post Office Protocol +POP3 through a set of functions. +.PP +.B Open +opens a connection to a POP3 +.IR server , +logging in as the specified +.IR user +with the given +.IR password . +If +.I server +is +.IR nil , +.B open +uses +.BR $pop3 , +which must be defined in +.IR ndb (6). +The remaining functions assume a successfully opened connection. +.PP +.B Stat +returns the status of the user's mailbox. +The third element of its return tuple is the number of +messages and the fourth is the total number of bytes in the messages. +.PP +.B Msglist +lists the user's mailbox. The third element in its return tuple gives a list of pairs of numbers +comprising +.RI ( "message number, bytes in message" ). +.PP +.B Msgnolist +lists the user's mailbox as above but omits the bytes in each message. +.PP +.B Top +returns the top of message +.IR m . +.PP +.B Get +returns the full text of message +.IR m . +.PP +.B Delete +deletes message +.IR m . +.PP +.B Close +closes the connection to the POP3 server. +Note that subsequent reconnections to the server +may renumber the messages in the mail box and will certainly do so if the last connection +deleted messages. +.PP +Note also that a connection is static in the sense that mail messages entering the server during +a connection will not be accessible. A reconnection is needed to see newly arrived messages. +.SH SOURCE +.B /appl/lib/pop3.b +.SH SEE ALSO +.IR acme (1) +.SH DIAGNOSTICS +All these functions return -1 +and an error message on failure as the first two entries in their return tuples. diff --git a/static/inferno/man2/popup.2 b/static/inferno/man2/popup.2 new file mode 100644 index 00000000..731ced36 --- /dev/null +++ b/static/inferno/man2/popup.2 @@ -0,0 +1,102 @@ +.TH POPUP 2 +.SH NAME +Popup: mkbutton, changebutton, event, add \- popup list box pseudo-widget +.SH SYNOPSIS +.EX +include "popup.m"; +popup := load Popup Popup->PATH; + +init: fn(); +mkbutton: fn(win: ref Tk->Toplevel, name: string, + items: array of string, n: int): chan of string; +changebutton: fn(win: ref Tk->Toplevel, name: string, + items: array of string, n: int); +event: fn(win: ref Tk->Toplevel, e: string, + items: array of string): int; +add: fn(items: array of string, s: string): + (array of string, int); +.EE +.SH DESCRIPTION +.B Popup +implements popup list boxes as Tk pseudo-widgets. +This module has since been superseded by +.IR choicebutton (2) +in Tk itself, but remains for the moment for compatibility. +.PP +.B Init +must be called once to initialise the module. +.PP +.B Mkbutton +creates a new button +.IR name , +in Tk toplevel +.IR win . +It returns a channel on which it delivers events (see +.BR event , +below). +Once created, +.I name +can be packed like any other Tk widget. +When the button is pressed with button 1, +a menu pops up offering a choice from the given +.IR items . +The value +.I n +is the index in +.I items +of the button's initial value. +The current choice is always displayed in the button. +If +.I items +is nil or an empty array, the string +.RB ` ----- ' +is displayed instead. +.PP +Having created a popup button, the application must receive values on +the channel returned by +.B mkbutton +and pass each value it receives to +.BR event +(as parameter +.IR e ). +(Typically the application will receive on the channel in an +.B alt +statement that watches other channels too.) +.B Event +returns the result of a selection, or -1 if no selection was made. +In either case, the text of the button +.I name +will reflect the currently active selection +(the application can fetch it using +.RB ` cget\ -text '). +The +.I items +parameter must match that given to +.B mkbutton +(or most recently given to +.BR changebutton ). +.PP +.B Changebutton +changes the list of +.I items +in an existing popup button +.IR name , +and sets its initial selection to the item with index +.IR n . +.PP +.B Add +adds string +.I s +to the array +.IR items , +if it is not already there, +and in either case returns the resulting new array and +the index of +.I s +therein. +It is useful for calculating a list of items dynamically. +.SH SOURCE +.B /appl/lib/popup.b +.SH SEE ALSO +.IR tabs (2), +.IR tk (2) diff --git a/static/inferno/man2/prefab-0intro.2 b/static/inferno/man2/prefab-0intro.2 new file mode 100644 index 00000000..4d0d1776 --- /dev/null +++ b/static/inferno/man2/prefab-0intro.2 @@ -0,0 +1,75 @@ +.TH PREFAB-INTRO 2 +.SH NAME +Prefab: intro \- Interactive TV tookit +.SH SYNOPSIS +.EX +include "draw.m"; +include "prefab.m"; +prefab := load Prefab Prefab->PATH; +.EE +.SH DESCRIPTION +The +.B Prefab +module contains components for building graphics objects suitable for +Interactive Television (ITV) applications using infrared remote controls. +Using the +.B Draw +module's operations +for simple text and images +(see +.IR draw-intro (2)), +the toolkit can group individual items, +treat those groups as units, and then activate the +items on command. +The other user interface toolkit, +.IR tk (2), +provides facilities for keyboard- and mouse-driven applications. +.PP +The objects on the screen are of type +.BR Compound , +each of which occupies a unique window on the +display and contains objects of type +.BR Element . +An +.B Element +may be a single object or a list of further +.BR Elements , +to build hierarchically structured components. +.PP +.B Prefab +defines +.B Environ +and +.B Style +types that specify the appearance of objects: their colours, fonts, +backgrounds, and so on. +A +.B Style +gives font and colour information, while +an +.B Environ +identifies the +.B Screen +upon which the items will be displayed and the +.B Style +in which they will be drawn. +.PP +Applications should allocate +.B Elements +and +.B Compounds +only through the appropriate member functions, as described in the corresponding +sections of the manual. +Items created with regular Limbo +definitions will not work properly. +Moreover, except where indicated, +applications should not modify the data members directly. +Although the type definitions make data members visible, +the members should usually be treated as read-only data. +.SH SOURCE +.B /libinterp/prefab.c +.br +.B /libprefab/*.c +.SH SEE ALSO +.IR draw-intro (2), +.IR ir (2) diff --git a/static/inferno/man2/prefab-compound.2 b/static/inferno/man2/prefab-compound.2 new file mode 100644 index 00000000..1ca41778 --- /dev/null +++ b/static/inferno/man2/prefab-compound.2 @@ -0,0 +1,262 @@ +.TH PREFAB-COMPOUND 2 +.SH NAME +prefab: Compound \- windows for ITV toolkit +.SH SYNOPSIS +.EX +include "draw.m"; +include "prefab.m"; +prefab := load Prefab Prefab->PATH; + +Compound: adt +{ + image: ref Draw->Image; + environ: ref Environ; + r: Draw->Rect; + title: ref Element; + contents: ref Element; + + iconbox: fn(env: ref Environ, + p: Draw->Point, title: string, icon, + mask: ref Draw->Image): + ref Compound; + textbox: fn(env: ref Environ, + r: Draw->Rect, title, text: string): + ref Compound; + layoutbox: fn(env: ref Environ, + r: Draw->Rect, title: string, lay: list of Layout): + ref Compound; + box: fn(env: ref Environ, + p: Draw->Point, title, elist: ref Element): + ref Compound; + draw: fn(comp: self ref Compound); + redraw: fn(comp: self ref Compound, r: Draw->Rect); + scroll: fn(comp: self ref Compound, elem: ref Element, + d: Draw->Point); + show: fn(comp: self ref Compound, elem: ref Element): int; + select: fn(comp: self ref Compound, + elem: ref Element, i: int, c: chan of int): + (int, int, ref Element); + tagselect: fn(comp: self ref Compound, + elem: ref Element, i: int, c: chan of int): + (int, int, ref Element); + highlight: fn(comp: self ref Compound, + elem: ref Element, on: int); +}; +.EE +.SH DESCRIPTION +.B Compound +is the data type defining boxes drawn on the screen. +Each appears in a new window, +.BR Compound.image , +and holds a (possibly +.BR nil ) +title +.B Element +and contents +.BR Element . +It occupies the space on +the screen defined by +.BR Compound.r . +Allocating a +.B Compound +creates +a window but does not draw it; +after the +.B Compound +is built, +.B Compound.draw +must be called to make it visible. +Compounds have a border around them, drawn in +.B Style.edgecolor +and contain from top to bottom the title (if any), +a horizontal line (if there is a title), and the contents. +.PP +.TP +.B "Compound.iconbox(\f2env\fP, \f2p\fP, \f2title\fP, \f2icon\fP, \f2mask\fP) +Creates a +.B Compound +whose contents are made by calling +.B Element.icon +(see +.IR prefab-element (2)) +using the +.I icon +and +.IR mask . +The +.BR Compound 's +upper left corner is at +.IR p ; +its size is determined by the size of the +.I icon +and +.IR mask . +.TP +.B "Compound.textbox(\f2env\fP, \f2r\fP, \f2title\fP, \f2text\fP) +Creates a +.B Compound +whose contents are made by calling +.B Element.text +using the supplied +.IR text . +As with +.BR Element.text , +the resulting contents +.B Element +will be actually a list of text +.B Elements +if the text occupies multiple lines on the screen. +The rectangle behaves as in +.BR Element.text . +.TP +.B "Compound.layoutbox(\f2env\fP, \f2r\fP, \f2title\fP, \f2layoutlist\fP) +Like +.BR Compound.textbox , +but based on +.B Element.layout +rather than +.BR Element.text . +.TP +.B "Compound.box(\f2env\fP, \f2p\fP, \f2title\fP, \f2element\fP) +Creates a +.B Compound +whose contents are made from an existing +.BR Element . +To build complex structures, use the +.BR Element -building +functions, +size the +.B Element +appropriately, +and use +.BR Compound.box . +The result is positioned with its upper left corner at +.IR p , +and with size determined by that of the +.BR Element . +.PP +However a +.B Compound +is built, +its size computation makes allowance for the border and title. +Moreover, if the requested size and placement makes part +appear offscreen, the result may be moved to display it better. +.TP +.B Compound.draw() +This function +uses the description of the title and contents to paint the +on-screen image. +It takes no arguments; +all the information is included in the description. +.TP +.BI Compound.redraw( r ) +Like +.BR Compound.draw , +but restricts the drawing to the specified +.B Rect +.IR r . +.PP +.TP +.ft 5 +Compound.select( \f2element\fP, \f2index\fP, \f2c\fP ): (int, int, Element) +.ft 1 +The channel +.I c +is a +.B chan +of +.B int +connected to an IR remote control interface, typically acquired through the program's +.B Context +(see +.IR draw-context (2)). +The +.I element +is contained in the +.BR Compound , +and may be at any level of its structure. +It +is most usefully a list, +but may be a singleton, in which case it behaves like a list of one element. +The arrow keys on the remote control scroll through the members of the list, +using the +.B Style.highlightcolor +associated with each member element to indicate selection. +A +.B Select +key on the remote control triggers +.B select +to return a tuple +.BI ( key , +.IB index , +.IB elem )\f1; +.I key +is the key code of the action (here +.BR Select ), +.I index +is the number of the element in the list (ignoring separators), +and +.I elem +is the list member highlighted when the key was hit. +Any other key returns the same tuple with +.I index +\-1 and the value of the key. +The +.I elem +returned is always the most recently highlighted, +even if the result was not a selection. +When +.B select +returns, it always restores the default appearance of the list. +.PP +.TP +.ft 5 +Compound.tagselect( \f2element\fP, \f2index\fP, \f2c\fP): (int, int, Element) +.ft 1 +Like +.BR Compound.select , +but rather than selecting among all the elements +of a list, it selects among only those elements with +defined +tags in the +structure contained within the specified +.IR element . +.TP +\f5Compound.highlight(\fP\f2element\fP\f5,\ \fP\f2on\fP\f5)\fP +Set the highlighting to be ``on'' or ``off'' +for the +.I element +within the compound. +.TP +\f5Compound.scroll(\fP\f2element\fP\f5,\ \fP\f2d\fP\f5)\fP +Like +.BR Element.scroll : +scroll the +.I element +within the compound. +The updated image is redrawn after the scrolling. +.TP +.ft 5 +\f5Compound.show(\fP\f2element\fP\f5,\ \fP\f2d\fP\f5)\fP +.ft 1 +Like +.BR Element.show : +make sure the +.I element +is visible +within the rectangle of the top-level +.B Element +of the +.BR Compound , +that is, in effect call +.ft 5 +Element.show(Compound.contents, \f2element\fP); +.ft 1 +.SH SOURCE +.B /libinterp/prefab.c +.br +.B /libprefab/*.c +.SH SEE ALSO +.IR prefab-element (2), +.IR prefab-environ (2), +.IR prefab-style (2) diff --git a/static/inferno/man2/prefab-element.2 b/static/inferno/man2/prefab-element.2 new file mode 100644 index 00000000..ef35a604 --- /dev/null +++ b/static/inferno/man2/prefab-element.2 @@ -0,0 +1,468 @@ +.TH PREFAB-ELEMENT 2 +.SH NAME +prefab: Element \- menu and display elements for ITV toolkit +.SH SYNOPSIS +.EX +include "draw.m"; +include "prefab.m"; +prefab := load Prefab Prefab->PATH; + +# types of Elements +EIcon: con 0; +EText: con 1; +ETitle: con 2; +EHorizontal:con 3; +EVertical: con 4; +ESeparator: con 5; + +# first arg to Element.adjust: size of elements +Adjpack: con 10; # leave alone, pack tightly +Adjequal: con 11; # make equal +Adjfill: con 12; # make equal, filling available space + +# second arg: position of element within space +Adjleft: con 20; +Adjup: con 20; +Adjcenter: con 21; +Adjright: con 22; +Adjdown: con 22; + +Layout: adt +{ + font: ref Draw->Font; + color: ref Draw->Image; + text: string; + icon: ref Draw->Image; + mask: ref Draw->Image; + tag: string; +}; + +Element: adt +{ + kind: int; + r: Draw->Rect; + environ:ref Environ; + tag: string; + + # different fields defined for different kinds of Elements + kids: cyclic list of ref Element; # children of elists + str: string; # text in an EText element + mask: ref Draw->Image; # part of Eicon, ESeparator + image: ref Draw->Image; # part of Eicon, ESeparator, EText, Etitle + font: ref Draw->Font; # part of EText, Etitle + + icon: fn(env: ref Environ, r: Draw->Rect, + icon, mask: ref Draw->Image): + ref Element; + text: fn(env: ref Environ, text: string, + r: Draw->Rect, kind: int): ref Element; + layout: fn(env: ref Environ, lay: list of Layout, + r: Draw->Rect, kind: int): ref Element; + elist: fn(env: ref Environ, elem: ref Element, kind: int): + ref Element; + separator: fn(env:ref Environ, r: Draw->Rect, + icon, mask: ref Draw->Image): ref Element; + + append: fn(elist: self ref Element, elem: ref Element): int; + adjust: fn(elem: self ref Element, equal: int, dir: int); + clip: fn(elem: self ref Element, r: Draw->Rect); + scroll: fn(elem:self ref Element, d: Draw->Point); + translate: fn(elem:self ref Element, d: Draw->Point); + show: fn(elist: self ref Element, elem: ref Element): int; +}; +.EE +.SH DESCRIPTION +.B Prefab +.B Elements +are the building blocks of the ITV toolkit. +They represent and display text and pictures that can be grouped in +arbitrary two-dimensional menus to be walked by the infrared remote control. +.B Elements +are packaged within +.B Compounds +(see +.IR prefab-compound (2)) +for display. +.TF environ +.PD +.TP +.B environ +This specifies the element's environment. +.TP +.B image +If the element needs an +.B Image +object (see +.B kind +below), this member specifies it. +.TP +.B kind +The +.B Prefab +module defines six +.B Element +varieties, each labelled by a defined constant in the +.B kind +member. +.RS +.TP +.B EIcon +An image. +.TP +.B EHorizontal +A horizontal list of elements. +.TP +.B ESeparator +An +.B Image +object, like an +.BR EIcon , +but intended to fill space in a list, rather than to serve +as an element of the list. +Separators are ignored when selecting or highlighting list elements. +.TP +.B EText +A single line of text. +Text for this element will be drawn with +.B Style.textfont +and +.BR Style.textcolor . +.TP +.B ETitle +A single line of text, usually giving the title of a +.B Compound +object. +Text for this element will be drawn with +.B Style.titlefont +and +.BR Style.titlecolor . +.TP +.B EVertical +A vertical list of elements. +.RE +.TP +.B mask +When an element contains an +.B Image +object, the +.B Image.draw +function will be used to display it on the screen. +The +.B mask +image is used as an argument to +.BR Image.draw ; +see +.IR draw-intro (2) +for more information. +.TP +.B r +All +.B Elements +are rectangular, occupying the +position on the display specified by +.BR r.min . +The size of the element also depends on +.BR r . +During creation, +if the rectangle is degenerate (has +zero size), the element takes its size from the +sizes of its components: +the image size for icons, text width for strings, etc. +Otherwise, the element's size matches the rectangle. +.TP +tag +The +.B tag +of an element serves two purposes: it allows an element to be labelled +with arbitrary invisible text, and provides a mechanism to control which +elements of a list may be selected: see the description of +.B Compound.tagselect +in +.IR prefab-compound (2). +The +.B tag +field of an element may be modified freely after the element is created. +.TP +.BI icon( env\fP,\fP\ r\fP,\fP\ icon\fP,\fP\ mask ) +Build one +.B EIcon +element to be drawn with the +.I icon +and +.IR mask . +The rectangle, +.IR r , +gives the element's position and size. +.TP +.BI text( env\fP,\fP\ text\fP,\fP\ r\fP,\fP\ kind ) +Build a textual element or a list of textual elements. +.I Kind +may be +.B EText +or +.BR ETitle , +determining the style of the drawn +.IR text . +The resulting +.B Element +object may be a single element or a +.B EVertical +list of the appropriate kind, if the text occupies +more than one line. +The text is folded as necessary to +accommodate the available horizontal space; newlines in +the text cause line breaks. +The width of the +text is determined by +.IR r , +but if +.I r +has no width, it will be +set by the text itself. +The height of the Element is also +determined by +.IR r ; +again, if the height of +.I r +is zero, the Element will be made as tall as necessary (if +.I r +is not tall enough, the rest of the text may be made visible +by calls to +.BR Element.scroll ). +Thus one may choose +a specific size or let the +.I text +determine the size by setting +.I r +suitably. +.TP +.BI layout( env\fP,\fP\ lay\fP,\fP\ r\fP,\fP\ kind ) +Like +.BR Element.text , +but builds a structure using the contents of the list +.I lay +of +.B Layout +structures. The +.B Layout +type +allows construction of a more general form of textual display +by providing fine control over the font and colour in which to +display text and the inclusion of images as textual elements. +It also allows setting of the +.B tag +for each component of the resulting element or list of elements. +If the +.B Layout +has a +.RB non- nil +.B image +field, it is taken as a description of a +picture to be incorporated in the text as an +.B EIcon +element (and the +.B text +field is ignored); +otherwise the +.B text +field specifies the text to be drawn in the indicated +.B font +and +.BR color . +As with +.BR Element.text , +.B Element.layout +does all the geometry management, text line breaking and folding, etc. +.TP +.BI elist( env\fP,\fP\ elem\fP,\fP\ kind ) +Start a list of +.B Element +objects. +The +.I kind +may be +.B Prefab\->EHorizontal +or +.BR Prefab\->EVertical , +specifying the orientation of the list. +.I Elem +will be the first element of the list. +It may be +.BR nil , +which creates an empty list of the +requested orientation. +Subsequent +.B Element.append +calls build the list. +.TP +.BI separator( env\fP,\fP\ r\fP,\fP\ icon\fP,\fP\ mask ) +Build one +.B ESeparator +element to be drawn with the +.I icon +and +.IR mask . +The rectangle, +.IR r , +gives the element's position and size. +.TP +.IB elist .append( elem ) +Append one +.BR Element , +.IR elem , +to an existing list, +.IR elist . +The new element will appear after those already +there, either to the right for +.B EHorizontal +or below for +.B EVertical +lists. +.TP +.IB elem .adjust( spacing\fP,\fP\ dir ) +Format the list so its elements abut. +The list-building functions such as +.B append +attempt to build a sensible geometry. +Alternatively, one can build a list using +degenerate geometry and then let +.B adjust +compute the geometry for the whole list. +For example, one could place all the elements +at (0,\ 0) and then call +.B adjust +to decide where the elements belong. +.IP "" +.I Spacing +specifies how the elements fit together: +.RS +.TP +.B Adjequal +Makes them all equal sized in the dimension of the list, +but only as big as the largest element. +For example, if the element is a horizontal list, +all elements will be as wide as the widest item. +If the list is too big for the allocated space, +only some will be visible. +.TP +.B Adjfill +Makes them all equal sized in the dimension of the list, +expanding the elements to fit the space of the list's +.BR Element.r . +If the list is too big for the allocated space, +only some will be visible. +.TP +.B Adjpack +Packs elements as tightly as possible, +using the ``natural'' size of each element +and setting their rectangles against one another. +.RE +.IP "" +.I Dir +controls how each element is placed in its allotted space: +.RS +.TP +.B Adjcenter +Place each element in the middle of its space. +.TP +.B Adjdown +In a vertical list, move each element to the bottom. +.TP +.B Adjleft +In a horizontal list, move each element to the left. +.TP +.B Adjright +In a horizontal list, move each element to the right. +.TP +.B Adjup +In a vertical list, move each element to the top. +.RE +.TP +.IB elem .clip( r ) +The drawing model for +.B Element +objects is that they occupy some space in +the plane, which may be larger or smaller than the space occupied +by its constituent text, icons, sub-elements, etc. +The +.I clip +function sets the rectangle of +.I elem +to +.IR r , +without changing its internal geometry. +Any space made newly visible by this +will be filled in by the list's +.BR Style.elemcolor . +For example, if +.B e +is an icon element just large enough to display its image, +.B e.clip(e.r.inset(-2)) +will make a two-pixel-wide border around the icon when +it is drawn. +As another example, lists are scrolled by leaving their clip +rectangle intact while translating the list elements' coordinates. +.TP +.IB elem .scroll( d ) +.I D +is a +.BR Point , +representing a vector; +.I elem +is an +.B Element +object to be scrolled. +The +.B scroll +function leaves the element's +.B r +alone and translates all the constituent pieces of the list by +.IR d , +causing a different portion of +.I elem +to be visible in its rectangle. +.TP +.IB elem .translate( d ) +Like +.IB elem .scroll( d ), +but moves +.B r +too, thus translating the entire +.B Element +rather than just the visible part within a fixed rectangle. +.TP +.IB elist .show( elem ) +.B Show +does nothing if +.I elem +is not a list. +If it is a list, the list is scrolled +so +.IR elem , +which must be a member of the list, is visible through +.IR elist.r . +.PP +The geometry of elements and the membership of lists +may be modified only through +the provided functions; the Limbo-visible structure is +(intended to be) read-only. +Tags, text, and images may be modified freely +by the application, but at the moment there is no way to recalculate +the geometry if the components of an +textual or image icon change size. +.PP +.B Element +objects are never drawn explicitly, nor are they drawn after any +.B Element +operation. +They are made visible only by calls to +.BR Compound.draw , +described by +.IR prefab-compound (2). +.SH SOURCE +.B /libinterp/prefab.c +.B /libprefab/*.c +.SH SEE ALSO +.IR prefab-compound (2) +.IR prefab-environ (2) +.IR prefab-style (2) diff --git a/static/inferno/man2/prefab-environ.2 b/static/inferno/man2/prefab-environ.2 new file mode 100644 index 00000000..0f5a26e9 --- /dev/null +++ b/static/inferno/man2/prefab-environ.2 @@ -0,0 +1,54 @@ +.TH PREFAB-ENVIRON 2 +.SH NAME +prefab: Environ \- environment for ITV toolkit +to provide a graphics framework for a collection of items +.SH SYNOPSIS +.EX +include "draw.m"; +include "prefab.m"; +prefab := load Prefab Prefab->PATH; + +Environ: adt +{ + screen: ref Draw->Screen; + style: ref Style; + +}; +.EE +.SH DESCRIPTION +The +.B Environ +type collects the +.B Style +and +.B Screen +types necessary to specify how and where to draw +.B Prefab +items. +.TP 10 +.B screen +Specifies the +.B Screen +upon which items will be displayed. +.TP +.B style +Specifies the +.B Style +for items in an environment. +To draw various items in different fonts or colors, +the application should associate different +.B Environ +objects with the various. +(But see also the +.B layout +functions in +.IR prefab-element (2) +and +.IR prefab-compound (2)). +.SH SOURCE +.B /libinterp/prefab.c +.B /libprefab/*.c +.SH SEE ALSO +.IR prefab-intro (2), +.IR draw-screen (2), +.IR prefab-style (2) diff --git a/static/inferno/man2/prefab-style.2 b/static/inferno/man2/prefab-style.2 new file mode 100644 index 00000000..d3b90153 --- /dev/null +++ b/static/inferno/man2/prefab-style.2 @@ -0,0 +1,95 @@ +.TH PREFAB-STYLE 2 +.SH NAME +prefab: Style \- fonts and colours for ITV toolkit +.SH SYNOPSIS +.EX +include "draw.m"; +include "prefab.m"; +prefab := load Prefab Prefab->PATH; + +Style: adt +{ + titlefont: ref Draw->Font; + textfont: ref Draw->Font; + elemcolor: ref Draw->Image; + edgecolor: ref Draw->Image; + titlecolor: ref Draw->Image; + textcolor: ref Draw->Image; + highlightcolor: ref Draw->Image; +}; +.EE +.SH DESCRIPTION +The +.B Style +type collects the font and colour information for an application or a set of +items within an application. Except when using the +.B layout +routines (see +.IR prefab-compound (2) +and +.IR prefab-element (2)), +the members of a +.B Style +are the only way to control the appearance of +.B Prefab +items. +Note that although the +.RB `... color' +members of +.B Style +in practice often refer to a literal colour (a single replicated pixel of colour), +they can be any image. +.PP +.B Styles +are allocated by regular Limbo definitions; there is no allocation function. +All the members of a +.B Style +must be defined. +Although it will not cause errors to modify the members of a +.B Style +after it has been created and passed to a +.B Prefab +routine, the results may be unpredictable. +.PP +.TP 10 +.B edgecolor +This +.B Image +specifies how to draw the edges, or borders, of compounds. +.TP +.B elemcolor +This +.B Image +specifies how to draw the base, or background, of elements and compounds. +.TP +.B highlightcolor +This +.B Image +specifies the colour to use to highlight a selected element. +.TP +.B textcolor +This +.B Image +specifies the colour in which to draw an item's regular text. +.TP +.B textfont +This +.B Font +specifies the font in which to draw an item's regular text. +.TP +.B titlecolor +This +.B Image +specifies the colour in which to draw an item's title text. +.TP +.B titlefont +This +.B Font +specifies the font in which to draw an item's title text. +.SH SOURCE +.B /libinterp/prefab.c +.br +.B /libprefab/*.c +.SH SEE ALSO +.IR prefab-intro (2), +.IR prefab-environ (2) diff --git a/static/inferno/man2/print.2 b/static/inferno/man2/print.2 new file mode 100644 index 00000000..575ede77 --- /dev/null +++ b/static/inferno/man2/print.2 @@ -0,0 +1,341 @@ +.TH PRINT 2 +.SH NAME +Print \- printing system +.SH SYNOPSIS +.EX +include "print.m"; +print := load Print Print->PATH; + +Print: module +{ + PATH: con "/dis/lib/print/print.dis"; + CONFIG_PATH: con "/lib/print/"; + + init: fn(): int; + set_printfd: fn(fd: ref Sys->FD); + print_image: fn(p: ref Printer, display: ref Draw->Display, im: ref Draw->Image, pcwidth: int): int; + print_textfd: fn(p: ref Printer, fd: ref Sys->FD, ps: real, pr: int, wrap: int): int; + get_defprinter: fn(): ref Printer; + set_defprinter: fn(p: ref Printer); + get_size: fn(p: ref Printer): (int, real, real); # dpi, xinches, yinches + get_printers: fn(): list of ref Printer; + get_papers: fn(): list of ref Paper; + save_settings: fn(): int; + +# Printer types + +Ptype: adt { + name: string; + modes: list of ref Pmode; + driver: string; + hpmapfile: string; +}; + +# Paper sizes + +Paper: adt { + name: string; + hpcode: string; + width_inches: real; + height_inches: real; +}; + + + +# Print modes + +Pmode: adt { + name: string; + desc: string; + resx: int; + resy: int; + blackdepth: int; + coldepth: int; + blackresmult: int; +}; + +# Print options + +Popt: adt { + name: string; + mode: ref Pmode; + paper: ref Paper; + orientation: int; + duplex: int; +}; + +# Printer instance + +PORTRAIT: con 0; +LANDSCAPE: con 1; + +DUPLEX_OFF: con 0; +DUPLEX_LONG: con 1; +DUPLEX_SHORT: con 2; + +Printer: adt { + name: string; + ptype: ref Ptype; + device: string; + popt: ref Popt; + pdriver: Pdriver; +}; + +}; + + +Pdriver: module +{ + PATHPREFIX: con "/dis/lib/print/"; + DATAPREFIX: con "/lib/print/"; + + init: fn(debug: int); + sendimage: fn(p: ref Print->Printer, tfd: ref Sys->FD, display: ref Draw->Display, im: ref Draw->Image, width: int, lmargin: int): int; + sendtextfd: fn(p: ref Print->Printer, pfd, tfd: ref Sys->FD, ps: real, pr: int, wrap: int): int; + printable_pixels: fn(p: ref Print->Printer): (int, int); + +}; + + +.EE +.SH DESCRIPTION +The +.I Print +module provides an interface to one or more printers. +.SS "The Print module" +.TP +.BI init() +.B Init +must be called once to initialise the internal state of +.BR Print . +.TP +.BI set_printfd( fd ) +.B set_printfd +provides a file descriptor to be used for output. By default, output is sent to the file or device +specified in the +.B Printer +adt. +.TP +.BI print_image( p, display, im, pcwidth ) +.B print_image +prints a page containing a single image. The image is centred horizontally, and is scaled up to fill the percentage of the available +width specified by +.I pcwidth. +.TP +.BI print_textfd( p, fd, ps, pr, wrap ) +.B print_textfd +prints one or more pages of text on printer +.I p +from the file open for reading on +.I fd. +The point size is controlled by +.I p. +If the printer does not support the specified point size an alternative size will be used. +A point size of 0.0 can be used to select the printer's default size (usually 12 point). +If +.I pr is non-zero, a proportionally-spaced font will be used (if available). +If +.I wrap +is non-zero, lines will be wrapped if they overflow the page width (if this feature is supported by the printer). +.TP +.BI get_defprinter( ) +.B get_defprinter +returns the default printer (in +.I /lib/print/defprinter). +.TP +.BI set_defprinter( p ) +.B set_defprinter +sets the default printer (in +.IR /lib/print/defprinter ). +.TP +.BI get_size( p ) +.B get_size +returns the resolution in dots per inch and the total number of pixels available for printing in the x and y direction. +Before calling this function the +.I orientation +should be set if required. +.TP +.BI get_printers( ) +.B get_printers +returns a list of all available printers (in +.I /lib/print/printer.cfg). +.TP +.BI get_papers( ) +.B get_papers +returns a list of all available paper sizes (in +.I /lib/print/paper.cfg). +.SS "Data Structures" +.TP +.BI Ptype + - specifies a Printer Type, with fields: +.RS +.PD +.TP +.B name: +Name used to refer to this printer type +.TP +.B desc +Description +.TP +.B modes +List of supported print modes +.TP +.B driver: +The .dis file specification of the printer driver +.TP +.B hpmapfile: +For HP printers, the name of the color map file +.RE +.TP +.BI Paper + - specifies the dimensions of a type of paper +.RS +.PD +.TP +.B name: +Name used to refer to this paper size +.TP +.B hpcode: +For HP printers, PCL code used for this paper size +.TP +.B width_inches: +Width of paper in inches +.TP +.B height_inches: +Height of paper in inches +.RE +.TP +.BI Pmode + - specifies a print mode +.RS +.PD +.TP +.B name: +Name used to refer to this print mode +.TP +.B desc: +Description +.TP +.B resx: +X resolution in dots per inch +.TP +.B resx: +Y resolution in dots per inch +.TP +.B blackdepth: +Depth of black component in bytes +.TP +.B coldepth: +Depth of color components in bytes +.TP +.B blackresmult: +Resolution multiplier of black component (1 means same as base x resolution) +.RE +.TP +.BI Popt + - specifies a set of Print Options +.RS +.PD +.TP +.B name: +Name of a Printer to which these print options apply +.TP +.B mode: +The name of a print mode +.TP +.B paper: +The name of a paper size +.TP +.B orientation: +Paper orientation - either PORTRAIT or LANDSCAPE +.TP +.B duplex (NB DUPLEX IS NOT CURRENTLY SUPPORTED): +Duplex setting - DUPLEX_OFF or DUPLEX_SHORT or DUPLEX_LONG +.RE +.TP +.BI Printer + - specifies a printer instance +.RS +.PD +.TP +.B name: +Name used to refer to this printer +.TP +.B ptype: +The printer type +.TP +.B device: +The name of the file to be used for output (eg /dev/lpt1data) +.TP +.B popt: +The print options +.TP +.B driver: +The printer driver module handle +.RE +.SS "Configuration Files" +.PP +There are configuration files to initialize the Printer Types, Print Modes, Paper Sizes Printers and Print Modes. +They all have a similar format, with fields corresponding to the relevant adt. +Here is an extract from the +.I paper.cfg +file: +.PP +.EX +A4= + hpcode=26 + width_inches=8.3 + height_inches=11.7 +A5= + hpcode=25 + width_inches=4.15 + height_inches=5.85 +.EE +.PP +Aliases can also be defined, such as +.PP +.EX +myA4=A4 +.EE +.PP +The final configuration file, +.B defprinter, +just contains the name of the default printer. +.SH FILES +.TP +.B /lib/print/*.map +HP color maps. +.TP +.BI /lib/print/ptype.cfg +Print Type configuration file. +.TP +.BI /lib/print/pmode.cfg +Print Mode configuration file. +.TP +.BI /lib/print/paper.cfg +Paper Size configuration file. +.TP +.BI /lib/print/printer.cfg +Printer Instance configuration file. +.TP +.BI /lib/print/popts.cfg +Print options configuration file. +.TP +.BI /lib/print/defprinter +Holds the name of the default printer. Not needed if there is only one printer available. +.SH SOURCE +.TF /appl/lib/print/print.b +.TP +.B /appl/lib/print/print.b +Implementation of the +.B Print +module. +.TP +.B /appl/lib/print/*_driver.b +Printer-specific driver modules +.TP +.B /appl/lib/print/scaler.b +Scaler module +.SH SEE ALSO +.IR draw-image (2), +.IR image (6) diff --git a/static/inferno/man2/prof.2 b/static/inferno/man2/prof.2 new file mode 100644 index 00000000..a8d59966 --- /dev/null +++ b/static/inferno/man2/prof.2 @@ -0,0 +1,225 @@ +.TH PROFILE 2 +.SH NAME +profile \- profiling library +.SH SYNOPSIS +.EX +include "profile.m"; + +profile := load Profile Profile->PATH; + +Range: adt{ + l: int; + u: int; + f: int; + n: cyclic ref Range; +}; + +Funprof: adt{ + name: string; + line: int; + count: int; + counte: int; +}; + +Modprof: adt{ + name: string; + path: string; + srcpath: string; + rawtab: array of (int, int); + linetab: array of int; + rngtab: array of ref Range; + funtab: array of Funprof; + total: int; + totals: array of int; + covered: int; +}; + +Prof: adt{ + mods: list of Modprof; + total: int; + totals: array of int; +}; + +Coverage: type list of (string, int, list of (list of (int, int, byte), string)); + +MODULE: con 1; # give stats for each module +FUNCTION: con 2; # give stats for each function +LINE: con 4; # give stats for each line +VERBOSE: con 8; # full stats +FULLHDR: con 16; # file:lineno: on each line of output +FREQUENCY: con 32; # show frequency rather than coverage + +init: fn(): int; +profile: fn(m: string): int; +sample: fn(i: int): int; +start: fn(): int; +stop: fn(): int; +stats: fn() : Prof; +show: fn(p: Prof, v: int): int; +end: fn(): int; + +# coverage profiling specific functions + +cpstart: fn(pid: int): int; +cpstats: fn(rec: int, v: int): Prof; +cpfstats: fn(v: int): Prof; +cpshow: fn(p: Prof, v: int): int; + +coverage: fn(p: Prof, v: int): Coverage; + +# memory profiling specific functions + +memstart: fn(): int; +memstats: fn(): Prof; +memshow: fn(p: Prof, v: int): int; + +lasterror: fn(): string; +.EE +.SH DESCRIPTION +.B Profile +provides an interface to the kernel profile device. It contains routines to start and stop +profiling, to gather profiling statistics and to display these statistics in relation to the +relevant limbo source code. All of these routines apart from +.B lasterror +return a negative integer if an error occurred during their execution. Once this +happens, a call to +.B lasterror +will give the error message. +.PP +.B init +initializes the module and binds the kernel profile device onto the /prof directory. +It should be called before any other functions in this module. +.PP +.B profile +takes a module name or a path name as its argument and indicates a module to be profiled. +Repeated calls of this function allow a number of modules to be profiled together. +In the absence of any calls to this routine, the profile device profiles all modules +loaded by the kernel. +.PP +.B sample +sets the sampling interval of the profiling. The argument is in ms. The default value +in the profile device is 100ms. +.PP +.B start +starts profiling. +.PP +.B stop +stops profiling. +.PP +.B stats +returns profiling statistics. It is recommended that this is called once profiling has +been stopped, otherwise the results may be slightly inaccurate. It returns an adt +of type +.B Prof. +Its first field +.B mods +is a list of profile statistics for each module under profile. +Its second field +.B total +is the number of samples made altogether. The statistics for each module are +represented in the +.B Modprof +adt. Its fields are +.TP 10n +.B name +The name of the module. +.TP 10n +.B path +The path of the module's corresponding dis file. +.TP 10n +.B srcpath +The path of the module's corresponding source file. +.TP 10n +.B linetab +The line frequency count table. The number of samples made on a particular line of +the above source file is found by indexing this table. +.TP 10n +.B funtab +The function frequency count table. This array of +.B Funprof +adt gives the name, line number and number of samples made for each function in +the above source file. +.TP 10n +.B total +The total number of samples made in this module. +.PP +.B stats +will ignore modules if it fails to locate the symbol (.sbl) file for a particular dis file. +.PP +.B show +simply prints out the profile information returned by +.B stats. +For each module it will print out either the line number statistics or the function +statistics or both. The former gives the line number, percentage of time spent on +this line and the source code for each line in the source file. The latter gives the +line number, function name and percentage of time spent in this function for each +function in the source file. The amount of output can be controlled by the second +argument to +.B show. +The following should be ored together in the required combination to get the +desired effect. +.PP +.TP 10n +.B FUNCTION +Print the function table. +.TP 10n +.B LINE +Print the line number table. +.TP 10n +.B VERBOSE +Normally lines and functions are not shown if the sample frequency for them is +zero. This option prevents this. +.TP 10n +.B FULLHDR +Prints the file name as well as the line number in a form that can be selected in +.B acme +to show that particular line in a window. +.PP +.B show +will ignore modules if it fails to locate the source (.b) file for a particular dis file. +.PP +.B end +ends the profiling session. This should be called when all statistics have been +gathered in order to clean up the device profile's data structures. +.PP +In order to support coverage profiling as well the following new routines are +provided. +.PP +.B cpstart +Start coverage profiling on the process whose pid is given. +.PP +.B cpstats +Returns coverage profiling statistics from the profile device. If the first argument is +true, the raw results will be stored in a profile file whose name is .prf where + is the prefix of the corresponding dis file. +.PP +.B cpfstats +Returns coverage profiling statistics from any saved profile files. +.PP +.B cpshow +Shows the coverage profiling statistics. +.PP +.B coverage +Given the coverage profiler statistics this returns the list of modules profiled. Each module +has a name, a boolean indicating whether all instructions in the module were executed and a +list of lines. Each line consists of a list of ranges and the source code. +The list of ranges contains the character positions on the line of code corresponding to instructions that were not executed and an indicator of whether +partial execution was performed. +.PP +For the further support of memory profiling the following routines are available. +.PP +.B memstart +Start memory profiling. +.PP +.B memstats +Return the memory profile statisics. +.PP +.B memshow +Send memory profile statistics to standard output. +.PP +.SH SOURCE +.B /module/profile.m +.br +.B /appl/lib/profile.b +.SH SEE ALSO +.IR prof (3) diff --git a/static/inferno/man2/pslib.2 b/static/inferno/man2/pslib.2 new file mode 100644 index 00000000..47d04696 --- /dev/null +++ b/static/inferno/man2/pslib.2 @@ -0,0 +1,46 @@ +.TH PSLIB 2 +.SH NAME +pslib - postscript generation +.SH SYNOPSIS +.EX +include "pslib.m"; +pslib := load Pslib Pslib->PATH; + +init: fn(bufio: Bufio); +writeimage: fn(f: ref Bufio->Iobuf, + img: ref Draw->Image, dpi: int): string; +.EE +.SH DESCRIPTION +.B Pslib +must first be initialised by calling +.B Init +with a loaded Bufio module. +.B Writeimage +writes a Postscript file containing the data within +.I img +to +.IR f , +which should first have been opened for writing +by +.IR bufio . +.I Dpi +is a value specifying the pixel width of pixels in +.IR img ; +the width (and height) of +.I dpi +dots in +.I img +will be one inch when the Postscript is +rendered. +.SH SOURCE +.B /appl/lib/pslib.b +.SH SEE ALSO +.IR bufio (2), +.IR draw-image (2) +.SH BUGS +The resulting Postscript is really only suitable for +use as encapsulated Postscript, as there's no way +to set the destination paper size. +.PP +There should be many more useful functions +in this module. diff --git a/static/inferno/man2/rabin.2 b/static/inferno/man2/rabin.2 new file mode 100644 index 00000000..daceeaaf --- /dev/null +++ b/static/inferno/man2/rabin.2 @@ -0,0 +1,54 @@ +.TH RABIN 2 +.SH NAME +rabin \- rabin fingerprinting +.SH SYNOPSIS +.EX +include "rabin.m"; +rabin := load Rabin Rabin->PATH; +Rcfg, Rfile: import rabin; + +init: fn(bufio: Bufio); +open: fn(rcfg: ref Rcfg, b: ref Iobuf, min, max: int): (ref Rfile, string); + +Rcfg: adt { + mk: fn(prime, width, mod: int): (ref Rcfg, string); +}; + +Rfile: adt { + read: fn(r: self ref Rfile): (array of byte, big, string); +}; +.EE +.SH DESCRIPTION +.B Rabin +implements a data fingerprinting algorithm. A rolling checksum is calculated while reading data. Certain checksum values are taken to be data boundaries and used to split the data into chunks. +.PP +.B Rcfg +represents the parameters to the algorithm; +.B Rcfg.mk +creates a new instance. +.I Prime +should be a prime number. +.I Width +is the width of the rolling checksum window in bytes. A wider window results in more diverse boundary patterns. A window of 30 bytes should be reasonable for most uses. +.I Mod +effectively sets the mean desired chunk size. The rolling checksum is calculated modulo +.IR mod . +All three parameters influence where chunk boundaries will be found. +.PP +.B Rfile +represents a file to read chunks from. +.B Open +returns an initialised Rfile or an error string. +.I Min +and +.I max +are the minimum and maximum size in bytes of chunks that will be returned. Only the last chunk in a file can be smaller than the minimum chunk size. Note that the mean chunk size may be off due to these parameters. +Data is read from +.B Iobuf +.IR b . +.B Rfile.read +returns subsequent chunks of data and the file offset at which they were found, or an error message. After end of file, the returned chunks are zero bytes long. +.SH SOURCE +.B /appl/lib/rabin.b +.SH AUTHOR +Mechiel Lukkien, during GSoC 2007 diff --git a/static/inferno/man2/rand.2 b/static/inferno/man2/rand.2 new file mode 100644 index 00000000..a07a37fa --- /dev/null +++ b/static/inferno/man2/rand.2 @@ -0,0 +1,35 @@ +.TH RAND 2 +.SH NAME +rand \- pseudo random number generation +.SH SYNOPSIS +.EX +include "rand.m"; +rand = load Rand Rand->PATH; + +init: fn(seed: int); +rand: fn(modulus: int): int; +bigrand: fn(modulus: big): big; +.EE +.SH DESCRIPTION +.B Init +initialises the pseudo-random number generator +with +.IR seed ; +subsequent calls to +.B rand +and +.B bigrand +return a pseudo-random sequence of integers +or bigs respectively, between 0 and +.IR modulus \-1. +.I Modulus +should be a non-negative integer; +for +.BR bigrand , +it should be less than 2^53. +.SH SOURCE +.B /appl/lib/rand.b +.SH SEE ALSO +.IR security-random (2) +.SH BUGS +The quality of the algorithm currently used is questionable. diff --git a/static/inferno/man2/readdir.2 b/static/inferno/man2/readdir.2 new file mode 100644 index 00000000..643b5182 --- /dev/null +++ b/static/inferno/man2/readdir.2 @@ -0,0 +1,101 @@ +.TH READDIR 2 +.SH NAME +readdir \- read directory and sort files +.SH SYNOPSIS +.EX +include "readdir.m"; +readdir := load Readdir Readdir->PATH; + +NAME, ATIME, MTIME, SIZE, NONE: con iota; +COMPACT: con (1<<4); +DESCENDING: con (1<<5); +init: fn(path: string, sortkey: int): (array of ref Sys->Dir, int); +readall: fn(fd: ref Sys->FD, sortkey: int): (array of ref Sys->Dir, int); +sortdir: fn(a: array of ref Sys->Dir, key: int): (array of ref Sys->Dir, int); +.EE +.SH DESCRIPTION +.B Readdir +provides functions to read and sort the contents of a directory. +Each function +returns its result as a tuple that represents the +directory contents as an array of references to +.B Sys->Dir +values, one per file +(see +.IR sys-stat (2) +for a description of +.BR Dir ). +The integer element of the tuple is the number of entries +returned, or \-1 if there was an error reading the directory. +.B Readdir +differs from +.IR sys-dirread (2) +in returning the contents of the whole directory, not just a chunk of it, +and in allowing the result to be sorted. +.PP +.B Init +is most often used: it +reads the contents of the directory +.I path +and sorts the resulting array according to +.IR sortkey . +.PP +The sorting criteria for the returned array are based on +.I sortkey +as follows: +.PP +.TF MTIME +.PD +.TP +.B NAME +Sort files alphabetically by name. +.TP +.B ATIME +Sort files by access time, most recently accessed first. +.TP +.B MTIME +Sort files by modification time, most recently modified first. +.TP +.B SIZE +Sort files by size, largest file first. +.TP +.B NONE +Files are left in directory order, unsorted. +.PP +If the value +.B DESCENDING +is or'd into any of the values above, except +.BR NONE , +the order of sorting is reversed. +.PP +The sort used is stable, of particular importance in the presence of +duplicate names in a union mount. +If the value +.B COMPACT +is or'd into any of the values above, including +.BR NONE , +only the first (outermost) entry with a given name will be returned from reading +a union mount, if names are duplicated in the union. +.PP +.B Readall +reads file descriptor +.I fd +which must be open on a directory, +and returns the contents after applying +.I sortkey +as described above for +.BR init . +.PP +.B Sortdir +sorts the array +.I a +according to the given +.IR key , +as defined earlier, except that +the +.B COMPACT +option has no effect. +.SH SOURCE +.B /appl/lib/readdir.b +.SH SEE ALSO +.IR sys-dirread (2) diff --git a/static/inferno/man2/regex.2 b/static/inferno/man2/regex.2 new file mode 100644 index 00000000..cddc08b5 --- /dev/null +++ b/static/inferno/man2/regex.2 @@ -0,0 +1,108 @@ +.TH REGEX 2 +.SH NAME +regex \- regular expression recognizer module +.SH SYNOPSIS +.EX +include "regex.m"; +regex := load Regex Regex->PATH; + +compile: fn(e: string, flag: int): (Re, string); +execute: fn(x: Re; s: string): array of (int,int); +executese: fn(x: Re, s: string, se: (int, int), bol: int, eol: int): + array of (int, int); +.EE +.SH DESCRIPTION +Regular expressions are defined by +.IR regexp (6). +.B Compile +returns (as the first element of the result tuple) +a compiled form of the regular expression given in string +.IR e . +If +.I e +is not a valid regular expression, +.B compile +returns the tuple +.BI "(nil" ", diag" ) +where +.I diag +is a diagnostic string. +The effect of +.I flag +is described below. +.PP +.B Execute +matches the compiled regular expression +.I x +against string +.I s. +It returns +.B nil +on no match, otherwise it returns an array. +The element with index 0 gives the character positions +of the first character of some longest leftmost match and +the first character beyond the match. +If the compilation +.I flag +was 0, there are no more elements. +If +.I flag +was 1, there is one element for each pair of +parentheses in the regular expression, counting +left parentheses left to right starting at 1. +The +.IR n th +element gives the position of the last match to the +.IR n th +parenthesized subexpression, or (\-1,\-1) if the subexpression +does not participate in the overall match. +.PP +.B Executese +is similar to +.B execute +but allows the start and end points in the string to be specified, +as tuple +.IR se : +.BI ( "start , end" ) , +where +.I start +is the index in +.I s +of the initial character to be matched, +and +.I end +is the index in +.I s +of the first character beyond the substring to be matched +(and can be the length of +.IR s ). +If +.I bol +is non-zero, the +initial character is at the beginning of a line, +allowing an initial match by the regular expression operator +.RB ` ^ '; +if +.I eol +is non-zero, the +last character is at the end of a line, allowing a match +by the operator `\f5$\fP'. +.SH EXAMPLES +.EX +(re, nil) := regex->compile("(thick )*(chocolate |raspberry )?"+ + "(topp|fill)ing", 0); + +(re, nil) := regex->compile("[ABCb-z]+", 0); +a := regex->execute(re, s:="aAbBcCdD"); +(beg, end) := a[0]; +s[beg:end] == "AbBcCd"; + +(re, nil) := regex->compile("a*b*", 0); +a := regex->execute(re, "bbaabb"); +(beg, end) := a[0]; +(beg, end) == (0,2); +.EE +.SH SOURCE +.B /appl/lib/regex.b +.SH SEE ALSO +.IR regexp (6) diff --git a/static/inferno/man2/registries.2 b/static/inferno/man2/registries.2 new file mode 100644 index 00000000..3a71b7b8 --- /dev/null +++ b/static/inferno/man2/registries.2 @@ -0,0 +1,318 @@ +.TH REGISTRIES 2 +.SH NAME +registries \- access services registry +.SH SYNOPSIS +.EX +include "registries.m"; +registries := load Registries Registries->PATH; + +init: fn(); + +Attributes: adt { + attrs: list of (string, string); + + get: fn(a: self ref Attributes, attr: string): string; + set: fn(a: self ref Attributes, attr, val: string); + new: fn(attrs: list of (string, string)): ref Attributes; +}; + +Attached: adt { + fd: ref Sys->FD; # connection to the service + signerpkhash: string; # hash of signer's key + localuser: string; # user name here + remoteuser: string; # user name there +}; + +Service: adt { + addr: string; # dial this to connect to the service + attrs: ref Attributes; # service description + + attach: fn(s: self ref Service, user: string, + keydir: string): ref Attached; +}; + +Registered: adt { + addr: string; # address where registered + reg: ref Registry; # registry where registered + fd: ref Sys->FD; # file representing registration entry +}; + +Registry: adt { + dir: string; + + new: fn(dir: string): ref Registry; + connect: fn(svc: ref Service, user: string, keydir: string): + ref Registry; + services: fn(r: self ref Registry): + (list of ref Service, string); + find: fn(r: self ref Registry, a: list of (string, string)): + (list of ref Service, string); + register: fn(r: self ref Registry, addr: string, + attrs: ref Attributes, persist: int): + (ref Registered, string); + unregister: fn(r: self ref Registry, addr: string): string; +}; +.EE +.SH DESCRIPTION +.B Registries +helps access and update the contents of one or more +.IR registry (4) +servers. +Each registry lists services, each described by a set of attribute/value pairs. +The attributes need not identify the service uniquely. +.PP +.B Init +must be called before any other function in the module. +.PP +.B Attributes +represents a set of attribute/value pairs; +a given attribute name cannot appear more than once. +It provides the following members and operations: +.TF attrs +.PD +.TP +.B attrs +The current value of the set, as a list of +.BI ( attr , value ) +tuples. +.TP +.BI Attributes.new( attrs ) +Return a new +.B Attributes +value given +.IR attrs , +a list of +.BI ( attr , value ) +tuples. +.TP +.IB a .get( attr ) +Return the value of +.I attr +in attribute set +.IR a . +.TP +.IB a .set( attr\fB,\fP\ value ) +Set the +.I value +of +.I attr +in attribute set +.IR a . +.PP +A +.B Service +value represents a service registered in some registry. +It has the following members and operations: +.TF attrs +.PD +.TP +.B addr +A string that represents where the service can be reached: it is often a +.IR dial (2) +address string, but might be a name in the name space; the interpretation is internal to +.BR Registries . +.TP +.B attrs +The service's attributes (complete service description). +.TP +.IB svc .attach( user , keydir ) +Attempts to attach to the service +.IR svc , +and if successful returns an +.B Attached +value to represent the connection; +otherwise returns nil and sets the system error string. +.I User +is the local name of the user making the connection; if nil, the contents of +.B /dev/user +are used by default. +.I Keydir +is the name of a directory containing the +.IR user 's +certified keys for authentication; if nil, the default is +.BI /usr/ user /keyring. +If an error occurs, the return value is nil and the system error string contains a diagnostic. +Not all services demand authentication, and either or both values can be nil to +select suitable defaults. +If authentication is done, the certified data determines the remote identity, not +.IR user , +which is used only to help find a suitable set of keys and has no effect on security. +.PP +.B Attached +holds data about an active connection to a particular service. +(There can be several distinct connections to the same +.BR Service .) +It provides the following members: +.TF attrs +.PD +.TP +.B fd +A file descriptor that can be read and written to exchange data with the service. +The meaning of the data depends on the service (eg, it might be a 9P connection +or a SOAP implementation). +Typically an attribute of the service description hints at the protocol. +.TP +.B signerpkhash +A hexadecimal string giving the SHA-1 hash of the key of the signer used for +mutual authentication (ie, its thumbprint); if no authentication was needed or +did not use public key methods, it is nil. +.TP +.B localuser +If authentication was required, the name used as the local name for authentication; +otherwise nil. +.TP +.B remoteuser +If authentication was required, the remote identity for this connection; otherwise nil. +.PP +A service provider registers using one of the +.B Registry +functions listed below. +An active registration is represented by a value of type +.BR Registered : +.TF attrs +.PD +.TP +.B addr +Location of service, as registered. +.TP +.B reg +The registry that registered the service. +.TP +.B fd +File descriptor open for on the service file in +.IR registry (4) +that holds the service description. +Unless the service has a non-zero +.B persist +attribute, the service registration will be removed when this file is closed +(eg, when this +.B Registration +value is freed by the garbage collector if there is no other copy of +.BR fd ). +The file can be written as described in +.IR registry (4) +to change the some or all of current set of attributes and/or values +in the service description. +.PP +A +.B Registry +represents a connection to a single +.IR registry (4) +instance. +It provides the following members and operations: +.TF attrs +.PD +.TP +.B dir +Location of the registry in the name space. +.TP +.BI Registry.new( dir ) +Return a new +.B Registry +value for the registry located at +.I dir +in the name space; if +.I dir +is nil, the default is +.BR /mnt/registry . +.TP +.BI Registry.connect( svc\fB,\fP\ user\fB,\fP\ keydir ) +Connect to the registry at the location determined by the service description +.IR svc ; +if +.I svc +is nil, the default is to try +.IR dial (2) +to +.BR net!$registry!registry , +the symbolic name of the default registry for the current host. +(The registry might or might not be local.) +Attributes of +.I svc +determine the method used to connect to the registry and whether authentication is required. +.I User +and +.I keydir +provide user name and certificate directory (see +.IR getauthinfo (8)) +if authentication is required; either or both can be nil to select the defaults for the given authentication method. +On successful connection, +.B connect +returns a +.B Registry +value that can subsequently be used to access that registry and its services. +It returns nil on an error and sets the system error string. +.TP +.IB reg ".services()" +Returns a tuple +.BI ( svcs , err ) +where +.I svcs +is a list of +.B Service +values, one for each service registered by +.I reg +at time of asking. +If no services are registered, both values are nil. +If an error occurred, +.I svcs +is nil but +.I err +is a diagnostic string. +.TP +.IB reg .find( attrs ) +Return a tuple +.BI ( svcs , err ) +where +.I svcs +is a list of +.B Service +values, one for each service registered by +.I reg +that (at time of asking) matched all of the attribute/value pairs in +.IR attrs . +A value of +.B \&"*" +matches any value. +If no services matched, both values are nil. +If an error occurred, +.I svcs +is nil but +.I err +is a diagnostic string. +.TP +.IB reg .register( addr\fB,\fP\ attrs\fB,\fP\ persist ) +Attempts to register with +.I reg +a service named +.I addr +and the given attributes +.IR attrs , +and returns a tuple +.BI ( r , err ) +where +.I r +is a non-nil +.B Registration +value for the entry if successful, and +.I err +is a diagnostic otherwise. +.I Persist +is non-zero if the service registration should survive the +.B Registration +value (connection); normally it is zero and the registry entry vanishes when +the service frees the +.B Registration +value. +.TP +.IB reg .unregister( addr ) +Attempt to remove the registration entry at +.I reg +for the service named +.IR addr . +Only the service owner can do so. +Returns nil on success and a diagnostic otherwise. +.SH SEE ALSO +.IR attrdb (2), +.IR registry (4), +.IR svc (8) diff --git a/static/inferno/man2/rfc822.2 b/static/inferno/man2/rfc822.2 new file mode 100644 index 00000000..378d97e5 --- /dev/null +++ b/static/inferno/man2/rfc822.2 @@ -0,0 +1,327 @@ +.TH RFC822 2 +.SH NAME +rfc822 \- RFC822 mail format helpers +.SH SYNOPSIS +.EX +include "bufio.m"; +include "rfc822.m"; +rfc822 := load RFC822 RFC822->PATH; +Content, Rfclex: import rfc822; + +Word, QString: con ...; +Maxrequest: con 16*1024; # more than enough for anything sensible + +init: fn(b: Bufio); + +Rfclex: adt { + tok: int; + wordval: string; + + mk: fn(a: array of byte): ref Rfclex; + getc: fn(p: self ref Rfclex): int; + ungetc: fn(p: self ref Rfclex); + lex: fn(p: self ref Rfclex): int; + unlex: fn(p: self ref Rfclex); + skipws: fn(p: self ref Rfclex): int; + + line: fn(p: self ref Rfclex): string; +}; + +readheaders: fn(fd: ref Bufio->Iobuf, limit: int): + array of (string, array of byte); +parseparams: fn(ps: ref Rfclex): list of (string, string); +parsecontent: fn(ps: ref Rfclex, multipart: int, + head: list of ref Content): list of ref Content; +mimefields: fn(ps: ref Rfclex): + list of (string, list of (string, string)); + +quotable: fn(s: string): int; +quote: fn(s: string): string; + +sec2date: fn(secs: int): string; +date2sec: fn(s: string): int; +now: fn(): int; +time: fn(): string; + +Content: adt{ + generic: string; + specific: string; + params: list of (string, string); + + mk: fn(specific: string, generic: string, + params: list of (string, string)): ref Content; + check: fn(c: self ref Content, oks: list of ref Content): int; + text: fn(c: self ref Content): string; +}; + +suffixclass: fn(name: string): (ref Content, ref Content); +dataclass: fn(a: array of byte): (ref Content, ref Content); +.EE +.SH DESCRIPTION +.B RFC822 +provides types and functions to help read and parse RFC822 e-mail headers +(following the more streamlined rules of RFC2822, which has replaced RFC822), +including some MIME extensions. +Currently the focus is on operations that support HTTP and other W3C protocols, +rather than mail reading. +.PP +.B Init +must be called before any other operation in the module. +It must be given an instance of the +.B Bufio +module (see +.IR bufio (2)). +.PP +.B Readheaders +reads a set of RFC822 header lines from +.IR fd , +ended by an empty line. +It returns an array of tuples +.BI ( fieldname,\ value ), +one per header line. +The string +.I fieldname +is the header line's field name, in lower case. +The +.I value +gives the rest of the line, after removing any initial white space and appending any continuation lines, uninterpreted, +as an array of bytes (not a string). +.I Limit +is the maximum allowed size of the header in bytes; +usually that is +.BR Maxrequest . +.B Readheaders +returns the tuple +.B (nil,\ nil) +on end of file or if the header size limit is exceeded. +.PP +.B Rfclex +takes a header line's +.I value +and produces a sequence of tokens. +It provides the following operations: +.TP +.BI Rfclex.mk( a ) +Return a reference to a new +.B Rfclex +value that will produce tokens from the array of byte +.IR a , +which is normally the +.I value +of one of the header lines returned by +.BR readheaders . +.TP +.IB rfl .getc() +Return the next character from the input stream, in the Latin-1 (ISO 8859-1) character set. +Return a negative value +.RB ( Bufio->EOF ) +on end-of-file. +.TP +.IB rfl .ungetc() +Put back the last character read, which will be returned again by the next call to +.IR rfl .getc . +.TP +.IB rfl .lex() +Return the next token from the input stream, ignoring any leading white space. +Most tokens are single characters representing themselves. +The token value is also assigned to +.IB rfl .tok . +There are two special token values: +.BR Word , +representing an unquoted word in the RFC2822 grammar; and +.BR QString , +representing a quoted string. +In both cases +.IB rfl .wordval +will contain the text of the word or string (without quotes). +.TP +.IB rfl .unlex() +Put back the last token read; the next call to +.IB rfl .lex +will return it again. +.TP +.IB rfl .skipws() +Skip over any white space at the current position; +return the initial character of the next token (which is not consumed). +.TP +.IB rfl .line() +Return a string giving the remainder of the input line. +.PP +Several functions take an +.B Rfclex +referring to a header line's value, parse it, and return a higher-level representation of its value. +.PP +.B Parseparams +parses a sequence of +.I parameter +settings of the form (\c +.BI ; attribute = value\c +)* +and returns a corresponding list of tuples +.BI ( attribute,\ value ) . +It returns nil if no parameters are found. +.PP +.B Parsecontent +parses the values of fields such as +.B Content-Type +and +.BR Accept . +The syntax is (loosely) a sequence of comma-separated elements of the form +.IR type , +.IB type /* , +or +.IB type / subtype +followed by an optional sequence of parameters of the form (\c +. BI ; attribute = value +)*. +The +.IB type / subtype +form is allowed only if +.I multipart +is true (non-zero). +It returns a corresponding list of +.B Content +values followed by the initial list +.IR head . +.PP +.B Mimefields +parses a sequence of comma-separated elements of the form +.IR word (\c +.BI ; attr = val +)* +as used for instance in the rule +.IR transfer-coding . +It returns a corresponding list of tuples +.BI ( word,\ l ) +where +.I l +is an optional list of tuples +.BI ( attr,\ val ) . +.PP +When producing an RFC822 header line, words must be quoted when they contain certain +special characters. +.B Quotable +returns true iff the string +.I s +contains any of those characters. +.B Quote +returns the value of +.I s +with quotes added as required. +.PP +RFC822 headers have a particular syntax for dates, different from that of +.IR daytime (2). +The function +.B sec2date +returns a string in RFC822 date format representing the time +.I secs +(in seconds from the Epoch). +.B Date2sec +takes a string in RFC822 date format and returns the time in seconds from the Epoch. +.B Now +returns the current time in seconds from the epoch +(it is equivalent to +.B Daytime->now() +from +.IR daytime (2)). +.B Time +returns the current time in RFC822's date format. +.PP +The Multipurpose Internet Mail Extensions (see RFC2045-7) include syntax +for describing different types of media, content, and content encodings. +.B Content +values represent those descriptions. +Its fields and operations are as follows: +.TP +.B generic +General class of content (eg, +.BR application , +.BR image , +.BR text , +etc) +.TP +.B specific +Optional particular type within that class +(eg, +.B octet-stream +within +.BR application , +or +.B plain +within +.BR text ) +.TP +.B params +Optional list of +.BI ( attr,\ value ) +pairs giving parameters to the content type or encoding. +The particular attribute +.B q +has a floating-point +.I value +that specifies the relative quality (utility) of a particular type or encoding to a client. +.TP +.BI mk( generic,\ specific,\ params ) +Return a reference to a new +.B Content +value, initialised with the given parameters. +.TP +.IB c .check( ok ) +Return true if +.I c +is acceptable content/media/encoding according to the list of allowable forms in +.IR ok . +.I C +is always acceptable if +.I ok +is nil (ie, there are no restrictions). +Otherwise, at least one of the +.B Content +values in +.I ok +must match +.IR c . +That is, an +.I ok +value must have the same generic and specific types as +.IR c , +or specify +.RB ` * ' +in one or both positions (to match any value in +.IR c ). +Any +.I params +are ignored. +.TP +.IB c .text() +Return the RFC822 syntax for +.IR c : +.IB generic / specific ; a\f5=\fIv\fR\&... +where the component words are quoted if necessary. +.PP +Given the +.I name +of a file, +.B suffixclass +returns a tuple +.BI ( type,\ enc ) +where +.I type +gives the MIME +.B Content-Type +of +.I name +(or nil, if its type is not known), and +.I enc +gives the MIME +.B Content-Encoding +of +.I name +(or nil, if it is not encoded). +.SH FILES +.TF /lib/mimetype +.TP +/lib/mimetype +map between file suffix and MIME content types +.SH SOURCE +.B /appl/lib/rfc822.b diff --git a/static/inferno/man2/scsiio.2 b/static/inferno/man2/scsiio.2 new file mode 100644 index 00000000..0aa5e0ab --- /dev/null +++ b/static/inferno/man2/scsiio.2 @@ -0,0 +1,144 @@ +.TH SCSIIO 2 +.SH NAME +ScsiIO: Scsi \- SCSI device operations +.SH SYNOPSIS +.EX +include "scsi.m"; + +scsiio := load ScsiIO ScsiIO->PATH; +Scsi: adt { + inquire: string; + rawfd: ref Sys->FD; + nchange: int; + changetime: int; + + open: fn(devdir: string): ref Scsi; + rawcmd: fn(s: self ref Scsi, cmd: array of byte, + data: array of byte, io: int): int; + cmd: fn(s: self ref Scsi, cmd: array of byte, + data: array of byte, io: int): int; + ready: fn(s: self ref Scsi): int; +}; + +Sread, Swrite, Snone: con iota; + +scsierror: fn(asc: int, ascq: int): string; + +init: fn(verbose: int); +.EE +.SH DESCRIPTION +.B ScsiIO +provides a low-level interface to a SCSI or ATAPI device via +.IR sd (3). +.PP +.B Init +must be called before using any other operation of the module. +If +.I verbose +is non-zero +the module will produce a fair +amount of debugging output on file descriptor 2 +when SCSI commands fail. +.PP +.B Scsi.open +attempts to open the file +.IB devdir /raw +on which to send raw SCSI commands. +On success, it reads the device's inquiry +string and returns a reference to a +.B Scsi +value to represent the connection. +It provides the following operations: +.TP +.IB s .ready() +Sends the ``unit ready'' command up to three times, +returning zero once the unit responds that it is ready, +or \-1 on error. +.TP +.IB s .rawcmd( "cmd, data, io" ) +.PD 0 +.TP +.IB s .cmd( "cmd, data, io" ) +Both these functions execute a single SCSI command on the named device. +The command data is in the byte array +.IR cmd . +If +.I io +is +.BR Sread , +a successful operation will store the resulting bytes in +.IR data , +up to its length, +returning the number of bytes stored. +If +.I io +is +.BR Swrite , +the bytes in +.I data +are transmitted as the data argument to +the command, and the +number of bytes written is returned. +If +.I io +is +.BR Snone , +.I data +is ignored and may be nil. +.B Rawcmd +simply issues the command and +returns the result; +.B cmd +works a bit harder and +is the more commonly used routine. +It attempts to send the commmand; +if it is successful, +.B cmd +returns the result. +Otherwise, +.B cmd +sends a request sense command to +obtain the reason for the failure, +sends a unit ready command in +an attempt to bring the unit out of any +inconsistent states, and tries again. +It also accounts for media change. +If the second try fails, +.B cmd +returns an error. +On error, both functions return \-1 and set the system error string. +.PD +.PP +The +.B nchange +and +.B changetime +elements of +.B Scsi +the number of times a media +change has been detected, and the +first time the current media was detected (the +first time a SCSI command was issued +after it was inserted). +They are maintained by +.BR Scsi.cmd . +The initial SCSI inquiry result is kept in +.BR inquire . +.PP +.I Scsierror +returns a textual description of the SCSI status +denoted by the ASC and ASCQ sense codes. +The description is found by consulting +.BR /lib/scsicodes . +.SH FILES +.TF +.TP +.B /lib/scsicodes +List of textual messages corresponding to SCSI error codes; +consulted by +.BR scsierror . +.SH SOURCE +.B /appl/lib/scsiio.b +.SH SEE ALSO +.IR disks (2), +.IR sd (3) diff --git a/static/inferno/man2/secstore.2 b/static/inferno/man2/secstore.2 new file mode 100644 index 00000000..6bb11674 --- /dev/null +++ b/static/inferno/man2/secstore.2 @@ -0,0 +1,278 @@ +.TH SECSTORE 2 +.SH NAME +secstore \- fetch data from Plan 9's secure storage service +.SH SYNOPSIS +.EX +include "dial.m"; +include "secstore.m"; +secstore := load Secstore Secstore->PATH; + +Maxfilesize: con 128*1024; # default + +init: fn(); +privacy: fn(): int; +cansecstore: fn(addr: string, user: string): int; +mkseckey: fn(pass: string): array of byte; +dial: fn(addr: string): ref Dial->Connection; +auth: fn(conn: ref Dial->Connection, user: string, seckey: array of byte): + (string, string); +connect: fn(addr: string, user: string, seckey: array of byte): + (ref Dial->Connection, string, string); +sendpin: fn(conn: ref Dial->Connection, pin: string): int; +files: fn(conn: ref Dial->Connection): + list of (string, int, string, string, array of byte); +getfile: fn(conn: ref Dial->Connection, name: string, + maxsize: int): array of byte; +putfile: fn(conn: ref Dial->Connection, name: string, data: array of byte): int; +remove: fn(conn: ref Dial->Connection, file: string): int; +bye: fn(conn: ref Dial->Connection); + +mkfilekey: fn(pass: string): array of byte; +decrypt: fn(data: array of byte, filekey: array of byte): array of byte; +encrypt: fn(data: array of byte, filekey: array of byte): array of byte; +erasekey: fn(key: array of byte); + +lines: fn(file: array of byte): list of array of byte; +.EE +.SH DESCRIPTION +.B Secstore +establishes a secure authenticated connection with a Plan 9 +.I secstore +service (or equivalent, such as Plan 9 from User Space), +that can then be used to fetch and decrypt data files, such as the +.B factotum +file containing the initial keys for an instance of +.IR factotum (4). +The module's functions hold the file descriptors for the connection in a +.BR Dial->Connection +value, +as returned by +.IR dial (2). +The +.I addr +parameter that gives the network address of the +.I secstore +service is also as defined in +.IR dial (2). +A nil value defaults to +.BR "net!$auth!secstore" , +for translation in the usual way by +.IR cs (8). +.PP +.B Init +must be called before invoking any other operation of the module. +.PP +.B Privacy +ensures the memory of the calling process cannot be read, for instance by +.IR prog (3). +It returns zero on success and a negative value on failure. +.PP +.B Cansecstore +returns true if a connection can be made to a +.I secstore +at network address +.IR addr , +and the given +.I user +has a +.I secstore +account; +it returns false otherwise. +.PP +Users authenticate themselves to the service using a secret key and a special protocol that does not +reveal the key itself to the remote service. +The textual secret (eg, password or pass phrase) is not used directly by the following functions, +but only after transformation by +.BR mkseckey , +which hashes it into an array of bytes. +That is the +.I key +parameter to the functions. +.PP +.B Dial +dials the +.I secstore +at network address +.I addr +(as defined by +.IR dial (2)) +and returns a reference to the resulting +.BR Dial->Connection . +It returns nil on an error and sets the error string. +.PP +.B Auth +authenticates a fresh connection as belonging to a given +.I user +of the service. +The parameter +.I conn +refers to the +.B Dial->Connection +value representing the connection. +.I User +names a user registered with the service. +The parameter +.I seckey +is the result of applying +.B mkseckey +to the user's secret. +.I Auth +returns a tuple +.BI ( srvname,\ diag ). +.I Srvname +is the service name configured in the remote host (often simply +.BR secstore ). +On an error, +.I srvname +is nil, and +.I diag +is a diagnostic. +If the remote service +has been configured to demand extra authentication data, then +.I diag +contains a demand for it. +Currently the only such value is +.RB ` need pin '; +call +.B sendpin +to provide it to the connection. +If +.B sendpin +succeeds, it returns zero, and +.I conn +can be used normally; on error, +.B sendpin +returns -1 and the connection cannot be used. +.PP +.B Connect +combines the actions of +.B dial +and +.BR auth : +dials the +.I secstore +at +.IR addr , +and mutually authenticates the server and the given +.I user +using the user's secret +.I key +for that service. +It returns a tuple +.BI ( conn,\ srvname,\ diag ), +where each component is as described for +.B dial +and +.B auth +above. +On an error, +.I conn +is nil, and +.I diag +contains a diagnostic. +.PP +.B Getfile +retrieves the file +.I name +from the secure store, and returns its contents as an array of bytes. +.I Maxsize +gives the largest acceptable file size; if the value is zero or negative, +a large value is used by default. +The files stored on the service are separately encrypted under the user's secret key. +.B Mkfilekey +takes a textual secret +.I key +and returns a hash of it as an array of bytes, +suitable for use as the +.I filekey +parameter in subsequent calls to +.BR decrypt . +(The +.I filekey +is not the same value as the +.I seckey +used for initial authentication, although the secret text is the same.) +.PP +.B Putfile +writes +.I data +under file +.I name +to the secure store, overwriting a possibly existing file by that name. +.I Data +should already be encrypted. +The caller can arrange this by calling +.BR encrypt . +.B Putfile +returns 0 on success and a negative value on error. +.PP +.B Remove +deletes the given +.I file +from the server. +It returns 0 on success and a negative value on error. +.PP +.B Decrypt +decrypts the +.I data +previously fetched from a file on the secure store. +It uses the +.I filekey +produced by +.B mkfilekey +to decrypt the data in place (ie, modifying the contents of +.IR data ) +and returns a slice of +.I data +that excludes any headers and trailers in the encoding. +It returns nil if the file could not be decrypted (usually because the +.I key +value is not actually the encryption key). +.PP +.B Encrypt +does the opposite of +.BR decrypt . +Given plain +.I data +and +.I filekey +produced by +.BR mkfilekey , +it returns an encrypted version of data, including headers and trailers. +This data is suitable for writing to the secure store with +.BR putfile . +.PP +.B Erasekey +clears the bytes of +.I key +to zero; it should be called on every value produced by +.B mkfilekey +and +.BR mkseckey , +after use, +but can also be used on the data arrays returned by +.B getfile +and +.BR decrypt . +.PP +.B Lines +returns a list of slices of +.IR file , +representing each line of +.I file +in turn (including newline). +.IR Factotum (4) +for instance requires keys to be written to its control file one at a time. +.PP +.B Bye +closes the connection to the +.IR secstore . +.SH SOURCE +.B /appl/lib/secstore.b +.SH DIAGNOSTICS +As well as returning the error values described above, functions set the system error string. +.SH SEE ALSO +.IR crypt (1), +.IR secstore (1), +.IR factotum (2), +.IR factotum (4) diff --git a/static/inferno/man2/security-0intro.2 b/static/inferno/man2/security-0intro.2 new file mode 100644 index 00000000..a7d0d6e2 --- /dev/null +++ b/static/inferno/man2/security-0intro.2 @@ -0,0 +1,162 @@ +.TH SECURITY-INTRO 2 +.SH NAME +intro \- introduction to security +.SH SYNOPSIS +.EX +include "keyring.m"; +include "security.m"; +.EE +.SH DESCRIPTION +This is an introduction to some of the principals behind computer security as well as a description of how these principals are used in Inferno. More detailed descriptions of the methods and principals for ensuring secure communications on computers can be found in texts such as +.I "Applied Cryptography" +by Bruce Schneier (published 1996, J. Wiley & Sons, Inc.). +.PP +Inferno provides several levels of security: +.IP \(bu +Mutual authentication means that two users or applications that want to communicate can establish that they are who they say they are. It is the basic level of security provided by Inferno. Thus, for example, when a user connects to +an Inferno service, they can and must establish that they are a legitimate user. +.IP \(bu +Message digesting is a technique to ensure that an interloper cannot modify messages sent between users. +.IP \(bu +Encryption protects the confidentiality of messages so that only the party or parties for whom the messages are intended can decrypt and read them. +Inferno makes it easy to enforce any one or all of these levels of security. +.SS "Mutual Authentication" +Authentication requires a combination of elements: a third party that each user can trust, an algorithm or mathematical method to secure messages between users, and a protocol for exchanging messages that ensures that a third party or intruder cannot pretend to be one of the users, or use some other method to undermine their communication. +.PP +One important method for authenticating users in Inferno is the use of digital signatures. Like signing a letter a digital signature testifies to the identity of the sender. Fortunately, it is much more difficult to forge a digital signature. +.PP +Even after users are authenticated to each other, it is possible for someone `listening' to their communication to read and possibly modify their messages without the users knowing it. So authentication solves one security requirement, but not all of them. +.SS "Message Digesting" +Message digesting uses a mathematical hashing algorithm to convert a message +into an indecipherable string of fixed length (a digest). +By appending the hashed value to the message, +the authenticity of the message can be verified. +The recipient takes the message, applies the same hashing algorithm used by the sender, and compares the value to the one sent. +If the values are the same, then the message received must be the same as the one that was sent. +.PP +Inferno includes a counter in the digest to check that messages were received in the correct order and +that no messages were inserted by a third party listening in on the line. +A secret key is also included in the digest to verify the identity of the sender. +.PP +A message digest ensures that no one has tampered with a message. +It does not prevent someone from reading it. +.SS "Message Encryption" +The traditional notion of encryption is translating a message, called a plaintext in cryptography, into something unreadable, called a ciphertext. Its most obvious use is to provide confidentiality. Only someone able to decrypt the message, or translate it back to its original form, can interpret it. +.PP +A mathematical algorithm is used to both encrypt and decrypt a message. Encryption algorithms depend on keys or bit strings of a specified length for encryption and decryption. The nature of an algorithm and the size of the key determine the degree of security. +.PP +Two basic types of algorithms are used in cryptography: private key (or symmetric key) and public key algorithms. With symmetric algorithms the same key is used to encrypt and decrypt a message. This key must be a secret, known only to the users who want to communicate. It is often called a private or secret key. +.PP +A public key algorithm may use a private or secret key to encrypt a message and a public key to decrypt it, or vice-versa. The private or secret key is known only to one user. The public key, however, does not have to be kept secret and may be distributed to anyone the user wishes to communicate with. +.PP +Inferno uses a public key algorithm for digital signatures and symmetric key algorithms for encryption. +.PP +A user can encrypt a message with or without appending a message digest. +.PP +.SS "Algorithms Supplied With Inferno" +Some of the considerations when choosing algorithms are speed, degree of security, and +political restrictions on export. +The algorithms used in Inferno are well known and rigorously tested. +.TP +One-way hashing algorithms +SHA1 and MD5 are well known (in cryptographic circles) one-way hashing algorithms. MD5 is a high-speed, 128-bit hash. SHA1 is a somewhat slower but more secure 160-bit hash. +.TP +Elgamal and RSA public key signature algorithms +Elgamal is a public key system widely used for creating digital signatures. It uses a private key for signing a message and a public key for verifying it. +Inferno also supports the widely-used RSA and DSS-1 signature algorithms. +Because Inferno initially used Elgamal +keys, it does not assume that either a private or public key can be used for encryption or decryption. With constant advances in the field of cryptography, one of the design goals of Inferno is to create a security component that will be easy to enhance as new algorithms are developed. +.TP +Encryption algorithms +DES (the Data Encryption Standard) was adopted by the US government in 1976 as a standard encryption/decryption system for unclassified data in the United States. It is widely used, especially by the financial services industry. Two types of DES are offered: DES-ECB and DES-CBC. ECB or Electronic Code Book and CBC or Chain Block Coding are part of the ANSI Banking Standard. CBC is more complex and less vulnerable than ECB. Both versions of DES provide 56-bit keys. +.RS +.PP +RC4 is a symmetric or private key system that is about 10 times faster than DES. +.RE +.TP +Diffie-Hellman key exchange algorithm +Diffie-Hellman is an algorithm for creating a secret key to be shared by users for encrypting messages (sometimes called a shared secret). It requires each user to exchange certain information with the other. This information can be exchanged in the open, that is, without encryption. Each user is able to create the same, secret key from this information. However, no one else listening to their exchange would be able to create or determine the secret key. +.SS "Security Protocols" +Cryptanalysis is the study of how to break cryptographic systems. Attempts to disrupt or listen to confidential communications are called attacks. Usually the objective of an attack is to figure out the secret key, decrypt a message, or add or modify messages in some way. +.PP +There are many methods or strategies for attacking a confidential communication. One method is called a man-in-the-middle attack, where someone listening to a communication pretends to be one of the parties; another is a replay attack, where an interloper reuses messages that have already been exchanged in an attempt to discover a pattern. +.PP +In order to thwart such attacks and establish some level of trust between communicating parties, it is necessary to employ certain protocols. +Inferno uses two well-established protocols to permit keys to be exchanged +and to permit +mutual authentication of the identities of two communicating parties. +.PP +A +.I "digital signature" +is one way to guarantee that a message sent by a user is indeed from that user and not someone else. A signature does not require that a message be encrypted. It can be appended to a message in order to guarantee the identity of the sender. With Elgamal, creating a signature requires that the user have a secret or private key. Uniquely associated with the private key is another key that can be distributed publicly. This public key is used along with the private key to create a signature, and is used by others to verify the signature. +.PP +To create a signature the Elgamal algorithm is applied to a combination of the private key, the public key, and the message to be signed. The output of the algorithm is the signature. +.PP +To verify the signature the receiver applies the Elgamal algorithm to the public key and the signature. If the output is the same message that was sent with the signature, then the signature is valid. This method ensures that the user receiving a message is indeed communicating with someone who owns the public key. +.PP +The next step is to determine who the owner of the public key is, and to ensure that it belongs to the user that the receiver wants to communicate with. This is accomplished by having a third party create a +.I "certificate" +testifying to the identity of the owner of the public key. This third party is called a certifying authority (CA). If a user trusts the certifying authority, a copy of a certificate is sufficient to determine the ownership of a public key, and therefore, the signature and identity of the user sending a message. +.PP +A certificate includes a variety of information: a user's public key, the identity of the user, Diffie-Hellman parameters, an expiration time for the certificate, and the signature of the CA. The CA's public key is sent to the user along with the certificate to verify the CA's signature. +.PP +Inferno provides two different methods for obtaining a certificate depending on whether a user has access to a keyboard or not. For users with a keyboard, Inferno offers a variation of the Encrypted-Key-Exchange (EKE) protocol, +described in +.IR login (6). +The protocol depends on establishing trust between a user and a CA +using a shared secret (password). +The secret must initially be established at the CA by some secure means: +typing a password on a secure console at the CA, or transmitting the +password securely off-line, perhaps by unintercepted letter or untapped phone call. +To obtain a certificate, a user can subsequently enter +the secret on the client machine's keyboard; the protocol obtains +a certificate without revealing the secret. +.PP +For an application or user on a set-top box, which normally does not have a keyboard, entering a password would be difficult. Therefore, Inferno provides a different method to establish trust. When the set-top box is turned on, it creates a private/public key pair and dials the service provider's CA to get a certificate. The CA returns a certificate blinded or scrambled with a random bit string known only to the CA. A hashed version of the string is displayed on the user's screen. The user telephones the CA and compares what is displayed with what the CA has sent. If they match, and the user can prove his or her identity, the CA makes the random bit string known to the user, so the certificate can be unscrambled. +.SS "Authentication" +Mutual authentication in Inferno requires that two parties who want to communicate must have a certificate from the same CA. As described above, the public key of the CA is used to check the certificate sent by the other user. The certificate is used to verify that the public key belongs to the party that the user wants to communicate with. +.PP +If a user can trust the public key, then the key can be used to check the signature sent by the other party. If the public key unlocks the signature, then whoever sent the signature must have the corresponding secret key, and therefore, must be the owner of the public key. +.PP +The default protocol provided by Inferno for mutual authentication is +the station-to-station protocol described in +.IR auth (6). +It has the property that both parties can derive the +same key from exchanged and validated data but no eavesdropper +can determine the key. +.SS "Security at the Application Layer" +An application can make use of the algorithms and protocols described previously by using only a few library routines such as: +.IR security-login (2), +.IR security-auth (2) +and +.IR connect +(see +.IR security-ssl (2)). +The +.B Login +module enables an application that shares a password with a server acting as the CA to obtain a certificate. After obtaining certificates, two applications establish a mutually authenticated connection by calling +.IR auth . +.I Auth +performs the entire STS protocol. +.I Connect +connects an application to an SSL (security sockets layer) device. Each application can create message digests or encrypt messages by writing to this device. Messages are received and decrypted by reading from the SSL device. +.PP +Although Inferno provides these routines to make it easy to establish secure communications, an application is not restricted to their use. Lower-level routines used by +.I login +and +.I auth +are also available to an application. These routines enable an application to create alternate methods for establishing security, or to perform specialized functions like signing files. +.PP +Inferno also provides security routines tailored for set-top boxes. For example, a set-top-box can use +.IR register (8) +instead of +.I login +(see +.IR security-login (2)). +.I Register +obtains a certificate without requiring a user to enter a password. +.PP +There are also commands in section 8 that establish a server as a Certifying Authority or `signer'. For example, a CA needs a key and password to create a certificate. These can be created on the server using the commands +.IR changelogin (8) +and +.IR createsignerkey (8). diff --git a/static/inferno/man2/security-auth.2 b/static/inferno/man2/security-auth.2 new file mode 100644 index 00000000..045db64e --- /dev/null +++ b/static/inferno/man2/security-auth.2 @@ -0,0 +1,157 @@ +.TH SECURITY-AUTH 2 +.SH NAME +Auth: init, client, server \- authenticated connections between client and server +.SH SYNOPSIS +.EX +include "keyring.m"; +include "security.m"; +auth := load Auth Auth->PATH; + +init: fn(): string; +client: fn(alg: string, ai: ref Keyring->Authinfo, + fd: ref Sys->FD): (ref Sys->FD, string); +server: fn(algs: list of string, ai: ref Keyring->Authinfo, + fd: ref Sys->FD, setid: int): (ref Sys->FD, string); +.EE +.SH DESCRIPTION +.B Auth +establishes authenticated connections using the station to station protocol described +in +.IR auth (6). +It encapsulates the use of the primitives of +.IR keyring-auth (2) +and +.IR security-ssl (2) +for the particular case where the stations +play the rôles of `client' and `server'. +The underlying primitives must still be accessed directly in some cases, +for instance when completely symmetric authentication is needed between peers. +.PP +.B Init +must be called before using any other functions in +.BR Auth ; +it returns nil if successful, and a diagnostic message otherwise. +.PP +.B Client +authenticates a connection with the server on +.I fd +using the authentication data in +.IR ai . +If successful, and +.I alg +is neither +.B nil +nor the value +.B +"none"\c +, +.B client +will set the connection to digest or encrypt the data, +using the +digest or encryption algorithm specified in +.IR alg . +It returns the file descriptor for the connection, +and a string with information about the connection. +If an authenticated connection cannot be established, +.B client +returns a nil file descriptor and an error message. +.PP +.B Server +authenticates a client connection +.IR fd , +as described in +.IR keyring-auth (2), +using the server's authentication data in +.IR ai . +If successful, and the client requested the use of a digest or +encryption algorithm, and that algorithm is listed in +.IR algs , +.B server +enables the security layer +.IR ssl (3) +using the selected algorithm. +Furthermore, if +.I setid +is non-zero, the current user name is set to the +newly authenticated name. +.B Server +returns a file descriptor for the connection, +and a string with information about the connection. +If an authenticated connection cannot be established, +or the client's chosen algorithm is not listed, +.B server +returns a nil file descriptor and an error message. +.PP +Any string acceptable to +.IR ssl (3), +including +.B +"clear"\c +, can be given as an +.I alg +to +.BR client , +or listed in +.I algs +for +.BR server . +Furthermore, the special string +.B +"none" +tells both functions +that +.IR ssl (3) +should not be used at all on a connection. +.SH EXAMPLE +This selection from +.B /appl/cmd/mount.b +illustrates client-side use. +.PP +.EX + au := load Auth Auth->PATH; + err := au->init(); + if(err != nil){ + sys->fprint(stderr, "mount: %s\en", err); + exit; + } + fd: ref Sys->FD; + (fd, err) = au->client("none", ai, c.dfd); + if(fd == nil){ + sys->fprint(stderr, "mount: authentication failed: %s\en", err); + exit; + } + dir := hd argv; + ok = sys->mount(fd, dir, flags, ""); + if(ok < 0) + sys->fprint(stderr, "mount: %r\en"); +.EE +.PP +The following example from +.B /appl/lib/styxd.b +shows server-side use; +note that +.B readauthinfo +is called first to fetch the authentication data to pass to +.BR server . +.PP +.EX + kr := load Keyring Keyring->PATH; + ... + ai := kr->readauthinfo("/usr/"+user+"/keyring/default"); + auth->init(); + (fd, info_or_err) := auth->server(argv, ai, stdin, 1); + if(fd == nil){ + sys->fprint(stderr, "styxd: %s\en", info_or_err); + exit; + } + sys->pctl(Sys->FORKNS, nil); + if(sys->export(fd, Sys->EXPASYNC) < 0) + sys->fprint(stderr, "styxd: file export: %r\en"); +.EE +.SH SOURCE +.B /appl/lib/auth.b +.SH "SEE ALSO" +.IR keyring-auth (2), +.IR security-ssl (2), +.IR ssl (3), +.IR auth (6) diff --git a/static/inferno/man2/security-login.2 b/static/inferno/man2/security-login.2 new file mode 100644 index 00000000..43a727e7 --- /dev/null +++ b/static/inferno/man2/security-login.2 @@ -0,0 +1,93 @@ +.TH SECURITY-LOGIN 2 +.SH NAME +login \- verify credentials +.SH SYNOPSIS +.EX +include "keyring.m"; +include "security.m"; +login := load Login Login->PATH; + +login: fn(name, password, addr: string): + (string, ref Keyring->Authinfo); +.EE +.SH DESCRIPTION +The +.BR Login +module is provided for use by a client of +a certifying authority (CA) or `signer'. +The +.B login +function communicates +with a certifying authority (CA) +in order to create a +.B Keyring->Authinfo +adt +which contains a public/private key pair and a certificate +signed by the CA +(see +.IR keyring-intro (2)). +The public/private key pair is generated by +.B login +using the same parameters as those in the signer's key +(eg, algorithm and key length); +see +.IR keyring-gensk (2). +The procedure assumes a secret, i.e. a +password, has already been established +between the user and the CA. +See +.IR changelogin (8) +and +.IR keyfs (4) +for how this password is managed at the +CA. +.PP +.B Login +connects, using +.IR dial (2), +to the signer at network address +.IR addr , +which is any form accepted by +.IR cs (8), +including the special address +.BR $SIGNER , +which +.IR cs +will translate to the client's default signer (if there is one). +Normally the incoming call will be given to +.IR logind (8) +by +.IR svc (8). +.PP +.B Login +sends the user +.I name +and +.IR password , +using the protocol described in +.IR login (6), +to justify the server's +issuing a certificate, which is returned in a +.B Keyring->Authinfo +adt on success. +The certificate can if desired be stored by +.BR Keyring->writeauthinfo ; +see +.IR keyring-auth (2). +The password is used by the encrypted +key exchange protocol to establish +a secure channel between user and CA. +.SH SOURCE +.B /appl/lib/login.b +.SH SEE ALSO +.IR getauthinfo (8), +.IR keyring-auth (2), +.IR login (6), +.IR createsignerkey (8), +.IR logind (8) +.SH DIAGNOSTICS +.B Login +returns nil in the string component +on success and a diagnostic string on error (with a nil +.B Keyring->Authinfo +reference). diff --git a/static/inferno/man2/security-oldauth.2 b/static/inferno/man2/security-oldauth.2 new file mode 100644 index 00000000..e6d48e40 --- /dev/null +++ b/static/inferno/man2/security-oldauth.2 @@ -0,0 +1,246 @@ +.TH SECURITY-OLDAUTH 2 +.SH NAME +oldauth: certtostr, pktostr, sktostr, strtocert, strtopk, strtosk, sign, verify, readauthinfo, writeauthinfo \- encoding for original Inferno authentication protocol +.SH SYNOPSIS +.EX +include "ipints.m"; +include "crypt.m"; +include "oldauth.m"; +oldauth := load Oldauth Oldauth->PATH; + +Certificate: adt +{ + sa: string; + ha: string; + signer: string; + exp: int; + sig: ref Crypt->PKsig; +}; + +Authinfo: adt +{ + mysk: ref Crypt->SK; + mypk: ref Crypt->PK; + owner: string; + cert: ref Certificate; + spk: ref Crypt->PK; + alpha: ref IPints->IPint; + p: ref IPints->IPint; +}; + +sign: fn (sk: ref Crypt->SK, signer: string, exp: int, + state: ref Crypt->DigestState, ha: string): ref Certificate; +verify: fn (pk: ref Crypt->PK, cert: ref Certificate, + state: ref Crypt->DigestState): int; + +strtocert: fn(s: string): ref Certificate; +certtostr: fn(c: ref Certificate): string; +strtopk: fn(s: string): (ref Crypt->PK, string); +pktostr: fn(pk: ref Crypt->PK, owner: string): string; +strtosk: fn(s: string): (ref Crypt->SK, string); +sktostr: fn(sk: ref Crypt->SK, owner: string): string; + +readauthinfo: fn(filename: string): ref Authinfo; +writeauthinfo: fn(filename: string, info: ref Authinfo): int; +.EE +.SH DESCRIPTION +Certificates, public keys, and private keys are passed over networks and between applications using a Unicode representation. +This collection of functions provide a means to convert adts supplied by the system to and from their portable textual representation. These routines are used by +.IR login (2) +and +.IR factotum (4) +to implement the Inferno authentication protocol. +.PP +Public and private keys are represented by +.B Crypt->PK +and +.B Crypt->SK +(see +.IR keyring-intro (2)). +An authentication domain is represented by +the public key of the domain's +.IR signer , +typically in control of a +.IR keyfs (4) +and running a +.IR logind (8). +Two adts associate a public/private key pair with a user name within a specific authentication domain: +.TP +.B Authinfo +The +.B Authinfo +adt contains an individual user's private and public key, a human-readable name for the key (eg, a user name), +the signer's certificate +and the signer's public key, and the Diffie-Hellman parameters. +The signer's certificate binds the user's public key to the given key name in the signer's domain. +.TP +.B Certificate +The +.B Certificate +adt contains a digital signature with the certification of the trusted authority (CA). +The signature covers not only the user's public key, but the key's name, the signer's name and +the expiration time of the certificate. +Both the key's name and the signer's name are local to the signer's domain. +.PP +.B Init +must be called before using any other operation in the module. +.PP +.B Sign +returns a Certificate containing the digital signature using secret key +.I sk +of a digest's +.IR state , +which is the output of the hash algorithm named +.IR ha , +combined with the hash of the signer's name, and the certificate's expiration time (in seconds from the Epoch). +Valid hash algorithms are +.B sha1 +and +.BR md5 . +The expiry time should be zero if the certificate does not expire. +Typically the +.I state +is the result of hashing +.IP +.EX +array of byte pktostr(pk, username) +.EE +.PP +for a given public key +.I pk +that is associated with the given +.I username +by the signer. +.PP +.B Verify +checks that the given Certificate is the result of signing the given +.I state +using the secret (private) key corresponding to public key +.IR pk . +It returns true (non-zero) if the certificate is valid, including the signer's name, and the expiration time; +the caller must enforce the expiration time if desired. +It returns false (zero) if the certificate is invalid. +. ####### +.PP +.B Sign +creates a digital signature of a digest from the concatenation of: a message, the name of the signer, and an expiration time. +.I State +is the digest state after running +.BR sha1 , +.B md4 +or +.B md5 +over the message. +.I Ha +is a string specifying the hash algorithm to use: +.B +"sha"\fR, +.B +"sha1"\fR, +.B +"md4"\fR +or +.B +"md5"\fR. +.B Sign +extends the digest to cover the signer's name +(taken from the private key, +.IR sk ) +and the expiration time. +It returns a certificate containing the digital signature of the digest, signer name, hash algorithm and signature algorithm. +If any parameter is invalid, +.B sign +returns nil. +The signature algorithm is implied by the type of the private key. +.PP +.B Verify +uses public key +.I pk +to verify a certificate. +It returns non-zero (true) if the certificate is valid; zero (false) otherwise. +.I State +is the digest state after running the chosen digest algorithm +over the message. +. ####### +.PP +The remaining operations fetch and store those values and convert to and from text representations for use in protocols and for storage. +.PP +.B Strtocert +takes a string argument containing a varying number of newline-separated fields: +a signature algorithm, a hash algorithm, a signer's name, an expiration time, and values representing a digital signature. +It returns the corresponding +.BR Certificate . +If the string is of improper format, the result is +.IR nil . +.PP +.B Certtostr +performs the inverse operation: takes the +.B Certificate +.I c +and produces a text string suitable for communication over a network. +Note that the string will contain newline characters. +.PP +.B Strtopk +and +.B strtosk +take as their arguments a string +.I s +representing the public and private keys respectively. +.I S +contains an algorithm name, a user name and values representing the key. +Each returns a tuple +.BI ( k,\ s ), +where +.I k +is the resulting key value (ie, +.B Crypt->PK +or +.BR Crypt->SK ) +and +.I s +is a string giving the name associated with the key, typically a user name. +If the format of +.I s +is invalid, +.I k +is +.IR nil , +and +.I s +contains a diagnostic. +.PP +.B Pktostr +and +.B sktostr +perform the inverse operations: +they take a public key (secret key) +.I pk +or +.IR sk , +the +.I owner +name to be associated with that key, and produce a printable representation as a string. +The +.I owner +names the user that owns the key; in the case of a public key, +the user is expected to possess the corresponding private key. +.PP +.B Readauthinfo +reads a representation of an +.B Authinfo +from a file. +It returns nil if there is a read error or a conversion error; +it returns a reference to the +.B Authinfo +otherwise. +.PP +.B Writeauthinfo +writes a representation of +.I info +to a file. It returns -1 if the write operation fails, 0 otherwise. +.SH SOURCE +.B /appl/lib/oldauth.b +.SH SEE ALSO +.IR crypt-intro (2), +.IR ipints (2), +.IR security-intro (2) diff --git a/static/inferno/man2/security-random.2 b/static/inferno/man2/security-random.2 new file mode 100644 index 00000000..60ff3f7c --- /dev/null +++ b/static/inferno/man2/security-random.2 @@ -0,0 +1,43 @@ +.TH SECURITY-RANDOM 2 +.SH NAME +random: randomint, randombuf \- +random number generation +.SH SYNOPSIS +.EX +include "security.m"; +random := load Random Random->PATH; + +randomint: fn(which: int): int; +randombuf: fn(which, n: int): array of byte; +.EE +.SH DESCRIPTION +.B Randomint +and +.B randombuf +return random or not-quite-random data +obtained from +.B /dev/random +or +.BR /dev/notquiterandom . +.B Randomint +returns a random integer; +.B randombuf +returns an array of length +.I n +filled with random bytes. +In both functions, +.I which +may be either +.B ReallyRandom +or +.B NotQuiteRandom +to select the random data source. +.SH FILES +.B /dev/random +.br +.B /dev/notquiterandom +.SH SOURCE +.B /appl/lib/random.b +.SH SEE ALSO +.IR rand (2), +.IR cons (3) diff --git a/static/inferno/man2/security-ssl.2 b/static/inferno/man2/security-ssl.2 new file mode 100644 index 00000000..c11c7be1 --- /dev/null +++ b/static/inferno/man2/security-ssl.2 @@ -0,0 +1,65 @@ +.TH SECURITY-SSL 2 +.SH NAME +ssl: connect, secret \- interface to the Secure Sockets Layer +.SH SYNOPSIS +.EX +include "sys.m"; +include "security.m"; +ssl := load SSL SSL->PATH; + +connect: fn(fd: ref Sys->FD): (string, ref Sys->Connection); +secret: fn(c: ref Sys->Connection, secretin, + secretout: array of byte): string; +.EE +.SH DESCRIPTION +.B SSL +provides an interface to the secure sockets layer device +.IR ssl (3). +.PP +.B Connect +allocates a new +.IR ssl (3) +connection directory. +It pushes +file descriptor +.I fd +into the +.B data +file of that connection, and if successful, +returns a reference to a +.B Connection +adt describing the connection. +The +.B Connection +adt has its members set as follows: +.B dir +names the resulting connection directory; +.B cfd +is open on the connection's +control file; and +.B dfd +is open on the connection's +.B data +file, +which is read and written to exchange data on the original +.I fd +using SSL. +.PP +.B Secret +sets the secrets for each direction on Connection +.I c ; +if a secret is nil, the existing setting for that direction remains unchanged. +The string returned describes errors encountered, if any; otherwise it is nil. +.PP +.SH SOURCE +.B /appl/lib/ssl.b +.SH "SEE ALSO" +.IR security-auth (2), +.IR ssl (3) +.SH DIAGNOSTICS +.B Connect +returns a tuple containing a string and a +.B Connection +reference. +On success the string is nil, and the connection reference is not nil; +on error, the string contains a diagnostic, and the connection reference is nil. diff --git a/static/inferno/man2/selectfile.2 b/static/inferno/man2/selectfile.2 new file mode 100644 index 00000000..7b28b236 --- /dev/null +++ b/static/inferno/man2/selectfile.2 @@ -0,0 +1,57 @@ +.TH SELECTFILE 2 +.SH NAME +selectfile \- +file browser +.SH SYNOPSIS +.EX +include "selectfile.m"; +selectfile := load Selectfile Selectfile->PATH; + +init: fn(); +filename: fn(ctxt: ref Draw->Context, parent: ref Draw->Image, + title: string, + pat: list of string, + dir: string): string; +.EE +.SH DESCRIPTION +.B Selectfile +provides an interactive file browser for use by a +.IR wm (1) +application. +It allows a user to browse the +file system to select a file of a give type. +.PP +.B Init +should be called once to initialise the module's internal state. +.PP +.B Filename +makes a dialog panel for selecting a file. +It is created in the graphics context +.IR ctxt , +near the northeast corner of a given parent window, +.IR parent , +represented by that window's Image. +(If the parent window is a Tk Toplevel +.IR t , +for instance, the appropriate value is +.IB t .image \f1.)\fP +If +.I parent +is nil, the panel is centred on the screen. +.I Dir +gives the directory where the file search should begin. +Only files that match +.I pat +are displayed. +The returned string is the name of the selected file, +or the empty string if no file was selected. +.SH SOURCE +.B /appl/lib/selectfile.b +.SH SEE ALSO +.IR dialog (2), +.IR dividers (2), +.IR draw-context (2), +.IR tabs (2), +.IR tk (2), +.IR wmlib (2) + diff --git a/static/inferno/man2/sets.2 b/static/inferno/man2/sets.2 new file mode 100644 index 00000000..6c0fcaf9 --- /dev/null +++ b/static/inferno/man2/sets.2 @@ -0,0 +1,226 @@ +.TH SETS 2 +.SH NAME +Sets \- +sets of non-negative integers +.SH SYNOPSIS +.EX +include "sets.m"; +\fIOR\fP include "sets32.m"; +sets := load Sets Sets->PATH; +A, B: import Sets; + +Sets: adt { + init: fn(); + set: fn(): Set; + str2set: fn(str: string): Set; + bytes2set: fn(d: array of byte): Set; + Set: adt { + # opaque data + + X: fn(s1: self Set, op: int, s2: Set): Set; + add: fn(s: self Set, n: int): Set; + addlist: fn(s: self Set, ns: list of int): Set; + del: fn(s: self Set, n: int): Set; + invert: fn(s: self Set): Set; + + eq: fn(s1: self Set, s2: Set): int; + holds: fn(s: self Set, n: int): int; + isempty: fn(s: self Set): int; + msb: fn(s: self Set): int; + limit: fn(s: self Set): int; + + str: fn(s: self Set): string; + bytes: fn(s: self Set, n: int): array of byte; + }; +}; +.EE +.SH DESCRIPTION +.PP +The +.B Sets +module provides routines for manipulating sets +of small non-negative integers. There are currently +two implementations available: +the implementation declared in +.B sets32.m +stores sets of numbers from 0 to 31 inclusive; +the implementation in +.B sets.m +stores arbitrary sets of non-negative integers. +The description given is for the more general +implementation; behaviour of the other is undefined +if an integer higher than 31 is used. +.PP +.B Init +must be called first, to allow +.B Sets +to initialise its internal state. +.B Set +returns a new set, containing nothing. +.B Str2set +converts a string to a new set; the string +should have been created with +.BR Set.str() . +.B Bytes2set +converts an array of bytes, +.IR d , +as returned by +.BR Set.bytes() , +to a new set. +.PP +Note that all set operations are copy operations; +none change an existing set. +.TP 10 +.IB s1 .X(\fIop\fP,\ \fIs2\fP) +Returns a new set, the result of combining +.I s1 +and +.I s2 +according to boolean operator +.IR op . +.I Op +can be any bitwise boolean combination of the +two constants +.B A +and +.BR B , +defined in the module. Notionally, each +set is an infinitely long string of bits, each +bit representing a non-negative integer: +zero if the integer is present, and one if absent. +For each corresponding bit in +.I s1 +and +.IR s2 , +.B X +sets a corresponding bit in the returned set +according to the calculation +.IR "s1 op s2" . +.TP +.IB s .add(\fIn\fP) +Returns the set +.I s +with +.I n +added. +.TP +.IB s .addlist(\fIns\fP) +.B Addlist +is the same as calling +.B add +on each member of the list +.IR ns , +but somewhat more efficient. +.TP +.IB s .del(\fIn\fP) +Returns +.I s +with +.I n +removed. +.TP +.IB s .invert() +.B Invert +returns a set holding all non-negative integers +other than those already in +.IR s . +Hence +.B set().invert() +holds all non-negative integers. +.TP +.IB s1 .eq(\fIs2\fP) +Returns non-zero if +.I s1 +is identical to +.IR s2 . +.TP +.IB s .holds(\fIn\fP) +Returns non-zero if +.I s +holds +.I n +as a member. +.TP +.IB s .isempty() +Returns non-zero if +.I s +holds no members. +.TP +.IB s .msb() +Returns the "most significant bit": the membership +status of all members that have not been explicitly +set. For example, +.B set().msb() +is 0; +.B set().invert().msb() +is 1. +.TP +.IB s .limit() +If +.IB s .msb() +is zero, +.IB s .limit() +returns one more than the largest member contained in +.IR s , +otherwise it returns one more than the largest member +.I not +contained in +.IR s . +Thus +.B set().limit() +yields 0, +and +.B set().invert().del(5).limit() +yields 6. +.TP +.IB s .str() +Returns a string corresponding to +.IR s . +The format is +.IB hexdigits : msb\fR,\fP +where +.I hexdigits +give the least significant members of the set, +most significant on the left, in hexadecimal format; +.I msb +gives the padding bit that fills the rest of the set. +Note that this format is compatible between the +two implementations. +.TP +.IB s .bytes(\fIn\fP) +Returns a packed byte representaton of +.I s . +The array is held in little-endian order, +with the topmost bit of the top byte +holding the msb of the set. +The array returned will contain at least +.I n +bytes. +.SH EXAMPLES +Given two sets, +.I s1 +and +.IR s2 , +.IB s1 ".X(A&B," " s2" ) +gives their intersection; +.IB s1 ".X(A|B," " s2" ) +their union; +.IB s1 ".X(A&~B," " s2" ) +gives the set of all members of +.I s1 +that aren't in +.IR s2 ; +.IB s1 ".X(~(A|B), " s2 ) +gives the set of all integers in neither +.I s1 +nor +.IR s2 . +.PP +.EX + sys->print("%s\en", set().addlist(1::2::5::nil) + .invert().X(A|B, set().add(2)).str()); +.EE +produces the string +.RB `` dd:1 '', +corresponding to the set of all non-negative +integers except 1 and 5. diff --git a/static/inferno/man2/sexprs.2 b/static/inferno/man2/sexprs.2 new file mode 100644 index 00000000..e06b06cf --- /dev/null +++ b/static/inferno/man2/sexprs.2 @@ -0,0 +1,362 @@ +.TH SEXPRS 2 +.SH NAME +Sexprs: Sexp \- S-expressions +.SH SYNOPSIS +.EX +include "bufio.m"; +include "sexprs.m"; +sexprs := load Sexprs Sexprs->PATH; + +Sexp: adt { + pick { + String => + s: string; + hint: string; + Binary => + data: array of byte; + hint: string; + List => + l: cyclic list of ref Sexp; + } + + read: fn(b: ref Bufio->Iobuf): (ref Sexp, string); + parse: fn(s: string): (ref Sexp, string, string); + pack: fn(e: self ref Sexp): array of byte; + packedsize: fn(e: self ref Sexp): int; + text: fn(e: self ref Sexp): string; + b64text: fn(e: self ref Sexp): string; + unpack: fn(a: array of byte): (ref Sexp, array of byte, string); + + eq: fn(e: self ref Sexp, t: ref Sexp): int; + copy: fn(e: self ref Sexp): ref Sexp; + + astext: fn(e: self ref Sexp): string; + asdata: fn(e: self ref Sexp): array of byte; + + islist: fn(e: self ref Sexp): int; + els: fn(e: self ref Sexp): list of ref Sexp; + op: fn(e: self ref Sexp): string; + args: fn(e: self ref Sexp): list of ref Sexp; +}; + +init: fn(); +.EE +.SH DESCRIPTION +.B Sexprs +provides a data type and I/O for S-expressions, or `symbolic expressions', +which represent complex data as trees. +This implementation provides the variant defined by +Rivest in Internet Draft +.L draft-rivest-sexp-00.txt +(4 May 1997), +as used for instance by the Simple Public Key Infrastructure (SPKI). +It offers a basic set of operations on the internal representation, +and input and output in both canonical and advanced transport encodings. +.I Canonical +form conveys binary data directly and efficiently (unlike some +other schemes such as XML). +Canonical encoding must be used when exchanging S-expressions between computers, +and when digitally signing an expression. +.I Advanced +encoding is a more elaborate +form similar to that used by Lisp interpreters, typically using +only printable characters: representing any binary data in hexadecimal or base 64 encodings, +and quoting strings containing special characters, using escape sequences as required. +Unquoted text is called a +.IR token , +restricted by the standard to a specific alphabet: +it must start with a letter or a character from the set +.LR "-./_:*+=" , +and contain only letters, digits and characters from that set. +Upper- and lower-case letters are distinct. +See +.IR sexprs (6) +for a precise description. +.PP +.B Init +must be called before invoking any other operation of the module. +.PP +.B Sexp +is the internal representation of S-expression data, as lists and non-list values (atoms) that +in general can form a tree structure; +that is, a list may contain not just atoms but other lists as its elements, and so on recursively. +The atoms are strings of text or binary. +A well-formed S-expression might be a tree, but cannot contain cycles. +.PP +For convenience in processing, +.B Sexp +distinguishes three variants represented in a pick adt: +.TP +.B Sexp.String +An atom that can be represented as a textual string +.IR s , +including all tokens but also any other data that contains no characters outside the 7-bit ASCII +set and no control-characters other than space. +.I Hint +is the `display hint', typically nil (see the Internet Draft for its intended use). +.TP +.B Sexp.Binary +An atom that must be represented as an array of bytes +.I data +(typically because it is purely binary data or contains non-space control-characters). +.I Hint +again is the display hint. +.TP +.B Sexp.List +A list of S-expression values, +.IR l . +.PP +.B Sexp +provides the following operations for input and output, using +.IR bufio (2)'s +buffered channels (directly or indirectly): +.TP +.BI read( b ) +Read one S-expression (a list or a single token) from +.B Iobuf +.IR b . +Return a tuple of the form +.RI ( e , err ), +where +.I e +is the +.B Sexp +representing the data just read, and +.I err +is nil on success; +.I b +is positioned at the first character after the end of the S-expression. +On an error, +.I e +is nil, and +.I err +contains the diagnostic string. +On end-of-file, both +.I e +and +.I err +are nil. +.TP +.BI parse( s ) +Parse the first S-expression in string +.IR s , +and return a tuple +.RI ( e , t , err ), +where +.I e +is the +.B Sexp +representating that expression, +.I t +is the unparsed tail of string +.IR s , +and +.I err +is a diagnostic string that is nil on success. +On an error, +.I e +is nil, +.I t +is as before, and +.I err +contains the diagnostic. +.TP +.IB e .pack() +Return an array of byte that represents +.B Sexp +.I e +as an S-expression in canonical transport form. +.TP +.IB e .packedsize() +Return the size in bytes of the canonical transport representation of +.IR e . +.TP +.IB e .b64text() +Return a string that contains the base-64 representation of the canonical representation of +.IR e , +surrounded by braces. +.TP +.IB e .text() +Return a string that represents +.I e +as an S-expression in advanced (`human-readable') transport form containing no newlines. +The result of +.B text +can always be interpreted by +.B Sexp.read +and +.BR Sexp.parse , +and furthermore +.BI "Sexp.parse(" e ".text())" +yields the same tree value as +.I e +(similarly for +.BR Sexp.read ). +.TP +.BI unpack( a ) +Parse the first S-expression in array of byte +.IR a , +and return a tuple +.RI ( e , r , err ), +where +.I e +is the +.B Sexp +representing the S-expression, +.I r +is a slice of +.I a +giving the portion of +.I a +after the S-expression, and +.I err +is nil on success. +On error, +.I e +is nil, +.I r +is as before, +and +.I err +contains a diagnostic string. +The data in +.I a +is typically in canonical transport form, read from a file or network connection. +.PP +All input functions accept S-expression in either canonical or advanced form, or +any legal mixture of forms. +Expressions can cross line boundaries. +For output in canonical form, use +.BR pack ; +for output in advanced form (similar to Lisp's S-expressions), use +.BR text . +.PP +.B Sexp +provides a further small collection of operations: +.TP +.IB e1 .eq( e2 ) +Return non-zero if expression +.I e1 +and +.I e2 +are identical (isomorphic in tree structure and atoms in corresponding positions in +.I e1 +and +.I e2 +equal); +return 0 otherwise. +.TP +.IB e .copy() +Return a new +.B Sexp +value equal to +.IR e , +but sharing no storage with it. +(In other words, it returns a copy of the +whole tree +.IR e ). +.TP +.IB e .islist() +Return true iff +.I e +is a list +(ie, a value of type +.BR Sexp.List ). +.PP +Two operations provide a shorthand for fetching the value of an atom, returning nil if +applied to a list: +.TP +.IB e .astext() +Return the value of +.I e +as a +.BR string ; +binary data is assumed to be a string in +.IR utf (6) +representation. +.TP +.IB e .asdata() +Return the value of +.I e +as an array of bytes. +A +.B String +value will be converted to an array of bytes giving its +.IR utf (6). +.PP +The remaining operations extract values from lists, +and return nil if applied to an atom: +.TP +.IB e .els() +Return the elements of list +.IR e ; +return nil if +.I e +is not a list. +.TP +.IB e .op() +Return the first token of list +.IR e , +if it is a string; return nil if it is not a string or +.I e +is not a list. +The first token of a list often gives an operation name. +.TP +.IB e .args() +Return a list containing the second and subsequent values in list +.IR e ; +useful when the first value is an operation name and the rest represent parameters +(arguments) to that operation. +.SH EXAMPLES +The following S-expression is in advanced transport form: +.IP +.EX +(snicker "abc" (#03# |YWJj|)) +.EE +.PP +It represents a list of three elements: the token +.LR snicker , +the token +.LR abc , +and a sub-list with two elements (a hexadecimal constant +representing the byte +.LR 03 , +and a base-64 constant +.L YWjj +that represents the bytes +.LR abc ). +.PP +Here is another in advanced form with two sublists: +.IP +.EX +(certificate + (issuer bob) + (subject "alice b")) +.EE +.PP +Its equivalent in canonical form (as produced by +.BR pack ) +is shown below: +.IP +.EX +(11:certificate(6:issuer3:bob)(7:subject7:alice b)) +.EE +.PP +Nesting parentheses +still mark the start and end of lists, but there is no other punctuation or white space, and +the byte sequence representing each atom +is preceded by a decimal count, so that binary values appear unencoded, +and for instance the space +in the last string is not a delimiter but part of the token. +.SH SOURCE +.B /appl/lib/sexprs.b +.SH SEE ALSO +.IR bufio (2), +.IR xml (2), +.IR sexprs (6) +.PP +R. Rivest, ``S-expressions'', Network Working Group Internet Draft, +.L http://theory.lcs.mit.edu/~rivest/sexp.txt +(4 May 1997), +reproduced in +.BR /lib/sexp . diff --git a/static/inferno/man2/sh.2 b/static/inferno/man2/sh.2 new file mode 100644 index 00000000..fd5dc074 --- /dev/null +++ b/static/inferno/man2/sh.2 @@ -0,0 +1,560 @@ +.TH SH 2 +.SH NAME +Sh \- module interface to the shell +.SH SYNOPSIS +.EX +.ps -1 +.vs -1 +include "sh.m"; +sh := load Sh Sh->PATH; +Context, Listnode: import sh; + +system: fn(drawctxt: ref Draw->Context, cmd: string): string; +run: fn(drawctxt: ref Draw->Context, argv: list of string): string; +parse: fn(s: string): (ref Cmd, string); +cmd2string: fn(c: ref Cmd): string; +list2stringlist: fn(nl: list of ref Listnode): list of string; +stringlist2list: fn(sl: list of string): list of ref Listnode; + +Context: adt { + new: fn(drawcontext: ref Draw->Context): ref Context; + get: fn(c: self ref Context, + name: string): list of ref Listnode; + set: fn(c: self ref Context, + name: string, + value: list of ref Listnode); + setlocal: fn(c: self ref Context, + name: string, + value: list of ref Listnode); + envlist: fn(c: self ref Context): + list of (string, list of ref Listnode); + push, pop: fn(c: self ref Context); + copy: fn(c: self ref Context, copyenv: int): ref Context; + run: fn(c: self ref Context, + args: list of ref Listnode, + last: int): string; + addmodule: fn(c: self ref Context, name: string, + mod: Shellbuiltin); + addbuiltin: fn(c: self ref Context, name: string, + mod: Shellbuiltin); + removebuiltin: fn(c: self ref Context, name: string, + mod: Shellbuiltin); + addsbuiltin: fn(c: self ref Context, name: string, + mod: Shellbuiltin); + removesbuiltin: fn(c: self ref Context, name: string, + mod: Shellbuiltin); + fail: fn(c: self ref Context, ename, msg: string); + options: fn(c: self ref Context): int; + setoptions: fn(c: self ref Context, flags, on: int): int; +}; + +Listnode: adt { + cmd: ref Cmd; + word: string; +}; + +Cmd: adt { + # private data +}; + +Shellbuiltin: module { + initbuiltin: fn(ctxt: ref Context, sh: Sh): string; + whatis: fn(ctxt: ref Sh->Context, sh: Sh, + name: string, wtype: int): string; + runbuiltin: fn(ctxt: ref Context, sh: Sh, + cmd: list of ref Listnode, + last: int): string; + runsbuiltin: fn(ctxt: ref Context, sh: Sh, + cmd: list of ref Listnode): list of ref Listnode; + getself: fn(): Shellbuiltin; +}; + +.ps +1 +.vs +1 +.EE +.SH DESCRIPTION +.I Sh +is a command-line interpreter and a scripting language; +it also presents a module interface to allow Limbo +modules to access its functionality at a lower level. +The +.B Sh +module can be used in several different ways. +At the simplest level, it can be run as a command-line +program; for details of this, see +.IR sh (1). +The simplest access at the Limbo level is through +the +.B system +function, which given a +.I draw +.B Context +(see +.IR draw-context (2)) +and a string +executes the +.I sh +command contained in +.I s +and returns its result. It catches any exceptions raised by the command. +Almost as simple is +.BR run , +which runs +.I argv +as a command, taking the first word as the command to be +executed (it can be a braced block) and giving the rest as arguments, +catching any exceptions raised. +.PP +Although program arguments are passed to external programs +as lists of strings, at the +.B Sh +module level, an argument list is held as a +.BR "list of ref Listnode" . +A +.B Listnode +holds either a simple string, or a braced block +that has been parsed by the shell. Sometimes it can hold +both; in this case the string and the block both represent +the same thing. +.B Parse +converts from a string to a +.B Cmd +(a braced block). It returns a tuple +.RI ( cmd ,\ error ) +where +.I cmd +holds the parsed block, +and +.I error +is non-empty if an error has occurred doing so. +.B Cmd2string +performs the opposite conversion; it returns +a string that when parsed will yield the same command +block it was passed. +The utility functions +.B List2stringlist +and +.B stringlist2list +convert from and to a +.B list of ref Listnode +to or from a +.B list of string +respectively. +.PP +A +.B Context +holds all the state information needed by a currently running +.I sh +process; this adt holds current values of environment variables +and a list of currently loaded modules and builtin commands. +It is specific to the process within which it was created. +If it is desired to run +.I sh +commands in a newly spawned process, a new +.B Context +must be created, or a copy of an existing Context made (making +sure to synchronise access until the copy has been made). +.TP 10 +.BI Context.new( drawcontext ) +.B New +creates a new context. +.I Drawcontext +represents the current graphics context +within which +.I sh +commands will be run +(see +.IR draw-context (2)). +.TP +.IB ctxt .get(\fPname\fP) +.B Get +retrieves the value of environment variable +.I name +from +.IR ctxt . +It is retrieved from the innermost scope in which +a value for +.I name +has been set. +.TP +.IB ctxt .set(\fPname\fP,\ \fPvalue\fP) +.B Set +sets the value of environment variable +.I name +in +.IR ctxt +to +.IR value . +It is set in the innermost scope in which a value +for +.I name +has been set, or the outermost level if it has +not been set. +.TP +.IB ctxt .setlocal(\fPname\fP,\ \fPvalue\fP) +Similar to +.B set() +except that the value is set in the innermost scope +that has been pushed. +.TP +.IB ctxt .envlist() +.B Envlist +retrieves the list of all the environment variables +currently in scope, and their values. +It returns a list of +.RI ( name ,\ value ) +tuples, where +.I name +is the name of the variable and +.I value +is its value. +.TP +.IB ctxt .push() +.B Push +creates a new innermost environment variable scope. +.TP +.IB ctxt .pop() +.B Pop +discards the current innermost scope, losing the +values of all variables that have been defined there. +It is an error to +.B pop +a context that has not been pushed. +Care must be taken to ensure that a +.B push +is always matched by a +.BR pop. +In particular, exceptions should be caught, +the context popped, and the exception re-raised. +.TP +.IB ctxt .copy(\fPcopyenv\fP) +The shell's +.B Context +is associated with a particular process; +.B copy +returns a copy of +.I ctxt +associated with the current process. If +.I copyenv +is non-zero, the whole environment will be copied - this +should be set if the new process is to run asynchronously - i.e. +if there is a chance that there might be two processes accessing the +context in parallel. It is an error to copy a context if not +within a new process. +.TP +.IB ctxt .run(\fPargs\fP,\ \fPlast\fP) +.B Run +executes a +.I sh +command. +.I Last +should be non-zero if this is the last time +that +.B run +will be called, so +.I sh +does not have to spawn a new process in order +to hide file redirection side-effects. +.TP +.IB ctxt .addmodule(\fPname\fP,\ \fPmod\fP) +.B Addmodule +adds the +.B Shellbuiltin +module +.I mod +to its list of builtin modules. +The module will be initialised as described in +``Builtin modules'', below. +.TP +.IB ctxt .addbuiltin(\fPname\fP,\ \fPmod\fP) +.B Addbuiltin +may be called by a module that has previously +been loaded by +.B addmodule +or by the +.B load +.I sh +command to add a new builtin command +to the shell. Any subsequent invocation of +.I name +within +.I ctxt +will result in a call of +.B runbuiltin() +to +.IR mod . +Any attempt to redefine the command +.RB `` builtin '' +will be ignored. +.TP +.IB ctxt .removebuiltin(\fPname\fP,\ \fPmod\fP) +.B Removebuiltin +removes +.I name +from the list of builtin commands in +.IR ctxt . +If +.I name +had not previously been defined by +.IR mod , +or had subsequently been replaced, then +this function does nothing. +.TP +.IB ctxt .addsbuiltin(\fPname\fP,\ \fPmod\fP) +.B Addsbuiltin +may be called by a module that has previously +been loaded by +.B addmodule +or by the +.B load +.I sh +command to add a new builtin substitution operator +to the shell. +Any subsequent invocation of +.BI ${ name } +within +.I ctxt +will result in a call of +.B runsbuiltin() +to +.IR mod . +.TP +.IB ctxt .removesbuiltin(\fPname\fP,\ \fPmod\fP) +.B Removesbuiltin +removes +.I name +from the list of builtin substitution operators in +.IR ctxt . +If +.I name +had not previously been defined by +.IR mod , +or had subsequently been replaced, then +this function does nothing. +.TP +.IB ctxt .fail(\fPename\fP,\ \fPmsg\fP) +.B Fail +prints +.I msg +to the standard error if message printing +is currently enabled, and raises +the exception +.BI fail: ename\f1.\fP +.TP +.IB ctxt .options() +.B Options +returns a bitmask of the options currently enabled in +.IR ctxt . +The bits are defined by constants declared within +.BR Context . +They include: +.RS +.TP +.IB ctxt .INTERACTIVE +.I Sh +is currently being run from an interactive command-line. +.TP +.IB ctxt .VERBOSE +Message printing is currently enabled. +.TP +.IB ctxt .EXECPRINT +Commands are printed to standard error +as they are executed. +.TP +.IB ctxt .ERROREXIT +An exception will be raised when the first +simple command returns an error status. +.PP +Options are defined in the innermost scope +of +.I ctxt +and will be lost when it is +.BR pop ped. +.RE +.TP +.IB ctxt .setoptions(\fPflags\fP,\ \fPon\fP) +.B Setoptions +sets the specified +.I flags +within +.IR ctxt . +.I Flags +is a bitmask of options, as described in +.BR options , +above. If +.I on +is non-zero, the specified bits will be set; +otherwise they will be reset. +.B Setoptions +returns the previously set options bitmask. +.SS Builtin modules +.B Shellbuiltin +specifies the interface to a loadable +.I sh +builtin module. Any Limbo module +.I mod +adhering to this +interface may be loaded into the shell. +.TP 10 +.IB mod ->initbuiltin(\fPctxt\fP,\ \fPsh\fP) +.B Initbuiltin +is called when +.I sh +loads +.I mod +either via the +.B load +command, or via the +.B loadmodule() +function. +.I Ctxt +is the context within which the builtin has been +loaded, and +.I sh +is the +.B Sh +module itself. When +.B initbuiltin +is called, +.I mod +is expected to call +.IB ctxt .addbuiltin +and +.IB ctxt .addsbuiltin +to define any builtin commands and builtin substitution +operators that it wants. If an error occurs on +initialisation, +.B initbuiltin +should return a non-nil value; this will cause the load to fail. +.TP +.IB mod ->runbuiltin(\fPctxt\fP,\ \fPsh\fP,\ \fPcmd\fP,\ \fPlast\fP) +.B Runbuiltin +is invoked when +.I sh +executes a command that has previously been +defined as a builtin command by +.IR mod . +.I Ctxt +is the current execution context (which may not be +the original context passed to +.BR initbuiltin() ), +.I sh +is the running +.B Sh +module, and +.I cmd +is the command to be executed. +.I Last +is true if this is the last command to be executed +in the current process; it can be passed to +.IB ctxt .run() +as appropriate. +The name of the command can be found in +.BR "(hd cmd).word" . +.B Runbuiltin +returns its exit status; by convention this +is the exit status of the last command executed. +A non-nil exit status is usually treated as false. +By convention, if an invalid set of arguments are +passed to a builtin command, a +.B usage +exception is raised by calling +.IB ctxt .fail +with +.B "usage" +and an explanatory usage message as arguments. +.TP +.IB mod ->runsbuiltin(\fPctxt\fP,\ \fPsh\fP,\ \fPcmd\fP) +Similar to +.BR runbuiltin , +.B runsbuiltin +is called when +.I sh +encounters a builtin substitution operator +that has previously been defined by +.IR mod . +It returns the list of values that will be +substituted in place of the operator. +.TP +.IB mod ->getself() +.B Getself +should return the +.B Shellbuiltin +module handle for +.IR mod , +usually obtained by invoking +.BR "load $self" . +N.B. it is important that the value returned +by +.B getself +is the same as that passed to +.B addbuiltin +or +.BR addsbuiltin . +As the Limbo +.B load +operator returns a different value each time, +the value to be returned by +.B getself() +should be initialised once, +during the call to +.BR initbuiltin() . +.TP 10 +.IB mod ->whatis(\fPctxt\fP,\ \fPsh\fP,\ \fPname\fP,\ \fPwtype\fP) +.B Whatis +is called by the shell's +.B whatis +command to query the definition of a name. +.I Wtype +gives the type of name that is being asked about; it can be +.B BUILTIN +(conventional commands), +.BR SBUILTIN +(substitution builtins), +or +.BR OTHER +(any other names that the module defines). +Return +.B nil +to get the usual default behaviour. The +.B std +module, for example, uses this feature to +display the definition of a shell function +correctly. +.SS Exceptions +The exceptions used within +.I sh +are exactly the same as those used within Limbo, +except that all exceptions generated by the +shell are prefixed by the string +.RB `` fail: '', +and any exception caught with the prefix +.B fail: +has its first 5 characters removed before +being made available to the +.I sh +script. +This adheres to the convention defined by +other shells within Inferno that a process +that raises an exception with a +.B fail: +prefix is just returning a non-zero exit status, +and should not be left in a Broken state. +It also means that the number of bytes available +for the exception string is reduced by 5 +(to 59). Care must therefore be taken to avoid +generating an exception with a name that is too long; +.I sh +takes the pragmatic approach of truncating any +exception string that is too long. +.SH FILES +.TP 10 +.BI /prog/ pid /wait +The file used by the shell to wait for dead child processes. +.SH SOURCE +.B /appl/cmd/sh/sh.y +.SH SEE ALSO +.IR sh (1), +.IR sh-std (1), +.IR sh-expr (1), +.IR sh-tk (1) diff --git a/static/inferno/man2/smtp.2 b/static/inferno/man2/smtp.2 new file mode 100644 index 00000000..f94cdf3d --- /dev/null +++ b/static/inferno/man2/smtp.2 @@ -0,0 +1,56 @@ +.TH SMTP 2 +.SH NAME +smtp \- Simple Mail Transfer Protocol +.SH SYNOPSIS +.EX +include "smtp.m"; +smtp := load Smtp Smtp->PATH; + +open: fn(server: string): (int, string); +sendmail: fn(fromwhom: string, + towhom: list of string, + cc: list of string, + msg: list of string): (int, string); +close: fn(): (int, string); +.EE +.SH DESCRIPTION +.B Smtp +provides an interface to the mail transport protocol SMTP. +.PP +.B Open +opens a connection to the given SMTP +.IR server . +If +.I server +is nil, +.B open +uses the +default mail server +.BR $smtp , +which must be defined in +.IR ndb (6). +It returns -1 and an error message if the connection fails. +.PP +.B Sendmail +sends mail to the SMTP server for subsequent delivery. +The first argument names the sender, the list +.I towhom +names the +recipients, +.I cc +is a list of CC's, +and +.I msg +has the text of the message. The latter +may simply be a list of one item containing the whole message, a list of lines of the message +or any intermediate format. It returns -1 and an error message on failure. +.PP +.B Close +closes the connection to the SMTP server. +.SH SOURCE +.B /appl/lib/smtp.b +.SH SEE ALSO +.IR sendmail (1), +.IR acme (1) +.SH BUGS +Too much copying of strings is done, especially with large messages. diff --git a/static/inferno/man2/spki-verifier.2 b/static/inferno/man2/spki-verifier.2 new file mode 100644 index 00000000..880eaf42 --- /dev/null +++ b/static/inferno/man2/spki-verifier.2 @@ -0,0 +1,91 @@ +.TH SPKI-VERIFIER 2 +.SH NAME +verifier: verify \- verify sequence of SPKI elements +.SH SYNOPSIS +.EX +include "bufio.m"; +include "sexprs.m"; +include "spki.m"; + +sexprs := load Sexprs Sexprs->PATH; +Sexp: import sexprs; + +spki := load SPKI SPKI->PATH; +Name, Seqel, Subject, Valid: import spki; + +verifier := load Verifier Verifier->PATH; + +Speaksfor: adt { + subject: ref Subject; + name: ref Name; + regarding: ref Sexp; + valid: ref Valid; +}; + +init: fn(); +verify: fn(seq: list of ref Seqel): + (ref Speaksfor, list of ref Seqel, string); +.EE +.SH DESCRIPTION +.B Verifier +checks SPKI proof sequences. +This initial implementation provides a single basic operation. +Further work will allow (via channels and processes) verification +to detect and refresh expired credentials, to support `pull' authentication, +for instance. +.PP +.B Init +must be called before any other operation of the module. +.PP +A +.B Speaksfor +value represents a claim that a given +.I subject +entity +speaks for (on behalf of) a given +.I name +regarding a set of statements, with validity optionally limited to a given period. +That is, when during the agreed time, +.I subject +makes a statement that is in the agreed set, it is treated +as if +.I name +had said it directly. +The set of statements is defined by a SPKI `tag' expression, represented as +an S-expression. +In particular, the +.B "(tag (*))" +means that +.I subject +speaks for +.I name +about everything. +A claim can be taken as true if supported by acceptable evidence, +for instance a collection of signed certificates. +.PP +.B Verify +does the actual verification of a sequence +.I seq +of SPKI certificates, signatures and operations +that makes and supports a claim that an entity speaks for another. +It returns a tuple +.BI ( claim,\ badel,\ err ) . +On success, +.I claim +refers to a +.B Speaksfor +value that summaries the statement verified by the sequence. +On failure, +.I claim +is nil, +.I badel +is a list of sequence elements headed by the first element of +.I seq +that failed verification, and +.I err +is the reason it failed. +.SH SOURCE +.B /appl/lib/spki/verifier.b +.SH SEE ALSO +.IR sexprs (2), +.IR spki (2) diff --git a/static/inferno/man2/spki.2 b/static/inferno/man2/spki.2 new file mode 100644 index 00000000..0c7fb884 --- /dev/null +++ b/static/inferno/man2/spki.2 @@ -0,0 +1,601 @@ +.TH SPKI 2 +.SH NAME +SPKI: Cert, Hash, Key, Name, Seqel, Signature, Subject, Toplev, Valid \- simple public key infrastructure +.SH SYNOPSIS +.EX +include "bufio.m"; +include "sexprs.m"; +include "keyring.m"; +include "spki.m"; +spki := load SPKI SPKI->PATH; + +Hash: adt { + alg: string; + hash: array of byte; + + sexp: fn(h: self ref Hash): ref Sexprs->Sexp; + text: fn(h: self ref Hash): string; + eq: fn(h1: self ref Hash, h2: ref Hash): int; +}; + +Key: adt { + pk: ref Keyring->PK; # either pk/sk or hash might be nil + sk: ref Keyring->SK; + nbits: int; + halg: string; # basic signature hash algorithm + henc: string; # pre-signature encoding + hash: list of ref Hash; + + hashed: fn(k: self ref Key, alg: string): array of byte; + hashexp: fn(k: self ref Key, alg: string): ref Hash; + public: fn(k: self ref Key): ref Key; + sigalg: fn(k: self ref Key): string; + text: fn(k: self ref Key): string; + sexp: fn(k: self ref Key): ref Sexprs->Sexp; + eq: fn(k1: self ref Key, k2: ref Key): int; +}; + +Name: adt { + principal: ref Key; + names: list of string; + + isprincipal: fn(n: self ref Name): int; + local: fn(n: self ref Name): ref Name; + islocal: fn(n: self ref Name): int; + isprefix: fn(n1: self ref Name, n2: ref Name): int; + text: fn(n: self ref Name): string; + sexp: fn(n: self ref Name): ref Sexprs->Sexp; + eq: fn(n1: self ref Name, n2: ref Name): int; +}; + +Cert: adt { + e: ref Sexprs->Sexp; # S-expression, if originally parsed + issuer: ref Name; + subject: ref Subject; + valid: ref Valid; + pick { + A or KH or O => # auth, keyholder or object + delegate: int; + tag: ref Sexprs->Sexp; + N => # name + } + + text: fn(c: self ref Cert): string; + sexp: fn(c: self ref Cert): ref Sexprs->Sexp; +}; + +Subject: adt { + pick{ + P => + key: ref Key; + N => + name: ref Name; + O => + hash: ref Hash; + KH => + holder: ref Name; + T => + k, n: int; + subs: cyclic list of ref Subject; + } + + eq: fn(s1: self ref Subject, s2: ref Subject): int; + principal: fn(s: self ref Subject): ref Key; + text: fn(s: self ref Subject): string; + sexp: fn(s: self ref Subject): ref Sexprs->Sexp; +}; + +Signature: adt { + hash: ref Hash; + key: ref Key; # find by hash if necessary + sa: string; # alg[-[encoding-]hash + sig: list of (string, array of byte); + + algs: fn(s: self ref Signature): (string, string, string); + sexp: fn(s: self ref Signature): ref Sexprs->Sexp; + text: fn(s: self ref Signature): string; +}; + +Seqel: adt { + pick{ + C => + c: ref Cert; + K => + k: ref Key; + O => + op: string; + args: list of ref Sexprs->Sexp; + S => + sig: ref Signature; + E => + exp: ref Sexprs->Sexp; + } + + sexp: fn(se: self ref Seqeql): ref Sexprs->Sexp; + text: fn(se: self ref Seqel): string; +}; + +Valid: adt { + notbefore: string; + notafter: string; + + intersect: fn(a: self Valid, b: Valid): (int, Valid); + text: fn(a: self Valid): string; + sexp: fn(a: self Valid): ref Sexprs->Sexp; +}; + +Toplev: adt { + pick { + C => + v: ref Cert; + Sig => + v: ref Signature; + K => + v: ref Key; + Seq => + v: list of ref Seqel; + } + + sexp: fn(t: self ref Toplev): ref Sexprs->Sexp; + text: fn(t: self ref Toplev): string; +}; + +init: fn(); +date2epoch: fn(s: string): int; # YYYY-MM-DD_HH:MM:SS +epoch2date: fn(t: int): string; +time2secs: fn(s: string): int; # HH:MM:SS +secs2time: fn(t: int): string; +sigalgs: fn(spec: string): (string, string, string); + +# parse structures +parse: fn(s: ref Sexprs->Sexp): (ref Toplev, string); +parseseq: fn(s: ref Sexprs->Sexp): list of ref Seqel; +parsecert: fn(s: ref Sexprs->Sexp): ref Cert; +parsesig: fn(s: ref Sexprs->Sexp): ref Signature; +parsename: fn(s: ref Sexprs->Sexp): ref Name; +parsekey: fn(s: ref Sexprs->Sexp): ref Key; +parsehash: fn(s: ref Sexprs->Sexp): ref Hash; +parsecompound: fn(s: ref Sexprs->Sexp): ref Name; +parsevalid: fn(s: ref Sexprs->Sexp): ref Valid; + +# signature checking +checksig: fn(c: ref Cert, sig: ref Signature): string; +sig2icert: fn(sig: ref Signature, signer: string, exp: int): ref Keyring->Certificate; + +# signature making +signcert: fn(c: ref Cert, sigalg: string, key: ref Key): + (ref Signature, string); +signbytes: fn(a: array of byte, sigalg: string, key: ref Key): + (ref Signature, string); + +# tags +maketag: fn(e: ref Sexprs->Sexp): ref Sexprs->Sexp; +tagintersect: fn(t1: ref Sexprs->Sexp, t2: ref Sexprs->Sexp): + ref Sexprs->Sexp; +tagimplies: fn(t1: ref Sexprs->Sexp, t2: ref Sexprs->Sexp): int; + +# hash canonical s-expression +hashbytes: fn(a: array of byte, alg: string): array of byte; +hashexp: fn(e: ref Sexprs->Sexp, alg: string): array of byte; +.EE +.SH DESCRIPTION +.B SPKI +provides data types and operations to help build implementations of the Simple Public Key Infrastructure +(SPKI). +It provides types for hash values, public and private keys, local and extended names, +principals and compound principles, certificates, validity periods, signatures, and proof sequences. +It also provides operations on authorisation tags. +Externally, SPKI represents all such things as particular forms of S-expression, internally represented using +.B Sexprs->Sexp +from +.IR sexprs (2). +.PP +.B Init +must be called before invoking any other operation of the module. +.PP +Most types defined here provide several common operations: +.TP +.IB t1 .eq( t2 ) +Return true iff values +.I t1 +and +.I t2 +are equal. +.TP +.IB t .sexp() +Return an S-expression +.I s +representing the value of +.IR t . +Subsequently, the +.B Sexp +operation +.IR s .pack() +will yield an array of bytes containing the value +.I t +in SPKI's canonical S-expression form. +.TP +.IB t .text() +Return a textual representation of the value +.IR t ; +it is often just the textual representation of the corresponding S-expression. +.PP +.B Hash +is the internal representation of hash values, +containing an +algorithm name +.B alg +and then the +.B hash +itself as an array of bytes. +SPKI entities such as the public key of a principal or a signed certificate are often represented by the hash +values of their corresponding S-expressions, where the hash value is later used as a compact way to refer +to the original entity. +For example, a +.B +is either a +.B +or a +.BR , +where the latter refers to some instance of the former. +Current hash algorithms are \f5"sha1"\fP and \f5"md5\fP. +A +.B Hash +value can be created from an S-expression representing a SPKI +.B +element +by +.BR parsehash . +It returns nil if the S-expression was ill-formed. +.PP +.B Key +represents public and private keys, +with an optional associated pre-hash encoding +.BR henc , +the hash algorithm +.B halg +to be used when signing, and an optional list of +currently known hashes of the public component of the key itself. +SPKI identifies principals and public keys, thus each instance of a principal +in the other data structures is represented by a +.B Key +giving the corresponding public key, or its hash, or both. +Currently the public and private (secret) key values have types defined by +.IR keyring-intro (2). +A +.B Key +value can be created from an S-expression representing a SPKI +.B +element by +.BR parsekey . +It returns nil if the S-expression was ill-formed. +For a given +.B Key +.IR k : +.TP +.IB k .ishash() +Returns true if +.I k +is just a hash of a key, with no public or private components. +.TP +.IB k .public() +Returns the public key for +.IR k , +which is simply +.I k +if it is already a public key, but if it +is a private key, then a new key is returned +that has only public components. +.B Public +returns a nil value if +.I k +is just a hash of a key value. +.TP +.IB k .sigalg() +Returns the SPKI signature algorithm for the key. +.TP +.IB k .hashed( alg ) +Return an array of bytes giving the hash of the Key +.I k +using algorithm +.IR alg . +It returns nil if +.IB k .ishash() +is true, and +.I k +has no associated hash value for +.IR alg . +.TP +.IB k .hashexp( alg ) +Similar to +.BR hashed , +but returns a +.B Hash +value instead of the raw data. +.PP +.B Name +represents both local and extended names, and simple principals consisting of just a key. +The field +.B principal +gives the key that defines the name space in which the list of names is interpreted. +For simple principles, the list of +.B names +is nil. +A local name has exactly one name in the list. +Two parsing functions convert to +.B Name +from S-expressions. +.B Parsename +parses a SPKI +.B +element: +.BI (name +[ +.I principal +] +.I name +\&... +.BR ), +where +.I principal is either a +.B +or a +.B +element. +.B Parsecompound +accepts either a +.B +element as above, or a +.B +or its +.BR . +Both functions return nil if the S-expression is ill-formed. +.PP +.B Subject +represents the subjects of SPKI name and authorisation certificates. +It has several variants in a +.B pick +adt, with suitable fields for each variant: +.TP +.B Subject.P +A simple principal: a +.BR key . +.TP +.B Subject.N +A group of principals or a delayed binding to a principal: a +.BR name . +.TP +.B Subject.O +The +.B hash +of an object. +.TP +.B Subject.KH +A keyholder certificate, that says something about a key's +.B holder +(represented by a +.BR Name ). +.TP +.B Subject.T +A +.I threshold +subject, used only in authorisation certificates. +The +.I n +subsidiary subjects are listed in +.BR subs ; +of those, at least +.I k +must sign a request for it to be authorised. +.TP +.B Subject +provides the common operations +.BR eq , +.B sexp +and +.BR text , +and a further operation: +.TP +.IB s .principal() +If +.I s +is a simple principal or a name, return the +.B Key +defining the principal, if known; return nil otherwise. +.PP +Subjects appear only as a subsidiary item in certificates and do not have a parsing function. +.PP +.B Cert +represents SPKI certificates. +There are four variants, represented by a pick adt: +.B Cert.A +(authorisation); +.B Cert.KH +(keyholder); +.B Cert.O +(object); and +.B Cert.N +(name). +The following fields and operations are common to all variants: +.TP +.B e +original S-expression (if created by +.BR parsecert ) +to allow hashes and signatures to be computed on the SPKI canonical form of the certificate +.TP +.B issuer +The simple principal (represented as a name) that issued an authorisation, keyholder or object certificate, +or the +.B +of a name certificate (allowing both local and extended names not just simple principals). +.TP +.B subject +The +.B Subject +of the certificate. +Name certificates may not have threshold subjects. +.TP +.B valid +Optional restriction on the certificate's validity +(see +.B Valid +for details). +.PP +Name certificates have only the fields above; the others have several more fields: +.TP +.B +delegate +True iff the certificate carries delegation rights (ie, +.B (propagate) +in the S-expression representation). +.TP +.B tag +An S-expression that expresses the authority granted by the certificate. +The expression +.B "(tag (*))" +means `all permissions'. +.PP +A +.B Cert +value +can be created from an S-expression representing a SPKI +.B +element by +.BR parsecert . +It returns nil if the expression was ill-formed. +.PP +SPKI +.B tag +expressions, represented internally by +.B Sexprs->Sexpr +trees, form a partial order, +including the pattern operations +.BR (*) , +.BR "(* set " ... +.BR ), +.BR "(* prefix " ... +.BR ), +.BR "(* range " ... +.BR ), +and as an extension, +.BR "(* suffix " ... +.BR ). +Given two tag expressions +.I t1 +and +.IR t2 , +.I tagintersect +returns a tag expression representing +.I t1 +∩ +.IR t2 ; +.B tagimplies +returns true iff tag +.I t1 +implies tag +.IR t2 : +(\fIt1\fP∩\fIt2\fP)=\fIt2\fP. +Both functions work correctly when +.I t1 +and +.I t2 +contain any legal combination of pattern operations. +.PP +SPKI structures are converted to a canonical form of S-expression to be hashed or signed +(with or without hashing). +.B Hashbytes +returns an array of bytes containing the result of hashing array +.I a +using hash algorithm +.I alg +(either +.B sha1 +or +.BR md5 ). +.B Hashexp +returns an array of bytes containing the hash of the canonical form of expression +.I e +using hash algorithm +.IR alg . +.PP +.B Signature +associates +.B hash , +the +.B Hash +value of something (eg, a public key) with the result of applying a public-key signature +algorithm +.B sa + to that hash value. +The name of the algorithm has the form +.IP +.EX +\fIalg\fP\fR[-[\fP\fIencoding\fP\fR-]\fP\fIhash\fP\fR]\fP +.EE +with up to three subcomponents (separated by dashes), +where +.I alg +is a public key algorithm such as +.B rsa +or +.BR dsa , +.I encoding +is an optional encoding to apply to the value before signing, +and +.I hash +is the secure hash algorithm to apply to the encoded value before signing. +For example, the usual algorithms for RSA keys are +.B rsa-pkcs1-sha1 +and +.BR rsa-pkcs1-md5 . +.PP +Signatures are created by +.BR signcert , +which signs a SPKI certificate represented by +.I c +with +.I key +using the signature algorithm +.IR sigalg . +.I Key +must contain both public and secret (private) components. +Any other binary data can be signed by +.BR signbytes , +which signs arbitrary data represented by an array of bytes +.IR a . +Both functions apply any encoding and hash algorithms mentioned by +.IR sigalg , +and return a tuple +.BI ( sig , err ). +On success, +.I sig +refers to a +.B Signature +value that can be converted to an S-expression using +.IB sig .sexp() +and +.I err +is nil. +On an error, +.I sig +is nil and +.I err +contains a diagnostic. +.PP +A certificate's signature can be checked by +.BR checksig . +If +.I sig +is a valid signature for certificate +.IR c , +.B checksig +returns nil. +If the signature is invalid, +.I checksig +returns a diagnostic. +.SH SOURCE +.B /appl/lib/spki.b +.SH SEE ALSO +.IR bufio (2), +.IR sexprs (2), +.IR spki-verifier (2) diff --git a/static/inferno/man2/spree-allow.2 b/static/inferno/man2/spree-allow.2 new file mode 100644 index 00000000..6265c9ca --- /dev/null +++ b/static/inferno/man2/spree-allow.2 @@ -0,0 +1,129 @@ +.TH SPREE-ALLOW 2 +.SH NAME +Allow \- filter client actions +.SH SYNOPSIS +.EX +include "spree.m"; +include "spree/allow.m"; +Clique, Member, Object: import Spree; +allow := load Allow Allow->PATH; + +init: fn(m: Spree, c: ref Clique); +add: fn(tag: int, member: ref Member, pattern: string); +del: fn(tag: int, member: ref Member); +action: fn(member: ref Member, cmd: string): (string, int, list of string); +archive: fn(archiveobj: ref Object); +unarchive: fn(archiveobj: ref Object); +.EE +.SH DESCRIPTION +A +.IR spree (2) +client can send arbitrary actions to a running +engine. The +.B Allow +module enables an engine to filter clients' +actions, permitting only actions matching +certain provided patterns to get through. +.PP +An action is conventionally formatted as +a sequence of space-separated words. +A +.I pattern +is a string consisting of a sequence of such words. +For a pattern to match a client's action, each word in the pattern +must match each word in the action. +Most pattern words are not special: they must match +literally. The exceptions are: +.TP +.B * +An asterisk matches any single word. +.TP +.B "&" +An ampersand matches any set of words. +Any words in the pattern after this are ignored. +.TP +.B %d +Matches a decimal integer. +.TP +.B %p +Matches a valid player id (decimal integer). +.TP +.B %o +Matches any valid object id (decimal integer). +The corresponding word in the list returned by +.B action +will be changed to the local object id from +the member's external representation. +.PP +.B Init +must be called first with the spree module, +.IR m , +and the current clique, +.IR c , +to initialise the module. +.PP +.B Add +adds the new +.I pattern +to the list of allowed actions; +.I tag +is an integer tag that the caller can later use to identify the +action, and +I member +is the clique member that is allowed to perform the action +(if nil, then any member will be allowed to perform the action). +.B Del +deletes patterns tagged with +.I tag +from the list of allowed actions. +If +.I member +is non-nil, then only patterns specific to +that member will be deleted. +.PP +.B Action +matches +.IR +.IR cmd , +an action performed by +.IR member , +against the list of all the allowed patterns. +It returns a tuple, say +.RI ( err\fR,\ \fItag\fR,\ \fItoks\fR). +If +.I cmd +does not match any pattern, then +.I err +will be non-nil and holds a string describing the +nature of the failure. +If a match is made, then +.I tag +holds the matched pattern's tag, as passed to +.BR add , +and +.I toks +holds the list of words in the action, with +object ids matched by +.B %o +changed to their local representation using +.IB member .obj\fR. +.PP +.B Archive +stores all the +.I allow +module's internal state as attributes on +.I archiveobj +(for card game engines, this is usually the +object returned from +.B cardlib->archive +(see +.IR cardlib (2))). +.B Unarchive +reverses this, restoring the module's internal state from +.IR archiveobj . +.SH SOURCE +/appl/spree/lib/allow.b +.SH "SEE ALSO" +.IR spree (2) , +.IR spree-cardlib (2) , +.IR spree-objstore (2) diff --git a/static/inferno/man2/spree-cardlib.2 b/static/inferno/man2/spree-cardlib.2 new file mode 100644 index 00000000..0629fa06 --- /dev/null +++ b/static/inferno/man2/spree-cardlib.2 @@ -0,0 +1,628 @@ +.TH SPREE-CARDLIB 2 +.SH NAME +Cardlib \- support for card games in Spree engines. +.SH SYNOPSIS +.EX +include "sys.m"; +include "draw.m"; +include "sets.m"; +include "spree.m"; +include "spree/cardlib.m"; + +Object: import Spree; +cardlib := load Cardlib Cardlib->PATH; + +init: fn(spree: Spree, clique: ref Clique, archived: int); +selection: fn(stack: ref Object): ref Selection; + +makecard: fn(deck: ref Object, c: Card, rear: string): ref Object; +makecards: fn(stack: ref Object, r: Range, rear: string); +getcard: fn(card: ref Object): Card; +getcards: fn(stack: ref Object): array of Card; +setface: fn(card: ref Object, face: int); +flip: fn(stack: ref Object); +shuffle: fn(stack: ref Object); +discard: fn(stk, pile: ref Object, facedown: int); +deal: fn(stack: ref Object, n: int, stacks: array of ref Object, first: int); +sort: fn(stack: ref Object, rank, suitrank: array of int); + +addlayframe: fn(name: string, parent: string, layout: ref Layout, packopts: int, facing: int); +addlayobj: fn(name: string, parent: string, layout: ref Layout, packopts: int, obj: ref Object); +dellay: fn(name: string, layout: ref Layout); +maketable: fn(parent: string); + +newstack: fn(parent: ref Object, p: ref Member, spec: Stackspec): ref Object; + +archive: fn(): ref Object; +unarchive: fn(): ref Object; +setarchivename: fn(o: ref Object, name: string); +archivearray: fn(a: array of ref Object, name: string); +getarchiveobj: fn(name: string): ref Object; +getarchivearray: fn(name: string): array of ref Object; + +nmembers: fn(): int; + +Layout: adt { + lay: ref Object; +}; + +Stackspec: adt { + style: string; + maxcards: int; + title: string; + conceal: int; +}; + +Card: adt { + suit: int; + number: int; + face: int; +}; + +# a member currently playing +Cmember: adt { + ord: int; + id: int; + p: ref Member; + obj: ref Object; + layout: ref Layout; + sel: ref Selection; + + join: fn(p: ref Member, ord: int): ref Cmember; + index: fn(ord: int): ref Cmember; + find: fn(p: ref Member): ref Cmember; + findid: fn(id: int): ref Cmember; + leave: fn(cp: self ref Cmember); + next: fn(cp: self ref Cmember, fwd: int): ref Cmember; + prev: fn(cp: self ref Cmember, fwd: int): ref Cmember; +}; + +Selection: adt { + stack: ref Object; + ownerid: int; + isrange: int; + r: Range; + idxl: list of int; + + set: fn(sel: self ref Selection, stack: ref Object); + setexcl: fn(sel: self ref Selection, stack: ref Object): int; + setrange: fn(sel: self ref Selection, r: Range); + addindex: fn(sel: self ref Selection, i: int); + delindex: fn(sel: self ref Selection, i: int); + isempty: fn(sel: self ref Selection): int; + isset: fn(sel: self ref Selection, index: int): int; + transfer: fn(sel: self ref Selection, dst: ref Object, index: int); + owner: fn(sel: self ref Selection): ref Cmember; +}; +.EE +.SH DESCRIPTION +.I Cardlib +provides facilities to help in the implementation +of +.IR spree (2) +engines that implement the +.IR spree-cards (4) +interface. +Facilities include the layout of clients' cards, +support for card selections, and card manipulation. +.PP +.B Init +must be called first to initialise the +.I Cardlib +module, giving it the +.I spree +module and the current clique. +.I Archived +should be non-zero if the card game is being restored from +an archive. +.SS Cards +The value of a playing card is represented by the +.B Card +adt, having attributes +.IR suit , +.IR number , +and +.IR face . +.I Suit +ranges from 0 to 3 inclusive, representing clubs, +diamonds, hearts and spades respectively; +.I number +ranges from 0 to 12 inclusive for the standard cards, +with ace low and king high - a joker is represented +by a number greater than 12; +.I face +represents whether the card is face up or face down +(0 is face down). +.PP +A actual card is represented by an object in the object hierarchy +of type +.BR card , +with attributes +.BR number , +.BR face , +and +.BR rear . +.B Number +is the suit/number of the card (held as +.IR n , +where +.IR n %4 +gives the suit, and +.IR n /4 +the rank). +.B Face +is as held in the +.B Card +adt, and +.B rear +is a number that represents the pattern on the +back of the card (numbered from 0 upwards). +Conventionally the +.B number +attribute is made invisible to all players when +the +.B face +attribute is set to zero. +.PP +.B Makecard +creates a new card of value +.IR c , +placing the new card object at the end of +.IR deck , +and setting the +.B rear +attribute to +.I rear +if it is non-nil. +.B Makecards +makes a set of cards, all face down, +in all four suits, having numbers within the range +.IR r . +.PP +.B Getcard +gets the value representation of a card from object +.IR card ; +.B getcards +gets the values of all the card objects within +.IR stack . +.B Setface +sets of +.I card +to +.IR face ; +the visibility of the card's number is changed appropriately. +.PP +The following few routines operate on stacks of cards: objects +which contain only card objects: +.B flip +reverses a stack of cards, reversing their faces as it does so; +.B shuffle +shuffles a stack of cards, and +.B sort +sorts a stack of cards by suit and then number, according to +.I rank +and +.IR suitrank . +.I Rank +and +.I suitrank +are permutations mapping number/suit to sort precedence (0 low). +If either of these are nil, then a default ranking scheme is chosen +(two low, ace high for number). +.B Discard +moves all the cards in +.I stk +onto +.IR pile , +turning them face down if +.I facedown +is non-zero. +.B Deal +deals out all the cards in +.I stack +as evenly as possible amongst +.IR stacks , +dealing to +.IB stacks [ first ] +first. +.SS Members and card selection +.I Cardlib +keeps a record of the current players of the game; +a player is represented by a +.B Cmember +adt; the players are assumed to sit in a circle, +numbered from 0 updwards; +.B nmembers +gives the number of current players. +Each player has a unique integer id, and an +associated selection +and card layout. +.TP 10 +.IB m .join(\fIm\fP,\ \fIord\fP) +Join a new player to the game; +.I m +is the clique member that's joining, and +.I ord +is where to slot the player in the circle of existing players. +If +.I ord +is -1, the player will be added at the end. +.TP +.IB m .leave() +Remove +.I m +from the list of current players. +.TP +.IB m .index(\fIord\fP) +.B Index +returns the +.IR ord th +player around the table. +.TP +.IB m .find(\fIm\fP) +Find the +.B Cmember +corresponding to member +.IR m . +.TP +.IB m .findid(\fIid\fP) +Find the +.B Cmember +with identifier +.IR id , +and return it. +.IB m .next(\fIfwd\fP) +.B Next +returns the next player around the table +from +.IR m . +If +.I fwd +is non-zero, it counts upwards, otherwise it counts +downwards. +.IB m .prev(\fIfwd\fP) +.B Prev +is the opposite of +.BR next . +If +.I fwd +is non-zero, it counts downwards, otherwise it +counts upwards. +.SS Selection +Each +.B Cmember +.I m +has an associated selection, +.IB m .sel\fR, +which consists of a selection +of some cards from a single stack of cards. +A selection can consist of either a range of cards within +a stack, or an arbitrary set of cards within a stack. +A stack can only be the subject of one selection; the +member that has that selection is known as its +owner. +.TP 10 +.IB sel .set(\fIstack\fP) +.B Set +makes +.I stack +(an object containing only card objects) +the subject of +.IR sel 's +selection. If +.I stack +is nil, the selection is cleared. +.TP +.IB sel .setexcl(\fIstack\fP) +.B Setexcl +is the same as +.B set +except that it will fail if the stack is owned +by a different player. It returns 0 if it fails, +otherwise non-zero. +.TP +.IB sel .setrange(\fIr\fP) +.B Setrange +sets the selection +.I sel +to be a range of cards within its stack. +If the selection had been of distinct cards (set using +.BR addindex ), +it is first cleared. +.TP +.IB sel .addindex(\fIi\fP) +.B Addindex +adds the card at index +.I i +to the selection +.IR sel . +If a range had previously been selected, +it is first cleared. +.TP +.IB sel .delindex(\fIi\fP) +.B Delindex +deletes the card at index +.I i +from the selection. +If the selection was previously a range, +this is a no-op. +.TP +.IB sel .isempty() +.B Isempty +returns non-zero if +.I sel +holds an empty selection. +.TP +.IB sel .isset(\fIindex\fP) +.B Isset +returns non-zero if the card at index +.I index +is contained within the selection +.IR sel . +.TP +.IB sel .transfer(\fIdst\fP,\ \fIindex\fP) +.B Transfer +moves all the cards in the selection +.I sel +to just before +.I index +within the stack +.IR dst . +.IB sel .owner() +.B Owner +returns the +.B Cmember +that owns the selection +.IR sel . +.SS Layout +Creating a stack of cards does not specify how it is to be displayed +to members of the game. Each member has a +.I layout +object which defines which objects are to be displayed to +that member, and how they are to be laid out. +Any member must see at most one layout object +(it is conventional to make a layout object visible only to +its owner). +Objects are laid out using tk-like +.IR pack (9) +semantics: +.I frames +pack together display objects or other frames. +A display object can lay out anything the card client knows +how to display (see ``Display Objects'', below). +.PP +.B Addlayframe +adds a new frame named +.I name +within +a layout frame named +.IR parent , +specific to +.IR layout . +If +.I parent +is nil, the frame is added to the root of the hierarchy. +If +.I layout +is nil, a frame is added to +.I parent +for each member that has a layout frame of that name. +.I Packopts +specifies how the frame is to be packed within its parent: +it is a bitmask, specifying the side of the cavity against which it is to be packed, +the place it is to be anchored should the cavity be bigger than its requested size, +how to fill its cavity, whether to expand its requested size to fill extra available space. +See +.IR pack (9) +for details of the packing algorithm. +The packing direction is specified with one of +.BR dTOP , +.BR dLEFT , +.BR dBOTTOM +or +.BR dRIGHT . +The anchor direction is specified with one of +.BR aCENTRE , +.BR aUPPERCENTRE , +.BR aUPPERLEFT , +.BR aCENTRELEFT , +.BR aLOWERLEFT , +.BR aLOWERCENTRE , +.BR aLOWERRIGHT , +.BR aCENTRERIGHT , +or +.BR aUPPERRIGHT . +.B FILLX +and +.B FILLY +specify how to fill unused space in its cavity +(not mutually exclusive), +and +.B EXPAND +requests unused space. +.I Facing +influences direction that objects are packed in +underneath the frame. It should be one of the +pack direction constants specified above +(e.g. +.BR dTOP ). +For instance, if +.B dRIGHT +is specified, then all objects packed underneath +have their attributes modified 90° clockwise, +as if the player in question was sitting on the +left of the table, looking right. +This feature means that it is possible +to set up a ``table'' in which layout objects +can be added to all players at the same time, but +which nonetheless looks different to each player +around the table. +.PP +.B Maketable +creates such a ``table'' for between 0 and 4 players. +It creates a frame for each player, named +.BI p n\fR, +where +.I n +is the ordinal number of the player around the table; +and an inner space, named +.BR public . +The +.I parent +argument to +.B maketable +gives the frame within which the table is to be created. +.PP +.B Addlayobj +adds a new display object +.I obj to the layout hierarchy. +.IR Name , +.IR parent , +.IR layout , +and +.I packopts +are the same as for +.B addlayframe +except that +if it is a stack object, then +.I packopts also specifies the +orientation of the stack, with one of the constants +.BR oRIGHT , +.BR oUP , +.BR oLEFT , +or +.BR oDOWN , +giving the direction in which cards are laid out +within the stack. +.PP +.B Dellay +deletes the object named +.I name +from the layout hierarchy. If +.I layout +is nil, it is deleted from all layouts, +otherwise from +.I layout +only. +.SS "Display Objects" +Currently, two kinds of objects can be displayed: stacks and +widgets. A stack has object type +.BR stack , +and contains only cards objects. +Attributes on the stack object define its appearance: +.B maxcards +gives the default size of the stack; +.B style +gives the style of stack layout, +currently one of +.B pile +(all the cards piled directly on top of one another), +or +.B display +(cards are spread out in the direction specified by +the orientation given in the packing options, see +Layout, above); +.B title +gives a title to display with the stack. +.PP +.B Newstack +creates a new stack according to the specifications in +.IR spec , +where +.I spec +is an adt that holds +.BR style , +.BR maxcards , +and +.BR title , +as described above. +If +.IB spec .conceal +is non-zero, the contents of the new stack will be made +invisible to all (except +.IR owner , +if +.I owner +is non-nil). +.PP +Widgets are created by making an object +of type +.RB `` widget +.IR type '', +where +.I type +is one of +.BR button , +.BR entry , or +.BR menu . +The +.B text +attribute controls the text that is displayed in the widget; +.B command +gives the text that will be sent to the engine +when the widget is activated, +and +.B width +specifies the widget of the widget, in multiples of the width +of the ``0'' character. +.PP +Entries can be made in a menu widget +by creating new objects of type +.B menuentry +inside a menu object. The +.B text +and +.B command +attributes have the usual meaning here. +.SS Archival +Engines that use +.I cardlib +should not use +.IR spree-objstore (2) +to archive their objects: +.I cardlib +provides an interface to do this, +and also knows how to archive and unarchive its own +internal state. +.PP +.B Archive +commits all the internal state of +.I cardlib +to the object hierarchy, prior to archival. +It returns an ``archive'' object +that can be used as a convenient place to put +attributes that need archiving but are not associated with +any particular object. +.B Setarchivename +associates +.I name +with the object +.I o +such that it can be retrieved when +unarchiving by calling +.B getarchiveobj +with the same name. +Similarly +.B Archivearray +associates a name with each object in the array +.I a +such that the array can be retrieved when unarchiving +by calling +.B getarchivearray +with the same name. +.I Name +should not end in a decimal digit. +.B Unarchive +unarchives +.IR cardlib 's +internal state. It returns the same archive object +that was returned by +.BR archive . +.SH SOURCE +.B /appl/spree/lib/cardlib.b +.SH "SEE ALSO" +.IR spree (2), +.IR spree-allow (2), +.IR spree-objstore (2) +.SH BUGS +This interface is not complete and is liable to change. diff --git a/static/inferno/man2/spree-gather.2 b/static/inferno/man2/spree-gather.2 new file mode 100644 index 00000000..b4b4aeab --- /dev/null +++ b/static/inferno/man2/spree-gather.2 @@ -0,0 +1,105 @@ +.TH SPREE-GATHER 2 +.SH NAME +Gatherengine \- module interface for pre-assembled groups. +.SH SYNOPSIS +.EX +implement Gatherengine; + +include "spree.m"; +include "spree/gather.m"; +Clique, Member: import Spree; + +init: fn(m: Spree, c: ref Clique, argv: list of string, archived: int): string; +clienttype: fn(): string; +maxmembers: fn(): int; +propose: fn(members: array of string): string; +start: fn(members: array of ref Member, archived: int); +command: fn(member: ref Member, c: string): string; +archive: fn(); +readfile: fn(f: int, offset: big, n: int): array of byte; +.EE +.SH DESCRIPTION +When implementing a +.IR spree (2) +engine, it is common to have the requirement that a certain number +of members are grouped together before actually starting the +engine. +.I Spree +provides no support for this directly; instead the +.I gather +module acts as an intermediate layer: engines that wish +this functionality should implement the +.B Gatherengine +interface. +The +.I gather +module also provides facilities for the automatic suspension and resumption +of players, clique archival, and members that watch but do not +participate. +.PP +.B Init +is called first, with +.IR m , +the +.I spree +module, and +.IR c , +the new clique. +.I Argv +gives a list of arguments to the engine (the first being +the name of the engine itself); +.I archived +is non-zero if the engine has been restored from an archive. +If +.B init +returns a non-nil string, it is taken to describe an error, and the +engine will be discarded. +.B Maxmembers +should return the maximum number of members that the engine +can accept; +.B clienttype +should return the kind of client that is expected by the +engine (e.g. +.B cards +for a card game engine). +.PP +.B Propose +proposes that a clique consisting of +.I members +(the names of the proposed members) +be started. It returns an error string: if this is non-nil, then +the clique is not started, otherwise the proposed +members are accepted into the clique, +and +.B start +is called, where +.I members +is the array of actual members (corresponding to the +members passed to +.BR propose ), +and +.I archived +is non-zero if the clique is being restored from an archive +(same as passed to +.BR init ). +.PP +Once a clique has been successfully started, +.B command +is called when a member sends a command to the +engine; +.I member +has sent the command, +and +.I c +is the command itself. +.B Command +should return a non-nil error string if the command fails. +.PP +When a clique is being archived, +.B archive +will be called to request the engine to store all its +internal state into the object hierarchy (this is the moment, +for instance, to call +.BR cardlib->archive ). +.SH "SEE ALSO" +.IR spree (2) , diff --git a/static/inferno/man2/spree-objstore.2 b/static/inferno/man2/spree-objstore.2 new file mode 100644 index 00000000..6a6be763 --- /dev/null +++ b/static/inferno/man2/spree-objstore.2 @@ -0,0 +1,63 @@ +.TH SPREE-OBJSTORE 2 +.SH NAME +Objstore \- support for object archiving in Spree engines. +.SH SYNOPSIS +.EX +include "spree.m"; +include "spree/objstore.m"; +Object: import Spree; +objstore := load Objstore Objstore->PATH; + +init: fn(m: Spree, c: ref Clique); +setname: fn(o: ref Object, name: string); +unarchive: fn(); +get: fn(name: string): ref Object; +.EE +.SH DESCRIPTION +The +.IR spree (2) +module provides an +.B Archives +module to allow storage of an engine's object hierarchy to a persistent +medium. This does not store the state internal to an engine that +is not reflected in the object hierarchy, e.g. global variables. +In particular, if an engine holds a variable referring to an object, +it is not able to reset that variable correctly when the archive is +later restored. +The +.B Objstore +module provides some support for the naming of objects +before archival, and for their retrieval by name, in order to enable this. +.PP +.B Init +must be called first with the spree module, +.IR m , +and the current clique, +.IR c . +When a module is archiving itself, it should name each object +that it wishes to retrieve, using +.BR setname . +It is permissible for a single object to be given multiple +names: the object will later be retrievable under any of its given +names. +.PP +When restoring from an archive, a module should call +.BR unarchive , +which scans through the object hierarchy looking +for named objects and storing their names. +After this, +.BI get( name ) +will return the object, +.IR o , +that was named +.IR name +by a previous +.BI setname( o ,\ name )\fR, +or +.B nil +if there was none such. +.PP +The names for an object are stored in the attribute ``§'', +which is cleared when +.B unarchive +is called. diff --git a/static/inferno/man2/spree.2 b/static/inferno/man2/spree.2 new file mode 100644 index 00000000..1cd517b3 --- /dev/null +++ b/static/inferno/man2/spree.2 @@ -0,0 +1,604 @@ +.TH SPREE 2 +.SH NAME +Spree \- distributed interactive sessions. +.SH SYNOPSIS +.EX +.ps -1 +.vs -1 +include "sys.m"; +include "draw.m"; +include "sets.m"; +include "spree.m"; +spree := load Spree Spree->PATH; +Range, Object, Clique, Member: import spree; +Set: import Sets; +Archive: import Archives; + +Range: adt { + start: int; + end: int; +}; + +Object: adt { + transfer: fn(o: self ref Object, + r: Range, dst: ref Object, i: int); + setvisibility: fn(o: self ref Object, + visibility: Set); + setattrvisibility: fn(o: self ref Object, + name: string, visibility: Set); + setattr: fn(o: self ref Object, + name: string, val: string, vis: Set); + getattr: fn(o: self ref Object, name: string): string; + delete: fn(o: self ref Object); + deletechildren: fn(o: self ref Object, r: Range); + + id: int; + parentid: int; + children: array of ref Object; + objtype: string; + visibility: Set; + # ...private data +}; + +Clique: adt { + new: fn(parent: self ref Clique, archive: ref Archive, + owner: string): (int, string, string); + newobject: fn(clique: self ref Clique, parent: ref Object, + visibility: int, objtype: string): ref Object; + action: fn(clique: self ref Clique, cmd: string, + objs: list of int, rest: string, whoto: int); + member: fn(clique: self ref Clique, id: int): ref Member; + start: fn(clique: self ref Clique); + breakmsg: fn(clique: self ref Clique, whoto: Sets->Set); + members: fn(clique: self ref Clique): list of ref Member; + owner: fn(clique: self ref Clique): string; + hangup: fn(clique: self ref Clique); + notify: fn(clique: self ref Clique, cliqueid: int, msg: string); + + objects: array of ref Object; + cliqueid: int; + # ...private data +}; + +Member: adt { + obj: fn(m: self ref Member, id: int): ref Object; + del: fn(m: self ref Member, suspend: int); + + id: int; + name: string; + # ...private data +}; + +Engine: module { + init: fn(srvmod: Spree, clique: ref Clique, argv: list of string): string; + command: fn(member: ref Member, e: string): string; + join: fn(member: ref Member , e: string, suspended: int): string; + leave: fn(member: ref Member): int; + notify: fn(fromid: int, s: string); + readfile: fn(f: int, offset: big, count: int): array of byte; +}; + +Archives: module { + Archive: adt { + argv: list of string; # how to restart the session. + members: array of string; # members involved. + info: list of (string, string); # any other information. + objects: array of ref Object; + }; + init: fn(mod: Spree); + write: fn(clique: ref Clique, info: list of (string, string), file: string, members: Set): string; + read: fn(file: string): (ref Archive, string); + readheader: fn(file: string): (ref Archive, string); +}; + +rand: fn(n: int): int; +.ps +1 +.vs +1 +.EE +.SH DESCRIPTION +.I Spree +provides a general server interface that allows sets of distributed +clients, +.IR cliques , +to interact in a controlled manner, with the +interaction mediated +by Limbo modules, known as +.IR engines . +Each engine decides on the rules +of its particular clique; the engine interface is described +at the end of this manual page, under +``Module Interface''. +.PP +This manual page describes the +interface as presented to an engine +once it has been loaded by +.IR spree . +A loaded instance of an engine is responsible for a particular +.IR clique , +in which one or more +.I members +participate. Messages sent by members +are interpreted by the engine, which +responds by making changes to the hierarchical +.I object +database held by the clique. +Behind the scenes +.I spree +distributes updates to this database to members +of the clique as appropriate (see +.IR spree (4) +for details). +.SS "Objects and visibility" +Objects hold a clique's visible state. An object +has a unique integer +.IR id , +which is an index into the array +.IB clique .objects\fR;\fP +it also holds a set of attribute-value pairs, a type, and +zero or more child objects. Together, all the objects +in the clique form a hierarchical tree, rooted at +the +.IR "root object" +(id 0), which always exists. +Each attribute and each object also has an associated +.IR "visibility set" , +the set of member that sees updates to the attributes or the children +of the object. Each member has a unique id; +in a visibility set (see +.IR sets (2)), +a member is ``visible'' if the set contains the member's id. +.PP +Note that the visibility set of an object does not alter the visibility +of that object's attributes, but only that of its children (and of +their children: in general an object is visible to a member if the +intersection of all its ancestors' visibility sets contains that +member). +.PP +Objects can be transferred inside the hierarchy from one parent to +another. If an object is moved to a parent whose visibility conceals it +from a member, then it will appear to that member to have been deleted; +if it is later made visible, then it will be recreated for that +member. +A clique engine can almost always ignore this technicality, +except for one thing: the identifier used by a particular member to +identify an object is not necessarily the same as that used by the clique +engine. Thus when an engine receives an object id in a member's +message, it should convert it using the +.IB member .obj() +function. +.SS \fBClique\fP +The +.B Clique +type holds all the objects in a clique. It allows the +creation of new objects, and provides a way of communicating +with members directly. +All data members of a +.B Clique +should be treated as read-only. +.TP 10 +.IB clique .objects +This array holds the objects in the clique. An object with +identifier +.I id +is found at +.IB clique .objects[ id ]\fR.\fP +.TP +.IB clique .new(\fIarchive\fP, \fIowner\fP) +.B New +creates a new clique. +.I Archive +is an archive of the game to be created; +.IB archive \.argv +should be non-nil; its first element should name +the engine to be loaded (as a path relative to the +engine module directory, and without the +.B .dis +extension). +.TP +.IB clique .newobject(\fIparent\fP,\ \fIvisibility\fP,\ \fIobjtype\fP) +.B Newobject +creates a new object at the end +of +.IR parent 's +children; +If +.I parent +is nil, the new object is created under the root object. +The new object has visibility +.IR visibility , +and type +.IR objtype . +An object's type cannot be changed once +it has been created. +.TP +.IB clique .action(\fIcmd\fP,\ \fIobjs\fP,\ \fIrest\fP,\ \fIwhoto\fP) +.B Action +sends a message to some members without affecting +the object hierarchy. It can be used to send transient +events that have no meaning when stored statically +(for example, network latency probes). +The message is sent to the set of members given by +.IR whoto . +.I Objs +is assumed to be a list of object ids, which are +converted appropriately for each member +receiving the message; the final +message is a string built by concatenating +.IR cmd , +the list of object ids, and +.IR rest , +separated by spaces. +.TP +.IB clique .breakmsg(\fIwhoto\fP) +Messages are usually sent to clients in an uninterrupted +stream (as documented in +.IR spree (4)), +with a single read returning a potentially large +set of messages. +.B Breakmsg +arranges that subsequent messages received by the members specified in +.I whoto +will see not be merged with messages sent prior to the call to +.BR breakmsg . +This is used to enable a new client module to be started +without needing to pass it data received in the previous read. +.TP +.IB clique .member(\fIid\fP) +.B Member +yields the member corresponding to identifier +.IR id , +or +.B nil +if there is none. +.TP +.IB clique .membernamed(\fIname\fP) +.B Membernamed +searches for a member of +.I clique +named +.I name +and returns it if it finds it, otherwise +.BR nil . +.TP +.IB clique .members() +.B Members +returns a list of all the members of +.IR clique , +including those that have been suspended. +.TP +.IB clique .owner() +.B Owner +returns the name of the owner of the clique; +i.e. the user that created it. +.TP +.IB clique .hangup() +.B Hangup +terminates a game and informs all the +players of that fact. +.TP +.IB clique .notify(\fIcliqueid\fP, \fImsg\fP) +.B Notify +sends an informational message to another clique. +The clique so referenced must be either the parent +or a child of +.IR clique . +The message is not sent synchronously, +and care should be taken not to send messages that +can cause an indefinite recursion. +.SS Member +The +.B Member +type represents a member of a clique. +.TP 10 +.IB member .id +The member's identifier is an integer unique across all current members +of the clique, +but ids of members that have left the clique will +be reused. +There may not be two members of the same name in the +same clique. +.TP +.IB member .name +.B Name +holds the authenticated name of the member. +This is necessarily unique over the members +of a clique. +.TP +.IB member .obj(\fIid\fP) +.B Obj +converts from a member's external object +identifier to the clique's local +.B Object +that it represents. It returns +.B nil +if there is no such object. +.TP +.IB member .del(\fIsuspend\fP) +.B Del +deletes +.I member +from the clique; +no more requests from +.I member +will be received by the clique engine. +If +.I suspend +is non-zero, if a member of the same name joins again +it will be allocated the same object id, allowing a member +to leave and join again without losing state. +.SS \fBObject\fP +The +.B Object +type is the basic unit of clique engine state. +An object's children can be selectively concealed +from members; it holds a set of +.RI ( attribute ,\ value ) +pairs, each of which can be concealed likewise. +Where an argument +.IR r , +of +.B Range +type is used, it refers to a range of an object's +children starting at index +.IB r .start\fR,\fP +and finishing at +.IB r .end-1\fR.\fP +All the data members of an +.B Object +should be treated as read-only. +.TP 10 +.IB obj .setattr(\fIname\fP,\ \fIval\fP,\ \fIvis\fP) +.B Setattr +sets attribute +.I name +in +.I obj +to +.IR val. +If the attribute is being created for the +first time, then it will be given visibility +.IR vis . +.I Name +should be non-empty, and should not +contain any space characters. +Note that it is not possible for an attribute +to refer directly to an object by its identifier; +if this facility is needed, another identifying +scheme should be used. This also applies +to member identifiers, which will change +if the clique is saved and loaded again. +.TP +.IB obj .getattr(\fIname\fP) +.B Getattr +yields the current value of the +attribute +.I name +in +.IR obj . +If an attribute is not set, it yields +.BR nil . +.TP +.IB obj .delete() +.B Delete +removes +.I obj +from the object +hierarchy. +.TP +.IB obj .deletechildren(\fIr\fP) +.B Deletechildren +deletes children in range +.I r +from +.IR obj . +.TP +.IB obj .transfer(\fIr\fP,\ \fIdst\fP,\ \fIi\fP) +.B Transfer +transfers the children in range +.I r +from +.I obj +to just before the object at index +.I i +in +.IR dst . +It is permissible for +.I obj +and +.I dst +to be the same object. +.TP +.IB obj .setvisibility(\fIvisibility\fP) +.B Setvisibility +allows the set of members +given in +.I visibility +to see the children of +.IR obj , +and denies access to all others. +Members are notified of the change. +.TP +.IB obj .setattrvisibility(\fIname\fP,\ \fIvisibility\fP) +.B Setattrvisibility +allows the set of members +given in +.I visibility +to see the value of +.IR obj 's +attribute +.IR name , +and denies access to all others. +Members are not notified of the change; +if there is a need to communicate +the fact of an attribute becoming invisible to +members, it should be done by using another +(visible) attribute to communicate the change. +.SS "Archives" +The +.B Archives +module provides a means of committing a clique +to permanent storage and retrieving it later. +It should first be initialised by calling +.BR init , +passing the +.B Spree +module in +.IR mod . +.B Write +writes +.I clique +to the file +.IR file . +.I Info +gives a set of attributes and values associated with the clique; +.I members +gives the set of clique members for which visibility information +will be archived; visibility information for other members is forgotten. +.PP +.B Read +opens +.I file +and returns it as an +.B Archive +adt, say +.IR a . +.IB A .argv +holds the command line arguments to the clique module +(including the name of the module, its first element); +.IB a .members +gives the names of all archived members - the id +of an archived member is given by its index in the array; +.IB a .info +gives the list of attributes an values as stored by +.BR write ; +.IB a .objects +holds the clique objects. +.B Readheader +is just like +.B read +except that it parses the header only, so will return an +.B Archive +adt such that +.IB a .objects +is nil. +.SS "Module Interface" +An engine module, +.IR mod , +must implement the +following functions. Where a function returns a string, +it is interpreted as an error response to the member +responsible for the request; an empty string signifies +no error. +.TP +.IB mod ->init(\fIsrvmod\fP, \fIclique\fP, \fIargv\fP) +.B Init +initialises the clique engine. +.I Clique +is the clique that the engine is controlling, +and +.I srvmod +is the +.B Spree +module holding its associated data. +An error response from this function +causes the clique to be aborted. +.I Argv +gives a list of arguments to the engine, starting +with its module name. +.TP +.IB mod ->join(\fImember\fP, \fIe\fP, \fIsuspended\fP) +.I Member +has made a request to join the clique; +an error response causes the request to be +refused, otherwise the member joins the +clique. +.I E +is a message from the client about how it would like to +join the clique (e.g. +.BR join , +.BR watch , +etc). +.I Suspended +is non-zero if the member was previously suspended from the clique. +.TP +.IB mod ->leave(\fImember\fP) +.I Member +has left the clique. +If +.B leave +returns zero, the member will not be deleted from the +clique, but merely suspended until they should join again. +.TP +.IB mod ->command(\fImember\fP,\ \fIe\fP) +.I Member +has sent the command +.IR e . +The command usually follows +the simple message conventions +used in +.IR spree (4), +i.e. simple space-separated tokens. +.TP +.IB mod ->notify(\fIcliqueid\fP, \fIs\fP) +A notification, +.IR s , +has been posted to +the current clique +by the clique identified by +.IR cliqueid . +The posting clique is either a parent or a child of the current clique. +.TP +.IB mod . +.SH EXAMPLE +The following is a small, but working example +of a clique engine that acts as a chat server +(parsing error checking omitted, and white-space +compressed to save paper): +.PP +.EX +.ps -1 +.vs -1 +implement Cliquemodule; +include "sys.m"; + sys: Sys; +include "draw.m"; +include "../spree.m"; + spree: Spree; + Clique, Member: import spree; +clique: ref Clique; +clienttype(): string +{ + return "chat"; +} +init(g: ref Clique, srvmod: Spree): string +{ + (sys, clique, spree) = (load Sys Sys->PATH, g, srvmod); + return nil; +} +join(nil: ref Member): string +{ + return nil; +} +leave(nil: ref Member) +{ +} +command(member: ref Member, cmd: string): string +{ + clique.action("say " + string member.id + " " + cmd, nil, nil, ~0); + return nil; +} +.ps +1 +.vs +1 +.EE +.SH SOURCE +.B /appl/cmd/cliques/spree.b +.SH "SEE ALSO" +.IR spree (4), +.IR spree-objstore (2), +.IR spree-cardlib (2), +.IR spree-allow (2), +.SH BUGS +The reuse of object ids can lead to +problems when objects are deleted and +recreated on the server before clients become +aware of the changes. diff --git a/static/inferno/man2/srv.2 b/static/inferno/man2/srv.2 new file mode 100644 index 00000000..bc865097 --- /dev/null +++ b/static/inferno/man2/srv.2 @@ -0,0 +1,66 @@ +.TH SRV 2 +.SH NAME +srv \- network name and address translation when hosted +.SH SYNOPSIS +.EX +include "srv.m" +srv := load Srv Srv->PATH; +Srv: module +{ + init: fn(); + iph2a: fn(host: string): list of string; + ipa2h: fn(addr: string): list of string; + ipn2p: fn(protocol, service: string): string; +}; +.EE +.SH DESCRIPTION +.B Srv +provides access to the host operating system's +name and address translation when Inferno is running hosted. +The module's implementation is usually built-in to +.IR emu (1), +and then only on some platforms. +It uses the Internet name resolution services of the host operating system +(eg, +.B gethostbyname +on Unix systems). +Its services are normally only used internally by +.IR cs (8) +and +.IR dns (8), +and even they give priority to data in +.IR services (6) +and +.IR dns (6) +if available. +Other Inferno applications normally give network addresses to the functions of +.IR dial (2), +and they are then translated automatically, using the services of +.IR cs (8). +.PP +.B Init +must be called before any other function is used. +.PP +Given a host name, +.B iph2a +returns a list of its Internet addresses (if any). +Given an Internet address, +.B ipa2h +returns a list of host names (if any) that have that address. +The results are only as accurate as the host system's name service. +.PP +.B Ipn2p +returns the port number (as a string) for the given +.I service +when accessed using a particular protocol +.I protocol +(typically +.B tcp +or +.BR udp ). +.SH SOURCE +.B /emu/port/srv.c +.SH SEE ALSO +.IR sys-file2chan (2), +.IR cs (8), +.IR dns (8) diff --git a/static/inferno/man2/string.2 b/static/inferno/man2/string.2 new file mode 100644 index 00000000..40ac5893 --- /dev/null +++ b/static/inferno/man2/string.2 @@ -0,0 +1,200 @@ +.TH STRING 2 +.SH NAME +string: append, drop, in, prefix, quoted, splitl, splitr, splitstrl, +splitstrr, take, tobig, toint, toreal, tolower, toupper, unquoted \- string operations +.SH SYNOPSIS +.EX +include "string.m"; +str := load String String->PATH; + +append: fn(s: string, l: list of string): list of string; +drop: fn(s, cl: string): string; +in: fn(c: int, cl: string): int; +prefix: fn(pre, s: string): int; +splitl: fn(s, cl: string): (string, string); +splitr: fn(s, cl: string): (string, string); +splitstrl: fn(s, t: string): (string, string); +splitstrr: fn(s, t: string): (string, string); +take: fn(s, cl: string): string; +tobig: fn(s: string, base: int): (big, string); +toint: fn(s: string, base: int): (int, string); +toreal: fn(s: string, base: int): (real, string); +tolower: fn(s: string): string; +toupper: fn(s: string): string; +quoted: fn(args: list of string): string; +unquoted: fn(s: string): list of string; +.EE +.SH DESCRIPTION +The +.I cl +argument to some of these functions is a character class in which +a +.B - +between any two characters indicates a range and a +.B ^ +in the first position means +.I not in +the class. +Example of classes are +.B \&"a-zA-Z" +and +.B +\&"^acg-mr"\c +\&. +.PP +.B Append +appends string +.I s +to the end of string list +.IR l . +.PP +.B Drop +removes the maximal prefix of string +.I s +that is in class +.IR cl . +.PP +.B In +returns 1 if +character +.I c +is in class +.I cl +and 0 if it is not. +.PP +.B Prefix +returns 1 if string +.I pre +is a prefix of string +.I s +and 0 if it is not. +.PP +.B Splitl +splits string +.I s +just before the first character in class +.IR cl . +.PP +.B Splitr +splits string +.I s +just after the last character in class +.IR cl . +.PP +.B Splitstrl +splits string +.I s +just before the leftmost segment of string +.I s +that consists entirely of string +.IR t , +and returns a tuple with the resulting pair of strings. +If +.I t +does not occur in +.IR s , +the result is +.RI ( s , nil ). +.PP +.B Splitstrr +splits string +.I s +just after the rightmost segment of string +.I s +that consists entirely of string +.IR t , +and returns a tuple with the resulting pair of strings. +If +.I t +does not occur in +.IR s , +the result is +.RI ( nil, s ). +.PP +.B Take +returns the maximal prefix of string +.I s +that is in class +.IR cl . +.PP +.B Toint +returns as an integer the value represented by the string +.IR s . +The string is scanned up to the first character inconsistent +with +.IR base . +The first inconsistent character marks the beginning of the +returned string. +Leading white-space characters are ignored. +The +.I base +can be any integer in the range 2 to 36, inclusive; +or 0 in which case the base can be specified as part +of the string, in Limbo style (e.g. 16rffff). +.PP +.B Tobig +has the same specification as +.B toint +except that converts to 64-bit +.BR big . +.PP +.B Toreal +is similar to +.BR toint , +except that it expects a floating-point number after optional leading white space: +an optional sign, then a string of digits containing a decimal point, then an optional +.RB ` e ' +or +.RB ` E ' +followed by an optionally signed decimal integer exponent. +The string of digits can optionally be preceded by a base (radix) specifier +of the form +.IB B r , +as for integers. +Any exponent is then interpreted as a power of that base. +Alternatively, following any leading white space and an optional sign, either +.B nan +or +.B infinity +can appear, in any case, and +.B toreal +will return the appropriate value for IEEE floating-point. +.PP +.B Tolower +converts all upper case letters in the string +.I s +to lower case letters. +.PP +.B Toupper +converts all lower case letters in the string +.I s +to upper case letters. +.PP +.B Quoted +takes a list of strings, +.IR args , +and returns a single string with the value of each element of +.I args +separated from the next by a single space. +When forming the string, the text of any element that +contains white space or single quotes is first quoted by +surrounding it by single quotes +.RB ( ' ... ' ) +within which each existing single quote is doubled +.RB ( '' ), +following the conventions of +.IR sh (1). +.PP +.B Unquoted +takes a string +.IR s , +quoted according to the conventions of +.BR quoted , +and splits it into separate strings. +It splits the string at each maximal sequence of +unquoted white space (blank, newline or tab), +stripping single quotes except where paired, +to form the corresponding list of strings, +which it returns. +.SH SOURCE +.B /appl/lib/string.b diff --git a/static/inferno/man2/stringinttab.2 b/static/inferno/man2/stringinttab.2 new file mode 100644 index 00000000..1dbf5c66 --- /dev/null +++ b/static/inferno/man2/stringinttab.2 @@ -0,0 +1,87 @@ +.TH STRINGINTTAB 2 +.SH NAME +stringinttab \- string table lookup module +.SH SYNOPSIS +.EX +include "strinttab.m"; +StringInt: import StringIntTab; + +strinttab := load StringIntTab StringIntTab->PATH; + +StringInt: adt{ + key: string; + val: int; +}; + +lookup: fn(tab: array of StringInt, key: string) : (int, int); +revlookup: fn(tab: array of StringInt, val: int) : string; +.EE +.SH DESCRIPTION +.B Stringinttab +provides functions that perform forward and reverse searches of an ordered table of +.I key\-value +pairs. +.PP +A table should be constructed as an array of +.B StringInt +entries, ordered by increasing +.I key +value. Keys ordering is determined by comparison of the Unicode +value of their characters. +.PP +.B Lookup +performs a binary search of +.I tab +for the +.B StringInt +entry whose +.B key +field has a value equal to +.I key +and returns a tuple: an +.B int +whose value is non-zero if a match has been found and zero otherwise, +and an +.B int +whose value is equal to the +.B val +field of the matching +.B StringInt +entry. +.PP +.B Revlookup +searches +.I tab +for the first +.B StringInt +entry whose +.B val +field has a value equal to +.I val +and returns the corresponding +.B key +string. +.SH EXAMPLES +.EX +T := load StringIntTab StringIntTab->PATH; + +fmtstringtab := array[] of { Strinttab->StringInt + ("html", FHtml), + ("latex", FLatex), + ("latexbook", FLatexBook), + ("latexpart", FLatexPart), + ("latexproc", FLatexProc), + ("latexslides", FLatexSlides), +}; + +(fnd, fmt) := T->lookup(fmtstringtab, "latexbook"); +fmtstring := T->revlookup(fmtstringtab, FLatex); +.EE +.SH SOURCE +.B /appl/lib/strinttab.b +.SH SEE ALSO +.IR hash (2) +.SH BUGS +.B Revlookup +performs a sequential search of the table. + diff --git a/static/inferno/man2/styx.2 b/static/inferno/man2/styx.2 new file mode 100644 index 00000000..48836375 --- /dev/null +++ b/static/inferno/man2/styx.2 @@ -0,0 +1,417 @@ +.TH STYX 2 +.SH NAME +Styx: Rmsg, Tmsg, dir2text, istmsg, packdir, packdirsize, readmsg, qid2text, unpackdir \- interface to 9P (Styx) file protocol +.SH SYNOPSIS +.EX +include "styx.m"; +styx := load Styx Styx->PATH; + +Tmsg: adt { + tag: int; + pick { + Readerror => + error: string; # tag is unused in this case + Version => + msize: int; + version: string; + Auth => + afid: int; + uname, aname: string; + Attach => + fid, afid: int; + uname, aname: string; + Flush => + oldtag: int; + Walk => + fid, newfid: int; + names: array of string; + Open => + fid, mode: int; + Create => + fid: int; + name: string; + perm, mode: int; + Read => + fid: int; + offset: big; + count: int; + Write => + fid: int; + offset: big; + data: array of byte; + Clunk or + Stat or + Remove => + fid: int; + Wstat => + fid: int; + stat: Sys->Dir; + } + + read: fn(fd: ref Sys->FD, msize: int): ref Tmsg; + unpack: fn(a: array of byte): (int, ref Tmsg); + pack: fn(nil: self ref Tmsg): array of byte; + packedsize: fn(nil: self ref Tmsg): int; + text: fn(nil: self ref Tmsg): string; + mtype: fn(nil: self ref Tmsg): int; +}; + +Rmsg: adt { + tag: int; + pick { + Readerror => + error: string; # tag is unused in this case + Version => + msize: int; + version: string; + Auth => + aqid: Sys->Qid; + Attach => + qid: Sys->Qid; + Flush => + Error => + ename: string; + Clunk or + Remove or + Wstat => + Walk => + qids: array of Sys->Qid; + Create or + Open => + qid: Sys->Qid; + iounit: int; + Read => + data: array of byte; + Write => + count: int; + Stat => + stat: Sys->Dir; + } + + read: fn(fd: ref Sys->FD, msize: int): ref Rmsg; + unpack: fn(a: array of byte): (int, ref Rmsg); + pack: fn(nil: self ref Rmsg): array of byte; + packedsize: fn(nil: self ref Rmsg): int; + text: fn(nil: self ref Rmsg): string; + mtype: fn(nil: self ref Rmsg): int; +}; + +init: fn(); + +readmsg: fn(fd: ref Sys->FD, msize: int): (array of byte, string); +istmsg: fn(f: array of byte): int; + +compatible: fn(t: ref Tmsg.Version, msize: int, version: string): (int, string); + +packdirsize: fn(d: Sys->Dir): int; +packdir: fn(d: Sys->Dir): array of byte; +unpackdir: fn(f: array of byte): (int, Sys->Dir); +dir2text: fn(d: Sys->Dir): string; +qid2text: fn(q: Sys->Qid): string; + +VERSION: con "9P2000"; +MAXWELEM: con 16; +NOTAG: con 16rFFFF; +NOFID: con ~0; +IOHDRSZ: con \fIimplementation-defined\f5; +MAXRPC: con \fIimplementation-defined\f5; +.EE +.SH DESCRIPTION +.B Styx +provides a Limbo interface to send and receive messages of the 9P file service protocol, +described by Section 5 of this manual, a thorough reading of which +is advised before using this module. +(The protocol was previously called `Styx' in Inferno, hence the module's name.) +.B Init +must be called before using any other function in the module. +.PP +A 9P client transmits requests to a server as `T-messages' +and receives replies in matching `R-messages'. +A T-message is here represented by values of the type +.BR Tmsg , +and an R-message by values of type +.BR Rmsg . +Every message has a +.B tag +value, and the alternatives of the pick adt represent the possible operation types of a T-message, +generally with parameter names and types corresponding to those described in section 5. +The exceptions are: +.B Tmsg.Write +and +.B Rmsg.Read +contain an array of byte, +.BR data , +to hold the data for the corresponding message, and the `count' parameter of the message is simply the length of that array; +and there is an alternative labelled +.B Readerror +that does not appear in the protocol but is used to represent input errors as described below. +Also note that values that are `unsigned' integers in the protocol are typically given signed integer +types in the Limbo representation (in particular, fids, qid paths, counts and offsets), and applications +should take appropriate care when manipulating them. +.PP +The following functions are provided by +.BR Tmsg: +.TP +.BI read( fd\fP,\fP\ msize ) +Read file descriptor +.I fd +to obtain exactly one T-message and return (a reference to) the corresponding +.BR Tmsg . +A nil value is returned on end of file. +Otherwise, if the read fails or the data read does not form a valid T-message, +the value returned will be a +.B Tmsg.Readerror +value in which the +.B error +member describes the error. +.I Msize +gives the maximum number of bytes in any acceptable T-message, +and should be the value negotiated in the exchange of +.B version +messages; +any incoming message larger than that will result in a diagnostic as a +.B Tmsg.Readerror +value. +An +.I msize +of 0 means `no limit negotiated' and should (only) be used until a message size +has been negotiated by exchange of +.IR version (5) +messages. +.TP +.IB t .pack() +Return an array of bytes containing the value of +.I t +in the machine-independent format described in Section 5. +It can return nil only if the message +.I t +is itself nil or has an invalid type. +.TP +.BI unpack( a ) +The array +.I a +is assumed to contain zero or more T-messages. +.B Unpack +attempts to unpack the first message, and returns a tuple of the form +.RI ( n , v ). +If successful, +.I n +is the number of bytes at the start of +.I a +used by the message, and +.I v +is the corresponding +.B Tmsg +value. +If +.I a +contains the prefix of a valid message but more data is required to complete it, +.I n +is zero (and +.I v +is nil); the caller will typically read more data, append it to +.IR a , +and try again. +If the message is invalid, +.I n +is -1 +and +.I v +is nil. +.TP +.IB t .packedsize() +Return the number of bytes required for the value of +.I t +when packed in its machine-independent format. +(Zero is returned if +.I t +is invalid.) +.TP +.IB t .text() +Return a printable string showing the contents of +.IR t , +for tracing or debugging. +.TP +.IB t .mtype() +Return the 9P message type of the message. +.PP +An R-message is represented by +.BR Rmsg . +Its member functions behave exactly as those for +.BR Tmsg , +except that they operate on R-messages not T-messages. +.PP +When a client reads a directory, the data returned in the reply must be formatted +as described in +.IR read (5): +an array of directory entries, one per file, with each entry formatted in +a machine-independent format. +An appropriate array value can be produced by +.B packdir +from a +.B Sys->Dir +structure, as used by +.IR sys-stat (2). +The space that packed representation will take can be calculated beforehand by +.BR packdirsize . +The server will usually fill the buffer for the reply to the read +with as many entries as will fit, +checking the space remaining against the result of +.B packdirsize +and if the value will fit, storing the result of +.BR packdir . +Given an array +.I a +containing at most one packed directory value (as produced by +.BR packdir ), +.B unpackdir +returns a tuple +.RI ( n,\ d ) +where +.I n +is \-1 if +.I a +is illegally formatted; +.I n +is zero if +.I a +does not contain a complete directory entry value; +and otherwise +.I n +is the number of bytes of +.I a +used to produce the unpacked +.B Dir +value +.I d . +.PP +The functions +.B dir2text +and +.B qid2text +produce printable strings showing the contents of the corresponding data structures, +for use when tracing or debugging. +.PP +Applications that acts as file servers will read T-messages and +reply with R-messages. +They can use +.B Tmsg.read +to read each T-message, build an +.B Rmsg +reply value +.IR r , +and use +.IB r .pack +to produce an array of bytes to be written in reply by +.B Sys->write +(see +.IR sys-read (2)). +.PP +A few specialised programs might need the lower-level function +.B readmsg +that underlies +.B Tmsg.read +and +.BR Rmsg.read . +It reads a single message, which can be either a T-message or R-message, +and returns it as an array of bytes, +which can then be unpacked using +.B Tmsg.unpack +or +.BR Rmsg.unpack . +.I Msize +is the negotiated message size, or 0 meaning `no limit'. +The predicate +.B istmsg +returns true if the contents of array +.I f +looks like a packed representation of a T-message, +judging only by its +.I type +byte. +.PP +When generating the +.B version +message (see +.IR version (5)), +the constant +.B NOTAG +can be used in +.B Tmsg.tag +and +.B Rmsg.tag +to represent `no tag value'. +The constant +.B VERSION +names the current version of the protocol, and can be +used as the value of +.BR Tmsg.version . +.PP +.B Compatible +can be used by a server to +compare its +.I msize +and +.I version +(which is typically +.BR VERSION ) +to those in the +.B Tmsg.Version +message received from a client, to decide its reply, +following the rules in +.IR version (5). +It returns a tuple +.RI ( m ", " v ) +with values for use in the +.B Rmsg.Version +reply. +.I M +is the lesser of +.I msize +and +.IB t .msize , +and +.I v +is the negotiated protocol version, or the value \f5"unknown"\f1 +if no version could be agreed. +The constant +.B MAXRPC +is a reasonable value for +.I msize +on current systems. +The resulting value +.I m +can subsequently be given to the various read functions as the limit +.IR msize . +The constant +.B IOHDRSZ +gives the amount to allow for protocol overhead, when limiting data size for +.B Tmsg.Write +and +.BR Rmsg.Read . +.PP +The constant +.B NOFID +can be used as the value of +.B afid +of the +.B attach +message when authentication is not required (see +.IR attach (5)). +.PP +The constant +.B MAXWELEM +gives the protocol-defined limit on the length of the arrays +.B Tmsg.names +and +.BR Rmsg.qids . +For specialised applications, the module defines constants +.BR Tversion , +.BR Rversion , +etc. for the message types of the protocol, and the +other constants mentioned in Section 5. +.SH SOURCE +.B /appl/lib/styx.b +.SH SEE ALSO +.IR styxservers (2), +.IR intro (5) diff --git a/static/inferno/man2/styxconv.2 b/static/inferno/man2/styxconv.2 new file mode 100644 index 00000000..296c6abb --- /dev/null +++ b/static/inferno/man2/styxconv.2 @@ -0,0 +1,78 @@ +.TH STYXCONV 2 +.SH NAME +styxconv \- convert between old 1995 Styx and current Styx (9P) +.SH SYNOPSIS +.EX +include "styxconv.m"; +styxconv := load Styxconv Styxconv->PATHNEW2OLD; +styxconv := load Styxconv Styxconv->PATHOLD2NEW; + +init: fn(); +styxconv: fn(client: ref Sys->FD, server: ref Sys->FD); +.EE +.SH DESCRIPTION +.B Styxconv +converts between the obsolete 1995 version of the Styx protocol, +as used for instance in Inferno's Third Edition and earlier, +and the current file service protocol, +previously also called `Styx' but +based on 9P2000 and defined by +.IR intro (5). +.PP +.B Init +must be called before any other function in the module. +.PP +The function +.B styxconv +takes two file descriptors: +.I client +should be a connection to a client requiring +one version of the protocol; +.I server +should be a connection to a server serving +the other version of the protocol. +There are two conversion modules: +.B PATHNEW2OLD +converts from a new client to an old server; +.B PATHOLD2NEW +converts from an old client to a new server. +.PP +.B Styxconv +should be spawned by the caller, and copies messages between +.I client +and +.IR server , +converting as required. +See the example below. +.SH EXAMPLE +Apply +.B styxconv +to file descriptor +.IR fd , +connected to an old Styx server, and return +a file descriptor suitable for mounting with +.IR mount (2). +.IP +.EX +cvstyx(fd: ref Sys->FD): ref Sys->FD +{ + styxconv := load Styxconv Styxconv->NEW2OLDPATH; + if(styxconv == nil) + return nil; + p := array[2] of ref Sys->FD; + if(sys->pipe(p) < 0) + return nil; + styxconv->init(); + spawn styxconv->styxconv(p[1], fd); + return p[0]; +} +.EE +.SH SOURCE +.B /appl/lib/styxconv +.SH SEE ALSO +.IR bind (1), +.IR sys-bind (2), +.IR sys-pipe (2), +.IR intro (5) +.SH BUGS +There is no provision for 9P2000 authentication. diff --git a/static/inferno/man2/styxflush.2 b/static/inferno/man2/styxflush.2 new file mode 100644 index 00000000..845e8973 --- /dev/null +++ b/static/inferno/man2/styxflush.2 @@ -0,0 +1,156 @@ +.TH STYXFLUSH 2 +.SH NAME +styxflush \- handler for 9P (Styx) flush protocol +.SH SYNOPSIS +.EX +include "sys.m"; +include "styx.m"; +include "styxflush.m"; + +styxflush := load Styxflush Styxflush->PATH; +init: fn(); +tmsg: fn(m: ref Styx->Tmsg, + flushc: chan of (int, chan of int), + reply: chan of ref Styx->Rmsg): (int, ref Styx->Rmsg); +rmsg: fn(m: ref Styx->Rmsg): int; +Einterrupted: con "interrupted"; +.EE +.SH DESCRIPTION +Getting the semantics of the 9P +.IR flush (5) +protocol correct when handling requests concurrently +is surprisingly hard to do. +.I Styxflush +is designed to help get it right. It deals with 9P +messages for a single 9P session \- if a server needs to +deal with multiple sessions, then multiple instances of +.I styxflush +should be loaded. It assumes there is a loop in a central process +that both reads T-messages and sends their R-message replies. +.I Styxflush +handles the flushing of requests that are being run +outside the central process. +.PP +.B Init +must be called before anything else in +.I styxflush +to intialise its internal data structures. +.PP +When a T-message request arrives that will be dealt with concurrently, +.B tmsg(\fIm\fP,\ \fIflushc\fP,\ \fIreply\fP) +should be called to inform +.I styxflush +of the new request. +.I M +gives the T-message; +.I flushc +gives a channel that will be used if the request is flushed (see below), +and +.I reply +should hold an unbuffered channel that can be used to send a reply +to the central loop. +.I Flushc +will usually be a fresh channel for each request, but several +requests may share the same +.IR flushc +if, for instance, one process is managing several requests. +.B Tmsg +returns a tuple +(\fIhandled,\ rm\fP), +where +.I handled +is non-zero if +.I styxflush +has dealt with the request itself. If it has, then +the caller must not handle the request; it +must send +.I rm +as a reply if it is not nil. +.PP +.B Rmsg +should be called when a reply message arrives at the central process +(the same process that has called +.BR tmsg ). +It returns non-zero if the reply message should actually be +sent to the client - otherwise it should be discarded. +.SS "Flush Channel" +.I Styxflush +notifies a request that it has been flushed by sending a tuple, +say +.IR "" ( tag ,\ rc ) +on its flush channel. +.I Tag +gives the tag of the message that has been flushed, +and +.I rc +is a channel that should be replied on when the +request has been dealt with. There is no requirement +that a request read on its flush channel - if it does not, +then the replies to any flushes of that request will be delayed +until the request is replied to. +If it does read a flush request, however, it must reply +to the original request before sending on +.IR rc . +If it has succeeded in aborting the request, it should +send an +.IR error (5) +R-message with the message +.B interrupted +(defined as +.BR Einterrupted ); +otherwise it should send its +reply as usual. +.SH SOURCE +.B /appl/lib/styxflush.b +.SH EXAMPLE +This is a skeleton of a prototypical structure of a program +that uses +.IR styxflush . +.EX +replyc: chan of ref Rmsg; +centralloop(tm: chan of ref Tmsg, fd: ref Sys->FD) +{ + replyc = chan of Rmsg; + for(;;)alt{ + m := <-tm => + if(m == nil || tagof m == tagof Tmsg.Readerror){ + cleanup(); # kill outstanding processes, etc. + return; + } + flushc := chan of (int, chan of int); + (handled, rm) := styxflush->tmsg(m, flushc, replyc); + if(!handled) + spawn request(m, flushc); + else if(rm != nil) + sendreply(rm); + rm := <- replyc => + if(styxflush->rmsg(rm)) + sendreply(rm); + } +} + +sendreply(fd: ref Sys->FD, rm: ref Rmsg) +{ + d := rm.pack(); + sys->write(fd, d, len d); +} + +request(tm: ref Tmsg, flushc: chan of (int, chan of int)) +{ + pick m := tm { + Open => + replyc <-= ref Rmsg.Open(m.tag, ...); + Read => + [...] + alt{ + x := <-readc => + # read from data produced on readc + replyc <-= ref Rmsg.Read(m.tag, ...); + (nil, rc) := <-flushc => + # read request has been flushed. + replyc <-= ref Rmsg.Error(m.tag, Einterrupted); + rc <-= 1; + } + etc ... + } +} diff --git a/static/inferno/man2/styxpersist.2 b/static/inferno/man2/styxpersist.2 new file mode 100644 index 00000000..817a96fe --- /dev/null +++ b/static/inferno/man2/styxpersist.2 @@ -0,0 +1,80 @@ +.TH STYXPERSIST 2 +.SH NAME +styxpersist \- persistent 9P (Styx) connection +.SH SYNOPSIS +.EX +include "sys.m"; +include "styxpersist.m"; +styxpersist := load Styxpersist Styxpersist->PATH; + +init: fn(clientfd: ref Sys->FD, usefac: int, keyspec: string): + (chan of chan of ref Sys->FD, string); +.EE +.SH DESCRIPTION +.I Styxpersist +tries to maintain a persistent 9P (Styx) connection for its client. +.B Init +starts a process to serve 9P for the client on +.IR clientfd . +If +.I usefac +is non-zero, +.I styxpersist +will use +.IR factotum (2) +to do plan 9-style authentication if necessary, +and +.I keyspec +gives attribute-value pairs to pass to +.IR factotum 's +.B proxy +function. +.PP +.B Init +returns a tuple, say +.RI ( c ,\ err ). +If things have started successfully, +.I c +holds a channel that +.I styxpersist +uses to request a new connection to the server. +The caller of +.B init +should arrange that a process is ready to repeatedly receive on this channel, +dial the server, and send the resulting file descriptor (or +.B nil +if the connection was unsuccessful) +on the channel received, +.PP +If +.B init +failed, +.I c +will be +.B nil +and +.I err +describes the error. +.PP +If the server goes down, it redials as above, and tries to +re-open all the files that were open in the previous connection. +In the meantime all client access to the namespace is blocked. +.PP +Note that this service should only be used on conventional +file servers, where most reads and writes are idempotent. +.SH SOURCE +.B /appl/lib/styxpersist.b +.SH BUGS +Even on a conventional fileserver, some operations are non-idempotent; +namely create, rename, remove, and write to an append-only file. +If a fileserver dies while such a request is outstanding, it is unclear +what it should do. Currently it returns an error to the client if such a sitution occurs. +.PP +.I Styxpersist +is dependent on the capabilities of the local factotum to re-authenticate +Plan 9 style. If a client uses an external factotum with different keys, +.I styxpersist +may be unable to re-authenticate. +.SH "SEE ALSO" +.IR mount (1), +.IR dial (2) diff --git a/static/inferno/man2/styxservers-nametree.2 b/static/inferno/man2/styxservers-nametree.2 new file mode 100644 index 00000000..f64e519a --- /dev/null +++ b/static/inferno/man2/styxservers-nametree.2 @@ -0,0 +1,180 @@ +.TH STYXSERVERS-NAMETREE 2 +.SH NAME +Styxservers: nametree \- +hierarchical name storage for use with Styxservers. +.SH SYNOPSIS +.EX +include "sys.m"; +include "styx.m"; +include "styxservers.m"; +nametree := load Nametree Nametree->PATH; + Tree: import nametree; + +Tree: adt { + create: fn(t: self ref Tree, parentpath: big, d: Sys->Dir): string; + remove: fn(t: self ref Tree, path: big): string; + wstat: fn(t: self ref Tree, path: big, d: Sys->Dir); + quit: fn(t: self ref Tree); +}; +init: fn(); +start: fn(): (ref Tree, chan of ref Styxservers->Navop); +.EE +.SH DESCRIPTION +.B Nametree +provides the storage for a hierarchical namespace +to be used by +.IR styxservers (2). +After the module is loaded, the +.B init +function should be called to +initialise the module's internal variables. +.B Start +spawns a new +.B nametree +process; it returns a tuple, say +.RI ( tree ,\ c ), +where c is a channel that can be used to create +an instance of +.BR Styxservers->Navigator , +to access files inside +.BR nametree , +and +.I tree +is an adt that allows creation and removal of those files. +On failure, these functions return a string describing +the error. +.PP +Note that the full set of operations on +.B Nametree +(i.e. stat, walk, readdir, wstate, create and remove), +is only available in conjunction with +.BR Styxserver 's +.B Navigator +interface. +Files in the name space are ultimately identified by a 64-bit +.I path +value, which forms the path component of the file's Qid. +(See +.IR intro (5) +for a description of the system's interpretation of Qids.) +.PP +The +.B Tree +operations +are: +.TP 10 +.IB t .create(\fIparentpath\fP,\ \fId\fP) +Create a new file or directory. +.I D +gives the directory information that will be stored +for the file, including its own path value, +given by +.IB d .qid.path . +If the file referenced by +.I parentpath +does not exist, creation will not be allowed, +other than in the special case when +.IB d .qid.path +is equal to +.IR parentpath , +in which case it is assumed to be a root directory +and may be created. This potentially allows a single +.B Nametree +instance to hold many distinct directory hierarchies. +Note that no attempt is made to ensure that +.I parentpath +refers to a directory; the check is assumed to have +been made previously. +When a hierarchy is traversed, +.B Nametree +interprets the name +.RB ` .. ' +itself as `parent directory', and that name should not be created explicitly. +.TP +.IB t .remove(\fIpath\fP) +Remove the file referred to by +.IR path , +and all its descendants. +.TP +.IB t .wstat(\fIpath\fP,\ \fId\fP) +Change the directory information held on file +.IR path . +The Qid path itself cannot be changed by +.IR d . +.TP +.IB t .quit() +Shut down the +.B nametree +process. +.SH EXAMPLE +Here is a complete example that uses +.B Nametree +in conjunction with +.B Styxservers +in order to serve two files +.B data +and +.BR ctl " ..." +and do nothing with them: +.EX +implement Tst; +include "sys.m"; + sys: Sys; +include "draw.m"; +include "styx.m"; +include "styxservers.m"; + styxservers: Styxservers; + Styxserver, Navigator: import styxservers; + nametree: Nametree; + Tree: import nametree; + +Tst: module +{ + init: fn(nil: ref Draw->Context, argv: list of string); +}; + +Qroot, Qctl, Qdata: con big iota; # paths +init(nil: ref Draw->Context, args: list of string) +{ + sys = load Sys Sys->PATH; + styx := load Styx Styx->PATH; + styx->init(); + styxservers = load Styxservers Styxservers->PATH; + styxservers->init(styx); + nametree = load Nametree Nametree->PATH; + nametree->init(); + sys->pctl(Sys->FORKNS, nil); + (tree, treeop) := nametree->start(); + tree.create(Qroot, dir(".", 8r555|Sys->DMDIR, Qroot)); + tree.create(Qroot, dir("ctl", 8r666, Qctl)); + tree.create(Qroot, dir("data", 8r444, Qdata)); + (tchan, srv) := Styxserver.new(sys->fildes(0), + Navigator.new(treeop), Qroot); + while((gm := <-tchan) != nil) { + # normally a pick on gm would act on + # Tmsg.Read and Tmsg.Write at least + srv.default(gm); + } + tree.quit(); +} + +dir(name: string, perm: int, qid: big): Sys->Dir +{ + d := sys->zerodir; + d.name = name; + d.uid = "me"; + d.gid = "me"; + d.qid.path = qid; + if (perm & Sys->DMDIR) + d.qid.qtype = Sys->QTDIR; + else + d.qid.qtype = Sys->QTFILE; + d.mode = perm; + return d; +} +.EE +.SH SOURCE +.B /appl/lib/nametree.b +.SH SEE ALSO +.IR styxservers (2), +.IR intro (5) diff --git a/static/inferno/man2/styxservers.2 b/static/inferno/man2/styxservers.2 new file mode 100644 index 00000000..5e4d0334 --- /dev/null +++ b/static/inferno/man2/styxservers.2 @@ -0,0 +1,941 @@ +.TH STYXSERVERS 2 +.SH NAME +styxservers \- +9P (Styx) server implementation assistance +.SH SYNOPSIS +.EX +include "sys.m"; +include "styx.m"; +Tmsg, Rmsg: import Styx; +include "styxservers.m"; +styxservers := load Styxservers Styxservers->PATH; +Styxserver, Fid, Navigator: import styxservers; + +Styxserver: adt { + fd: ref Sys->FD; # file server end of connection + t: ref Navigator; # name space navigator for this server + msize: int; # negotiated 9P message size + + new: fn(fd: ref Sys->FD, t: ref Navigator, rootpath: big) + :(chan of ref Tmsg, ref Styxserver); + reply: fn(srv: self ref Styxserver, m: ref Rmsg): int; + + # protocol operations + attach: fn(srv: self ref Styxserver, m: ref Tmsg.Attach): ref Fid; + clunk: fn(srv: self ref Styxserver, m: ref Tmsg.Clunk): ref Fid; + walk: fn(srv: self ref Styxserver, m: ref Tmsg.Walk): ref Fid; + open: fn(srv: self ref Styxserver, m: ref Tmsg.Open): ref Fid; + read: fn(srv: self ref Styxserver, m: ref Tmsg.Read): ref Fid; + remove: fn(srv: self ref Styxserver, m: ref Tmsg.Remove): ref Fid; + stat: fn(srv: self ref Styxserver, m: ref Tmsg.Stat); + default: fn(srv: self ref Styxserver, gm: ref Tmsg); + + replychan: chan of ref Rmsg; # replies sent here if not nil. + replydirect: fn(srv: self ref Styxserver, gm: ref Rmsg): int; # called by receiver for replychan + + # check validity + cancreate: fn(srv: self ref Styxserver, m: ref Tmsg.Create) + :(ref Fid, int, ref Sys->Dir, string); + canopen: fn(srv: self ref Styxserver, m: ref Tmsg.Open) + :(ref Fid, int, ref Sys->Dir, string); + canread: fn(srv: self ref Styxserver, m: ref Tmsg.Read) + :(ref Fid, string); + canwrite: fn(srv: self ref Styxserver, m: ref Tmsg.Write) + :(ref Fid, string); + canremove: fn(srv: self ref Styxserver, m: ref Tmsg.Remove) + :(ref Fid, big, string); + + # fid management + getfid: fn(srv: self ref Styxserver, fid: int): ref Fid; + newfid: fn(srv: self ref Styxserver, fid: int): ref Fid; + delfid: fn(srv: self ref Styxserver, c: ref Fid); + allfids: fn(srv: self ref Styxserver): list of ref Fid; + + iounit: fn(srv: self ref Styxserver): int; +}; + +Fid: adt { + fid: int; # client's fid + path: big; # file's 64-bit unique path + qtype: int; # file's qid type (eg, Sys->QTDIR if directory) + isopen: int; # non-zero if file is open + mode: int; # if open, the open mode + uname: string; # user name from original attach + param: string; # attach aname from original attach + data: array of byte; # application data + + clone: fn(f: self ref Fid, nf: ref Fid): ref Fid; + open: fn(f: self ref Fid, mode: int, qid: Sys->Qid); + walk: fn(f: self ref Fid, qid: Sys->Qid); +}; + +Navop: adt { + reply: chan of (ref Sys->Dir, string); # channel for reply + path: big; # file or directory path + pick { + Stat => + Walk => + name: string; + Readdir => + offset: int; # index (origin 0) of first entry to return + count: int; # number of directory entries requested + } +}; + +Navigator: adt { + new: fn(c: chan of ref Navop): ref Navigator; + stat: fn(t: self ref Navigator, path: big): (ref Sys->Dir, string); + walk: fn(t: self ref Navigator, parent: big, name: string) + : (ref Sys->Dir, string); + readdir:fn(t: self ref Navigator, path: big, + offset, count: int): array of ref Sys->Dir; +}; + +init: fn(styx: Styx); +traceset: fn(on: int); + +readbytes: fn(m: ref Styx->Tmsg.Read, d: array of byte): + ref Styx->Rmsg.Read; +readstr: fn(m: ref Styx->Tmsg.Read, s: string): + ref Styx->Rmsg.Read; +openok: fn(uname: string, omode, + perm: int, funame, fgname: string): int; +openmode: fn(o: int): int; +.EE +.SH DESCRIPTION +When writing a file server, there are some +commonly performed tasks that are +fiddly or tedious to implement each time. +.B Styxservers +provides a framework to automate some of these +routine tasks. +In particular, it helps manage the fid space, +implements common default processing for protocol messages, +and assists walking around the +directory hierarchy and reading of directories. Other +tasks, such as defining the structure of the +name space, and reading and writing files in it, are +left to the file server program itself. +Familiarity with Section 5 of the manual which defines the protocol +(see +.IR intro (5)), +and with the representation of 9P messages in Limbo +(see +.IR styx (2)), +is a prerequisite for use of this module. +.PP +.B Styxservers +does not define or store any of the directory hierarchy itself; +instead it queries an external process for information +when necessary, through a value of type +.BR Navigator , +which encapsulates communication with that process. +That process must be started up +independently of each +.BR Styxserver ; +a channel to such a process should be provided +when starting a new +.BR Styxserver . +The channel carries messages of type +.BR Navop . +.IR Styxservers-nametree (2) +provides a ready-made +implementation of such a process that is sufficient for many applications. +.PP +.B Styxserver +keeps tabs on the fids that are currently in use, and remembers +some associated information, such as the Qid path +of the file, whether it has been opened, etc. +It does this using values of type +.BR Fid . +.PP +Once the +.B Styxservers +module has been loaded, +the +.B init +function must be called before anything else, +to initialise its internal state. The +.I styx +argument should be an implementation of +the +.IR styx (2) +module, which will be used to translate messages. +Individual +.B Styxserver +instances do not share state, and are therefore +independently thread-safe. +.SS Fid representation +.B Styxservers +represents each active fid as a +.B Fid +value, +which has the following public members: +.TF param +.TP +.B fid +The integer +.I fid +value provided by the client to refer to an active instance of a file in the file server, +as described in +.IR intro (5). +.TP +.B path +The 64-bit qid path that uniquely identifies the file on the file server, +as described in +.IR intro (5). +It is set by +.IB f .walk +and +.IB f .open +(see below). +.TP +.B qtype +The file's qid type; it is +.B Sys->QTDIR +if and only if the fid refers to a directory. +The value is set by +.IB f .walk +and +.IB f .open +(see below). +.TP +.B isopen +Non-zero if and only if the fid has been opened by an +.IR open (5) +message. +It is initially zero, and set by +.IB f .open +(see below). +.TP +.B mode +Valid only if the fid has been opened. +It has one of the values +.BR Sys->OREAD , +.BR Sys->OWRITE , +.BR Sys->ORDWR , +possibly ORed with +.BR Sys->ORCLOSE , +corresponding to the mode with which the file was opened. +It is set by +.IB f .open +(see below). +.TP +.B uname +The name of the user that created the fid. +.TP +.B param +Set by +.B Styxservers +to the +.B aname +of the initial +.IR attach (5) +message, +and subsequently inherited by each new fid created by +.IR walk (5), +but not otherwise used by +.B Styxservers +itself, and may be changed by the application. +.TP +.B data +Unused by +.BR Styxservers ; +for application use. +It might be used, for instance, to implement a file that gives different +data to different clients. +.TP +.IB f .clone( nf ) +Copy the current state of all members of +.I f +except +.IB f .fid\f1,\fP +into +.IR nf , +and return +.IR nf . +Used by +.BR Styxserver.walk , +and is needed by an application only if it replaces that function. +.TP +.IB f .walk( qid ) +Make +.I f +refer to the file with the given +.IR qid : +set +.IB f .path +and +.IB f .qtype +from +.IB qid .path +and +.IB qid .qtype . +Used by +.IB Styxserver.walk +and is needed by an application only if it replaces that function. +.TP +.IB f .open( mode,\ qid ) +Mark +.I f +as `open', +set +.IR f .mode +to +.IR mode , +and set +.B path +and +.B qtype +to the path and type of +.IR qid . +Used by the +implementations of +.B open +and +.B create +messages. +The default implementation of +.IR open (5) +in +.B Styxserver +obtains the value of +.I mode +from +.B Styxserver.canopen +(below), +and +obtains the value of +.I qid +by querying the application's navigator. +.SS Styxserver and file server state +Each +.B Styxserver +value holds the state for a single file server, including its active fids, +the link to the external name space process, and other internal data. +Most of the state is manipulated through the member functions described below. +The exceptions are two read-only values: +the +.B Navigator +reference +.IB srv .t +which can be used to access that navigator; and +the file descriptor +.IB srv .fd +that is the file server's end of the connection to the 9P client. +Both values are initially provided by the file serving application, +but can be accessed through the +.B Styxserver +value for convenience. +The file descriptor value is normally used only through +.BR Styxserver.reply , +but will be needed directly if the caller needs the file descriptor value +as a parameter to +.IR sys-pctl (2) +when insulating the serving process's file descriptors from the surrounding environment. +.PP +The first set of functions in +.B Styxserver +provides common and default actions: +.TP +.B Styxserver.new(\fIfd\fP,\ \fIt\fP,\ \fIrootpath\fP) +Create a new +.BR Styxserver . +It returns a tuple, say +.RI ( c ", " srv ), +and spawns a new process, which uses +.IR styx (2) +to read and parse 9P messages read +from +.IR fd , +and send them down +.IR c ; +.I t +should be a +.B Navigator +adt which the +.B Styxserver +can use to answer queries +on the name space (see ``Navigating file trees'', below). +.I Rootpath +gives the Qid path of the root of the served name space. +.TP +.IB srv .reply(\fIm\fP) +Send a reply (R-message) to a client. The various utility methods, +listed below, call this function to make their response. When +.IB srv .replychan +is not nil +the function sends the R-message to this channel. It is assumed that a process +will drain replies from it and call +.IB srv .replydirect +when appropriate. +.TP +.IB srv .attach(\fIm\fP) +Respond to an +.IR attach (5) +message +.IR m , +creating a new fid in the process, and returning it. +Returns +.B nil +if +.IB m .fid +is a duplicate of an existing fid. +The value of the attach parameter +.IB m .aname +is copied into the new fid's +.B param +field, as is the attaching user name, +.IB m .uname . +.TP +.IB srv .clunk(\fIm\fP) +Respond to a +.IR clunk (5) +message +.IR m , +and return the old +.BR Fid . +Note that this does nothing about remove-on-close +files; that should be programmed explicitly if needed. +.TP +.IB srv .walk(\fIm\fP) +Respond to a +.IR walk (5) +message +.IR m , +querying +.IB srv . t +for information on existing files. +.TP +.IB srv .open(\fIm\fP) +Respond to an +.IR open (5) +message +.IR m . +This will allow a file to be opened if its permissions allow the +specified mode of access. +.TP +.IB srv .read(\fIm\fP) +Respond to a +.IR read (5) +message +.IR m . +If a directory is being read, the appropriate reply +is made; for files, an error is given. +.TP +.IB srv .remove(\fIm\fP) +Respond to a +.IR remove (5) +message +.IR m +with an error, clunking the fid as it does so, +and returning the old +.BR Fid . +.TP +.IB srv .stat(\fIm\fP) +Respond to a +.IR stat (5) +message +.IR m . +.TP +.IB srv .default(\fIgm\fP) +Respond to an arbitrary T-message, +.IR gm , +as appropriate (eg, by calling +.IB srv .walk +for a +.IR walk (5) +message). +It responds appropriately to +.IR version (5), +and replies to +.B Tauth +(see +.IR attach (5)) +stating that authentication is not required. +Other messages without an associated +.B Styxserver +function are generally responded to +with a ``permission denied'' error. +.PP +All the functions above check the validity of the fids, modes, counts and offsets +in the messages, and automatically reply to the client with a suitable +.IR error (5) +message on error. +.PP +The following further +.B Styxserver +operations are useful +in applications that override all or part of the default handling +(in particular, +to process read and write requests): +.TP +.IB srv .canopen( m ) +Check whether it is legal to open a file as requested by message +.IR m : +the fid is valid but not already open, the corresponding file exists and its +permissions allow access in the requested mode, and if +.B Sys->ORCLOSE +is requested, the parent directory is writable (to allow the file to be removed when closed). +.B Canopen +returns a tuple, say +.RI ( f ,\ mode ,\ d,\ err\ \fP). +If the open request was invalid, +.I f +will be nil, and the string +.I err +will diagnose the error (for return to the client in an +.B Rmsg.Error +message). +If the request was valid: +.I f +contains the +.B Fid +representing the file to be opened; +.I mode +is the access mode derived from +.IB m .mode , +.BR Sys->OREAD , +.BR Sys->OWRITE , +.BR Sys->ORDWR , +ORed with +.BR Sys->ORCLOSE ; +.I d +is a +.B Dir +value giving the file's attributes, obtained from the navigator; +and +.I err +is nil. +Once the application has done what it must to open the file, +it must call +.IB f .open +to mark it open. +.TP +.IB srv .cancreate( m ) +Checks whether the +creation of the file requested by +message +.I m +is legal: +the fid is valid but not open, refers to a directory, +the permissions returned by +.IR srv .t.stat +show that directory is writable by the requesting user, +the name does not already exist in that directory, +and the mode with which the new file would be opened is valid. +.B Cancreate +returns a tuple, say +.RI ( f ,\ mode,\ d,\ err\ \fP). +If the creation request was invalid, +.I f +will be nil, and the string +.I err +will diagnose the error, for use in an error reply to the client. +If the request was valid: +.I f +contains the +.B Fid +representing the parent directory; +.I mode +is the open mode as defined for +.B canopen +above; +.I d +is a +.B Dir +value containing some initial attributes for the new file or directory; +and +.I err +is nil. +The initial attributes set in +.I d +are: +.IB d .name +(the name of the file to be created); +.IB d .uid +and +.IB d .muid +(the user that did the initial attach); +.IB d .gid , +.IB d .dtype , +.IB d .dev +(taken from the parent directory's attributes); +and +.IB d .mode +holds the file mode that should be attributed to the new +file (taking into account the parent mode, as +described in +.IR open (5)). +The caller must supply +.IB d .qid +once the file has successfully been created, +and +.IB d .atime +and +.IB d .mtime ; +it must also call +.IB f .open +to mark +.I f +open and set its path to the file's path. +If the file cannot be created successfully, the application should reply with +an +.IR error (5) +message and leave +.I f +untouched. +The +.B Fid +.I f +will then continue to refer to the original directory, and remain unopened. +.TP +.IB srv .canread( m ) +Checks whether +.IR read (5) +message +.I m +refers to a valid fid that has been opened for reading, +and that the count and file offset are non-negative. +.B Canread +returns a tuple, say +.RI ( f ,\ err ); +if the attempted access is illegal, +.I f +will be nil, and +.I err +contains a description of the error, +otherwise +.I f +contains the +.B Fid +corresponding to the file in question. +It is typically called by an application's implementation of +.B Tmsg.Read +to obtain the +.B Fid +corresponding to the fid in the message, and check the access. +.TP +.IB srv .canwrite( m ) +Checks whether +message +.I m +refers to a valid fid that has been opened for writing, +and that the file offset is non-negative. +.B Canwrite +returns a tuple +.RI ( f ,\ err ); +if the attempted access is illegal, +.I f +will be nil, and +.I err +contains a description of the error, +otherwise +.I f +contains the +.B Fid +corresponding to the file in question. +It is typically called by an application's implementation of +.B Tmsg.Write +to obtain the +.B Fid +corresponding to the fid in the message, and check the access. +.TP +.IB srv .canremove( m ) +Checks whether the +removal of the file requested by +message +.I m +is legal: the fid is valid, it is not a root directory, and there is write permission +in the parent directory. +.B Canremove +returns a tuple +.RI ( f,\ path,\ err ); +if the attempted access is illegal, +.I f +will be nil and +.I err +contains a description of the error; +otherwise +.I f +contains the +.B Fid +for the file to be removed, and +.I path +is the +.B Qid.path +for the parent directory.The caller should remove the file, and in every case must call +.B srv.delfid +before replying, +because the protocol's remove operation always clunks the fid. +.TP +.IB srv .iounit() +Return an appropriate value for use as the +.I iounit +element in +.B Rmsg.Open +and +.B Rmsg.Create +replies, +as defined in +.IR open (5), +based on the message size negotiated by the initial +.IR version (5) +message. +.PP +The remaining functions are normally used only by servers that need to +override default actions. +They maintain and access the mapping between a client's fid values presented in +.B Tmsg +messages and the +.B Fid +values that represent the corresponding files internally. +.TP +.IB srv .newfid(\fIfid\fP) +Create a new +.B Fid +associated with number +.I fid +and return it. +Return nil if the +.I fid +is already in use (implies a client error if the server correctly clunks fids). +.TP +.IB srv .getfid(\fIfid\fP) +Get the +.B Fid +data associated with numeric id +.IR fid ; +return nil if there is none such (a malicious or erroneous client +can cause this). +.TP +.IB srv .delfid(\fIfid\fP) +Delete +.I fid +from the table of fids in the +.BR Styxserver . +(There is no error return.) +.TP +.IB srv .allfids() +Return a list of all current fids (ie, the files currently active on the client). +.PP +.B Newfid +is required when processing +.IR auth (5), +.IR attach (5) +and +.IR walk (5) +messages to create new fids. +.B Delfid +is used to clunk fids when processing +.IR clunk (5), +.IR remove (5), +and in a failed +.IR walk (5) +when it specified a new fid. +All other messages should refer only to already existing fids, and the associated +.B Fid +data is fetched by +.BR getfid . +.SS Navigating file trees +When a +.B Styxserver +instance needs to know about the namespace, +it queries an external process through a channel +by sending a +.B Navop +request; +each such request carries with it a +.B reply +channel through which the +reply should be made. +The reply tuple has a reference to a +.B Sys->Dir +value that is non-nil on success, and a diagnostic string +that is non-nil on error. +.PP +Files in the tree are referred to +by their Qid +.BR path . +The requests are: +.TF Walk +.TP +.BR Stat +.br +Find a file in the hierarchy by its +.BR path , +and reply with the corresponding +.B Dir +data if found (or a diagnostic on error). +.TP +.BR Walk +.br +Look for file +.B name +in the directory with the given +.BR path . +.TP +.BR Readdir +.br +Get information on selected files in the directory with the given +.BR path . +In this case, the reply channel is used to send +a sequence of values, one for each entry in the directory, finishing with a tuple value +.BR (nil,nil) . +The entries to return are those selected by an +.B offset +that is the index (origin 0) of the first directory entry to return, +and a +.B count +of a number of entries to return starting with that index. +Note that both values are expressed in units of directory entries, not as byte counts. +.PP +.B Styxserver +provides a +.B Navigator +adt to enable convenient access to this functionality; calls +into the +.B Navigator +adt are bundled up into requests on the channel, and the +reply returned. +The functions provided are: +.TP 10 +.BI Navigator.new( c ) +Create a new +.BR Navigator , +sending requests down +.IR c . +.TP +.IB t .stat(\fIpath\fP) +Find the file with the given +.IR path . +Return a tuple +.RI ( d ,\ err ), +where +.I d +holds directory information for the file +if found; otherwise +.I err +contains an error message. +.TP +.IB t .walk(\fIparent\fP,\ \fIname\fP) +Find the file with name +.I name +inside parent directory +.IR parent . +Return a tuple as for +.BR stat . +.TP +.IB t .readdir(\fIpath\fP,\ \fIoffset\fP,\ \fIcount\fP) +Return directory data read from directory +.IR path , +starting at entry +.I offset +for +.I count +entries. +.SS Other functions +The following functions provide some commonly used functionality: +.TP 10 +.BI readbytes( m ,\ d ) +Assuming that the file in question contains data +.IR d , +.B readbytes +returns an appropriate reply to +.IR read (5) +message +.IR m , +taking account of +.IB m .offset +and +.IB m.count +when extracting data from +.IR d . +.TP 10 +.BI readstr( m ,\ s ) +Assuming that the file in question contains string +.IR s , +.B readstr +returns an appropriate reply to +.IR read (5) +message +.IR m , +taking account of +.IB m .offset +and +.IB m.count +when extracting data from the UTF-8 representation of +.IR s . +.TP +.BI openok (\fIuname\fP,\ \fIomode\fP,\ \fIperm\fP,\ \fIfuid\fP,\ \fIfgid\fP) +Does standard permission checking, assuming user +.I uname +is trying to open a file with access mode +.IR omode , +where the file is owned by +.IR fuid , +has group +.IR fgid , +and permissions +.IR perm . +Returns true (non-zero) if permission would be granted, and false (zero) otherwise. +.TP +.BI openmode( o ) +Checks to see whether the open mode +.I o +is well-formed; if it is not, +.B openmode +returns -1; if it is, it returns the mode +with OTRUNC and ORCLOSE flags removed. +.TP +.BI traceset( on ) +If +.I on +is true (non-zero), +will trace 9P requests and replies, on standard error. +This option must be set before creating a +.BR Styxserver , +to ensure that it preserves its standard error descriptor. +.SS Constants +.B Styxservers +defines a number of constants applicable to the writing +of 9P servers, including: +.TP +.BR Einuse\fP,\fP\ Ebadfid\fP,\fP\ Eopen\fP,\fP\ Enotfound\fP,\fP\ Enotdir\fP,\fP\ Eperm\fP,\fP\ Ebadarg\fP,\fP\ Eexists +These provide standard strings for commonly used error conditions, +to be used in +.B Rmsg.Error +replies. +.SS Authentication +If authentication is required beyond that provided at the link level +(for instance by +.IR security-auth (2)), +the server application must handle +.B Tauth +itself, +remember the value of +.I afid +in that message, and generate an +.B Rauth +reply with a suitable Qid referring to a file with +.B Qid.qtype +of +.BR QTAUTH . +Following successful authentication by read and write on that file, +it must associate that status with the +.IR afid . +Then, on a subsequent +.B Tattach +message, before calling +.I srv .attach +it must check that the +.BR Tattach 's +.I afid +value corresponds to one previously authenticated, and +reply with an appropriate error if not. +.SH SOURCE +.B /appl/lib/styxservers.b +.SH SEE ALSO +.IR styxservers-nametree (2), +.IR sys-stat (2), +.IR intro (5) diff --git a/static/inferno/man2/sys-0intro.2 b/static/inferno/man2/sys-0intro.2 new file mode 100644 index 00000000..27b36d18 --- /dev/null +++ b/static/inferno/man2/sys-0intro.2 @@ -0,0 +1,345 @@ +.TH SYS-INTRO 2 +.SH NAME +Sys: intro \- introduction to the +.B Sys +module +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; +.EE +.SH DESCRIPTION +Inferno system calls are provided by the built-in module declared by +.BR sys.m . +It contains the fundamental system data structures and interfaces. +There are currently 42 calls, providing: file access; basic I/O; +name space manipulation; formatted output +for Limbo; and basic character and string manipulation. +.SS "File Name Space" +Files are collected into a hierarchical organization called a +.I file +.I tree +starting in a +.I directory +called the +.IR root. +.IR Filenames , +also called +.IR paths , +consist of a number of +.BR / -separated +.I "path elements +with the slashes corresponding to directories. +A path element must contain only printable +characters (those outside ASCII and Latin-1 control space). +A path element cannot contain a slash. +The path element +.B \&.. +refers to the parent directory of the directory containing that element. +.PP +When a process presents a file name to Inferno, +it is +.I evaluated +by the following algorithm. +.TP +1. +Start with a directory that depends on the first character of the path: +.B / +means the root of the main hierarchy, +.B # +means the separate root of a kernel device's file tree +(see Section 3), +and anything else means the process's current working directory. +.TP +2. +For each path element, look up the element +in the directory, advance to that directory, +do a possible translation (see below). +.TP +3. +Repeat. +The last step may yield a directory or regular file. +.PP +The collection of files reachable from the root is called the +.I "name space +of a process. +.PP +A program can use +.B bind +or +.B mount +(see +.IR sys-bind (2)) +to say that whenever a specified file is reached during an evaluation, +that evaluation continues instead from a second specified file. +Also, these same calls create +\f2union directories\fP, +which are concatenations of ordinary directories +that are searched sequentially until the desired element is found. +Using +.B bind +and +.B mount +to do name space adjustment affects only +the current name space group (see below, and +.IR sys-pctl (2)). +Certain conventions about the layout of the name space should be preserved; +see +.IR namespace (4). +.PP +The operating system kernel records the file name used to access each open file or directory. +If the file is opened by a relative path name (one that does not begin +.B / +or +.BR # ), +the system makes the stored name absolute by prefixing +the string associated with the current directory. +Similar lexical adjustments are made for path names containing +.B . +(dot) or +.B .. +(dot-dot). +By this process, the system maintains a record of the route by which each file was accessed. +Although there is a possibility for error—the name is not maintained after the file is opened, +so removals and renamings can confound it—this simple method usually +permits the system to return, via +.IR sys-fd2path (2) +and related calls such as those of +.IR workdir (2), +a valid name that may be used to find a file again. +This is also the source of the names reported in the name space listing of +.IR ns (1) +or the +.B ns +file of +.IR prog (3). +.PP +Inferno gives special meaning in path names only to `/' and an initial `#', +but individual file servers might impose further restrictions or conventions of their own. +For instance, the set of characters allowed in names by +.IR fs (3) +ultimately depends on the host operating system; +and +.IR dial (2) +and +.IR cs (8) +amongst others use `!' as a delimiter in network names, +preventing their use in the names of network devices. +.SS "File I/O" +Files are opened for input or output +by +.B open +or +.B create +(see +.IR sys-open (2)). +These calls return a reference to an object of type +.B FD +(file descriptor) +that identifies the file to subsequent I/O calls, +notably +.B read +and +.B write +(see +.IR sys-read (2)). +When the last reference to an +.B FD +disappears, the file descriptor is released—closed, in Unix parlance. +The +.B FD +contains an integer file descriptor, similar to those in Unix, but the +.B FD +type is the one passed to Limbo I/O routines. +.PP +Integer file descriptor values range from 0 to +.I n +in the current system, where the upper bound +depends on the underlying operating system. +The system allocates the numbers by selecting the lowest unused descriptor. +They may be reassigned using +.B dup +(see +.IR sys-dup (2)). +Integer file descriptor values are indices into a +kernel-resident +.IR "file descriptor table" , +which is inherited from the parent when a process is created by a Limbo +.B spawn +operation. +A set of processes, called a +.IR "file descriptor group" , +shares that table, so files opened by one process may be +read and written by other processes in the group. See +.IR sys-pctl (2) +for more information. +.PP +By convention, +file descriptor 0 is the standard input, +1 is the standard output, +and 2 is the standard error output. +The operating system is unaware of these conventions; +it is permissible to close file 0, +or even to replace it by a file open only for writing, +but many programs will be confused by such chicanery. +.PP +Files are normally read or written in sequential order. +The I/O position in the file is called the +.IR "file offset" +and may be set arbitrarily using the +.B seek +system call +.RI ( sys-seek (2)). +An offset can also be passed as a parameter to +.B pread +and +.B pwrite +(see +.IR sys-read (2)). +.PP +Inferno provides no guarantee of consistency should +several processes access a file concurrently. +Guaranteed synchronous writes are not available. +Whether the exclusive-use attributes described in +.IR sys-open (2) +and +.IR sys-stat (2) +will be honoured for a file depends entirely on the underlying file server +(eg, +.IR fs (3)). +Record locking in the underlying file system is not supported by Inferno. +Processes can coordinate their file operations by other mechanisms. +.PP +Atomicity is guaranteed for byte counts no larger than the +.I 9P +message size; +see +.IR read (5). +.PP +Directories may be opened and read +much like regular files (see +.IR sys-dirread (2)). +They contain an integral number of records, +called +.IR "directory entries" . +Each entry is a machine-independent representation of +the information about an existing file in the directory, +including the +name, +ownership, +permission, +access dates, +and so on. +.PP +The entry +corresponding to an arbitrary file can be retrieved by +.B stat +or +.B fstat +(see +.IR sys-stat (2)); +.B wstat +and +.B fwstat +write back entries, thus changing the properties of a file. +.PP +New files are made with +.B create +and deleted with +.B remove +(see +.IR sys-open (2) +and +.IR sys-remove (2)). +Directories may not directly be written; +.BR create , +.BR remove , +.BR wstat , +and +.B fwstat +change them. +.SS "Process execution and control" +A Limbo +.IR process , +also called a +.IR thread , +is the basic unit of computation for Limbo application programming +in the Inferno operating system. +.PP +A newly spawned thread shares the same +.I "address space +as that of its creator thread. +That is, the set of global variables that is in scope to +one is in scope to the other. +A change made by one can be detected by the other. +Since they are scheduled independently, +they should synchronize their +actions to share this data coherently. +.PP +The newly created thread also shares the same set of open file descriptors +and the current working directory. +.PP +Processes are also organized into +.I "process groups +.RB ( pgrps ) +that represent the set of threads of a single +application and can be terminated by a single kill request; see +.IR prog (3). +.PP +A newly-spawned thread automatically inherits the following attributes: +file name space (including shared +current directory); file descriptor group; and process group. +A thread can subsequently +acquire a new, independent name space, new or modified file descriptor group, +or new process group. +See +.IR sys-pctl (2). +.SS "User/Group Identity" +The Inferno operating system maintains user identifier +.RB ( uid ) +and group identifier +.RB ( gid ) +strings +for each process. +These values are also attributes of files and directories. +See +.IR sys-stat (2) +and +.IR stat (5). +A comparison of process and file identities take place when a process +attempts to open or create a file. +.PP +When a path name crosses from one server to another the process identities are +mapped by each server receiving a file request. +.PP +The +.B uid +and +.B gid +strings are assigned to the thread created +when a user logs into Inferno and cannot be changed. +.SH SOURCE +.B /emu/port/inferno.c +.br +.B /os/port/inferno.c +.SH DIAGNOSTICS +System calls often return an integer status, or tuples containing results and +an integer status, +and follow the convention that a status of -1 is returned when an error occurred; +a non-negative value (usually 0) is returned on success. +If an error occurred, a detailed error message can be obtained for the +most recent error, using the +.RB ` %r ' +format of +.IR sys-print (2). +Exceptions to this general rule are noted in the +`DIAGNOSTICS' sections. +.PP +From Limbo, system calls that return values on the heap, for instance strings in +.B Dir +structures returned by +.IR sys-stat (2), +and arrays of directory entries returned by +.IR sys-readdir (2), +can also raise ``out of memory: heap'' exceptions when attempting +to create the return value. diff --git a/static/inferno/man2/sys-bind.2 b/static/inferno/man2/sys-bind.2 new file mode 100644 index 00000000..bfec4b2c --- /dev/null +++ b/static/inferno/man2/sys-bind.2 @@ -0,0 +1,201 @@ +.TH SYS-BIND 2 +.SH NAME +bind, mount, unmount \- change file name space +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +bind: fn(name, old: string, flag: int): int; +mount: fn(fd: ref FD; afd: ref FD, old: string, flag: int, aname: string): + int; +unmount: fn(name, old: string): int; +.EE +.SH DESCRIPTION +.B Bind +and +.B mount +modify the file name space of the current process and its name space group. +For both calls, +.I old +is the name of an existing file or directory in the +current name space where the modification is to be made. +The name +.I old +is +evaluated +as described in +.IR sys-intro (2) +except that no translation of the final path element is done. +.PP +For +.BR bind , +.I name +is the name of another (or possibly the same) +existing file or directory in +the current name space. +After a successful +.B bind +call, the file name +.I old +is an alias for the object originally named by +.IR name ; +if the modification does not hide the original, +.I name +will also still refer to its original file. +The evaluation of +.I name +happens at the time of the +.BR bind , +not when the binding is later used. +.PP +The +.I fd +argument to +.B mount +is a file descriptor of an open pipe or network connection +to a file server ready to receive 9P messages. +The +.I old +file must be a directory. +After a successful +.BR mount , +the file tree +.I served +(see below) by +.I fd +will be visible with its root directory having name +.IR old . +If the requested service requires authentication, the file descriptor +.I afd +must be open on an authentication file for the +requested service; +otherwise it should be +.BR nil . +.PP +The +.I flag +controls details of the modification made to the name space. +In the following, +.I new +refers to the file +as defined by +.I name +or the root directory served by +.IR fd . +Either both +.I old +and new files must be directories, +or both must not be directories. +.I Flag +can be one of: +.TF Sys->MBEFORE +.TP +.B Sys->MREPL +Replace the +.I old +file by the new one. +Henceforth, an evaluation of +.I old +will be translated to the new file. +If they are directories (for +.BR mount , +this condition is true by definition), +.I old +becomes a +.I "union directory" +consisting of one directory (the new file). +.TP +.B Sys->MBEFORE +Both the +.I old +and new files must be directories. +Add the constituent files of the new directory +to the union directory at +.I old +so its contents appear first in the union. +After a +.B Sys->MBEFORE +.B bind +or +.BR mount , +the new directory will be searched first when evaluating file names +in the union directory. +.TP +.B Sys->MAFTER +Like +.B Sys->MBEFORE +but the new directory goes at the end of the union. +.PD +.PP +In addition, there is a +.B Sys->MCREATE +flag that can be OR'd with any of the above. +When a +.B create +call (see +.IR sys-open (2)) +attempts to create in a union directory, and the file does not exist, +the elements of the union are searched in order until one is found +with +.B Sys->MCREATE +set. +The file is created in that directory; if that attempt fails, +the +.B create +fails. +.PP +With +.BR mount , +the file descriptor +.I fd +must be open for reading and writing +and connected to a file server. +After the +.BR mount , +the file tree starting at +.I old +is served by a kernel +.IR mnt (3) +device. +That device will turn operations in the tree into messages to the server on +.IR fd . +.I Aname +selects among different +file trees on the server; the +empty (or nil) +string chooses the default tree. +.PP +The effects of +.B bind +and +.B mount +can be undone by +.BR unmount . +If +.I name +is +.BR nil , +everything bound to or mounted upon +.I old +is unbound or unmounted. +If +.I name +is not +.BR nil , +it is evaluated as described above for +.BR bind , +and the effect of binding or mounting that particular result on +.I old +is undone. +.SH SEE ALSO +.IR sys-intro (2) +.SH DIAGNOSTICS +The return value is a positive integer (a unique sequence number) for +success, \-1 for failure. +.SH BUGS +.B Mount +will not return until it has successfully attached +to the file server, so the thread doing a +.B mount +cannot be the one serving. diff --git a/static/inferno/man2/sys-byte2char.2 b/static/inferno/man2/sys-byte2char.2 new file mode 100644 index 00000000..22a0a479 --- /dev/null +++ b/static/inferno/man2/sys-byte2char.2 @@ -0,0 +1,68 @@ +.TH SYS-BYTE2CHAR 2 +.SH NAME +byte2char, char2byte \- convert between bytes and characters +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +byte2char: fn(buf: array of byte, n: int): (int, int, int); +char2byte: fn(c: int, buf: array of byte, n: int): int; +.EE +.SH DESCRIPTION +.B Byte2char +converts a byte sequence to one Unicode character. +.I Buf +is an array of bytes and +.I n +is the index of the first byte to examine in the array. +The returned tuple, say +.BI ( c , +.IB length , +.IB status )\f1, +specifies the result of the translation: +.I c +is the resulting Unicode character, +.I status +is non-zero if the bytes are a valid UTF sequence and zero otherwise, +and +.I length +is set to the number of bytes consumed by the translation. +If the input sequence is not long enough to determine its validity, +.B byte2char +consumes zero bytes; +if the input sequence is otherwise invalid, +.B byte2char +consumes one input byte and generates an error character +.RB ( Sys->UTFerror , +.BR 16r80 ), +which prints in most fonts as a boxed question mark. +.PP +.B Char2byte +performs the inverse of +.BR byte2char . +It translates a Unicode character, +.IR c , +to a UTF byte sequence, which +is placed in successive bytes starting at +.IR buf [\c +.IR n ]. +The longest UTF sequence for a single Unicode character is +.B Sys->UTFmax +(4) bytes. +If the translation succeeds, +.B char2byte +returns the number of bytes placed in the buffer. +If the buffer is too small to hold the result, +.B char2byte +returns zero and leaves the array unchanged. +.SH SOURCE +.B /libinterp/runt.c +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-utfbytes (2), +.IR utf (6) +.SH DIAGNOSTICS +A run-time error occurs if +.I n +exceeds the bounds of the array. diff --git a/static/inferno/man2/sys-chdir.2 b/static/inferno/man2/sys-chdir.2 new file mode 100644 index 00000000..8604d7f9 --- /dev/null +++ b/static/inferno/man2/sys-chdir.2 @@ -0,0 +1,40 @@ +.TH SYS-CHDIR 2 +.SH NAME +chdir \- change working directory +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +chdir: fn(path: string): int; +.EE +.SH DESCRIPTION +.B Chdir +changes the working directory +of the invoking process and its file name space group to +.IR path . +.PP +The working directory is the starting point for +evaluating file names that do not begin with +.B / +or +.BR # , +as explained in +.IR sys-intro (2). +.PP +When Inferno boots, +the initial process has +.B / +for its working directory. +.PP +Applications that invoke +.B chdir +normally use the +.B FORKNS +option of +.IR sys-pctl (2) +to prevent the change from affecting the surrounding environment. +.SH DIAGNOSTICS +Returns 0 on success; -1 on failure. +.SH SEE ALSO +.IR sys-intro (2) diff --git a/static/inferno/man2/sys-dial.2 b/static/inferno/man2/sys-dial.2 new file mode 100644 index 00000000..1c956dc1 --- /dev/null +++ b/static/inferno/man2/sys-dial.2 @@ -0,0 +1,255 @@ +.TH SYS-DIAL 2 +.SH NAME +announce, dial, listen \- make network connections +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +Connection: adt +{ + dfd: ref FD; # data file + cfd: ref FD; # control file + dir: string; # pathname of line directory +}; + +announce: fn(addr: string): (int, Connection); +dial: fn(addr, local: string): (int, Connection); +listen: fn(c: Connection): (int, Connection); +.EE +.SH DESCRIPTION +These routines in the +.B Sys +module are still used by some existing code. +They are deprecated, and new applications should use the +.B Dial +module described in +.IR dial (2). +.PP +These routines establish network connections. +Their description uses the following definitions: +.TF network +.PD +.TP +.I addr +is a network address in one of the following forms: +.br +.IP +.IB network ! netaddr ! service\f1 +.br +.IB network ! netaddr\f1 +.br +.IR netaddr +.TP +.I network +Any directory listed in +.B /net +(eg, +.BR tcp ), +or the special token, +.BR net . +The name +.B net +acts as a free variable that stands for any network in common +between the source and +.IR netaddr . +A network name can be preceded by the full path name of a directory +of networks, using the form +.I /dir/network +(eg, +.BR /net.alt/tcp ). +.TP +.I netaddr +A host name, a domain name, a network address, +or a meta-name of the form +.BI $ attribute\f1, +which +is replaced by +.I value +from the corresponding attribute-value pair +in the connection server data base (see +.IR db (6)). +.PP +The functions +.B dial +and +.B announce +translate a given +.I addr +to an actual network address using +the connection server +.IR cs (8). +If a logical name +.I addr +corresponds to several network addresses, +for instance if a destination machine has several interfaces, +.I cs +will return them all. +In particular, if +.I addr +is +.BR net , +.I cs +will return addresses on +all networks that are common to source and destination. +The translation procedure accesses +.I cs +using its interface file +.BR cs , +which is sought as follows: +first, in an explicit directory +.BI / dir +if one was given in +.IR network ; +second, in the standard directory +.BR /net ; +and finally in the directory +.BR /net.alt +.RB ( dial +only). +If the connection server cannot be found, +the +.I addr +is used as-is. +.PP +If a connection attempt is successful, the +.B dir +member of the resulting +.B Connection +will be +the path name of a +.I line directory +that has files for accessing the connection. +One line directory exists for each possible connection. +The +.B data +file in the line directory is opened to +make a connection, and read and written to communicate with the destination. +The +.B ctl +file in the line directory can be used to send commands to the line. +See +.IR ip (3) +for messages that can be written to the +.B ctl +file. +The last close of the +.B data +or +.B ctl +file will close the connection. +The +.B remote +file in the line directory contains the address called; the file +.B local +contains the local address assigned. +.PP +The +.B dial +routine +makes a call to destination +.I addr +on a multiplexed network. +If the connection server returns several addresses, +.B dial +tries each in turn, until a connection is made +or no addresses remain to be tried. +It returns a +.B Connection +containing a file descriptor +.B dfd +open for reading and writing the +.B data +file in the line directory, +and a file descriptor +.B cfd +open for reading and writing the +.B ctl +file. +If +.IR local +is non-empty, and +the network allows the local address to be set, +as is the case with UDP and TCP port numbers, +the local address will be set to +.IR local . +.PP +.B Announce +and +.B listen +are the complements of +.BR dial . +.B Announce +establishes a network name to which incoming calls can be made. +In +.IR addr , +.I netaddr +gives the name or address of one of the local host's interfaces on which to listen for +calls to the given +.IR service ; +it can be +.B * +to listen for calls on any interface on +.IR network . +.B Announce +returns a +.B Connection +structure in which only the +.B cfd +descriptor is open, on the control file representing the announcement. +.B Listen +takes as its only argument the +.B Connection +structure of a successful call to +.BR announce . +When a call is received, +.B listen +returns an open +.B Connection +structure as if from +.BR dial , +except that only the +.B cfd +descriptor is open, +.B dfd +is nil, +and the caller must open the data file for itself. +.SH EXAMPLES +.PP +Make a call and return an open file descriptor to +use for communications: +.IP +.EX +callkremvax(): (int, Connection) +{ + return sys->dial("tcp!kremvax!80", nil); +} +.EE +.PP +Call the local certificate signer: +.IP +.EX +dialsigner(service: string): (int, Connection) +{ + return sys->dial("net!$SIGNER!inflogin", nil); +} +.EE +.SH SOURCE +.B /emu/port/inferno.c +.br +.B /emu/port/dial.c +.br +.B /os/port/inferno.c +.br +.B /os/port/dial.c +.SH DIAGNOSTICS +The integer valued functions return 0 on success and -1 on error; +the system error string is set. +The integer component of the tuple returned by the other functions +follows the same convention. +.SH BUGS +Note that +.B listen +does not open the +.B data +file. diff --git a/static/inferno/man2/sys-dirread.2 b/static/inferno/man2/sys-dirread.2 new file mode 100644 index 00000000..d39c9b93 --- /dev/null +++ b/static/inferno/man2/sys-dirread.2 @@ -0,0 +1,59 @@ +.TH SYS-DIRREAD 2 +.SH NAME +dirread \- read directory +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +dirread: fn(fd: ref FD): (int, array of Dir); +.EE +.SH DESCRIPTION +.B Dirread +reads the contents of the directory pointed to by the open file descriptor +.IR fd , +returning a tuple containing an array +with one +.B Dir +structure for each directory entry read. +These +.B Dir +structures are equivalent to the result of a +.B stat +call on each file in the directory. +See +.IR sys-stat (2) +for a description of +.B stat +and +.BR Dir . +.PP +A successful +.B dirread +returns a tuple giving the number of entries read and the resulting array. +A return of (0,nil) indicates the end of the directory. +Directory entries are variable length in general; +the file offset is advanced by the number of bytes actually read. +.PP +Seeks (see +.IR sys-seek (2)) +are allowed on directories only to seek to the start. +.PP +In general, several calls to +.B dirread +will be needed to read the whole directory. +.IR Readdir (2) +provides functions that return all the directory entries at once, +optionally sorted. +.SH SEE ALSO +.IR readdir (2), +.IR sys-intro (2), +.IR sys-open (2), +.IR sys-read (2), +.IR sys-seek (2), +.IR sys-stat (2) +.SH DIAGNOSTICS +The integer in +.BR dirread 's +return tuple has a value of -1 on error, and 0 on end of file. +The array element of the tuple is nil in both cases. diff --git a/static/inferno/man2/sys-dup.2 b/static/inferno/man2/sys-dup.2 new file mode 100644 index 00000000..6ecb8953 --- /dev/null +++ b/static/inferno/man2/sys-dup.2 @@ -0,0 +1,75 @@ +.TH SYS-DUP 2 +.SH NAME +dup, fildes \- duplicate an open file descriptor +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +dup: fn(oldfd, newfd: int): int; +fildes: fn(fd: int): ref FD; +.EE +.fi +.SH DESCRIPTION +The Limbo programming language and its libraries +manage I/O via references to instances of abstract data type, +.BR FD , +called a +.IR "Limbo file descriptor", +or simply `file descriptor' when the context is understood. +.B FD +holds an integer-valued file descriptor, the form used +by the operating system, in a structure that can be reference counted +and garbage collected. +When the +.B FD +value is reclaimed, the system automatically closes the associated integer file descriptor. +There are occasions when a program must access the underlying +integer file descriptor, such as when rearranging the standard input +and output for a new subprocess. +.PP +The +.B dup +call takes a valid integer file descriptor, +.IR oldfd , +referring to an open file, +and +returns a new integer file descriptor referring to the same file. +If +.I newfd +is in the range of legal file descriptors, +.B dup +will use that for the new file descriptor +(closing any old file associated with +.IR newfd ); +if +.I newfd +is \-1 the system chooses the lowest available file descriptor. +If a suitable file descriptor cannot be found, +.B dup +returns \-1. +.PP +.B Fildes +duplicates the integer file descriptor +.IR fd , +as if by +.BI "sys->dup(" fd ",-1"), +and returns a reference to the new descriptor as an +.B FD +value, +making it usable by other functions in +.BR Sys , +such as +.IR sys-print (2) +and +.IR sys-read (2). +(Note that as described above, the newly-allocated file descriptor will be closed automatically when the +.B FD +value is reclaimed.) +.B Fildes +returns nil +if it cannot duplicate +.IR fd . +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-open (2) diff --git a/static/inferno/man2/sys-export.2 b/static/inferno/man2/sys-export.2 new file mode 100644 index 00000000..3872d5dc --- /dev/null +++ b/static/inferno/man2/sys-export.2 @@ -0,0 +1,116 @@ +.TH SYS-EXPORT 2 +.SH NAME +export \- export a name space +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +export: fn(fd: ref FD, dir: string, flag: int): int; +.EE +.SH DESCRIPTION +.B Export +receives and replies +to 9P requests from a client on a connection represented by +.IR fd , +for file operations on the part of the current file name space +rooted at +.IR dir , +which is thus exported. +This is the server end of the client's +.B mount +call. +Names presented by the client are interpreted relative to directory +.IR dir , +which can be adjusted using +.IR sys-pctl (2) +and +.IR sys-bind (2) +before export. +The file descriptor +.I fd +must be open for reading and writing, and neither mounted elsewhere nor already exported. +.PP +Commonly, +.BR export 's +first argument is a file descriptor open on the data file in the +.B dir +of a +.B Connection +returned by +.B listen +(see +.IR dial (2)). +Before calling +.BR export , +the connection on +.I fd +can optionally be authenticated and set for encryption or digesting using the +functions in +.IR security-auth (2). +.PP +The +.B export +function takes two mutually exclusive flags: +.TP +.B Sys->EXPWAIT +.B Export +blocks until all client requests are complete. +.TP +.B Sys->EXPASYNC +Client requests are handled by a background (kernel) process. +.B Export +returns immediately. +The serving process terminates when the client hangs up. +.SH EXAMPLES +.PP +Export a given directory on +.BR fd , +protecting it from subsequent changes: +.IP +.EX +exportdir(fd: ref Sys->FD, dir: string, pid: chan of int) +{ + pid <-= sys->pctl(Sys->FORKNS|Sys->FORKENV|Sys->NEWFD, fd.fd :: nil); + sys->export(fd, dir, Sys->EXPWAIT); +} +.EE +.PP +The +.B FORKNS +given to +.B pctl +forks the name space, and +prevents the +.B sys->export +from seeing the effects of subsequent mounts by the process +that calls or spawns +.BR exportdir . +The +.B exportdir +function above might be called using: +.IP +.EX +pid := chan of int; +spawn exportdir(fd, "/", pid); +expid := <-pid; +.EE +.PP +Service will stop automatically when the connection +.B fd +returns end-of-file (eg, when it hangs up), +but it can also be stopped locally by killing +.BR expid . +.EE +.SH SOURCE +.B /emu/port/inferno.c +.br +.B /emu/port/exportfs.c +.br +.B /os/port/inferno.c +.br +.B /os/port/exportfs.c +.SH DIAGNOSTICS +.B Export +returns a non-negative value on success and -1 on error; +the system error string is set. diff --git a/static/inferno/man2/sys-fauth.2 b/static/inferno/man2/sys-fauth.2 new file mode 100644 index 00000000..15ec8c44 --- /dev/null +++ b/static/inferno/man2/sys-fauth.2 @@ -0,0 +1,61 @@ +.TH SYS-FAUTH 2 +.SH NAME +fauth \- set up authentication on a file descriptor to a file server +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +fauth: fn(fd: ref FD, aname: string): ref FD; +.EE +.SH DESCRIPTION +.B Fauth +provides a means for the current user to authenticate to access +resources available through the 9P connection represented by +.IR fd . +The return value is a file descriptor, conventionally called +.IR afd , +that is subsequently used to execute the authentication protocol +for the server. +After successful authentication, +.I afd +may be passed as the second argument to a subsequent +.B mount +call (see +.IR sys-bind (2)), +with the same +.IR aname, +as a ticket-of-entry for the user. +.PP +If +.B fauth +returns nil, the error case, that means the file server does not require +authentication for the connection, and +.I afd +should be nil +in the call to +.BR mount. +.ig +.PP +It is rare to use +.IR fauth +directly; more commonly +.I amount +(see +.IR auth (2)) +is used. +.. +.SH SEE ALSO +.IR attach (5), +.IR security-auth (2) +.ig +(particularly +.BR amount ), +.IR authsrv (6) +.. +.SH DIAGNOSTICS +The system error string is set on error, +including the server not requiring authentication, +and +.B fauth +returns nil. diff --git a/static/inferno/man2/sys-fd2path.2 b/static/inferno/man2/sys-fd2path.2 new file mode 100644 index 00000000..4890e0fb --- /dev/null +++ b/static/inferno/man2/sys-fd2path.2 @@ -0,0 +1,46 @@ +.TH FD2PATH 2 +.SH NAME +fd2path \- return file name associated with file descriptor +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +fd2path(fd: ref FD): string; +.EE +.SH DESCRIPTION +As described in +.IR intro (2), +the kernel stores a rooted path name with every open file or directory; +typically, it is the name used in the original access of the file. +.B Fd2path +returns the path name associated with open file descriptor +.IR fd . +(It returns nil if an error occurs.) +.PP +Changes to the underlying name space do not update the path name +stored with the file descriptor. +Therefore, +the path returned by +.B fd2path +may no longer refer to the same file (or indeed any file) +after some component directory or file in the path has been removed, renamed +or rebound. +.PP +As an example, +.IR workdir (2) +is implemented by opening +.B . +and executing +.B fd2path +on the resulting file descriptor. +.SH SEE ALSO +.IR bind (1), +.IR ns (1), +.IR sys-bind (2), +.IR sys-intro (2), +.IR workdir (2), +.IR prog (3) +.SH DIAGNOSTICS +.B Fd2path +returns nil on error and sets the system error string. diff --git a/static/inferno/man2/sys-file2chan.2 b/static/inferno/man2/sys-file2chan.2 new file mode 100644 index 00000000..a3f18275 --- /dev/null +++ b/static/inferno/man2/sys-file2chan.2 @@ -0,0 +1,171 @@ +.TH SYS-FILE2CHAN 2 +.SH NAME +file2chan \- create file connected to Limbo channel +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +Rread: type chan of (array of byte, string); +Rwrite: type chan of (int, string); +FileIO: adt +{ + read: chan of (int, int, int, Rread); + write: chan of (int, array of byte, int, Rwrite); +}; + +file2chan: fn(dir, file: string): ref FileIO; +.EE +.fi +.SH DESCRIPTION +.B File2chan +presents an interface for binding Limbo channels to files in the file name space. +A +.I server +program calls +.B file2chan +to create a +.I file +in a directory +.IR dir , +which must be a directory on which device +.RB ` #s ' +has been bound +(see +.IR srv (3)). +A +.I client +program can open the file for reading or writing (see +.IR sys-open (2) +and +.IR sys-read (2)) +to communicate with the server. +.PP +.B File2chan +returns a +.B FileIO +type holding two channels used to deliver tuples representing +the contents of the +.B Tread +and +.B Twrite +9P messages received by the system on the server's behalf; see +.IR intro (5). +.PP +When the client invokes the +.B read +system call on the file, the server +receives a tuple, say +.BI ( offset\fP,\fP\ count\fP,\fP\ fid\fP,\fP\ rc )\f1, +on the +.B read +channel. +The request asks for +.I count +bytes of data, starting at +.I offset +bytes from the beginning of the file +associated with +.IR fid . +The server sends its reply to the client by transmitting a tuple, say +.BI ( data\fP,\fP\ error )\f1, +that contains the +.I data +for the +.BR read , +on the channel +.I rc +received as part of the +.B read +tuple. +If the request was successful, the +.I error +string should be +.BR nil . +If an error occurred, +.I error +should be a diagnostic string, +and the +.I data +array should be +.BR nil . +The client blocks in the +.B read +system call until the server sends its reply. +The client receives only +.I count +bytes even if +.I data +is larger. +.PP +When the client does a +.B write +system call on the file, +the server receives a tuple, +.BI ( offset\fP,\fP\ data\fP,\fP\ fid\fP,\fP\ wc )\f1, +on the +.B write +channel. +A +.BI ( count\fP,\fP\ error ) +response is sent back on the +.I wc +channel received in the +.B write +tuple: +.I count +gives the number of bytes written (zero if an error occurs), and +.I error +is an empty or +.B nil +string or an explanation of the problem. +.PP +The +.I fid +received by the server can be used to manage the multiplexing of multiple +active clients sharing a single file; see +.IR intro (5) +for details. +Each distinct +open of the file will yield a distinct +.IR fid , +unique to that open, which will appear in the read and write +messages corresponding to reads and writes on that open instance of the file. +.PP +When the client closes the file, +the server will be sent a +.B read +message with a nil +.IR rc , +then a +.B write +message with a nil +.IR wc . +A server typically ignores the former and uses the latter as a signal to stop processing for the given client +(more precisely, the given +.IR fid ). +Note that the +.I fid +can later be re-used by another client. +.SH SOURCE +.B /emu/port/devsrv.c +.br +.B /os/port/devsrv.c +.SH SEE ALSO +.IR sh-file2chan (1), +.IR sys-intro (2), +.IR sys-open (2), +.IR sys-read (2), +.IR sys-bind (2), +.IR intro (5) +.SH BUGS +.B Read +and +.B write +system calls for the file will not return until the +server sends its reply on the appropriate channel, +so the process doing the +.B read +or +.B write +cannot be the one serving. diff --git a/static/inferno/man2/sys-fversion.2 b/static/inferno/man2/sys-fversion.2 new file mode 100644 index 00000000..94a43139 --- /dev/null +++ b/static/inferno/man2/sys-fversion.2 @@ -0,0 +1,71 @@ +.TH SYS-FVERSION 2 +.SH NAME +fversion \- initialize 9P connection and negotiate version +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +fversion: fn(fd: ref FD, bufsize: int, version: string): (int, string); +.EE +.SH DESCRIPTION +.B Fversion +initialises the 9P connection represented by +.I fd +and negotiates the maximum message size and the version of the protocol to be used. +.PP +The +.I bufsize +determines the size of the I/O buffer used to stage 9P requests to the server, +subject to the constraints of the server itself. +The +.I version +is a text string that represents the highest version level the protocol will support. +.PP +.B Fversion +returns a tuple +.RI ( n , useversion ) +where +.I n +is -1 if the request was rejected, and otherwise +.I n +is +.I bufsize +and +.I useversion +is a string representing the negotiated, possibly lower, version of the protocol. +.PP +Default values of zero for +.I bufsize +and the empty string for +.I version +will negotiate sensible defaults for the connection. +.PP +The interpretation of the version strings is defined in +.IR version (5). +.PP +It is rare to use +.BR fversion +directly; usually the default negotiation performed +by the kernel during +.B mount +(see +.IR sys-bind (2)) +is sufficient. +.SH SEE ALSO +.IR sys-fauth (2), +.IR intro (5), +.IR version (5). +.SH DIAGNOSTICS +.B Fversion +returns a value of -1 for +.I n +on error, including failure to negotiate acceptable values, +and sets the system error string. +.SH BUGS +The returned value of +.I n +when no error occurs should be the negotiated message size +but is currently the original +.I bufsize +parameter. diff --git a/static/inferno/man2/sys-iounit.2 b/static/inferno/man2/sys-iounit.2 new file mode 100644 index 00000000..b4727411 --- /dev/null +++ b/static/inferno/man2/sys-iounit.2 @@ -0,0 +1,35 @@ +.TH SYS-IOUNIT 2 +.SH NAME +iounit \- return size of atomic I/O unit for file descriptor +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +iounit: fn(fd: ref FD): int; +.EE +.SH DESCRIPTION +Reads and writes of files are transmitted using the 9P protocol (see +.IR intro (5)) +and in general, operations involving large amounts of data must be +broken into smaller pieces by the operating system. +The `I/O unit' associated with each file descriptor records the maximum +size, in bytes, that may be read or written without breaking up the transfer. +.PP +The +.B iounit +system call returns the I/O unit size for the open file +.IR fd . +Certain file descriptors, particularly those associated with devices, may +have no specific I/O unit, in which case +.B iounit +will return zero. +.SH SOURCE +.B /emu/port/inferno.c +.br +.B /os/port/inferno.c +.SH SEE ALSO +.IR sys-dup (2), +.IR read (5) +.SH DIAGNOSTICS +Returns zero if any error occurs or if the I/O unit size of the fd is unspecified or unknown. diff --git a/static/inferno/man2/sys-millisec.2 b/static/inferno/man2/sys-millisec.2 new file mode 100644 index 00000000..d8e7d0bb --- /dev/null +++ b/static/inferno/man2/sys-millisec.2 @@ -0,0 +1,24 @@ +.TH SYS-MILLISEC 2 +.SH NAME +millisec \- millisecond timer +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +millisec: fn(): int; +.EE +.SH DESCRIPTION +.B Millisec +returns the value of an internal system clock, in milliseconds. +The actual resolution of the clock is a property of the underlying +system and may be coarser than a millisecond. +The epoch is arbitrary, so +.B millisec +is useful for measuring durations but not absolute time. +If the system operates continuously, the millisecond counter overflows +every few months; +a reboot resets the epoch. +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-sleep (2) diff --git a/static/inferno/man2/sys-open.2 b/static/inferno/man2/sys-open.2 new file mode 100644 index 00000000..5795ce32 --- /dev/null +++ b/static/inferno/man2/sys-open.2 @@ -0,0 +1,135 @@ +.TH SYS-OPEN 2 +.SH NAME +open, create \- open a file for reading or writing, create file +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +create: fn(file: string, omode, perm: int): ref FD; +open: fn(file: string, omode: int): ref FD; +.EE +.SH DESCRIPTION +.B Open +opens the +.I file +for I/O and returns an associated file descriptor. +.I Omode +is one of +.BR Sys->OREAD , +.BR Sys->OWRITE , +or +.BR Sys->ORDWR , +asking for permission to read, write, or read and write, respectively. +There are two values that can be OR'd with those to form +.IR omode : +.B Sys->OTRUNC +says to truncate the file before opening it, which requires write permission +even if +.I omode +is +.BR Sys->OREAD ; +and +.B Sys->ORCLOSE +says to remove the file when it is closed (ie, when the last reference +to this file descriptor goes away). +.PP +.B Open +returns +.B nil +if the file does not exist, if the file name is unacceptable, if the user does not have +permission to open it as requested +(see +.IR sys-stat (2) +for a description of permissions), +or if any other error occurs. +.PP +.B Create +creates a new +.I file +or prepares to rewrite an existing +.IR file , +opens it according to +.I omode +(as described for +.BR open ), +and returns an associated file descriptor. +.PP +If the file is new, +the owner is set to the +.I "user id +of the creating process group, +the group to that of the containing directory, +and the permissions to +.I perm +ANDed with the permissions of the containing directory. +The bits in +.I perm +are the same as those +in the file mode returned by +.IR sys-stat (2). +.PP +If the file already exists, +it is truncated to 0 length, +but the permissions, owner, and group remain unchanged. +.PP +The created file will be a directory if the +.B Sys->DMDIR +bit is set in +.IR perm , +and +.I omode +is +.BR Sys->OREAD . +The file will be exclusive-use if the +.B Sys->DMEXCL +bit is set in +.I perm +and the underlying file server supports it; +see +.IR open (5) +for details. +It will be append-only if the +.B Sys->DMAPPEND +bit is set, and the underlying file server supports it. +.PP +.B Create +returns +.B nil +if the path up to the last element of +.I file +cannot be evaluated, if the file name is unacceptable, +if the user does not have write permission in the final directory, +if the file already exists and does not permit the access defined by +.IR omode, +or if any other error occurs. +.PP +If the file is new and the directory in which it is created is +a union directory (see +.IR sys-intro (2)) +then the constituent directory where the file is created +depends on the structure of the union: see +.IR sys-bind (2). +.PP +Since create may succeed even if the file exists, a special mechanism +is necessary for applications that require an atomic create operation. +If the +.B Sys->OEXCL +bit is set in the mode for a create, the call succeeds only if +the file does not already exist; see +.IR open (5) +for details. +.PP +There is no explicit ``close'' routine: +when the last reference to the file descriptor is released, +the system closes the associated file. +For devices and network protocols where shutdown must be guaranteed, +write a +.B hangup +message to the associated control file and use the return value of the +.B write +to verify closure. +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-bind (2), +.IR sys-stat (2) diff --git a/static/inferno/man2/sys-pctl.2 b/static/inferno/man2/sys-pctl.2 new file mode 100644 index 00000000..6160e1ed --- /dev/null +++ b/static/inferno/man2/sys-pctl.2 @@ -0,0 +1,141 @@ +.TH SYS-PCTL 2 +.SH NAME +pctl \- process control +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +pctl: fn(flags: int, movefd: list of int): int; +.EE +.SH DESCRIPTION +A newly spawned Limbo process (also known as a thread) +shares with its parent process a number of resources and properties, +such as file name space, open file descriptors, current working directory, +and so on. +.B Pctl +controls this sharing, allowing a process to gain a copy of a resource +rather than to share it, to start with a null resource, and so on. +.PP +The set of processes sharing a property are called a group; +for example the set of processes sharing a name space are called a name space group. +Each process is a member of a +.IR "process group" , +typically the set of threads functioning as a single program. +All the members of a process group +may be terminated at once using the +.B killgrp +control message in the +.IR prog (3) +device. +.PP +A call to +.B pctl +affects the calling process and, indirectly according to +.IR flags , +any other processes sharing properties with it. +The +.I flags +to +.B pctl +are: +.TF FORKENV +.PD +.TP +.B NEWFD +Give the process a new file descriptor group. +All file descriptors are closed except those listed in +.IR movefd , +which are preserved in the new group. +After this call, changes the process makes to its set of open file descriptors +will not be visible to other processes. +.TP +.B FORKFD +Place the process in a new file descriptor group +containing a copy +of the current set of file descriptors. +The file descriptors listed in +.I movefd +are closed in the +.I old +group. +After this call, changes the process makes to its set of open file descriptors +will not be visible to other processes. +.TP +.B NEWNS +Place the process in a new file name space group in which the current directory +is made the root directory, +.LR / , +of the new name space. +The current directory is unaffected by this call. +.TP +.B FORKNS +Place the process in a new file name space group +containing a copy +of the current name space. +After this call, changes the process makes to its name space, including +.B chdir +calls, +will not affect other processes. +.TP +.B NODEVS +Set the current file name space group to prevent subsequent access to +the roots of file trees implemented by a device driver (ie, the use of path +names beginning with +.BR # , +as described by +.IR intro (3)). +Even after +.B NODEVS +the following devices can be attached, which are either +private or can be separately controlled: +.IR pipe (3) , +.IR env (3), +.IR srv (3) +and +.IR ssl (3). +.TP +.B NEWENV +Place the process in a new empty environment group containing +no environment variables. +After this call, changes the process makes to its environment will +not affect other processes. +.TP +.B FORKENV +Place the process in a new environment group containing +a copy of the current environment variables. +After this call, changes the process makes to its environment will +not affect other processes. +.TP +.B NEWPGRP +Establish a new process group with a group id equal to that of the pid +of the calling process. +.PP +The Inferno shell +.IR sh (1) +uses +.B FORKFD +when starting a command; +its +.I pctl +built-in (see +.IR sh-std (1)) +can invoke the other effects when needed. +The window manager +.IR wm (1) +uses +.B NEWPGRP|FORKFD +when starting a window manager application. +A network server might use +.B NEWPGRP|FORKNS|FORKFD|FORKENV +to insulate itself completely from services it starts. +.PP +The return value of +.B pctl +is the numerical process id of the calling process, which can be used for example to +access its +.IR prog (3) +files. +.SH SEE ALSO +.IR sh-std (1), +.IR sys-intro (2) diff --git a/static/inferno/man2/sys-pipe.2 b/static/inferno/man2/sys-pipe.2 new file mode 100644 index 00000000..bc43e060 --- /dev/null +++ b/static/inferno/man2/sys-pipe.2 @@ -0,0 +1,45 @@ +.TH SYS-PIPE 2 +.SH NAME +pipe \- create an interprocess channel +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +pipe: fn(fds: array of ref FD): int; +.EE +.SH DESCRIPTION +.B Pipe +creates a buffered channel for interprocess I/O via file descriptors. +It allocates a pipe from the pipe device and returns in the array +.B fds +file descriptors for the two pipe ends. Both returned file descriptors are opened for both reading and writing +.RB ( Sys->ORDWR ). +Data written on one file descriptor can be read from the other. +The details of flow control and buffering are given in +.IR pipe (3). +When no references remain to the file descriptor representing +one end of a pipe, and all remaining data has been read at the other end, +subsequent reads at that end will return 0 bytes. +Writes to a pipe with no reader produce an exception. +.PP +The array +.B fds +passed to the system call must have a length of at least 2; +only entries 0 and 1 are updated. +.PP +Limbo applications typically use typed Limbo channels, not pipes, for efficient +communication by cooperating processes. +Pipes are still useful, however, +to connect applications that do not (or cannot) share such channels, +or when a system interface requires a file descriptor. +For instance, a process that serves the 9P protocol can +pass the file descriptor for one end of a pipe to +.B Sys->mount +(see +.IR sys-bind (2)), +and read and write 9P messages on the other end of the pipe. +.SH DIAGNOSTICS +Returns 0 on success; -1 on failure. +.SH "SEE ALSO" +.IR pipe (3) diff --git a/static/inferno/man2/sys-print.2 b/static/inferno/man2/sys-print.2 new file mode 100644 index 00000000..0fa21403 --- /dev/null +++ b/static/inferno/man2/sys-print.2 @@ -0,0 +1,276 @@ +.TH SYS-PRINT 2 +.SH NAME +print, aprint, fprint, sprint \- print formatted output +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +aprint: fn(format: string, *): array of byte; +fprint: fn(fd: ref FD, format: string, *): int; +print: fn(format: string, *): int; +sprint: fn(format: string, *): string; +.EE +.SH DESCRIPTION +These functions format and print their arguments as +.SM UTF +text. +.B Print +writes text to the standard output. +.B Fprint +writes to the named output +file descriptor. +.B Sprint +places text +in a string, which it returns. +.B Aprint +is similar but returns the text in +.IR utf (6) +representation as an array of bytes. +.B Print +and +.B fprint +return the number of bytes transmitted +or +a negative value if an error was encountered when writing the output. +.PP +Each of these functions +converts, formats, and prints its +trailing arguments +under control of a +.IR format +string. +The +format +contains two types of objects: +plain characters, which are simply copied to the +output stream, +and conversion specifications, +each of which results in fetching of +zero or more +arguments. +The Limbo compiler recognizes calls to these functions +and checks that the arguments match the format specifications in number and type. +.PP +Each conversion specification has the following format: +.IP +.BI "%" " \fR[\fPflags\fR]\fP verb" +.PP +The verb is a single character and each flag is a single character or a +(decimal) numeric string. +Up to two numeric strings may be used; +the first is called +.IR f1 , +the second +.IR f2 . +They can be separated by +.RB ` . ', +and if one is present, then +.I f1 +and +.I f2 +are taken to be zero if missing, otherwise they are considered `omitted'. +Either or both of the numbers may be replaced with the character +.BR * , +meaning that the actual number will be obtained from the argument list +as an integer. +The flags and numbers are arguments to +the +.I verb +described below. +.PP +.TP +.BR d ", " o ", " x ", " X +The numeric verbs +.BR d , +.BR o , +and +.B x +format their +.B int +arguments in decimal, octal, and hexadecimal (with hex digits in lower-case). +The flag +.B b +is required when the corresponding value is a Limbo +.BR big , +not an +.BR int . +Arguments are taken to be signed, unless the +.B u +flag is given, to force them to be treated as unsigned. +Each interprets the flags +.B \- , +.B , , +and +.B # +to mean left justified, commas every three digits, and alternative format. +If +.I f2 +is not omitted, the number is padded on the left with zeros +until at least +.I f2 +digits appear. +Then, if alternative format is specified +for +.B x +conversion, the number is preceded by +.BR 0x . +Finally, if +.I f1 +is not omitted, the number is padded on the left (or right, if +left justification is specified) with enough blanks to +make the field at least +.I f1 +characters long. +The verb +.B X +is similar to +.BR x , +except that the hexadecimal digits are displayed in upper-case, +and in alternative format, the number is preceded by +.BR 0X . +.PP +.TP +.BR e ", " f ", " g +The floating point verbs +.BR e , +.BR f , +and +.BR g +take a +.B real +argument. +Each interprets the flags +.BR + , +.BR \- , +and +.B # +to mean +always print a sign, +left justified, +and +alternative format. +.I F1 +is the minimum field width and, +if the converted value takes up less than +.I f1 +characters, it is padded on the left (or right, if `left justified') +with spaces. +.I F2 +is the number of digits that are converted after the decimal place for +.BR e +and +.B f +conversions, +and +.I f2 +is the maximum number of significant digits for +.B g +conversions. +The +.B f +verb produces output of the form +.RB [ \- ]\c +.IR digits [\c +.BI \&. digits\fR]. +The +.B e +conversion appends an exponent +.BR e [ \- ]\c +.IR digits . +The +.B g +verb will output the argument in either +.B e +or +.B f +with the goal of producing the smallest output. +Also, trailing zeros are omitted from the fraction part of +the output, and a trailing decimal point appears only if it is followed +by a digit. +When alternative format is specified, the result will always contain a decimal point, +and for +.B g +conversions, trailing zeros are not removed. +.TP +.BR E ", " G +These are the same as +.B e +and +.B g +respectively, but use +.B E +not +.B e +to specify an exponent when one appears. +.TP +.B c +The +.B c +verb converts a single Unicode character +from an +.B int +argument to a UTF encoding, +justified within a field of +.I f1 +characters as described above. +.TP +.B r +The +.B r +verb takes no arguments; it prints the error string +associated with the most recent system error. +.TP +.B s +The +.B s +verb copies a +.B string +to the output. +The number of characters copied +.RI ( n ) +is the minimum +of the size of the string and +.IR f2 . +These +.I n +characters are justified within a field of +.I f1 +characters as described above. +.TP +.B q +The +.B q +verb copies a +.B string +to the output as for +.BR s , +but quotes the string in the style of +.IR sh (1) +only if necessary to avoid ambiguity (for instance +if the string contains quotes or spaces). +If the format string, however, includes the specifier +.B # +(for example +.BR %#q ), +the printed string will always be quoted. +.SH SOURCE +.B /libinterp/runt.c:/^xprint +.br +.B /os/port/print.c +.br +.B /lib9/print.c +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-open (2) +.SH BUGS +The +.B x +verb does not apply the +.B 0x +prefix when +.I f2 +is present. +The prefix should probably be +.B 16r +anyway. diff --git a/static/inferno/man2/sys-read.2 b/static/inferno/man2/sys-read.2 new file mode 100644 index 00000000..81ee5341 --- /dev/null +++ b/static/inferno/man2/sys-read.2 @@ -0,0 +1,108 @@ +.TH SYS-READ 2 +.SH NAME +read, write, pread, pwrite, stream \- read or write file +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +read: fn(fd: ref FD, buf: array of byte, nbytes: int): int; +readn: fn(fd: ref FD, buf: array of byte, nbytes: int): int; +write: fn(fd: ref FD, buf: array of byte, nbytes: int): int; + +pread: fn(fd: ref FD, buf: array of byte, nbytes: int, + offset: big): int; +pwrite: fn(fd: ref FD, buf: array of byte, nbytes: int, + offset: big): int; + +stream: fn(src, dst: ref FD, bufsiz: int): int; +.EE +.SH DESCRIPTION +.B Read +reads +.I nbytes +bytes of data from the offset in the file +associated with +.I fd +into memory at +.IR buf . +The file offset is advanced by the number of bytes read. +It is not guaranteed +that all +.I nbytes +bytes will be read; for example +if the file refers to the console, at most one line +will be returned. +In any event the number of bytes read is returned. +A return value of +0 is conventionally interpreted as end of file. +.PP +.B Readn +continues to +.B read +from +.I fd +sequentially into +.IR buf , +until +.I nbytes +have been read, or +.B read +returns a non-positive count. +.PP +.B Write +writes +.I nbytes +bytes of data starting at +.I buf +to the file associated with +.I fd +at the file offset. +The offset is advanced by the number of bytes written. +The number of bytes actually written is returned. +It should be regarded as an error +if this is not the same as requested. +.PP +.B Pread +and +.B pwrite +take an explicit file +.I offset +as a parameter, leaving +.IR fd 's +current offset untouched; +they are otherwise identical in behaviour to +.B read +and +.BR write . +They are particulary useful when several processes must access the same +.I fd +concurrently and it is inconvenient or undesirable to synchronise their activity +to avoid interference. +.PP +.B Stream +continually reads data from +.IR src , +using a buffer of +.I bufsiz +bytes, and writes the data to +.IR dst . +It copies data +until a read fails (returning +zero bytes or an error) or a write fails. +.B Stream +returns the number of bytes actually copied. +The implementation may be more efficient than a +.BR read / write +loop in the application, but is otherwise +equivalent to calling +.B read +and +.B write +directly. +.SH SEE ALSO +.IR bufio (2), +.IR sys-intro (2), +.IR sys-dup (2), +.IR sys-open (2), +.IR read (5) diff --git a/static/inferno/man2/sys-remove.2 b/static/inferno/man2/sys-remove.2 new file mode 100644 index 00000000..083ec6b4 --- /dev/null +++ b/static/inferno/man2/sys-remove.2 @@ -0,0 +1,23 @@ +.TH SYS-REMOVE 2 +.SH NAME +remove \- remove a file +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +remove: fn(file: string): int; +.EE +.SH DESCRIPTION +.B Remove +removes +.I file +from the directory containing it and discards the contents of the file. +The user must have write permission in the containing directory. +If +.I file +is a directory, it must be empty. +.B Remove +returns zero if it deletes the file, \-1 otherwise. +.SH SEE ALSO +.IR sys-intro (2) diff --git a/static/inferno/man2/sys-seek.2 b/static/inferno/man2/sys-seek.2 new file mode 100644 index 00000000..15124007 --- /dev/null +++ b/static/inferno/man2/sys-seek.2 @@ -0,0 +1,48 @@ +.TH SYS-SEEK 2 +.SH NAME +seek \- change file offset +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +seek: fn(fd: ref FD, off: big, start: int): big; +.EE +.SH DESCRIPTION +.B Seek +sets the 64-bit offset for the file +associated with +.I fd +as follows: +.IP +If +.I start +is +.BR Sys->SEEKSTART , +the offset is set to +.I off +bytes. +.IP +If +.I start +is +.BR Sys->SEEKRELA , +the pointer is set to its current location plus +.IR off . +.IP +If +.I start +is +.BR Sys->SEEKEND , +the pointer is set to the size of the +file plus +.IR off . +.PP +The new file offset value is returned. +.PP +Seeking in a pipe is not allowed. +Seeking in a directory is allowed only if the new offset is zero. +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-open (2), +.IR bufio (2), diff --git a/static/inferno/man2/sys-self.2 b/static/inferno/man2/sys-self.2 new file mode 100644 index 00000000..777cca2e --- /dev/null +++ b/static/inferno/man2/sys-self.2 @@ -0,0 +1,83 @@ +.TH SYS-SELF 2 +.SH NAME +SELF \- reference self as a compatible module type +.SH SYNOPSIS +.B +include "sys.m"; +.br +.BI "me := load" " Module " SELF; +.SH DESCRIPTION +An instance of +a module of one type can acquire a reference to itself as any compatible module type, +using the Limbo +.B load +operator with the special built-in module name +.BR $self . +Normally, applications use a synonym, the constant +.BR SELF , +which is defined by +.B sys.m +.I outside +the declaration of the +.B Sys +module +(so that it need not be imported). +Note that the result of the +.B load +refers to the same instance +that is currently executing (ie, the same module data). +.PP +This mechanism is most often used to obtain a reference to the current module +instance with a +.I restriction +of its module type to a compatible subtype (eg, containing a subset +of the current module's declarations). +For example, given modules of the following types: +.IP +.EX +T: module +{ + init: fn(nil: ref Draw->Context, nil: list of string); + special: fn(a, b: int); +}; +S: module +{ + special: fn(x, y: int); +}; +G: module +{ + init: fn(v: S); +}; +.EE +.PP +an instance of module +.B T +can execute both the following: +.IP +.EX +t := load T SELF; +s := load S SELF; +.EE +.PP +but a module of type +.B S +could not load itself as type +.BR T . +.PP +The result might typically be assigned to a module variable of that type +(including passing as a parameter or storing in an adt), as in: +.IP +.EX +g := load G "g.dis"; +g->init(s); +.EE +.PP +See the definition and use of +.B BufioFill +in +.IR bufio (2) +and +.IR bufio-chanfill (2) +for a practical example. +.SH SEE ALSO +``The Limbo Programming Language'', Volume 2. diff --git a/static/inferno/man2/sys-sleep.2 b/static/inferno/man2/sys-sleep.2 new file mode 100644 index 00000000..d8b91a56 --- /dev/null +++ b/static/inferno/man2/sys-sleep.2 @@ -0,0 +1,29 @@ +.TH SYS-SLEEP 2 +.SH NAME +sleep \- delay +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +sleep: fn(period: int): int; +.EE +.SH DESCRIPTION +.B Sleep +suspends the current thread for +.I period +milliseconds. +The actual suspension time may be a little more or less than +the requested time. +If +.I period +is 0, the process +gives up the CPU if another process is waiting to run, returning +immediately if not. +.PP +.B Sleep +normally returns 0. In hosted Inferno it may return -1 to indicate that +it was not possible to sleep (eg if no more threads are available). +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-millisec (2) diff --git a/static/inferno/man2/sys-stat.2 b/static/inferno/man2/sys-stat.2 new file mode 100644 index 00000000..a5ca67da --- /dev/null +++ b/static/inferno/man2/sys-stat.2 @@ -0,0 +1,283 @@ +.TH SYS-STAT 2 +.SH NAME +fstat, fwstat, stat, wstat \- get and put file status +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +fstat: fn(fd: ref FD): (int, Dir); +fwstat: fn(fd: ref FD; d: Dir): int; +stat: fn(name: string): (int, Dir); +wstat: fn(name: string, d: Dir): int; + +nulldir: con Dir(\fIspecial don't care values\fP); +zerodir: con Dir(\fIall elements set to zero\fP); +.EE +.SH DESCRIPTION +Given a file's +.IR name , +or an open file descriptor +.IR fd , +these routines retrieve or modify file status information. +.B Stat +and +.B fstat +retrieve information about +.I name +or +.I fd +into the +.B Dir +member of the return tuple. +The +.B int +member will be zero for success and \-1 for failure. +.B wstat +and +.B fwstat +write information back, thus changing file attributes according to +.IR d . +Both functions return zero for success and \-1 for failure. +.PP +File status is recorded as a +.B Dir +type: +.IP +.PP +.EX +Qid: adt +{ + path: big; # unique id for file on server + vers: int; # write version number + qtype: int; # file type (see below) +}; + +Dir: adt +{ + name: string; # last element of path + uid: string; # owner name + gid: string; # group name + muid: string; # last modifier name + qid: Qid; # unique id from server + mode: int; # permissions + atime: int; # last read time + mtime: int; # last write time + length: big; # file length + dtype: int; # server type + dev: int; # server subtype +}; +.EE +.PP +If the file resides on permanent storage and is not a directory, +the +.B length +field returned in +.B Dir +by +.B stat +is the number of bytes in the file. +For directories, the length returned is zero. +Some devices, in particular files that are +streams such as pipes and network connections, +report a length that is the number of bytes that +may be read from the device without blocking. +.PP +Each file is the responsibility of some +.IR server : +it could be a file server, a kernel device, or a user process. +.B Dtype +identifies the server type, and +.B dev +says which of a group of servers of the same type is the one +responsible for this file. +.B Qid +is a type containing +.BR path , +.B vers +and +.B qtype +members, each an integer: +.B path +is guaranteed to be +unique among all path names currently on the file server; +.B vers +changes each time the file is modified; +and +.B qtype +gives the file's characteristics (eg, directory or file). +The +.B path +is 64 bits +.RB ( big ), +and the +.B vers +is 32 bits +.RB ( int ). +Thus, if two files have the same +.BR dtype , +.BR dev , +and +.BR qid , +they are the same file. +(Except when checking that the contents +are the same, as in a file cache, the version is often considered irrelevant in that comparison.) +The bits in +.B qtype +are defined by +.IP +.EX +16r80 # directory (Sys->QTDIR) +16r40 # append-only (Sys->QTAPPEND) +16r20 # exclusive-use (Sys->QTEXCL) +16r08 # authentication file (Sys->QTAUTH) +16r00 # any other file (Sys->QTFILE) +.EE +.PP +(They are the top 8 bits of +.B Dir.mode +for the file, as discussed below.) +.B Sys +defines constants for the bits: +.BR Sys->QTDIR , +.BR Sys->QTAPPEND , +and so on, as shown above. +The value +.B Sys->QTFILE +is not a particular bit; it is defined to be zero, to allow +a symbolic name to be used when creating +.B Qid +values for ordinary files. +.PP +The bits in +.B mode +are defined by +.IP +.EX +16r80000000 #directory (Sys->DMDIR) +16r40000000 #append-only (Sys->DMAPPEND) +16r20000000 #exclusive-use (Sys->DMEXCL) +16r08000000 #authentication file (Sys->DMAUTH) + 8r400 #read permission by owner + 8r200 #write permission by owner + 8r100 #execute permission (search on directory) by owner + 8r070 #read, write, execute (search) by group + 8r007 #read, write, execute (search) by others +.EE +.PP +There are constants defined in +.B Sys +for the first four bits: +.BR Sys\->DMDIR , +.B Sys\->DMAPPEND +and +.B Sys\->DMEXCL +for normal files, and +.B Sys\->DMAUTH +only for the special authentication file opened by +.IR sys-fauth (2). +.PP +The two time fields are measured in seconds since the epoch +(Jan 1 00:00 1970 GMT). +.B Mtime +is the time of the last change of content. +Similarly, +.B atime +is set whenever the contents are accessed; +also, it is set whenever +.B mtime +is set. +.PP +.B Uid +and +.B gid +are the names of the owner and group (of owners) of the file; +.B muid +is the name of the user that last modified the file (setting +.BR mtime ). +Groups are also users, but each server is free to associate +a list of users with any user name +.IR g , +and that list is the +set of users in the group +.IR g . +When an initial attachment is made to a server, +the user string in the process group is communicated to the server. +Thus, the server knows, for any given file access, whether the accessing +process is the owner of, or in the group of, the file. +This selects which sets of three bits in +.B mode +is used to check permissions. +.PP +Only some of the fields may be changed by +.B wstat +calls. +The +.B name +can be changed by anyone with write permission in the parent directory. +The +.B mode +and +.B mtime +can be changed by the owner or the group leader of the file's current +group. +The +.B gid +can be changed by the owner if he or she is a member of the new group. +The +.B gid +can be changed by the group leader of the file's current group +if he or she is the leader of the new group. +The +.B length +can be changed by anyone with write permission, provided the operation +is implemented by the server. +(See +.IR intro (5) +and +.IR stat (5) +for more information about permissions, and +.IR users (6) +for how to configure users and groups +when using +.IR kfs (4)). +.PP +Special values in the fields of the +.B Dir +passed to +.I wstat +indicate that the field is not intended to be changed by the call. +The values are the maximum unsigned integer of appropriate size +for integral values (usually +.BR ~0 , +but beware of conversions and size mismatches +when comparing values) and the empty or nil string for string values. +The constant +.B nulldir +in +.B Sys +has all its elements initialised to these ``don't care'' values. +Thus one may change the mode, for example, by assigning +.B sys->nulldir +to initialize a +.BR Dir , +then setting the mode, and then doing +.IR wstat ; +it is not necessary to use +.I stat +to retrieve the initial values first. +.PP +The constant +.B zerodir +has all its elements initialised to zero. +It can be used to initialise a +.B Dir +structure, for use with +.IR styx (2) +or +.IR styxservers-nametree (2), +for instance. +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-dirread (2), +.IR sys-open (2) diff --git a/static/inferno/man2/sys-tokenize.2 b/static/inferno/man2/sys-tokenize.2 new file mode 100644 index 00000000..38c04598 --- /dev/null +++ b/static/inferno/man2/sys-tokenize.2 @@ -0,0 +1,56 @@ +.TH SYS-TOKENIZE 2 +.SH NAME +tokenize \- split string into words +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +tokenize: fn(s, delim: string): (int, list of string); +.EE +.SH DESCRIPTION +.B Tokenize +breaks +.I s +into words separated by characters in +.IR delim . +The returned tuple holds the number of words +and an ordered list of those words (whose +.B hd +gives the leftmost word from +.IR s ). +.PP +Words are delimited by the maximal sequences of any +character from the +.I delim +string. +.B Tokenize +skips delimiter characters at the beginning and end of +.IR s , +so each element in the returned list has non-zero length. +.PP +If +.I s +is +.B nil +or contains no words, +.B tokenize +returns a count of zero and a +.B nil +list. +.PP +.I Delim +may be +.B nil +or the empty string, specifying no delimiter characters. +The resulting word list will be +.B nil +(if +.I s +is +.B nil +or the empty string) +or a single-item list with a copy of +.IR s . +.SH SEE ALSO +.IR sys-intro (2) diff --git a/static/inferno/man2/sys-utfbytes.2 b/static/inferno/man2/sys-utfbytes.2 new file mode 100644 index 00000000..2ad42489 --- /dev/null +++ b/static/inferno/man2/sys-utfbytes.2 @@ -0,0 +1,28 @@ +.TH SYS-UTFBYTES 2 +.SH NAME +utfbytes \- compute UTF length of complete Unicode characters in a UTF byte sequence +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +utfbytes: fn(buf: array of byte, n: int): int; +.EE +.SH DESCRIPTION +.B Utfbytes +examines the +.IR n -byte +UTF sequence in +.IR buf +and returns the number of bytes representing complete Unicode characters. +The value will be less than +.I n +when the region inspected ends with an incomplete UTF sequence. +.SH DIAGNOSTIC +A bounds check error results if +.I n +exceeds the length of the array. +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-byte2char (2), +.IR utf (6) diff --git a/static/inferno/man2/sys-werrstr.2 b/static/inferno/man2/sys-werrstr.2 new file mode 100644 index 00000000..add8206d --- /dev/null +++ b/static/inferno/man2/sys-werrstr.2 @@ -0,0 +1,26 @@ +.TH SYS-WERRSTR 2 +.SH NAME +werrstr \- set the system error string +.SH SYNOPSIS +.EX +include "sys.m"; +sys := load Sys Sys->PATH; + +werrstr(s: string): int; +.EE +.SH DESCRIPTION +When a system call fails, it returns an error value (often -1) +and records a string describing the error in a per-process location. +The verb +.B r +in +.IR sys-print (2) +outputs the error string. +.B Werrstr +sets the process's error string to +.IR s , +to allow a function in a module to mimic the error reporting +interface of a system call. +.SH SEE ALSO +.IR sys-intro (2), +.IR sys-print (2) diff --git a/static/inferno/man2/tabs.2 b/static/inferno/man2/tabs.2 new file mode 100644 index 00000000..eae441de --- /dev/null +++ b/static/inferno/man2/tabs.2 @@ -0,0 +1,74 @@ +.TH TABS 2 +.SH NAME +tabs: mktabs, tabsctl \- +tabbed notebook pseudo-widget +.SH SYNOPSIS +.EX +include "tabs.m"; +tabs := load Tabs Tabs->PATH; + +init: fn(); + +mktabs: fn(p: ref Tk->Toplevel, book: string, + tabs: array of (string, string), dflt: int): + chan of string; + +tabsctl: fn(p: ref Tk->Toplevel, book: string, + tabs: array of (string, string), curid: int, + newid: string): int; +.EE +.SH DESCRIPTION +.B Tabs +implements a Tk extension: +a user-interface device that looks like a tabbed notebook. +.PP +.B Init +should be called once to initialise the internal state. +.PP +.B Mktabs +creates a tabbed notebook pseudo widget, +.IR book , +for insertion into Tk +widget +.IR p . +Once created, +.I book +can be packed like any other Tk widget. +Information for specific tab pages is contained in the +.I tabs +array. +For each page, +.I tabs +contains the name displayed in the tab and a Tk widget name. +Whenever a page is selected, its widget is +packed in +.I book +and displayed. +The notebook will initially display the page +indexed by +.IR dflt . +.B Mktabs +returns a Tk event channel. +Messages received on this channel should be passed as the +.I newid +argument to +.BR tabsctl . +.PP +.B Tabsctl +controls a tabbed notebook. +.I Curid +is the index of the page currently selected +in the notebook. +.I Newid +is a string containing the index of the new +page to be displayed; this is usually the information received on +the tabs channel. +The index of the newly selected page is returned. +.SH SOURCE +.B /appl/lib/tabs.b +.SH SEE ALSO +.IR dividers (2), +.IR draw-context (2), +.IR tk (2), +.IR wmlib (2) + diff --git a/static/inferno/man2/tftp.2 b/static/inferno/man2/tftp.2 new file mode 100644 index 00000000..d5a2a236 --- /dev/null +++ b/static/inferno/man2/tftp.2 @@ -0,0 +1,54 @@ +.TH TFTP 2 +.SH NAME +tftp \- Trivial File Transfer Protocol +.SH SYNOPSIS +.EX +tftp := load Tftp Tftp->PATH; +Tftp: module +{ + init: fn(progress: int); + receive: fn(host: string, filename: string, + fd: ref Sys->FD): string; +}; +.EE +.SH DESCRIPTION +.B Tftp +fetches files from an Internet TFTP server. +It is typically used only to fetch kernels or configuration files when booting. +Only one transfer can be active at any given time. +.PP +.B Init +must be called once before using any other function of the module. +If +.I progress +is non-zero, +.B receive +will periodically print a character as blocks are received: +.RB ` . ' +for every 25 blocks, +.RB ` S ' +for a sequence error, +.RB ` T ' +for a timeout. +.PP +.B Receive +attempts to fetch the contents of +.I filename +from +.I host +and writes the blocks of data to +.I fd +as they are received. +It returns when the file transfer has completed, +returning a nil string on success or a diagnostic string otherwise. +When booting, +.I fd +is typically open on the +.B kexec +file of +.IR boot (3). +.SH SOURCE +.B /appl/lib/tftp.b +.SH SEE ALSO +.IR ip (2), +.IR bootpd (8) diff --git a/static/inferno/man2/timers.2 b/static/inferno/man2/timers.2 new file mode 100644 index 00000000..da1d4ad8 --- /dev/null +++ b/static/inferno/man2/timers.2 @@ -0,0 +1,89 @@ +.TH TIMERS 2 +.SH NAME +timers \- interval timers +.SH SYNOPSIS +.EX +include "timers.m"; +timers := load Timers Timers->PATH; + +Timer: adt +{ + timeout: chan of int; + start: fn(msec: int): ref Timer; + stop: fn(t: self ref Timer); +}; + +init: fn(minms: int): int; +shutdown: fn(); +.EE +.SH DESCRIPTION +.B Timers +provides simple interval timing. +Timeouts are notified by a message sent on a channel, +allowing them to provide timeouts in +.B alt +statements. +.PP +The module must first be initialised by calling +.BR init , +which starts a process to manage the interval timers and returns its process ID. +Before exit, the caller must shut the timing process down either by calling +.BR shutdown , +which stops it synchronously; by using the process ID returned by +.B init +to kill it; +or by killing the process group of the process that +called +.BR init +(since the timing processes remain in that group). +.I Minms +gives the minimum granularity of timing requests in milliseconds. +.TP +.BI Timer.start( msec ) +Returns a +.B Timer +that will expire in +.I msec +milliseconds, +measured with the granularity of either +.IR sys-sleep (2) +or the granularity set by +.BR init , +whichever is greater. +.TP +.IB t .timeout +An arbitrary integer value is sent on this channel when the timer +.I t +expires. +.TP +.IB t .stop() +The timer +.I t +is stopped +and removed from the interval timing queue, +if it has not already expired. +.PP +Each +.B Timer +value times a single interval. +When a timer +.I t +expires, the timing process attempts, at that and each subsequent timing interval, to send on +.IB t .timeout +until the expiry message is delivered or the timer is stopped. +.SH EXAMPLE +Wait for data to be sent on an input channel, but give up if it does not arrive within 600 milliseconds: +.IP +.EX +t := Timer.start(600); +alt { +data := <-input => + t.stop(); + # process the data +<-t.timeout => + # request timed out +} +.EE +.SH SEE ALSO +.IR sys-millisec (2), +.IR sys-sleep (2) diff --git a/static/inferno/man2/tk.2 b/static/inferno/man2/tk.2 new file mode 100644 index 00000000..f3f04297 --- /dev/null +++ b/static/inferno/man2/tk.2 @@ -0,0 +1,270 @@ +.TH TK 2 +.SH NAME +Tk: toplevel, namechan, cmd, pointer, keyboard, imageget, imageput, quote, rect \- graphics toolkit +.SH SYNOPSIS +.EX +include "draw.m"; +include "tk.m"; +tk := load Tk Tk->PATH; +Image: import Draw; + +Toplevel: adt +{ + display: ref Draw->Display; + wreq: chan of string; + image: ref Image; + ctxt: ref Draw->Wmcontext; + screenr: Draw->Rect; +}; + +toplevel: fn(display: ref Draw->Display, arg: string): ref Toplevel; +namechan: fn(top: ref Toplevel, c: chan of string, n: string): string; +cmd: fn(top: ref Toplevel, arg: string): string; +pointer: fn(top: ref Toplevel, p: Draw->Pointer); +keyboard: fn(top: ref Toplevel, key: int); +getimage: fn(top: ref Toplevel, name: string): + (ref Image, ref Image, string); +putimage: fn(top: ref Toplevel, name: string, i, m: ref Image): string; +rect: fn(top: ref Toplevel, name: string, flags: int): Draw->Rect; +quote: fn(s: string): string; +color: fn(s: string): int; +.EE +.SH DESCRIPTION +The +.B Tk +module provides primitives for building user interfaces, based on +Ousterhout's Tcl/TK. +The interface to the toolkit itself is primarily the passing of strings +to and from the elements of the toolkit using the +.B cmd +function; see section 9 of this manual for more information +about the syntax of those strings. +.IR Tkclient (2) +is conventionally used to create tk windows +that interact correctly with a running window manager. +.PP +.B Toplevel +creates a new window +called a +.BR Toplevel , +which is under the control of the +.B Tk +toolkit, +on an existing +.IR display , +usually one inherited from the graphics +.B Context +(see +.IR draw-context (2)). +The +.B Toplevel +is passed to +.B cmd +and +.B namechan +.RI ( q.v. ) +to drive the widgets in the window. +.I Arg +is a string containing creation options (such as +.BR "-borderwidth 2" ) +that are applied when creating the toplevel window. +.PP +.B Cmd +passes command strings to the widgets in the +.B Toplevel +.I t +and returns the string resulting from their execution. +For example, given a canvas +.B .c +in the +.B Toplevel +.BR t , +.EX + x := int tk->cmd(t, ".c cget -actx"); +.EE +returns the integer +.I x +coordinate of the canvas. +.PP +Bindings can be created in a +.B Toplevel +that trigger strings to be sent on Limbo channels. +Such channels must be declared to the +.B Tk +module using +.BR namechan . +For example, to create a button that sends the word +.B Ouch +when it is pressed: +.EX + hitchannel := chan of string; + tk->namechan(t, hitchannel, "channel"); + tk->cmd(t, + "button .b.Hit -text Hit -command {send channel Ouch}"); + expl := <-hitchannel; # will see Ouch when button pressed +.EE +.PP +.B Pointer +and +.B keyboard +pass mouse and keyboard events to a +.BR Tk +window +for delivery to widgets; they must be called by each application, +which usually receives them via a +.B Wmcontext +structure (see +.IR draw-context (2)) +obtained from the window manager, often via +.IR tkclient (2). +.PP +.B Putimage +passes an image and a mask into Tk. +If +.I name +is the name of a Tk widget, it must be either a +.IR panel (9) +widget, or a top level widget (ie, +.RB `` . '') +.BR "" "`"` . "'')" +or a menu widget, +in which case the associated image +or window image is set to +.IR i . +.RI ( m +is ignored for menu and top-level widgets.) +Otherwise, +.I name +must be the name of an existing +.IR image (9) +which has its image and mask +set to copies of +.I i +and +.I m +respectively. +.PP +Initially, a Tk toplevel has no image to draw on. +Tk uses +.B wreq +to request new images of an external authority, and to inform +said authority when the images are to be deleted. +The requests are formatted as per +.B quoted +in +.IR string (2), +and hold one of the following: +.TP +.B !reshape \fIname\fP \fIreqid\fP \fIminx miny maxx maxy\fP +A new image for +.I name +is requested +.RI ( name +is either the toplevel widget or a menu). +The desired rectangle for the new image is given +by +.RI [ "minx miny maxx maxy" ], +and the application should respond by creating a new +image and using +.B putimage +to pass it to Tk. +.I Reqid +is used by Tk to filter out responses to out-of-date +requests; when responding to a reshape +request, the +.I name +passed to +.B putimage +should have a space and +.I reqid +appended. +.IR Tkclient (2) +usually deals with the details of this. +.TP +.B delete \fIname\fP +The image +.I name +has been deleted. This is generated for +.IR menu (9) +widgets when they are unmapped. +.TP +.B raise \fIname\fP +Tk widget +.I name +should be raised above other windows on the same screen. +.TP +.B lower \fIname\fP +Tk widget +.I name +should be lowered beneath other windows on the same screen. +.PP +.B Wreq +may be set to nil if an application is not prepared to +read requests sent on this channel. +.PP +.B Rect +returns the bounding rectangle of +widget +.I name +in +.IR top . +.I Flags +determines the form of rectangle returned. +If +.I flags +is zero, the actual rectangle of +.I name +in screen coordinates, not including its border, +is returned. The bitmask flags that can change this are: +.TP +.B Border +Include the widget's border. +.TP +.B Required +Return the rectangle required by the widget, rather +than the rectangle that has been actually allocated to it. +.TP +.B Local +Return the rectangle in coordinates relative +to the logical origin of the actual top level image. +.PP +.B Quote +returns a string that is the same as its arguments, but enclosed +in curly braces and with internal curly braces escaped. +This can be used to make an arbitrary string into a +.I word +suitable as an argument to a Tk function. +.PP +.B Color +returns a colour in 32-bit RGBA format corresponding to the +tk colour name +.IR s . +(see +.IR types (9) +for details). +.PP +.B Screenr +gives the rectangle of the screen containing the toplevel window. +Tk has no +.I "a priori" +way of knowing what this is; it is initially set to the rectangle of the +display image, and may be set by the application if it knows better +(e.g. from the +.B wmrect +file served by +.IR wm (1)). +.SH SOURCE +.B /libinterp/tk.c +.br +.B /libtk/*.c +.SH SEE ALSO +.IR intro (9), +.IR image (9), +.IR panel (9), +.IR tkcmd (1), +.IR sh-tk (1), +.IR draw-context (2), +.IR tkclient (2), +.IR wmlib (2) +.br +`An Overview of Limbo/Tk', this manual, Volume 2. diff --git a/static/inferno/man2/tkclient.2 b/static/inferno/man2/tkclient.2 new file mode 100644 index 00000000..3a8c9ef4 --- /dev/null +++ b/static/inferno/man2/tkclient.2 @@ -0,0 +1,229 @@ +.TH TKCLIENT 2 +.SH NAME +tkclient: makedrawcontext, toplevel, onscreen, startinput, +wmctl, settitle, handler, snarfput, snarfget \- +window manager interface for Tk applications. +.SH SYNOPSIS +.EX +include "tkclient.m"; +tkclient := load Tkclient Tkclient->PATH; + +Resize, +Hide, +Help, +OK, +Plain: con 1 << iota; + +Appl: con Resize | Hide; + +init: fn(); +makedrawcontext: fn(): ref Draw->Context; +toplevel: fn(ctxt: ref Draw->Context, topconfig: string, + title: string, buts: int): (ref Tk->Toplevel, chan of string); +onscreen: fn(top: ref Tk->Toplevel, how: string); +startinput: fn(top: ref Tk->Toplevel, devs: list of string); +wmctl: fn(top: ref Tk->Toplevel, request: string): string; +settitle: fn(top: ref Tk->Toplevel, name: string): string; +handler: fn(top: ref Tk->Toplevel, stop: chan of int); + +snarfput: fn(buf: string); +snarfget: fn(): string; +.EE +.SH DESCRIPTION +The +.B Tkclient +module provides routines for making windows controlled by +.IR wm (1) +containing +.IR tk (2) +widgets. +.PP +.B Init +should be called once to initialise the internal state of +.BR tkclient . +.PP +.B Makedrawcontext +establishes an initial connection with the window manager, +creating a new +.B Draw +context suitable for creating new windows. It is only +necessary to call this if the application has not already +been provided with a context. +.PP +.B Toplevel +creates a new window through +.IR ctxt . +.I Topconfig +gives a list of +.IR frame (9) +options that are applied to the +new tk window, as described in +.IR tk (2). +.I Title +gives a label that will be displayed in the title bar +of the window; +.I buts +determines which buttons are created in the titlebar, +a bitwise combination of the constants +.BR Resize , +.BR Help , +.BR OK, +and +.BR Hide . +If +.B Plain +is given, the window is given no decoration at all. +.B Toplevel +returns a tuple, say +.RI ( top ,\ ctl ), +where +.I top +is the newly created top level tk window, +and +.I ctl +is a channel down which requests from the +title bar are sent. +Messages received on +.I ctl +should be processed +by the application or passed to the +.B wmctl +function. Requests are formatted +as with +.B quoted +in +.IR string (2). +The messages include: +.TP +.B exit +The window should be closed. +.B Wmctl +will kill all processes in the current +process group. +.TP +.B !move \fIx\fP \fIy\fP +The user has started to try to drag the window. +.I X +and +.I y +give the location of the initial pointer click. +.TP +.B !size +The user wishes to resize the window. +.TP +.B help +The help button has been clicked. +.TP +.B ok +The OK button has been clicked. +.TP +.B hide +The Hide button has been clicked. +The window will be deleted, and an entry +shown on the toolbar. +.PP +In order to function correctly, an application +should process not only events from the +title bar channel, but also events from +the Tk toplevel +.I wreq +channel, those received from the window +manager itself (via +.IB top .ctxt.ctl\fR),\fP +and pointer and keyboard events received from +the window manager (via +.IB top .ctxt.ptr +and +.IB top .ctxt.kbd +respectively). +Control events can be passed to +.BR wmctl ; +pointer and keyboard events should be +passed to their respective functions +in +.IR tk (2). +.PP +When created, the window is not visible +and will not receive pointer or keyboard events. +.B Onscreen +makes it visible, and possibly chooses a +position and a size for it. +.I How +specifies what sort of placement is required +for the window; it can be one of +.TP +.B place +tries to choose a suitable place on the screen +with respect to other windows; it may size the +window as it feels appropriate. This the default +(if +.I how +is nil). +.TP +.B onscreen +tries to keep the position and size the same +as specified on the window, adjusting them only +to bring the window fully on screen, and making sure +that the window is no bigger than the entire display. +.TP +.B exact +does not change the specified size or position +of the window unless absolutely necessary. +.PP +.B Startinput +informs the window manager that the window is +ready to the event types specified in +.IR devs . +Currently understood are +.B kbd +for keyboard events, and +.B ptr +for pointer events. +.PP +The simplest well-behaved +.IR wm (1) +client will therefore contain: +.PP +.EX + (top, ctl) := tkclient->toplevel(ctxt, nil, "My Program", Tkclient->Appl); + # ... populate the window with tk widgets + tkclient->startinput(top, "ptr" :: "kbd" :: nil); + tkclient->onscreen(top, nil); + for(;;){ + alt{ + s := <-ctl or + s = <-top.ctxt.ctl or + s = <-top.wreq => + tkclient->wmctl(top, s); + p := <-top.ctxt.ptr => + tk->pointer(top, *p); + c := <-top.ctxt.kbd => + tk->keyboard(top, c); + } + } +.EE +.PP +.B Settitle +changes the name displayed in the title bar +and the window's name when it is in the task bar. +.PP +.B Snarfget +and +.B snarfput +retrieve and replace the contents of the window +manager's snarf buffer. +.SH FILES +.TF /chan/snarf +.TP +.B /chan/snarf +snarf buffer maintained by +.IR wm (1) +.TP +.B /chan/wm +channel for interaction with +.IR wm (1) +.SH SOURCE +.B /appl/lib/tkclient.b +.SH SEE ALSO +.IR wm (1), +.IR tk (2) diff --git a/static/inferno/man2/translate.2 b/static/inferno/man2/translate.2 new file mode 100644 index 00000000..87e0ca1b --- /dev/null +++ b/static/inferno/man2/translate.2 @@ -0,0 +1,135 @@ +.TH TRANSLATE 2 +.SH NAME +translate: opendict, opendicts, mkdictname \- translation dictionaries +.SH SYNOPSIS +.EX +include "translate.m"; +translate := load Translate Translate->PATH; + +Dict: adt { + new: fn(): ref Dict; + add: fn(d: self ref Dict, file: string): string; + xlate: fn(d: self ref Dict, s: string): string; + xlaten: fn(d: self ref Dict, s: string, note: string): string; +}; + +init: fn(); +opendict: fn(file: string): (ref Dict, string); +opendicts: fn(files: list of string): (ref Dict, string); +mkdictname: fn(locale, app: string): string; +.EE +.SH DESCRIPTION +The +.B Translate +module provides access to the translation dictionaries +defined by +.IR translate (6), +intended for the translation of +text from one natural language to another. +.PP +.B Init +should be called before using any of these functions. +.PP +.B Opendict +opens a dictionary +.I file +(of the format defined below) and returns a tuple: +a reference to a +.B Dict +that represents it and a diagnostic string (which is nil if no error occurred). +.B Opendicts +is similar, but loads each of the +.I files +in turn into the same +.BR Dict , +producing a composite dictionary in which translations in later files can override +translations in earlier ones; +the diagnostic string summarises all errors (if any). +.PP +.B Mkdictname +returns the conventional name of a dictionary file given +locale and application names. +The +.I locale +is normally +.B nil +to use the current locale, which is formed by +binding the desired locale directory (or directories) onto +.BR /lib/locale . +.PP +.B Dict.new +returns an empty dictionary. +.B Dict.add +loads the given dictionary +.I file +into an existing dictionary, returning a non-nil diagnostic string on error. +Translations are made by +.B Dict.xlate +and +.BR Dict.xlaten : +they look for a string +.I s +(eg, text in one language), +optionally qualified by a +.IR note , +and return the corresponding translation text from the dictionary. +If no such translation exists, they return the original text +.IR s . +.SH EXAMPLE +The following shows one possible style of use: +.PP +.EX +.ta 4n 8n 12n 16n 20n +include "translate.m"; + translate: Translate; + Dict: import translate; + +dict: ref Dict; + +X(s: string): string +{ + if(dict == nil) + return s; + return dict.xlate(s); +} + +init(ctxt: ref Draw->Context, args: list of string) +{ + ... + translate = load Translate Translate->PATH; + if(translate != nil){ + translate->init(); + (dict, nil) = translate->opendict( + translate->mkdictname("", "vmail")); + } + ... + optioncfg := array [] of { + "frame .op -relief flat -borderwidth 8", + "frame .op.lbs", + "label .op.lbs.a -text {" + + X("Voice Mail Active") + ":}", + "label .op.lbs.g -text {" + + X("Answer Calls With") + ":}", + "label .op.lbs.r -text {" + + X("Rings before Answering") + ":}", + "label .op.lbs.l -text {" + + X("Length of Incoming Messages") + ":}}", + ... + }; + ... + wmlib->tkcmds(top, optioncfg); +} +.EE +.PP +The intermediate function +.B X +is defined to allow the program to be used (albeit with text in English) even +when the +.B Translate +module cannot be loaded. +.SH FILES +.BI /locale/ locale /dict/ app +.SH SOURCE +.B /appl/lib/translate.b +.SH SEE ALSO +.IR translate (6) diff --git a/static/inferno/man2/ubfa.2 b/static/inferno/man2/ubfa.2 new file mode 100644 index 00000000..46f6a763 --- /dev/null +++ b/static/inferno/man2/ubfa.2 @@ -0,0 +1,273 @@ +.TH UBFA 2 +.SH NAME +ubfa: readubf, writeubf, UValue \- read, write and represent values in a UBF(A) data transport encoding +.SH SYNOPSIS +.EX +include "ubfa.m"; +ubfa := load UBFa UBFa->PATH; + +UValue: adt { + pick{ + Atom => + name: string; + Int => + value: int; + String => + s: string; + Binary => + a: array of byte; + Tuple => + a: cyclic array of ref UValue; # tree + List => + l: cyclic list of ref UValue; # tree + Tag => + name: string; + o: cyclic ref UValue; + } + isatom: fn(o: self ref UValue): int; + isstring: fn(o: self ref UValue): int; + isint: fn(o: self ref UValue): int; + istuple: fn(o: self ref UValue): int; + isop: fn(o: self ref UValue, op: string, arity: int): int; + islist: fn(o: self ref UValue): int; + isbinary: fn(o: self ref UValue): int; + istag: fn(o: self ref UValue): int; + eq: fn(o: self ref UValue, v: ref UValue): int; + op: fn(o: self ref UValue, arity: int): string; + args: fn(o: self ref UValue, arity: int): + array of ref UValue; + els: fn(o: self ref UValue): list of ref UValue; + val: fn(o: self ref UValue): int; + binary: fn(o: self ref UValue): array of byte; + objtag: fn(o: self ref UValue): string; + obj: fn(o: self ref UValue): ref UValue; + text: fn(o: self ref UValue): string; +}; + +init: fn(bufio: Bufio); +readubf: fn(input: ref Iobuf): (ref UValue, string); +writeubf: fn(output: ref Iobuf, v: ref UValue): int; +uniq: fn(s: string): string; + +uvatom: fn(s: string): ref UValue.Atom; +uvint: fn(i: int): ref UValue.Int; +uvstring: fn(s: string): ref UValue.String; +uvbinary: fn(a: array of byte): ref UValue.Binary; +uvtuple: fn(a: array of ref UValue): ref UValue.Tuple; +uvlist: fn(l: list of ref UValue): ref UValue.List; +uvtag: fn(name: string, o: ref UValue): ref UValue.Tag; +.EE +.SH DESCRIPTION +.B UBFa +provides value representations, and encoding and decoding operations for Armstrong's UBF(A) data transport +format, defined by +.IR ubfa (6). +.PP +.B Init +must be called before invoking any other operation of the module. +The +.I bufio +parameter must refer to the instance of +.IR bufio (2) +that provides the +.B Iobuf +parameters used for input and output. +.PP +.B UValue +is the internal representation of values that can be transmitted by the UBF(A) encoding. +The various sorts of values are distinguished in a pick adt: +.TP +.B UValue.Atom +Represents an +.IR atom : +a symbolic constant, for example the name of an operation or an enumeration literal. +The string +.B name +gives the spelling of the constant's name. +.TP +.B UValue.Int +Represents an integer value (eg, a Limbo +.BR int ) +with the given +.BR value . +.TP +.B UValue.String +Represents a character string (eg, a Limbo +.BR string ) +with the value +.BR s . +.TP +.B UValue.Binary +Represents binary data as a sequence of bytes in the array +.BR a . +.TP +.B UValue.Tuple +Represents a compound value that contains a fixed number of component values, +given by successive elements of the array +.BR a . +UBF tuples correspond to tuples or non-pick +.B adt +values in Limbo. +.TP +.B UValue.List +Represents a compound value containing a variable number of component values, +given by successive elements of the list +.BR l . +.TP +.B UValue.Tag +Associates an application-specific +.B tag +with another +.B UValue +referenced by +.BR o . +.PP +.B Readubf +reads a single value in +.IR ubfa (6) +format from the +.I input +stream and returns a tuple +.BI ( val,\ err ). +On success, +.I val +is a +.B UValue +that represents that value. +If an error occurs, +.I val +is nil and +.I err +contains a diagnostic. +.PP +.B Writeubf +writes a +.IR ubfa (6) +representation of the value +.I v +to the +.I output +stream. +It returns 0 on success and -1 on error (setting the system error string). +.PP +The easiest way to create a new +.B UValue +for subsequent output is with one of the module-level functions +.BR uvatom , +.BR uvint , +.BR uvstring , +and so on. +As values of a pick adt, a +.B UValue +can be inspected using Limbo's +.B tagof +operator and the appropriate variant accessed using a +.B pick +statement. +.B UValue +also supports several groups of common operations, for smaller, tidier code. +First, the set of enquiry functions +.IB u .is X () +return true if the value +.I u +is an instance of the UBF type +.I X +.RI ( atom , +.IR int , +.IR string , +.IR binary , +.IR tuple , +etc). +The other operations are: +.TP +.IB u .eq( v ) +Return true if the values of +.I u +and +.I v +are equal, including the values of corresponding subcomponents, recursively +.TP +.IB u .isop( op,\ n ) +Return true if +.I u +is a tuple having +.I n +components, and its first component is an atom or string with the value +.IR op . +.TP +.IB u .op( n ) +If +.I u +is a tuple with +.I n +components, and the first component is an atom or string, return its value. +Otherwise, return nil. +.TP +.IB u .args( n ) +If +.I u +is a tuple with +.I n +components, return an array containing the values of all but the first component. +Otherwise, return nil. +.TP +.IB u .els() +If +.I u +is a list, return a Limbo list of its elements (ie, +.IB u .l\fR)\fP. +Otherwise, return nil. +.TP +.IB u .val() +If +.I u +is an integer, return its value. +Otherwise return zero. +.TP +.IB u .binary() +If +.I u +is a binary value, return the corresponding array of bytes; if +.I u +is an atom or string, return an array of bytes containing its value; +otherwise, return nil. +.TP +.IB u .objtag() +If +.I u +is a tag, return the name of the tag. +Otherwise, return nil. +.TP +.IB u .obj() +If +.I u +is a tag, return the tagged value. +Otherwise, return +.I u +itself. +.TP +.IB u .text() +Return a printable representation of the value +.IR u , +mainly intended for debugging and tracing. +.PP +One difference between atoms and strings is that +all atoms with identical spellings refer to the same string in the implementation's storage. +Given an atom name, +.B uniq +returns the corresponding string, stored in an internal dictionary. +It is used by +.B UBFa +to create the strings +.BR UValue.Atom.s , +and can be put to similar use directly by applications. +It should only be applied to values that are small in number (as with symbolic constants). +.SH SOURCE +.B /appl/lib/ubfa.b +.SH SEE ALSO +.IR sexprs (2), +.IR ubfa (6) +.br +J L Armstrong, ``Getting Erlang to talk to the outside world'', +.I "ACM SIGPLAN Erlang workshop 2002" , +Pittsburg, PA USA diff --git a/static/inferno/man2/venti.2 b/static/inferno/man2/venti.2 new file mode 100644 index 00000000..27150a86 --- /dev/null +++ b/static/inferno/man2/venti.2 @@ -0,0 +1,103 @@ +.TH VENTI 2 +.SH NAME +Venti \- access to Venti content-addressed filestore. +.SH SYNOPSIS +.EX +include "venti.m"; +venti := load Venti Venti->PATH; +Session: import venti; + +init: fn(); + +Session: adt { + new: fn(fd: ref Sys->FD): ref Session; + read: fn(s: self ref Session, score: Venti->Score, etype: int, maxn: int): array of byte; + write: fn(s: self ref Session, etype: int, buf: array of byte): (int, Venti->Score); + sync: fn(s: self ref Session): int; +}; + +Score: adt { + a: array of byte; + eq: fn(a: self Score, b: Score): int; + text: fn(a: self Score): string; + parse: fn(s: string): (int, Score); + zero: fn(): Score; +}; + +.EE +.SH DESCRIPTION +.I Venti +is a block storage server intended for archival applications. +The +.I Venti +module provides low-level access to a Venti server. +The module assumes that the physical connection +to the server has already been established +(for example, by +.IR dial (2)). +On a Venti server, a block is addressed by the SHA1 hash of +the contents of that block, known as a +.IR score , +and represented as a +.B Score +adt. +Blocks are additionally tagged with a +.IR type , +facilitating recovery in the event of corruption. +A +.B Session +represents a session with a Venti server. +.TP +.IB s .new(\fIfd\fP) +.B New +performs the initial handshake with the Venti server, +returning established +.BR Session . +.TP +.IB s .read(\fIscore\fP,\ \fIetype\fP,\ \fImaxn\fP) +.B Read +tries to retrieve the block +corresponding to +.IR score , +and of type +.IR etype . +The block must be no longer than +.I maxn +bytes. +.I Etype +is conventionally one of the constants +.BR Roottype , +.BR Dirtype , +.BR Datatype +or +.BR Pointertype [0-9], +where the different +.BR Pointertype s +represent different depth levels within a Venti tree. +.TP +.IB s .write(\fIetype\fP,\ \fIbuf\fP) +.B Write +writes the data in +.I buf +to the Venti server. +The block will be tagged with type +.IR etype . +It returns a tuple, say +.RI ( ok ,\ score ); +on error, +.I ok +is -1, otherwise +.I ok +is 0 and +.I score +contains the Venti score for the block that has been written. +.TP +.IB s .sync() +.B Sync +tells the Venti server to make sure that all data is committed to +active storage. +.SH SOURCE +.B /module/venti.m +.br +.B /appl/lib/venti.b +.SH BUGS diff --git a/static/inferno/man2/virgil.2 b/static/inferno/man2/virgil.2 new file mode 100644 index 00000000..778ce7b1 --- /dev/null +++ b/static/inferno/man2/virgil.2 @@ -0,0 +1,54 @@ +.TH VIRGIL 2 +.SH NAME +virgil \- pose question to name resolver +.SH SYNOPSIS +.EX +include "security.m"; +virgil := load Virgil Virgil->PATH; + +virgil: fn(args: list of string): string; +.EE +.SH DESCRIPTION +.B Virgil +provides a client side interface for interactions with the +name resolution service +.IR virgild (8). +.PP +.I Args +is a command line of the form: +.IP +.BR virgil " [" -v +.IR address ] +.RI [ name ] +.PP +.I Name +is the host name to be resolved to a network address. +Normally the request is broadcast to any and all +.I virgild +servers on the network, which +.B virgil +expects to find on UDP/IP port 2202. +The +.B -v +option instead directs the request to the given numeric IP +.IR address . +.PP +.B Virgil +waits up to 5 seconds for a reply, retransmitting the request once a second. +It accepts and returns the first answer it receives. +.SH SOURCE +.B /appl/lib/virgil.b +.SH SEE ALSO +.IR dial (2), +.IR cs (8), +.IR register (8), +.IR virgild (8) +.SH DIAGNOSTICS +.B Virgil +returns +.L nil +for invalid arguments and if the name was not resolved. +.SH BUGS +The +.I virgild +port is hard coded. diff --git a/static/inferno/man2/volume.2 b/static/inferno/man2/volume.2 new file mode 100644 index 00000000..58b5d61f --- /dev/null +++ b/static/inferno/man2/volume.2 @@ -0,0 +1,51 @@ +.TH VOLUME 2 mux +.SH NAME +volume \- volume control for an infrared interface +.SH SYNOPSIS +.EX +include "volume.m"; +vctl := load Volumectl Volumectl->PATH; + +volumectl: fn(ctxt: ref Draw->Context, ch: chan of int, + device: string); +.EE +.SH DESCRIPTION +.B Volumectl +should be spawned as a separate process from any process that desires volume control via an infrared interface. +.I Ctxt +provides +.B volumectl +with access to the display, +on which it displays a slider widget. +The slider automatically disappears after several seconds of inactivity. +.B Volumectl +receives input from the infrared controller on channel +.IR ch . +The values recognized are: +.TF Enter +.PD +.TP +.B VolUP +increase volume +.TP +.B VolDN +decrease volume +.TP +.B Enter +exit +.PP +.I Device +is a string used as a prefix to commands to the device; +for example +.B +"audio out" +.ft P +for +.IR audio (3). +.SH FILES +.B /dev/volume +.SH SOURCE +.B /appl/lib/volume.b +.SH "SEE ALSO" +.IR ir (2), +.IR prefab-intro (2) diff --git a/static/inferno/man2/w3c-css.2 b/static/inferno/man2/w3c-css.2 new file mode 100644 index 00000000..44a1ebfc --- /dev/null +++ b/static/inferno/man2/w3c-css.2 @@ -0,0 +1,349 @@ +.TH W3C-CSS 2 +.SH NAME +w3c-css \- cascading style sheet parser +.SH SYNOPSIS +.EX +include "css.m"; + +css := load CSS CSS->PATH; + +Stylesheet: adt { + charset: string; + imports: list of ref Import; + statements: list of ref Statement; +}; + +Import: adt { + name: string; + media: list of string; +}; + +Statement: adt { + pick{ + Media => + media: list of string; + rules: list of ref Statement.Ruleset; + Page => + pseudo: string; + decls: list of ref Decl; + Ruleset => + selectors: list of Selector; + decls: list of ref Decl; + } +}; + +Decl: adt { + property: string; + values: list of ref Value; + important: int; +}; + +Selector: type list of (int, Simplesel); # (combinator, simplesel) +Simplesel: type list of ref Select; + +Select: adt { + name: string; + pick{ + Element or ID or Any or Class or Pseudo => + # empty + Attrib => + op: string; # "=" "~=" "|=" + value: ref Value; # optional Ident or String + Pseudofn => + arg: string; + } +}; + +Value: adt { + sep: int; # operator preceding this term + pick{ + String or + Number or + Percentage or + Url or + Unicoderange => + value: string; + Hexcolour => + value: string; # as given + rgb: (int, int, int); # converted + RGB => + args: cyclic list of ref Value; # as given + rgb: (int, int, int); # converted + Ident => + name: string; + Unit => + value: string; # int or float + units: string; # suffix giving units + Function => + name: string; + args: cyclic list of ref Value; + } +}; + +init: fn(diag: int); +parse: fn(s: string): (ref Stylesheet, string); +parsedecl: fn(s: string): (list of ref Decl, string); +.EE +.SH DESCRIPTION +.B Css +implements a parser for the World-Wide Web Consortium's Cascading +Style Sheet, specification 2.1. +.PP +.B Init +must be called before any other operation in the module. +If +.I diag +is non-zero, the module will print diagnostics on standard output for +malformed or unrecognised items that are ignored during parsing (as +required by the specification). +.PP +.B Parse +takes a complete stylesheet in string +.IR s , +parses it, and returns a tuple +.BI ( sheet,\ err ) +where +.I sheet +refers to a +.B Stylesheet +value containing the logical content of +.IR s , +as described below. +On a fatal error, +.I sheet +is nil and +.I err +is a diagnostic. +Most syntactic errors are ignored, as the specification requires. +.PP +In some applications there can be auxiliary declarations outside a stylesheet. +.B Parsedecl +takes a string +.I s +containing a sequence of declarations, and returns a tuple +.BI ( decls,\ err ) +where +.I decls +is a list of references to +.B Decl +values, each representing a single +.I declaration +in +.IR s . +On a fatal error, +.I decls +is nil, and +.I err +is a diagnostic. +.PP +The adts represent an abstract syntax of the CSS grammar. +The concrete syntax is presented below in an extended BNF, +derived from the reference grammar, +with each section labelled by the name of the corresponding adts. +(Compared to the reference grammar in the +specification, it abstracts away from the complex rules about where whitespace can appear.) +.TP +.B Stylesheet +.EX +.ft R +\f2stylesheet\fP ::= [ '\f5@charset\fP' STRING '\f5;\fP' ] \f2import\fP* \f2statement\fP* +.EE +.IP +Limbo lists represent lists of items in the grammar. +Nil values denote optional components that are missing. +Upper-case names such as +IDENT, +STRING +and +NUMBER +are terminals; see the CSS specification for their +often subtle definitions. +They are usually represented +by Limbo string values in the adts. +.TP +.B Import +.EX +.ft R +\f2import\fP ::= '\f5@import\fP' (\f2STRING\fP|\f2uri\fP) [\f2medium\fP ('\f5,\fP' \f2medium\fP)*] '\f5;\fP' +\f2uri\fP ::= '\f5url(\fP' STRING '\f5)\fP' +.EE +.IP +.B Import.name +holds the text of the +STRING +or +.IR uri . +.TP +.B Statement +.EX +.ft R +\f2statement\fP ::= \f2ruleset\fP | \f2media\fP | \f2page\fP +\f2media\fP ::= '\f5@media\fP' \f2medium\fP ('\f5,\fP' \f2medium\fP)* '\f5{\fP' \f2ruleset\fP* '\f5}\fP' +\f2medium\fP ::= IDENT +\f2page\fP ::= '\f5@page\fP' [\f2pseudo_page\fP] '\f5{\fP' \f2declaration\fP ('\f5;\fP' \f2declaration\fP)* '\f5}\fP' +\f2pseudo_page\fP ::= '\f5:\fP' IDENT +\f2ruleset\fP ::= \f2selector\fP ('\f5,\fP' \f2selector\fP)* '\f5{\fP' \f2declaration\fP ('\f5;\fP' \f2declaration\fP)* '\f5}\fP' +.EE +.IP +.B Statement +is not in the reference grammar, but is introduced here to give a name corresponding +to the pick adt. +.TP +.B Decl +.EX +.ft R +\f2declaration\fP ::= \f2property\fP '\f5:\fP' \f2expr\fP ['\f5!\fP' '\f5important\fP'] | /* \f2empty\fP */ +\f2property\fP ::= IDENT +.EE +.B Decl.values +is a list representing the terms of the +.I expr +(see below for details). +.BR Decl 's +field +.B important +is non-zero if the optional `important' priority is given. +.TP +.B "list of ref Value" +.EX +.ft R +\f2expr\fP ::= \f2term\fP (\f2operator\fP \f2term\fP)* +\f2operator\fP ::= '\f5/\fP' | '\f5,\fP' | /* \f2empty\fP */ +.EE +.IP +An +.I expr +is always represented as a list of references to +.B Value +in some containing structure +(where +.B Value +represents a +.IR term , +see below). +The +.I operator +preceding each +.I term +appears as the field +.B sep +of the corresponding +.BR Value , +where a space character represents `empty' (concatenation). +.TP +.BR Selector +.EX +.ft R +\f2selector\fP ::= \f2simple_selector\fP (\f2combinator\fP \f2simple_selector\fP)* +\f2combinator\fP ::= '\f5+\fP' | '\f5>\fP' | /* \f2empty\fP */ +.EE +.IP +.B Selector +is just a type synonym for a list of tuples, say +.BI ( com,\ simplesel ) +where the +.I simplesel +value represents +.I simple_selector +(see below), and the integer +.I com +is one of the characters space (representing `empty'), +.RB ` > ' +or +.RB ` + ', +giving the combinator that preceded the simple selector. +(The first in the list is always space.) +.TP +.BR Simplesel ", " Select +.EX +.ft R +\f2simple_selector\fP ::= \f2element_name\fP (\f2hash\fP | \f2class\fP | \f2attrib\fP | \f2pseudo\fP)* + | (\f2hash\fP | \f2class\fP | \f2attrib\fP | \f2pseudo\fP)+ +\f2hash\fP ::= '\f5#\fP' NAME +\f2class\fP ::= '\f5.\fP' IDENT +\f2element_name\fP ::= IDENT | '\f5*\fP' +\f2attrib\fP ::= '\f5[\fP' IDENT [('\f5=\fP' | '\f5|=\fP' | '\f5~=\fP') (IDENT | STRING)] '\f5]\fP' +\f2pseudo\fP ::= '\f5:\fP' ( IDENT | IDENT '\f5(\fP' [IDENT] '\f5)\fP' ) +.EE +.IP +A +.I simple_selector +is represented by +.BR Simplesel , +a list of references to +.B Select +values, each representing one +.I element_name +or qualifier. +An +.I element_name +is represented by +.B Select.Element +for an +IDENT, +or +.B Select.Any +for +.RB ` * '. +The qualifiers are +.I hash +.RB ( Select.ID ), +.I class +.RB ( Select.Class ), +.I attrib +.RB ( Select.Attrib , +where the comparison operator is the string +.BR op ), +.I pseudo +(either +.B Select.Pseudo +if a plain identifier, or +.B Select.Pseudofn +for a function with optional parameter). +.TP +.B Value +.EX +.ft R +\f2term\fP ::= ['\f5+\fP' | '\f5-\fP'] (NUMBER | \f2percent\fP | \f2unit\fP) | STRING | IDENT | \f2uri\fP | \f2function\fP | \f2hexcolour\fP | \f2rgb\fP +\f2function\fP ::= IDENT '\f5(\fP' \f2expr\fP '\f5)\fP' +\f2hash\fP ::= '\f5#\fP' NAME +\f2hexcolour\fP ::= '\f5#\fP' HEXDIGIT+ +\f2percent\fP ::= NUMBER '\f5%\fP' +\f2unit\fP ::= NUMBER STRING +\f2rgb\fP ::= '\f5rgb(\fP' \f2term\fP '\f5,\fP' \f2term\fP '\f5,\fP' \f2term\fP '\f5)\fP' +\f2uri\fP ::= '\f5url(\fP' STRING '\f5)\fP' +.EE +.IP +Any sign before a +.BR Number , +.B Percentage +or +.B Unit +appears as the first character of +.BR value . +All the dimensional units (LENGTH, EMS, EXS, ANGLE, TIME, FREQ and others) +in the reference grammar are mapped to +.BR Value.Unit , +with the field +.B units +containing the name of the relevant unit (eg, +.LR cm , +.LR in , +etc.) in lower case. +Values and names appear shorn of the surrounding punctuation. +.B Value.Hexcolour +includes the original sequence of hex digits as a string, +and a decoding of it as an +.B rgb +triple. +The arguments to the CSS +.B rgb +function are similarly presented in original and decoded forms, in +.BR Value.RGB . +Other function references are returned uninterpreted in +.BR Value.Function . +.SH SOURCE +.B /appl/lib/w3c/css.b +.SH SEE ALSO +``Cascading Style Sheets, level 2 revision 1'', +.B http://www.w3.org/TR/CSS21 diff --git a/static/inferno/man2/w3c-uris.2 b/static/inferno/man2/w3c-uris.2 new file mode 100644 index 00000000..b068130f --- /dev/null +++ b/static/inferno/man2/w3c-uris.2 @@ -0,0 +1,243 @@ +.TH W3C-URIS 2 +.SH NAME +w3c-uris \- uniform resource identifiers +.SH SYNOPSIS +.EX +include "uris.m"; + +uris := load URIs URIs->PATH; +URI: import uris; + +URI: adt +{ + scheme: string; + userinfo: string; # authority, part I + host: string; # authority, part II + port: string; # authority, part III + path: string; # starts with / if absolute + query: string; # includes ? if not nil + fragment: string; # includes # if not nil + + parse: fn(s: string): ref URI; + text: fn(u: self ref URI): string; + addbase: fn(base: self ref URI, rel: ref URI): ref URI; + authority: fn(u: self ref URI): string; + copy: fn(u: self ref URI): ref URI; + eq: fn(u: self ref URI, v: ref URI): int; + hasauthority: fn(u: self ref URI): int; + isabsolute: fn(u: self ref URI): int; + nodots: fn(u: self ref URI): ref URI; + userpw: fn(u: self ref URI): (string, string); +}; + +init: fn(); +dec: fn(s: string): string; +enc: fn(s: string, safe: string): string; +.EE +.SH DESCRIPTION +.B URIs +supports the `generic syntax' for `Uniform' Resource Identifiers (URIs), defined by RFC3986. +Each URI can have up to five components in the general syntax: +.IP +.IB scheme : +.BI // authority / path +.BI ? query +.BI # fragment +.PP +where each component is optional, and can have scheme-specific substructure. +For instance, in the +.BR ftp , +.B http +schemes, and perhaps others, the +.I authority +component has the further syntax: +.IP +.IB userinfo @ host : port +.PP +The set of characters allowed in most components is also scheme-specific, as is their interpretation, and indeed the +interpretation of the component itself. +.PP +.B Init +must be called before any other operation in the module. +.PP +.B URI +represents a parse of a URI into its components, where the +.I authority +has been further split into the scheme-specific but common triple of +.IR userinfo , +.I host +and +.IR port . +(The function +.B URI.authority +will reproduce the original +.I authority +component if required.) +The +.B query +field starts with the +.RB ` ? ' +character that introduces the +.I query +component, so that an empty query is represented by the string +\f5"?"\fP, and the absence of a query component is represented by a nil value. +The +.B fragment +field is handled in a similar way with its delimiting +.RB ` # '. +The fields representing the other components do not include the delimiters in the syntax, +and all but +.B query +have percent-encoded characters decoded. +(The query string is an exception because the set of characters to escape is application-specific. +See below for decoding and encoding functions.) +.B URI +provides the following operations: +.TP +.BI parse( s ) +Return a +.B URI +value representing the results of parsing string +.I s +as a URI. +There is no error return. +The component values have percent-escapes decoded as discussed above. +The scheme name is converted to lower case. +.TP +.IB u .text() +Return the textual representation of +.I u +in the generic syntax, +adding percent-encoding as required to prevent characters +being misinterpreted as delimiters. +.TP +.IB u .addbase( b ) +Resolves URI reference +.I u +with respect to a base URI +.IR b , +including resolving all +.RB ` . ' +and +.RB ` .. ' +segments in the URI's path, +and returns the resulting +.B URI +value. +If +.I u +is an absolute URI reference or +.I b +is nil, the result is the same as +.I u +except that all +.RB ` . ' +and +.RB ` .. ' +segments have been resolved in the resulting path, and leading +instances of them removed. +.TP +.IB u .authority() +Returns the text of the +.I authority +component of +.IR u , +in the generic syntax, +created from its +.BR userinfo , +.B host +and +.B port +components. +.TP +.IB u .copy() +Return a reference to an independent copy of +.IR u . +.TP +.IB u .eq( v ) +Returns true if +.I u +and +.I v +are textually equal in all components except +.BR fragment . +Note that +.I u +and +.I v +are assumed to be in a canonical form for the scheme and application. +.TP +.IB u .eqf( v ) +Returns true if +.I u +and +.I v +are textually equal in all components including +.BR fragment . +.TP +.IB u .hasauthority() +Returns true if any of the authority subcomponents of +.I u +are not nil; returns false otherwise. +.TP +.IB u .isabsolute() +Returns true if +.I u +has a +.I scheme +component; returns false otherwise. +.TP +.IB u .nodots() +Returns a new +.B URI +value in which all +.RB ` . ' +and +.RB ` .. ' +segments have been resolved (equivalent to +.IB u .addbase(nil)\c +). +.TP +.IB u .userpw() +Returns a tuple +.BI ( username,\ password ) +derived from parsing the +.I userinfo +subcomponent of +.I authority +using the deprecated but depressingly still common convention that +.I userinfo +has the syntax ``\fIusername\fP\f5:\fP\fIpassword\fP''. +.PP +A reserved or otherwise special character that appears in a URI component must be +encoded using a sequence of one or more strings of the form +.BI % xx +where +.I xx +is the hexadecimal value of one byte of the character's encoding in +.IR utf (6). +A string +.I s +containing such encodings can be decoded by the function +.BR dec . +A string +.I s +can be encoded by +.BR enc , +where the parameter +.I safe +lists the characters that need not be escaped (where +.I safe +may be nil or empty). +These functions are normally only needed to decode and encode the values of +.BR URI.query , +because +.B URI.parse +and +.B URI.text +above decode and encode the other fields. +.SH SOURCE +.B /appl/lib/w3c/uris.b +.SH SEE ALSO +.IR charon (1), +.IR httpd (8) diff --git a/static/inferno/man2/w3c-xpointers.2 b/static/inferno/man2/w3c-xpointers.2 new file mode 100644 index 00000000..deda4e32 --- /dev/null +++ b/static/inferno/man2/w3c-xpointers.2 @@ -0,0 +1,382 @@ +.TH W3C-XPOINTERS 2 +.SH NAME +w3c-xpointers \- parser for XPointers framework including XPath +.SH SYNOPSIS +.EX +include "xpointers.m"; + +xpointers := load Xpointers Xpointers->PATH; +Xpath, Xstep: import xpointers; + +# special operators ('+', '-', etc represent themselves) +One, Ole, Oge, Omul, Odiv, Omod, Oand, Oor, Oneg, +Onodetype, Onametest, Ofilter, Opath: con ...; + +# axis types +Aancestor, +Aancestor_or_self, +Aattribute, +Achild, +Adescendant, +Adescendant_or_self, +Afollowing, +Afollowing_sibling, +Anamespace, +Aparent, +Apreceding, +Apreceding_sibling, +Aself: con iota; + +Xstep: adt { + axis: int; # Aancestor, ... (above) + op: int; # Onametest or Onodetype + ns: string; + name: string; + arg: string; # optional parameter to processing-instruction + preds: cyclic list of ref Xpath; + + text: fn(nil: self ref Xstep): string; + axisname: fn(i: int): string; +}; + +Xpath: adt { + pick{ + E => + op: int; + l, r: cyclic ref Xpath; + Fn => + ns: string; + name: string; + args: cyclic list of ref Xpath; + Var => + ns: string; + name: string; + Path => + abs: int; + steps: list of ref Xstep; + Int => + val: big; + Real => + val: real; + Str => + s: string; + } + text: fn(nil: self ref Xpath): string; +}; + +framework: fn(s: string): + (string, list of (string, string, string), string); + +# predefined schemes +element: fn(s: string): (string, list of int, string); +xmlns: fn(s: string): (string, string, string); +xpointer: fn(s: string): (ref Xpath, string); +.EE +.SH DESCRIPTION +.B Xpointers +implements a parser for the World-Wide Web Consortium's XPointers framework, +including a parser for XPath expressions. +.PP +.B Init +must be called before any other operation in the module. +.PP +.B Framework +parses a string +.I s +according to the grammar for the XPointers framework, +and returns a tuple +.BI ( short,\ pointers,\ err ) . +On an error, the string +.I err +gives a diagnostic and the other two values are nil. +Otherwise, if +.I short +is non-nil, the XPointer was a `shorthand pointer', with the given value; +.I pointers +will be nil. +If a scheme-based pointer is used, +.I short +is nil and +.I pointers +has a list of tuples +.BI ( ns,\ scheme,\ data ) , +each representing one pointer value. +.I Ns +is the XML name space for the given +.IR scheme ; +the default name space is represented by nil. +.I Scheme +is the XPointer scheme name within that name space; and +.I data +is the actual pointer value following the rules of that scheme. +(They all have completely different syntax.) +.PP +Three common schemes are directly supported by the module, +by functions named after the scheme. +All of them follow the convention of returning a tuple in which +the last element is a diagnostic string. +On an error, all but that last element of the tuple will be nil, +and the last element will be a non-nil string with a diagnostic. +.PP +.B Xmlns +parses an XML name space definition of the form +.IB ns = uri, +and returns its components. +.PP +.B Element +parses a value of the XPointer +.B element +scheme, given by the grammar: +.IP +.EX +.ft I +selector \f1::=\fP name child* \f1|\fP child+ +child \f1::=\fP '\f5/\fP' \f5[1-9][0-9]\fP* +.EE +.PP +The optional +.I name +is an XPointer `shorthand pointer'. +Each +.I child +number selects the child with that index (origin 1) at the corresponding level of the XML tree +beneath the node selected by the +.IR name , +or starting at the root of the XML tree. +.B Element +returns a tuple +.BI (( name,\ path ) ,\ err ) +where +.I name +is the top element name or nil if none was specified, +and +.I path +is a +.B "list of int" +giving the path of child indices. +.PP +The most complex scheme is +.BR xpointer , +because its syntax is that of XML's elaborate XPath expression. +.B Xpointer +parses such an expression and returns a tuple +.BI ( e,\ err ) +where +.I e +refers to an +.B Xpath +value that represents the abstract syntax of the XPath +.BR Expr . +.B Xpointer +checks only the syntax of +.IR s , +and does not check that functions are limited to those specified by the +.B xpointer +scheme (that is consistent with it being a parse of +.IR s , +rather than an XPointer or XPath evaluator). +.PP +.B Xpath +and +.B Xstep +together represent an abstract syntax of the XPath grammar. +.PP +.B Xstep +represents the XPath +.B Step +grammar rule, with all abbreviations expanded to their full form: +.IP +.EX +.ft I +Step \f1::=\fP AxisName '\f5::\fP' NodeTest Predicate* +NodeTest \f1::=\fP NameTest \f1|\fP NodeType '\f5(\fP' '\f5)\fP' +NameTest \f1::=\fP '\f5*\fP' \f1|\fP NCName '\f5:\fP' '\f5*\fP' \f1|\fP (NCName '\f5:\fP')? NCName +Predicate \f1::=\fP '\f5[\fP' Expr '\f5]\fP' +.EE +.PP +The correspondence is as follows: +.TF s.text() +.PD +.TP +.IB s .axis +Represents the +.B AxisName +by one of the constants +.B Aancestor +to +.BR Aself . +.TP +.IB s .op +.B Onametest +or +.B Onodetype +to say which rule is represented +.TP +.IB s .ns +For a +.IR NameTest , +gives the XML name space; +can be +.L * +for `any name space' or nil for the default name space. +For a +.IR NodeType , +gives the type: +.BR comment , +.BR node , +.BR processing-instruction , +or +.BR text . +.TP +.IB s .name +Gives the +.I name +for a +.IR NameTest ; +can be +.L * +for `any name'. +.TP +.IB s .arg +The optional literal parameter to a +.I NodeType +that is a +.BR processing-instruction . +.TP +.IB s .preds +A list of +.B Xpath +values representing the optional sequence of +.I Predicate +expressions +.TP +.IB s .text() +Returns a string representing the +.B Xstep +in textual form. +.TP +.IB s .axisname( a ) +Returns the printable text for axis code +.I a +(ie, +one of +.B Aancestor +to +.BR Aself ) +.PP +.B Xpath +values represent an abstract syntax for an XPath expression. +Briefly, an expression follows the grammar below (see the XPath specification for the full concrete syntax). +.IP +.EX +.ft I +.ta \w'e ::= 'u +e ::= e '\f5or\fP' e + | e '\f5and\fP' e + | e \f1(\fP'\f5=\fP' \f1|\fP '\f5!=\fP'\f1)\fP e + | e \f1(\fP'\f5<\fP' \f1|\fP '\f5<=\fP' \f1|\fP '\f5>=\fP' \f1|\fP '\f5>\fP'\f1)\fP e + | e \f1(\fP'\f5+\fP' \f1|\fP '\f5-\fP'\f1)\fP e + | e \f1(\fP'\f5*\fP' \f1|\fP '\f5div\fP' \f1|\fP '\f5mod\fP'\f1)\fP e + | '\f5-\fP' e + | e '\f5|\fP' e + | filter + | path +filter ::= primary predicate* \f1(\fP\f1(\fP'\f5/\fP' \f1|\fP '\f5//\fP'\f1)\fP relpath\f1)\fP? +primary ::= '\f5$\fP' QName \f1|\fP '\f5(\fP' e '\f5)\fP' \f1|\fP Literal \f1|\fP Number \f1|\fP FunctionName '\f5(\fP' \f1(\fPe \f1(\fP'\f5,\fP' e\f1)\fP*\f1)\fP '\f5)\fP' +path ::= '\f5/\fP' relpath \f1|\fP relpath +relpath ::= relpath '\f5/\fP' relpath \f1|\fP relpath '\f5//\fP' relpath \f1|\fP Step +.EE +.PP +Most of +.I e +is represented by a binary tree using the pick +.BI Xpath.E( op,\ l,\ r ) +where +.I op +is an operator symbol (either the character itself or one of the constants +.BR One , +.BR Odiv , +etc. for compound symbols), +and +.I l +and +.I r +represent the operands. +The only unary operator +.B Oneg +has its operand in +.IR l . +A +.I filter +uses the binary operator +.BI Xpath.E(Ofilter ,\ e,\ pred ) +to apply each +.I predicate +to the preceding +.I primary +or +.IR predicate . +A +.I filter +also uses +.BI Xpath.E(Opath ,\ e,\ relpath ) +to apply the optional +.I relpath +(represented by a value of +.BR Xpath.Path ) +to the preceding part of the filter expression. +.PP +The other cases in the pick adt correspond to the various choices of +.I path +and +.IR primary . +Integer and real numbers are distinguished. +.I Literal +is represented by +.BR Xpath.Str ; +variable references (ie, +.BI $ QName\c +) +are represented by +.BR XPath.Var , +where +.I ns +gives the optional XML name space of the +.IR name . +.I Path +is represented by +.BI Xpath.Path( abs,\ steps ) +where +.I abs is non-zero if and only if the path is absolute (starts with `/' or `//'), +and +.I steps +lists the +.B Xstep +values corresponding to the slash-separated +.I Steps +in the grammar. +Abbreviated forms such as +.RB ` // ' +are converted by +.B xpointer +to their full internal form in terms of +.RB ` / ', +as defined by the specification, +so there is no need to distinguish the delimiters in this representation. +.SH SOURCE +.B /appl/lib/w3c/xpointers.b +.SH SEE ALSO +``XML Path Language (XPath) Version 1.0'', +.B http://www.w3.org/TR/xpath +.br +``XPointer framework'', +.B http://www.w3.org/TR/xptr-framework/ +.br +``XPointer element() scheme'', +.B http://www.w3.org/TR/xptr-element/ +.br +``XPointer xmlns() scheme'', +.B http://www.w3.org/TR/xptr-xmlns/ +.br +``XPointer xpointer() scheme'', +.B http://www.w3.org/TR/xptr-xpointer/ diff --git a/static/inferno/man2/wait.2 b/static/inferno/man2/wait.2 new file mode 100644 index 00000000..9854e3ec --- /dev/null +++ b/static/inferno/man2/wait.2 @@ -0,0 +1,100 @@ +.TH WAIT 2 +.SH NAME +wait \- wait for child process to exit +.SH SYNOPSIS +.EX +wait := load Wait Wait->PATH; + +Wait: module +{ + init: fn(); + read: fn(fd: ref Sys->FD): (int, string, string); + monitor: fn(fd: ref Sys->FD): (int, chan of (int, string, string)); + parse: fn(status: string): (int, string, string); +}; +.EE +.SH DESCRIPTION +.B Wait +helps use the +.B wait +file of +.IR prog (3). +.PP +.B Init +must be called to initialise the module before invoking any other function. +.PP +.B Read +reads a single wait record from file descriptor +.IR fd , +which must be open on some process +.IR p 's +.B wait +file, +and returns a tuple +.BI ( pid\f5,\fP\ module\f5,\fP\ status ) +where +.I pid +is the process ID of a child of +.I p +that has exited, +.I module +is the name of the module that caused +.I p +to exit, +and +.I status +is nil if +.I pid +ended without error or a status message otherwise. +If reading the +.B wait +file resulted in end of file or error, +.I pid +is 0 (for end of file) or +.B -1 +on error (and +.I status +is the system error string for the error). +.PP +.B Monitor +provides a channel interface to the +.B wait +file open on +.IR fd ; +it allows, for instance, +a process to use +.B alt +to exchange data with a process but also see it exit (for good or ill). +It starts a monitor process that applies +.B read +to +.I fd +and sends each resulting tuple on a channel. +It returns a tuple +.BI ( pid\f5,\fP\ c ) +where +.I pid +is the process ID of the monitor process (which can be used to kill it when done with it), +and +.I c +is the channel on which the process sends each value it reads. +The tuple has the format described above for +.BR read . +The monitor process exits when the wait file +.I fd +yields end of file or error, after sending the corresponding tuple on +.IR c . +.PP +.B Parse +takes a complete +.I status +string as read from a +.B wait +file and returns a tuple +.BI ( pid\f5,\fP\ module\f5,\fP\ status ) +as described for +.B read +above. +.SH SEE ALSO +.IR sh (1), +.IR prog (3) diff --git a/static/inferno/man2/wmclient.2 b/static/inferno/man2/wmclient.2 new file mode 100644 index 00000000..23aada28 --- /dev/null +++ b/static/inferno/man2/wmclient.2 @@ -0,0 +1,235 @@ +.TH WMCLIENT 2 +.SH NAME +wmclient: makedrawcontext, window, snarfput, snarfget \- +window manager interface for Draw-based applications. +.SH SYNOPSIS +.EX +include "tk.m"; +include "wmclient.m"; +wmclient := load Wmclient Wmclient->PATH; + +Resize, +Hide, +Help, +OK, +Plain: con 1 << iota; + +Appl: con Resize | Hide; + +init: fn(); +makedrawcontext: fn(): ref Draw->Context; +window: fn(ctxt: ref Draw->Context, title: string, buts: int): ref Window; +snarfput: fn(buf: string); +snarfget: fn(): string; +Window: adt{ + display: ref Draw->Display; + r: Draw->Rect; # full rectangle of window, including titlebar. + image: ref Draw->Image; + screenr: Draw->Rect; + ctxt: ref Draw->Wmcontext; + focused: int; + ctl: chan of string; + + startinput: fn(w: self ref Window, devs: list of string); + wmctl: fn(w: self ref Window, request: string): string; + settitle: fn(w: self ref Window, name: string): string; + reshape: fn(w: self ref Window, r: Draw->Rect); + onscreen: fn(w: self ref Window, how: string); + screenr2imager: fn(w: self ref Window, sr: Draw->Rect): Draw->Rect; + imager2screenr: fn(w: self ref Window, ir: Draw->Rect): Draw->Rect; + pointer: fn(w: self ref Window, p: Draw->Pointer): int; +}; + +.EE +.SH DESCRIPTION +The +.B Wmclient +module provides routines for making windows controlled by +.IR wm (1) +containing an image that can be drawn on with the +routines described in +.IR draw-image (2). +.PP +.B Init +should be called once to initialise the internal state of +.BR wmclient . +.PP +.B Makedrawcontext +establishes an initial connection with the window manager, +creating a new +.B Draw +context suitable for creating new windows. It is only +necessary to call this if the application has not already +been provided with a context. +.PP +.B Window +creates a new window through +.IR ctxt +and returns it. +.I Title +gives a label that will be displayed in the title bar +of the window; +.I buts +determines which buttons are created in the titlebar, +a bitwise combination of the constants +.BR Resize , +.BR Help , +.BR OK, +and +.BR Hide . +If +.B Plain +is given, the window is given no decoration at all. +.PP +When a window, say +.IR w , +is first created, its size has not been determined +and its image is not yet allocated. +.IB W .reshape +sets the requested rectangle for the window, +(and requests a new image for the window +if it has already been made visible), +where +.I r +gives the requested rectangle of the new +image, excluding window decoration, such as the +title bar and the window border. +An application can use +.IB w .screenr2imager +to find out the usable rectangle within screen +rectangle +.I sr +when window decorations are taken into account. +.IB W .imager2screenr +converts in the other direction. +.IB W .screenr +contains the current rectangle of the screen containing +the window. +.PP +.IB W .image +holds the window's image when it has been successfully created; +.IB w .ctxt +holds the window manager context for the window, from which +keyboard and mouse events can be received. +No such events will be received until +.IB w .startinput +is called, with a list of devices (e.g. +.BR ptr , +.BR kbd ) +to start input for. +.IB W .settitle +sets the title that is shown on the window's title bar; +it can make the window's size (and therefore the window's image) +change. +.PP +.IB W .ctl +is a channel down which requests from the titlebar are sent. +Messages received on it should be processed by +the application or passed to +.IB w \.wmctl\fR. +Requests are formatted +as with +.B quoted +in +.IR string (2). +The messages include: +.TP +.B exit +The window should be closed. +.IB W .wmctl +will kill all processes in the current +process group. +.TP +.B !move \fIx\fP \fIy\fP +The user has started to try to drag the window. +.I X +and +.I y +give the location of the initial pointer click. +.TP +.B !size \fImindx\fP \fImindy\fP +The user wishes to resize the window. +.I Mindx +and +.I mindy +give the minimum size acceptable for the window. +.TP +.B help +The help button has been clicked. +.TP +.B ok +The OK button has been clicked. +.TP +.B hide +The Hide button has been clicked. +.IB W .wmctl +will delete the window, and an entry +will be shown on the toolbar. +.PP +In order to function correctly, an application +should process not only events from the +title bar channel, but also events received from the window +manager itself (via +.IB w .ctxt.ctl\fR),\fP +and pointer and keyboard events received from +the window manager (via +.IB top .ctxt.ptr +and +.IB top .ctxt.kbd +respectively). +Control events can be passed to +.IB w .wmctl \fR; +keyboard events can be processed by the application; +pointer events should be passed to +.IB w .pointer +for processing; if this returns zero, the +application should process the pointer event, +otherwise the event has been consumed by the +titlebar. +.PP +When created, the window is not visible; +.IB w .onscreen +makes it visible, and possibly chooses a +position and a size for it. +.I How +specifies what sort of placement is required +for the window; it can be one of +.TP +.B place +tries to choose a suitable place on the screen +with respect to other windows; it may size the +window as it feels appropriate. This the default +(if +.I how +is nil). +.TP +.B onscreen +tries to keep the position and size the same +as specified on the window, adjusting them only +to bring the window fully on screen, and making sure +that the window is no bigger than the entire display. +.TP +.B exact +does not change the specified size or position +of the window unless absolutely necessary. +.PP +.B Snarfget +and +.B snarfput +retrieve and replace the contents of the window +manager's snarf buffer. +.SH FILES +.TF /chan/snarf +.TP +.B /chan/snarf +snarf buffer maintained by +.IR wm (1) +.TP +.B /chan/wm +channel for interaction with +.IR wm (1) +.SH SOURCE +.B /appl/lib/wmclient.b +.SH SEE ALSO +.IR wm (1), +.IR tk (2) diff --git a/static/inferno/man2/wmlib.2 b/static/inferno/man2/wmlib.2 new file mode 100644 index 00000000..dade0c47 --- /dev/null +++ b/static/inferno/man2/wmlib.2 @@ -0,0 +1,90 @@ +.TH WMLIB 2 +.SH NAME +wmlib \- +low level access to window manager +.SH SYNOPSIS +.EX +include "sys.m"; +include "draw.m"; +include "wmlib.m"; +wmlib := load Wmlib Wmlib->PATH; + +init: fn(); +connect: fn(ctxt: ref Draw->Context): ref Draw->Wmcontext; +startinput: fn(w: ref Draw->Wmcontext, devs: list of string): string; +wmctl: fn(w: ref Draw->Wmcontext, request: string): (string, ref Draw->Image, string); +snarfput: fn(buf: string); +snarfget: fn(): string; + +.EE +.SH DESCRIPTION +.B Wmlib +provides basic routines to access the window manager, +It is used by higher level modules such as +.IR tkclient (2) +and +.IR wmclient (2) +to provide window manager access to applications. +.PP +.B Init +should be called once to initialise the internal state of +.BR Wmlib . +.B Connect +makes a connection to the window manager through +.I ctxt +(see +.IR draw-context (2)). +.B Startinput +tells the window manager to start queuing events on the input +streams named in +.I devs +(e.g. +.BR ptr , +.BR kbd ) +so that they can be received by the application. +.PP +.B Wmctl +sends +.I request +to the window manager. +It returns a tuple, say (\fIname\fP, \fIimg\fP, \fIerr\fP). +If a request fails, then +.I name +and +.I img +will be nil and the non-empty +.I err +gives the reason. +If the request has resized or created an image, +.I name +gives the tag name of the image and +.I img +holds the new image. +.B Wmlib +interprets the +.B exit +request itself, by killing all processes in the current +process group, and exiting. +.PP +.B Snarfget +and +.B snarfput +retrieve and replace the contents of the window +manager's snarf buffer. +.SH FILES +.TF /chan/snarf +.TP +.B /chan/snarf +snarf buffer maintained by +.IR wm (1) +.TP +.B /chan/wm +channel for interaction with +.IR wm (1) +.SH SOURCE +.B /appl/lib/wmclient.b +.SH SEE ALSO +.IR wm (1), +.IR wmclient (2), +.IR tkclient (2), +.IR tk (2) diff --git a/static/inferno/man2/wmsrv.2 b/static/inferno/man2/wmsrv.2 new file mode 100644 index 00000000..5617508f --- /dev/null +++ b/static/inferno/man2/wmsrv.2 @@ -0,0 +1,295 @@ +.TH WMSRV 2 +.SH NAME +Wmsrv \- core window-manager functionality and helper functions +.SH SYNOPSIS +.EX +.ps -1 +.vs -1 +include "sys.m"; +include "draw.m"; +include "wmsrv.m"; +wmsrv := load Wmsrv Wmsrv->PATH; +Client, Window: import wmsrv; + +init: fn(): + (chan of (string, chan of (string, ref Draw->Wmcontext)), + chan of (ref Client, chan of string), + chan of (ref Client, array of byte, Sys->Rwrite)); +find: fn(p: Draw->Point): ref Client; +top: fn(): ref Client; + +Window: adt { + tag: string; + r: Rect; + img: ref Image; +}; + +Client: adt { + kbd: chan of int; + ptr: chan of ref Draw->Pointer; + ctl: chan of string; + stop: chan of int; + images: chan of (ref Draw->Point, ref Draw->Image, chan of int); + flags: int; + wins: list of ref Window; + znext: cyclic ref Client; + id: int; + + window: fn(c: self ref Client, tag: string): ref Window; + contains: fn(c: self ref Client, p: Draw->Point): int; + setimage: fn(c: self ref Client, tag: string, i: ref Draw->Image): int; + setorigin:fn(c: self ref Client, tag: string, o: Draw->Point): int; + top: fn(c: self ref Client); + bottom: fn(c: self ref Client); + remove: fn(w: self ref Client); +}; +.ps +1 +.vs +1 +.EE +.SH DESCRIPTION +.B Wmsrv +acts as a kind of ``buffer'' module between an actual window-manager +implementation and possibly misbehaving clients. +It provides notification when clients arrive, make window-manager requests, +and leave. For each client, it provides a set of channels that mirror those +found in +.BR Draw->Wmcontext , +(see +.IR draw-context (2)), +except that writing to the +.BR Client 's +channels is guaranteed not to block. +Each client holds zero or more +.BR Window s, +each of which is tagged with an identifying string +and which can hold the image of that window. +A given client's windows are layered in strict order, +most recently created at the top. Most clients will have +only one window; others are generally used only for +ephemeral purposes, such as pop-up menus. +.PP +A +.BR Client , +say +.IR c , +holds some channels directly equivalent to their +.B Wmcontext +namesakes: +.IB c \.kbd\fR +.IB c \.ptr\fR, +and +.IB c \.ctl\fR. +The behaviour of +.IB c \.images +is described below. +.B Wmsrv +starts a new process to mediate interaction +between the window manager and its clients; +sending a value on +.IB c \.stop +causes this process to exit. +.IB C \.wins +gives the list of all the windows +associated with this client; +.IB c \.flags +is not used by +.IR wmsrv : +it may be used to store arbitrary information; +.IB c \.id +holds a unique identifier for the client; +it will be no larger than the largest +number of clients that have simultaneously existed; +.IB c \.znext +links clients together by window depth (see +.BR top , +below). +.PP +.B Init +must be called before any other +.I wmsrv +function to initialise the +.I wmsrv +module. It creates the virtual file +.BR /chan/wm , +and returns a tuple of channels, say (\fIwm\fP, \fIjoin\fP, \fIrq\fP). +.I Wm +is the channel that should be passed to prospective clients +in the +.B Draw->Context +structure; communication on this channel is used +to establish a new client connection. +.I Join +is used to receive notifications +of new clients arriving. The tuple received on this channel, +say (\fIc\fP, \fIrc\fP) +holds the new client, and a channel on which a reply +should be sent acknowledging the new client. +If the string sent is non-empty, it represents an error message +that will be returned to the client, and the client will not +be allowed to join. +.IB c \.ptr\fR, +.IB c \.kbd\fR, +and +.IB c \.ctl +are all direct equivalents of their +.B Wmcontext +namesakes; the +behaviour of +.IB c \.images +is described below. +.I Rq +is used to receive requests made by clients to the window +manager by writing to the file +.B /chan/wm. +The tuple received on +.IR rq , +say (\fIc\fP, \fIdata\fP, \fIreply\fP) +holds the client that is making the request, the +data that has been sent, and a channel that can be used +(as described in +.IR sys-file2chan (2)) +to return a reply to the request, +The request is conventionally formatted as a utf8-encoded +string, holding a list of tokens quoted as described in +.B quoted +in +.IR string (2). +.PP +If the first character of a window-manager request is an exclamation mark +.RB ( ! ), +it should be a request to change the image of a client's window +(or create a new window). +In this case, the first three tokens should be +the name of the command (starting with an exclamation mark), +the tag of the window to which the request refers, and a tag +used by clients to match requests to replies. +If such a request is allowed to succeed, then clients expect that +a new image will be sent to them. +The +.I images +channel in a client is used to do this (normally accessed through the +.I setimage +and +.I setorigin +methods, see below). Sending a tuple, say (\fIo\fP, \fIi\fP, \fIrc\fP) +on +.I images +buffers an image to be returned to the client. +If +.I o +is non-nil, the request will change the physical origin of +.I i +to +.IR o , +otherwise +.I i +gives a new image (its logical origin must match its physical origin). +Only one such request is allowed to be outstanding +at any one time; the channel passed in +.I rc +will yield the value +.B -1 +if the image from a previous request has not yet been consumed, +in which case the current request should be caused to fail. +.PP +.B Wmsrv +can maintain a record of the current +windows and their stacking order relative to one other. +.B Top +returns a pointer to the client at the top of the stack; +the other clients can be accessed, in stacking order, +via their +.B znext +references. +.B Find +finds the top client that has a window containing +the point +.IR p . +.B Wmsrv +provides various +.B Client +methods that may be used to help +implement a window manager's interface: +.TP 10 +.IB c .window(\fItag\fP) +Yield the +.BR Window , +.IR w , +corresponding to +.IR tag , +or +.B nil +if there is none. +Note that +.IB w \.r +holds the actual screen rectangle of the image; +the client is free to modify the image's logical +coordinate system, so +.IB w \.img.r +cannot be relied upon to contain a value with a meaningful origin. +.TP +.IB c .contains(\fIp\fP) +Return non-zero if any of the client's windows +contain the point +.IR p . +.TP +.IB c .setimage(\fItag\fP,\ \fIi\fP) +Set the image associated with window +.I tag +to +.IR i . +If this is in response to a window manager request, +.I i +must be non-nil, and +.I wmsrv +will arrange that the new image is sent to the client. +If this is not possible, then +.B setimage +will return +.BR -1 . +If +.I i +is nil, no image will be sent to the client +and the window will be deleted. +.TP +.IB c .setorigin(\fItag\fP,\ \fIo\fP) +Similar to +.BR setimage , +except that only the origin of the window is changed. +In order to enable clients to maintain their own logical +coordinate system, +.I wmsrv +first sends +.B nil +on the +.B Wmcontext.images +channel, allowing the client to suspend operations +on the image momentarily; it then sends to same +channel, with its origin set to its actual screen origin. +The client is then free to set the logical origin again. +.TP +.IB c .top() +Raise the client's windows above the other clients' windows. +.TP +.IB c .bottom() +Send the client's windows below the other clients' windows. +.TP +.IB c .remove() +Remove the client and its windows from wmsrv's window stack. +.SH FILES +.TP 10 +.B /chan/wm +Created by +.I wmsrv +using +.IR file2chan (2) +to serve connection requests. +.SH SOURCE +.B /appl/lib/wmsrv.b +.SH SEE ALSO +.IR wm (1), +.IR draw-screen (2), +.IR wmlib (2), +.IR wmexport (1), +.IR wmclient (2), +.IR tkclient (2), diff --git a/static/inferno/man2/workdir.2 b/static/inferno/man2/workdir.2 new file mode 100644 index 00000000..ba6b3094 --- /dev/null +++ b/static/inferno/man2/workdir.2 @@ -0,0 +1,25 @@ +.TH WORKDIR 2 +.SH NAME +workdir \- get the current working directory +.SH SYNOPSIS +.EX +include "workdir.m"; +workdir := load Workdir Workdir->PATH; + +init: fn(): string; +.EE +.SH DESCRIPTION +.B Workdir +returns a string representation of the working directory +of the invoking process. +.PP +When Inferno boots, +the initial process has +.B / +for its working directory. +.SH SOURCE +.B /appl/lib/workdir.b +.SH SEE ALSO +.IR sys-chdir (2), +.IR sys-fd2path (2), +.IR sys-stat (2) diff --git a/static/inferno/man2/xml.2 b/static/inferno/man2/xml.2 new file mode 100644 index 00000000..634b6c68 --- /dev/null +++ b/static/inferno/man2/xml.2 @@ -0,0 +1,277 @@ +.TH XML 2 +.SH NAME +xml \- XML navigation +.SH SYNOPSIS +.EX +include "xml.m"; + +xml := load Xml Xml->PATH; +Parser, Item, Locator, Attributes, Mark: import xml; + +init: fn(): string; +open: fn(f: string, warning: chan of (Locator, string), + preelem: string): (ref Parser, string); +fopen: fn(iob: ref Bufio->Iobuf, f: string, warning: chan of (Locator, string), + preelem: string): (ref Parser, string); + +Parser: adt { + fileoffset: int; + + next: fn(p: self ref Parser): ref Item; + down: fn(p: self ref Parser); + up: fn(p: self ref Parser); + mark: fn(p: self ref Parser): ref Mark; + atmark: fn(p: self ref Parser, m: ref Mark): int; + goto: fn(p: self ref Parser, m: ref Mark); + str2mark: fn(p: self ref Parser, s: string): ref Mark; +}; + +Item: adt { + fileoffset: int; + pick { + Tag => + name: string; + attrs: Attributes; + Text => + ch: string; + ws1: int; + ws2: int; + Process => + target: string; + data: string; + Doctype => + name: string; + public: int; + params: list of string; + Stylesheet => + attrs: Attributes; + Error => + loc: Locator; + msg: string; + } +}; + +Locator: adt { + line: int; + systemid: string; + publicid: string; +}; + +Attribute: adt { + name: string; + value: string; +}; + +Attributes: adt { + all: fn(a: self Attributes): list of Attribute; + get: fn(a: self Attributes, name: string): string; +}; + +Mark: adt { + offset: int; + str: fn(m: self ref Mark): string; +}; +.EE +.SH DESCRIPTION +.B Xml +provides an interface for navigating XML files (`documents'). Once loaded, the module +must first be initialised by calling +.BR init . +A new parser instance is created by calling +.BR open(\fIf\fP,\ \fIwarning\fP,\ \fIpreelem\fP) , +which opens the file +.I f +for parsing as an XML document, +or +.BR fopen(\fIiob\fP,\ \fIname\fP,\ \fIwarning\fP,\ \fIpreelem\fP) , +which does the same for an already open +.B Iobuf +(the string +.I name +will be used in diagnostics). +Both functions return a tuple +.RI ( p ,\ err ). +If there is an error opening the document, +.I p +is nil, and +.I err +contains a description of the error; otherwise +.I p +can be used to examine the contents of the document. +If +.I warning +is not nil, non-fatal errors encountered when parsing +will be sent on this channel - a separate process will +be needed to received them. Each error is represented +by a tuple +.RI ( loc ,\ msg ), +containing the location +.IR loc , +and the description, +.IR msg , +of the error encountered. One XML tag, +.IR preelem , +may be marked for special treatment by the XML parser: +within this tag all white space will be passed through as-is. +.PP +Once an XML document has been opened, the following +.B Parser +methods may be used to examine the items contained within: +.TP 10 +.IB p .next() +An XML document is represented by a tree-structure. +.B Next +returns the next item in the document at the current level of the tree +within the current parent element. If there are no more such +items, it returns +.BR nil . +.TP +.IB p .down() +.B Down +descends into the element that has just been returned by +.BR next , +which should be a +.B Tag +item. Subsequent items returned by +.B next +will be those within that tag. +.TP +.IB p .up() +.B Up +moves up one level in the XML tree. +.TP +.IB p .mark() +.B Mark +returns a mark that can be used to return later to the current +position in the document. The underlying file must +be seekable for this to work. +.TP +.IB p .goto(\fIm\fP) +Goes back to a previously marked position, +.IR m , +in the document. +.TP +.IB p .atmark(\fIm\fP) +.B Atmark +returns non-zero if the current +position in the document is the same as that marked by +.IR m . +The current tree level is ignored in the comparison. +.TP +.IB p .str2mark(\fIs\fP) +.B Str2mark +turns a string as created by +.B Mark.str +back into a mark as returned by +.BR Parser.mark . +.SS Items +Various species of items live in XML documents; they are encapsulated +in the +.B Item +adt. This contains one member in common to all its subtypes: +.BR fileoffset , +the position in the XML document of the start of the item. +The various kinds of item are as follows: +.TP +.B Tag +A generic XML tag. +.B Name +names the tag, and +.B attrs +holds its attributes, if any. +.TP +.B Text +.B Text +represents inline text in the XML document. +With the exception of text inside the tag named by +.I preelem +in +.BR open , +any runs of white space are compressed to a single space, +and white space at the start or end of the text is elided. +.B Ch +contains the resulting text; +.B ws1 +and +.B ws2 +are non-zero if there was originally white space at the start +or end of the text respectively. +.TP +.B Process +.B Process +represents an XML document processing directive. +.B Target +is the processing instruction's target, and +.B data +holds the rest of the text inside the directive. +XML stylesheet directives are recognised directly and have +their own item type. +.TP +.B Doctype +.B Doctype +should only occur at the start of an xml document, +and represents the type of the XML document. +.TP +.B Stylesheet +.B Stylesheet +represents an XML stylesheet processing request. The +data of the processing request is parsed as per the RFC +into attribute-value pairs. +.TP +.B Error +If an unrecoverable error occurs processing the document, +an +.B Error +item is returned holding the location +.RB ( loc ), +and description +.RB ( msg ) +of the error. +This will be the last item returned by the parser. +.PP +The attribute-value pairs in +.B Tag +and +.B Stylesheet +items are held in an +.B Atttributes +adt, say +.IR a . +.IB A .all() +yields a list holding all the attributes; +.IB a .get( name ) +yields the value of the attribute +.IR name . +.PP +The location returned when an error is reported is held +inside a +.B Locator +adt, which holds the line number on which the error occurred, +the ``system id'' of the document (in this implementation, its file name), +and the "public id" of the document (not currently used). +.PP +A +.B Mark +.I m +may be converted to a string with +.IB m .str()\fR;\fP +this enables marks to be written out to external storage, to index +a large XML document, for example. +Note that if the XML document changes, any stored marks will +no longer be valid. +.SH SOURCE +.B /appl/lib/xml.b +.SH SEE ALSO +``Extensible Markup Language (XML) 1.0 (Second Edition)'', +.B http://www.w3.org/TR/REC-xml +.PP +``Navigating Large XML Documents on Small Devices'' in Volume 2. +.SH BUGS +XML's definition makes it tricky to handle leading and trailing white space +efficiently; +.B ws1 +and +.B ws2 +in +.B Item.Text +is the current compromise. diff --git a/static/inferno/man3/0intro.3 b/static/inferno/man3/0intro.3 new file mode 100644 index 00000000..1057dce1 --- /dev/null +++ b/static/inferno/man3/0intro.3 @@ -0,0 +1,69 @@ +.TH INTRO 3 +.SH NAME +intro \- introduction to the Inferno devices +.SH DESCRIPTION +An Inferno +.I device +implements a file tree for client processes. +A file name beginning with a hash (number) symbol, such as +.LR #c , +names the root of a file tree implemented by +a particular +.IR "kernel device driver" +identified by the character after the hash. +Such names are usually bound to conventional locations +in the name space. +For example, after +.IP +.EX +sys->bind("#c", "/dev", sys->MREPL) +.EE +.LP +an +.IR ls (1) +of +.B /dev +will list the files provided by the +.I console +device. +.PP +A kernel device driver is a +.I server +in the sense of the Inferno File Protocol, 9P (see Section 5), +but with the messages implemented by local +rather than remote procedure calls. +Also, several of the messages +.RI ( Nop , +.IR Flush , +and +.IR Error ) +have no subroutine equivalents. +.PP +When a system call is passed a file name beginning with +.L "#" +it looks at the next character, and if that is a valid +.I device character +it performs an +.IR attach (5) +on the corresponding device to get a channel representing the +root of that device's file tree. +If there are any characters after the device character but +before the next +.L "/" +or end of string, those characters are passed as parameter +.I aname +to the attach. +.PP +Each kernel device has a conventional place at which to be bound +to the name space. +The +.I SYNOPSIS +sections of the following pages includes a shell +.I bind +command to put the device in the conventional place. +Most of these binds are done automatically by the system when it initializes; +see +.IR init (8). +.SH SEE ALSO +.IR intro (5), +.IR intro (2) diff --git a/static/inferno/man3/INDEX.3 b/static/inferno/man3/INDEX.3 new file mode 100644 index 00000000..82bda96c --- /dev/null +++ b/static/inferno/man3/INDEX.3 @@ -0,0 +1,54 @@ +intro 0intro +arch arch +audio audio +boot boot +cap cap +cmd cmd +cons cons +dbg dbg +draw draw +ds ds +dup dup +dynld dynld +eia eia +env env +ether ether +flash flash +floppy floppy +fpga fpga +fs fs +ftl ftl +gpio gpio +i2c i2c +i82365 i82365 +indir indir +ip ip +kprof kprof +logfs logfs +lpt lpt +mnt mnt +mpeg mpeg +pbus pbus +pipe pipe +plap plap +pci pnp +pnp pnp +pointer pointer +prof prof +prog prog +root root +rtc rtc +sd sd +sign sign +snarf snarf +srv srv +srv9 srv9 +ssl ssl +switch switch +tinyfs tinyfs +tls tls +touch touch +tv tv +usb usb +vga vga +vid vid diff --git a/static/inferno/man3/Makefile b/static/inferno/man3/Makefile new file mode 100644 index 00000000..c070e829 --- /dev/null +++ b/static/inferno/man3/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.3) + +include ../../mandoc.mk diff --git a/static/inferno/man3/arch.3 b/static/inferno/man3/arch.3 new file mode 100644 index 00000000..ffb03c69 --- /dev/null +++ b/static/inferno/man3/arch.3 @@ -0,0 +1,63 @@ +.TH ARCH 3 x86 +.SH NAME +arch \- x86 architecture-specific information and control +.SH SYNOPSIS +.nf +.B bind -a #P /dev + +.B /dev/cputype +.B /dev/ioalloc +.B /dev/iob +.B /dev/iol +.B /dev/iow +.B /dev/irqalloc +.SH DESCRIPTION +This device presents textual information about PC hardware and allows +user-level control of the I/O ports on x86-class machines. +.PP +Reads from +.I cputype +recover the processor type and clock rate. +.PP +Reads from +.I ioalloc +return I/O ranges used by each device, one line +per range. Each line contains three fields separated by white space: first address +in hexadecimal, +last address, name of device. +.PP +Reads from +.I irqalloc +return the enabled interrupts, one line per +interrupt. Each line contains three fields separated by white space: +the trap number, the IRQ it is assigned to, and the name of +the device using it. +.PP +Reads and writes to +.IR iob , +.IR iow , +and +.I iol +cause 8-bit wide, 16-bit wide, and 32-bit wide requests to +I/O ports. +The port accessed is determined by the byte offset of the +file descriptor. +.SH EXAMPLE +The following Limbo code reads from an x86 byte I/O port. +.IP +.EX +inportb(port: int): byte +{ + data := array[1] of byte; + + if(iobfd == nil) + iobfd = sys->open("#P/iob", Sys->ORDWR); + + sys->seek(iobfd, port, 0); + if(sys->read(iobfd, data, len data) != len data) + fatal(sys->sprint("inportb(16r%4.4x): %r\en", port)); + return data[0]; +} +.EE +.SH SOURCE +.B /os/pc/devarch.c diff --git a/static/inferno/man3/audio.3 b/static/inferno/man3/audio.3 new file mode 100644 index 00000000..17d9aa3e --- /dev/null +++ b/static/inferno/man3/audio.3 @@ -0,0 +1,169 @@ +.TH AUDIO 3 +.SH NAME +audio \- digital audio input and output +.SH SYNOPSIS +.B bind -a '#A' /dev +.PP +.B /dev/audio +.br +.B /dev/audioctl +.SH DESCRIPTION +The +.I audio +device serves a one-level directory containing two files, +giving access to the host or native audio device in a platform-independent way. +.PP +.B Audio +is the data file, which can be read or written to exchange data with the device. Audio +data is a sequence of stereo samples, left sample first, each of which is a 16 bit little-endian +two's complement integer. +.PP +.B Audioctl +is the associated control file, which sets the characteristics of the device. +Reads return lines of the form +.TP +.B "\fIsource\fP [in out] \fIvalue\fP" +.TP +.B "\fIsource\fP in \fIvalue\fP out \fIvalue\fP" +.TP +.B "\fIsource\fP [in out] left \fIvalue\fP right \fIvalue\fP" +.TP +.B "\fIsource\fP in left \fIvalue\fP right \fIvalue\fP out left \fIvalue\fP right \fIvalue\fP" +The qualifiers +.BR in , +.B out +and +.BR left , +.B right +are omitted if they +are not applicable or if the input/output and/or left/right values are +the same. +The +.I source +is one of +.BR audio , +.BR aux1 , +.BR aux2 , +.BR line , +.BR mono , +.BR mic , +.BR rate , +.B chans +or +.BR bits . +If +.I source +is one of the ports +.BR audio , +.BR aux1 , +.BR aux2 , +.BR line , +.B mono +or +.BR mic , +.I value +represents +the volume +on a scale of 0 (quiet) to 100 (loud). The default volume is 50 for the +.B audio +port and 0 for the +remainder. If the +.I source +is +.BR rate , +.I value +represents the +rate at which the data was recorded in Hz. The default is 22050. +If the +.I source +is +.BR chans , +.I value +is the number of channels of audio data - 2 (the default) for stereo, otherwise mono. If the +.I source +is +.BR bits , +.I value +is one of 4, 8 or 16, the sample size in bits. +.TP +.B [in out] enc \fIformat\fP +Outputs the recording format on the input and/or output channels. +.I Format +is one of +.BR ulaw , +.BR alaw , +.BR pcm , +.B pcm16 +or +.B adpcm +.TP +.B loop \fIvalue\fP +.I Value +is 0 or 1 to disable or enable loopback respectively. +.PP +Writes control the device with strings of a similar format as that for reads. +.TP +.B "\fIsource\fP [in out] \fIvalue\fP" +.TP +.B "\fIsource\fP in \fIvalue\fP out \fIvalue\fP" +.TP +.B "\fIsource\fP [in out] left \fIvalue\fP right \fIvalue\fP" +.TP +.B "\fIsource\fP in left \fIvalue\fP right \fIvalue\fP out left \fIvalue\fP right \fIvalue\fP" +Set the corresponding value/volume for the particular +.I source. +The same conventions apply +as in the read case above. The default value of +.I source +is +.BR audio . +.TP +.B reset +Set all attributes to their default value. +.TP +.B loop \fIvalue\fP +Enable (1) or disable (0) loopback mode. +.TP +.B [in out] enc \fIformat\fP +Set the recording format on the input and/or output channels to +.I format. +.I Format +is one of +.BR ulaw , +.BR alaw , +.BR pcm , +.BR adpcm . +.TP +.B [left right] dev \fIinput\fP +Set the input source of the left and/or right ADCs. +.I Input +is one of +.BR mic , +.BR line , +.BR aux1 , +.BR loop . +.SH SOURCE +.B /emu/port/devaudio*.c +.br +.B /emu/*/devaudio.c +.br +.B /os/*/devaudio.c +.br +.B /os/*/devcs4231.c +.SH SEE ALSO +.IR auplay (1) +.br +.IR audio (6) +.SH BUGS +The device has not been implemented on every platform that could provide it, +particularly hosted implementations. +.br +.B /os/port/devaudio.c +(a driver for the SB16) implements an older interface of broadly similar form, +but using +.B volume +not +.BR audioctl , +and supports a subset of the commands described above. +.br +The device is exclusive-use and cannot mix streams from several clients. diff --git a/static/inferno/man3/boot.3 b/static/inferno/man3/boot.3 new file mode 100644 index 00000000..cc9ea36a --- /dev/null +++ b/static/inferno/man3/boot.3 @@ -0,0 +1,41 @@ +.TH BOOT 3 +.SH NAME +boot \- reboot under program control +.SH SYNOPSIS +.B bind -a #B /dev +.PP +.B /dev/boot +.br +.B /dev/kexec +.br +.B /dev/mem +.SH DESCRIPTION +.I Boot +serves a directory containing three files that control a reboot of the system. +The files can only be opened by the host owner +(see +.IR eve (10.2)). +.PP +.B Boot +is a write-only file that accepts 4 bytes representing a kernel address, high-order byte first. +The system will transfer control to that address, which is assumed to be the start of low-level reboot code. +There is no return from the write on success or failure. +.PP +.B Kexec +is a write-only file to which an uncompressed kernel image can be written, a chunk at a time. +When the file is closed, the system will transfer control to the start of the image, which again +is assumed to be low-level reboot code. +.PP +.B Mem +copies data to and from kernel memory, taking the current file offset as an address therein. +.PP +.I Boot +flushes caches as necessary to ensure that writes to kernel memory through any +of these files will be visible when subsequently executed as instructions. +.SH SOURCE +.B /os/port/devboot.c +.SH SEE ALSO +.IR tftp (2), +.IR cons (3) +.SH DIAGNOSTICS +Invalid addresses are diagnosed, but otherwise there is no error return. diff --git a/static/inferno/man3/cap.3 b/static/inferno/man3/cap.3 new file mode 100644 index 00000000..afd7ef3d --- /dev/null +++ b/static/inferno/man3/cap.3 @@ -0,0 +1,92 @@ +.TH CAP 3 +.SH NAME +cap \- capability for changing user name +.SH SYNOPSIS +.BI "bind #¤ " dir +.PP +.IB dir /caphash +.br +.IB dir /capuse +.SH DESCRIPTION +.I Cap +allows a process owned by the host owner (see +.IR eve (10.2)) +to give another process on the same machine +a capability to set its user name to a specified user. +The capability is a string of the form: +.IP +[ +.IB fromuser @ +] +.IB touser @ key +.PP +where +.I fromuser +is a process's current user name, +.I touser +is its new user name, and +.I key +is a string of random characters +(eg, produced by +.IR security-random (2)). +.PP +.B Caphash +is a write-only file that can only be opened by the host owner. +A process enables the use of a capability by writing the keyed hash of +.IB fromuser @ touser +to +.BR caphash . +The hash is computed using +.B Keyring->hmac_sha1 +as follows: +.IP +.EX +kr := load Keyring Keyring->PATH; +IPint: import kr; +users := sys->sprint("%s@%s", fromuser, touser); +cap := sys->sprint("%s@%s", users, key); +digest := array[Keyring->SHA1dlen] of byte; +ausers := array of byte users; +kr->hmac_sha1(ausers, len ausers, array of byte key, digest, nil); +if(sys->write(caphashfd, digest, len digest) < 0) + error(); +.EE +.PP +The capability (eg, +.B cap +in the example) +can then be passed to another process. +.PP +.B Capuse +is a write-only file that can be opened by any process. +It can then write a capability string to change its user name, +provided that capability has previously been enabled by the host owner via +.BR caphash , +and if the capability included a +.IR fromuser , +the writing process currently has that user name. +After a successful write, the writing process will be owned by +.IR touser . +Any capability can be used at most once. +.PP +A capability enabled by +.B caphash +has a limited lifetime, on the order of 30 seconds. +.B Caphash +can be removed by the host owner to prevent its further use. +.SH SOURCE +.B /emu/port/devcap.c +.br +.B /os/port/devcap.c +.SH SEE ALSO +.IR keyring-sha1 (2), +.IR cons (3), +.IR intro (5), +.IR eve (10.2) +.SH DIAGNOSTICS +A write to +.B capuse +without a previous write to +.B caphash +sets the error string to +.RB `` "invalid capability" ''. diff --git a/static/inferno/man3/cmd.3 b/static/inferno/man3/cmd.3 new file mode 100644 index 00000000..4f051f4d --- /dev/null +++ b/static/inferno/man3/cmd.3 @@ -0,0 +1,282 @@ +.TH CMD 3 hosted +.SH NAME +cmd \- interface to host operating system commands +.SH SYNOPSIS +.B bind -a '#C' / +.PP +.B /cmd/clone +.br +.BI /cmd/ n /ctl +.br +.BI /cmd/ n /data +.br +.BI /cmd/ n /stderr +.br +.BI /cmd/ n /status +.br +.BI /cmd/ n /wait +.SH DESCRIPTION +.I Cmd +provides a way to run commands in the underlying operating system's +command interpreter when Inferno is running hosted, in +.IR emu (1). +It serves a three-level directory that is conventionally bound +behind the root directory. +The top of the hierarchy is a directory +.BR cmd , +that contains a +.B clone +file and zero or more numbered directories. +Each directory represents a distinct connection to the host's command interpreter. +The directory contains five files: +.BR ctl , +.BR data , +.BR stderr , +.B status +and +.BR wait , +used as described below. +Opening the +.B clone +file reserves a connection: it is equivalent to opening the +.B ctl +file of an unused connection directory, creating a new one if necessary. +.PP +The file +.B ctl +controls a connection. +When read, it returns the decimal number +.I n +of its connection directory. +Thus, opening and reading +.B clone +allocates a connection directory and reveals the number of the allocated directory, +allowing the other files to be named (eg, +.BI /cmd/ n /data\fR). +.PP +.B Ctl +accepts the following textual commands, allowing quoting as interpreted by +.IR parsecmd (10.2): +.TP +.BI "dir " wdir +Run the host command in directory +.IR wdir , +which is a directory +.I "on the host system" . +Issue this request before starting the command. +By default, commands are run in the Inferno root directory on the host system. +.TP +.BI "exec " "command args ..." +Spawn a host process to run the +.I command +with arguments as given. +The write returns with an error, setting the error string, if anything prevents +starting the command. +If write returns successfully, the command has started, and its standard input and +output may be accessed through +.BR data , +and its error output accessed through +.B stderr +(see below). +If arguments containing white space are quoted (following the conventions of +.IR sh (1) +or +.IR parsecmd (10.2)), +they are requoted by +.I cmd +using the host command interpreter's conventions so that +.I command +sees exactly the same arguments as were written to +.BR ctl . +.TP +.B kill +Kill the host command immediately. +.TP +.B killonclose +Set the device to kill the host command when the +.B ctl +file is closed (normally all files must be closed, see below). +.TP +.BI nice " \fR[\fPn\fR]\fP" +Run the host command at less than normal scheduling priority. +Issue this request before starting the command. +The optional value +.IR n , +in the range 1 to 3, +indicates the degree of `niceness' (default: 1). +.PP +The +.B data +file provides a connection to the input and output of a previously-started +host command. +It must be opened separately for reading and for writing. +When opened for reading, it returns data that the command writes to its standard output; when closed, further writes by the command will receive the host +equivalent of `write to closed pipe'. +When opened for writing, data written to the file +can be read by the command on its standard input; when closed, further reads by +the command will see the host equivalent of `end of file'. +(Unfortunately there is no way to know when the command needs input.) +.PP +The +.B stderr +file provides a similar read-only connection to the error output from the command. +If the +.B stderr +file is not opened, the error output will be discarded. +.PP +Once started, a host command runs until it terminates or until it is killed, +by using the +.B kill +or +.B killonclose +requests above, or by closing all +.BR ctl , +.B data +and +.B wait +files for a connection. +.PP +The read-only +.B status +file provides a single line giving the status of the connection (not the command), of the form: +.IP +.BI cmd/ "n opens state wdir arg0" +.PP +where the fields are separated by white space. The meaning of each field is: +.TP +.I n +The +.B cmd +directory number. +.TP +.I opens +The decimal number of open file descriptors for +.BR ctl , +.B data +and +.BR wait . +.TP +.I state +The status of the interface in directory +.IR n : +.RS +.TF Execute +.TP +.B Open +Allocated for use but not yet running a command. +.TP +.B Execute +Running a command. +.TP +.B Done +Command terminated: status available in the +.B status +file (or via +.BR wait ). +.TP +.B Close +Command completed. Available for reallocation via +.BR clone . +.RE +.PD +.TP +.I wdir +The command's initial working directory on the host. +.TP +.I arg0 +The host command name (without arguments). +.PP +The read-only +.B wait +file must be opened before starting a command via +.BR ctl . +When read, it blocks until the command terminates. +The read then returns with a single status line, to be +parsed using +.B String->unquote +(see +.IR string (2)). +There are five fields: +host process ID (or 0 if unknown); +time the command spent in user code in milliseconds (or 0); +time spent in system code in milliseconds (or 0); +real time in milliseconds (or 0); +and a string giving the exit status of the command. +The exit status is host-dependent, except that an empty string +means success, and a non-empty string contains a diagnostic. +.PP +.SS "Command execution" +In all cases, the command runs in the host operating system's +own file name space +in which +.IR emu (1) +was started. +All file names will be interpreted in that space, not Inferno's. +For example, on Unix and Plan 9, +.B / +refers to the host's file system root, not Inferno's; +the effects of mounts and binds will not be visible; +nor will Inferno services be available except by network connection. +.PP +On Unix systems, +the command is run by the +.B execvp +system call, +using the Unix user and group ID of +the user that started +.IR emu (1), +unless it was started by the super-user, in which case +.I cmd +attempts to set the Unix user ID and group ID to those of a Unix user corresponding to +the current Inferno user's name, and failing that, to user and group +.BR nobody . +.PP +On Plan 9, +the command is run with the system call +.BR exec , +first trying the +.I command +name as-is; +if that fails and the name does not start with +.BR # , +.BR / , +.B ./ +or +.BR ../ , +.I cmd +attempts to exec +.BI /bin/ command. +The command runs using the Plan 9 identity of +the user that started +.IR emu (1). +Each connection has its own name space. +.PP +On Windows systems, +the command must be a binary executable (not built into the command interpreter) in the current path. +It is always run with the same Windows user identity as started +.IR emu (1). +The arguments given to the +.B exec +request are requoted as described above so as to present the same +arguments to the command via the Windows command interpreter. +The arguments are otherwise unmodified. +In particular, no attempt is made to convert slashes to backslashes in a vain +attempt to convert file name syntax to Windows conventions. +(In fact, most Windows applications will accept +.B / +as a separate in file names, provided the drive letter precedes the whole +name to prevent its interpretation as a command option.) +.SH SOURCE +.B /emu/port/devcmd.c +.br +.B /emu/*/cmd.c +.SH "SEE ALSO" +.IR emu (1), +.IR os (1) +.SH DIAGNOSTICS +A +.B write +to +.B ctl +returns with an error and sets the error string if +a command cannot be started or killed successfully. diff --git a/static/inferno/man3/cons.3 b/static/inferno/man3/cons.3 new file mode 100644 index 00000000..acb9a1e2 --- /dev/null +++ b/static/inferno/man3/cons.3 @@ -0,0 +1,301 @@ +.TH CONS 3 +.SH NAME +cons \- console device +.SH SYNOPSIS +.nf +.B bind #c /dev + +.B /dev/cons +.B /dev/consctl +.B /dev/drivers +.B /dev/jit +.B /dev/keyboard +.B /dev/klog +.B /dev/kprint +.B /dev/memory +.B /dev/msec +.B /dev/null +.B /dev/notquiterandom +.B /dev/pointer +.B /dev/random +.B /dev/scancode +.B /dev/sysctl +.B /dev/sysname +.B /dev/time +.B /dev/user +.fi +.SH DESCRIPTION +The console device serves a one-level directory +giving access to the console and +miscellaneous information. +.PP +Reading the +.B cons +file returns characters typed on the keyboard. +Normally, characters are buffered to enable erase and kill processing. +A control-U, +.LR ^U , +typed at the keyboard +.I kills +the current input line (removes all characters +from the buffer of characters +not yet read via +.BR cons ), +and a backspace +.I erases +the previous non-kill, non-erase character from the input buffer. +Killing and erasing only delete characters back to, but not including, +the last newline. +Typed keystrokes produce 21-bit runes +that are translated into the variable-length +.SM UTF +encoding (see +.IR utf (6)) +before putting them into the buffer. +A +.B read +of length greater than zero causes the process to wait until a +newline or a +.L ^D +ends the buffer, and then returns as much of the buffer as the argument +to +.B read +allows, but only up to one complete line. +A terminating +.L ^D +is not put into the buffer. +If part of the line remains, the next +.B read +will return bytes from that remainder and not part of any new line +that has been typed since. A single line containing a +.L ^D +can be used as an end of file indication to programs that take interactive input. +.PP +If +the string +.B rawon +has been written to the +.B consctl +file and the file is still open, +.B cons +is in +.IR "raw mode" : +characters are not echoed as they are typed, +backspace, +.L ^U +and +.L ^D +are not treated specially, +and characters are available to +.B read +as soon as they are typed. +Ordinary mode is reentered when +.B rawoff +is written to +.B consctl +or this file is closed. +.PP +A +.B write +to +.B cons +causes the characters to be printed on the console screen. +.PP +The +.B keyboard +file returns the underlying tokens produced by the keyboard hardware as they +are produced; in the emulation environment, it is like an always-raw +.B cons +file. +.PP +The +.B null +file throws away anything written to it +and always returns zero bytes when read. +.PP +The +.B klog +file +returns the tail of messages written by the native kernel debugging function +.B kprint +(mainly used when debugging interrupt handlers in device drivers). +It is available only in native kernel implementations. +.PP +The +.B kprint +file +returns console output: messages written by kernel print statements and messages +written by processes to this driver's +.B cons +file. +Until +.B kprint +is opened, system console output is handled normally. +Once +.B kprint +has been opened, +if the machine's console is a serial line, the data is sent both to +the serial console and to +.BR kprint ; +if the console is a graphics screen, the data is sent only to +.BR kprint . +.PP +A read of the +.B pointer +file returns the status of the mouse or other pointing device: +its position and button state. +The read blocks until the state has changed since the last read. +The read returns 49 bytes: the letter +.B m +followed by four fields containing decimal integers, each 11 characters wide followed by a blank. +The integers are: x and y, +coordinates of the pointer on the screen; a bit mask with the +1, 2, and 4 bits when the pointer's left, middle, and right +buttons, respectively, are down; and a time stamp in units of milliseconds. +.PP +Writing to the +.B pointer +file, using the same format, +causes the pointer to move to the specified x, y position +(the button and millisecond fields are ignored, and optional). +If there is a visible image representing the pointer's position, +that will move too. +.PP +The +.B random +device returns as many bytes of random data as are requested in the +.BR read . +.PP +The +.B notquiterandom +device returns as many bytes of pseudo-random data as are requested in the +.BR read ; +this is typically faster than +.B random +but the results are more predictable. +.PP +The +.B scancode +device provides access to the raw scan codes of the primary +.B keyboard . +While it is open, key strokes are diverted from +.B cons +and +.B keyboard . +The first +.IR read (2) +after opening returns an identifier string which defines the format of data delivered +by subsequent +reads. Known ones are defined in +.IR scancode (6). +The most common format is a single byte per scan code, where the top bit is 1 for +up and 0 for down, and the bottom 7 bits are the scan code. Some input devices +have a larger scan code space; in this case scan codes are often delivered as two byte +little endian quantities, where the top bit is the up/down signifier, and the bottom +15 bits are the scan code. In all cases the meaning of the individual scan codes is +device specific. +.PP +The rest of the files contain (mostly) read-only strings. +Each string has a fixed length: a +.I read +(see +.IR sys-read (2)) +of more than that gives a result of that fixed length (the result does not +include a terminating zero byte); +a +.I read +of less than that length leaves the file offset so the +rest of the string (but no more) will be read the next time. +To reread the file without closing it, +.I seek +must be used to reset the offset. +When the file contains numeric data, each number is formatted +in decimal as an 11-digit number with leading blanks and +one trailing blank: twelve bytes total. +.PP +The +.B sysctl +file can be read to return the current Inferno version. Writing the string +.B reboot +to it attempts to reboot the system, writing +.B halt +attempts to halt the system. Writing +.B nobroken +ensures that broken processes have all associated memory freed before +being destroyed, +writing +.B broken +ensures that they are left in this state to allow debugging (the default). +Only the privileged user is allowed to write to this file. +.PP +The +.B sysname +file holds the textual name of the machine. +It can only be written by the privileged user. +.PP +The +.B user +file contains the name of the user associated with the current process. +It can only be written by the privileged user. In the emulation environment, +writing to this file also attempts to set the user id in the host operating +system to the specified value. +.PP +The +.B memory +file returns a formatted presentation of the state of the memory +allocation pools in the system. +Each line of output returned reports, for a single pool, +the amount of memory in use, +the upper size limit, +the high water mark, +the number of allocations done, +the number of frees done, +the number of extensions done, +the largest chunk available +and the name of the pool. +.PP +The +.B drivers +file returns a list of the device drivers loaded in the system. +Each line gives the name of the device for +.IR bind (1), +such as +.BR #c , +followed by the name of the driver as used in the system configuration file. +.PP +The other files served by the +.I cons +device are all single numbers: +.TP +.B jit +non-zero if `just in time' compilation is configured (can be written to change the state). Writing 0 turns off JIT compilation, 1 turns it on and larger values give increasingly +detailed traces of the compilation for debugging purposes. +.TP +.B msec +the value of a millisecond counter +.TP +.B time +number of microseconds since the epoch 00:00:00 GMT, Jan. 1, 1970. +(Can be written once by the privileged user, to set at boot time.) +.SH SOURCE +.B /emu/port/devcons.c +.br +.B /os/port/devcons.c +.SH SEE ALSO +.IR draw (3), +.IR keyboard (6), +.IR utf (6), +.IR eve (10.2) +.SH BUGS +For debugging, on native systems only, +two control-T's followed by a letter +generate console output: +.L ^T^Tp +prints data about kernel processes, +.L ^T^Ts +prints the kernel stack, +.L ^T^Tx +prints data about memory allocation. +.PP +The system can be rebooted by typing +.LR ^T^Tr . diff --git a/static/inferno/man3/dbg.3 b/static/inferno/man3/dbg.3 new file mode 100644 index 00000000..ce91144f --- /dev/null +++ b/static/inferno/man3/dbg.3 @@ -0,0 +1,384 @@ +.TH DBG 3 +.SH NAME +dbg \- remote kernel debugging +.SH SYNOPSIS +.B "bind -b '#b' /dev" +.PP +.B /dev/dbgctl +.br +.B /dev/dbglog +.PP +.BI "echo r >/dev/dbgctl" +.SH DESCRIPTION +.I Dbg +allows a native kernel to be debugged remotely, +by means of a simple protocol, typically run on a serial port +(see +.IR eia (3)). +The +.IR acid (10.1) +debugger uses the protocol for instance; see its +.B -R +option. +.PP +.I Dbg +uses the values of several global variables set by the kernel configuration file (see +.IR conf (10.6)), +all of which default values. +The variables and default values are listed below: +.IP +.EX +int dbgstart = 0; +char *dbgdata = "#t/eia0"; +char *dbgctl = "#t/eia0ctl"; +char *dbgctlstart = "b19200"; +char *dbgctlstop = "h"; +char *dbgctlflush = "f"; +.EE +.PP +Different values can be set by including similar declarations, +with values as desired, in the +.B code +section of the configuration file. +.I Dbg +uses the values as follows: +.TP \w'\f5dbgctlflushxx\fP'u +.PD 0 +.B dbgstart +if non-zero, start the debugger protocol on the +configured connection during driver initialisation (system startup); +otherwise it must be started explicitly by the +.B r +control request (see below) +.TP +.B dbgdata +data file for the debugging connection +.TP +.B dbgctl +control file for the debugging connection +.TP +.B dbgctlstart +control request to initialise link (eg, baud rate) +.TP +.B dbgctlstop +control request to hang up link +.TP +.B dbgctlflush +control request to write to flush input and output on link +.PD +.PP +.I Dbg +serves two files that control and monitor its operation. +.PP +.B Dbgctl +accepts several textual commands; normally only +.B r +is needed: +.TP +.BI d " dbgdata" +set the value of +.B dbgdata +to the value given as an argument +.TP +.BI c " dbgctl" +.PD 0 +.TP +.BI i " dbgctlstart" +.TP +.BI h " dbgctlstop" +.TP +.BI f " dbgctlflush" +set the value of the corresponding control variable to the value of the first argument +.PD +.TP +.B r +start running the debugger protocol (not needed if +.B dbgstart +was non-zero at boot) +.TP +.B s +stop running the debugger protocol; stop and flush the link +.PP +When read, +.B dbgctl +yields a single line showing the status of the device +.RB (` running ' +or +.RB ` stopped ') +and the current values of the debugger control +variables listed above. +.PP +.B Dbglog +is a read-only text file containing lines representing debugger events, +one per line. +It is mainly useful for checking the operation of the device, or debugging new +.IR acid (10.1) +functions. +.SS Debug protocol +The protocol is subject to change. +The host running the debugger and the target to be debugged +exchange 10-byte messages containing a one byte message type +and 9 bytes of data. +Bytes unused by a given type are set to zero. +Normally the host sends one of the T-messages below and +receives the corresponding R-message, or +.BR Rerr . +(These are unrelated to the T-messages and R-messages of +.IR intro (5).) +Exceptionally, the target sends the first message, an +.B Rerr +to reset the protocol, and thus the debugger is notified if the target +is rebooted during a debugging session and can reset its own state. +Values, including addresses, are sometimes represented textually +in hexadecimal, but are usually in binary as a single byte, or an array of 4 bytes, +high-order byte first (big endian). +.PP +The term +.I process +here refers exclusively to those created directly or indirectly by +.IR kproc (10.2), +not to Limbo processes, which are not visible directly through +the protocol (although it is possible to write +.IR acid (10.1) +functions that interact through +.I dbg +with the Inferno data structures representing +the state of the Dis virtual machine). +Many requests read or write the memory or state of the +.IR "current process" +set by the +.B Tproc +message (see below). +Addresses are always 32 bits. +An address below the size of +.B Ureg +(saved register state) for the target is interpreted as an offset within the saved +state for the current process. +Otherwise it refers to an address in kernel virtual memory. +Currently in native Inferno all processes share the same address space. +.PP +The message type names used below +are assigned values by declarations in +.BR /include/rdbg.h . +The following messages are currently implemented: +.TP \w'Tstart'u +.PD 0 +.B Terr +unused +.TP +.BI Rerr " reason\fR[9]\fR" +The last message failed for the given +.IR reason , +a text string: +.BR reset , +the target or debug driver was restarted; +.BR count , +bad count; +.BR unk , +unknown command; +.BR inval , +invalid parameter; +.BR pid , +no such process; +.BR unsup , +unsupported action; +.BR notstop , +action requires process to be stopped first. +.TP +.BI Tmget " addr\fR[4]\fP n\fR[1]\fP" +Request +.I n +bytes of memory from +.IR addr ; +.I n +must be no greater than 9 +.TP +.BI Rmget " data\fR[9]\fP" +Return +.I data +requested by +.B Tmget +.TP +.BI Tmput " addr\fR[4]\fP n\fR[1]\fP data\fR[4]\fP" +Write the first +.I n +bytes of +.I data +to memory at +.IR addr , +and flush the data and instruction caches for that region; +.I n +must be no greater than 4 +.TP +.BI Rmput +Reply to a successful +.B Tmput +.TP +.BI Tproc " pid\fR[4]\fP" +Set the current process to the one with integer process ID +.I pid +for subsequent requests. +.TP +.BI Rproc " addr\fR[8]\fP" +.I Addr +is the address in hexadecimal text of the +.B Proc +structure for process +.I pid +in the corresponding +.BR Tproc . +.TP +.BI Tstatus " pid\fR[4]\fP" +Request the status of process +.I pid +leaving the current process ID unchanged. +.TP +.BI Rstatus " status\fR[9]\fP" +Return the textual status of the process +as a text string, currently one of: +.BR Dead , +.BR Moribund , +.BR Ready , +.BR Scheding , +.BR Running , +.BR Queueing , +.BR Wakeme , +.BR Broken , +.BR Stopped , +.BR Rendezvous , +or if invalid, the state value as a hexadecimal number. +.TP +.BI Trnote " pid\fR[4]\fP" +Retrieve the note (trap status) for the given +.I pid +.TP +.BI Rrnote " status\fR[9]\fP" +Provide the textual trap +.I status +for the requested process (currently always returns null status) +.TP +.BI Tstop " pid\fR[4]\fP" +Tell the kernel to stop running process +.I pid +in debugging state +.B Stopped +when it next appears in the scheduler. +.TP +.BI Rstop +Reply to successful +.B Tstop +.TP +.BI Tstart +Cancel a previous +.BR Tstop ; +if the process has already stopped, make it ready to run. +.TP +.BI Rstart +Reply to successful +.B Tstart +.TP +.BI Tcondbreak " val\fR[4]\fP op\fR[4]\fP" +If +.I op +is +.BR d , +remove and delete the breakpoint with ID +.IR val . +All other operations help +create a conditional breakpoint, providing a possibly empty list of operations +representing a conditional expression in Reverse Polish is followed +by a breakpoint request, +each expression element represented by a single +.B Tcondbreak +message. +.I Op +is a single character representing an operation, with +.I val +(integer, address, process ID) as a parameter. +The operator +.B n +should appear first; it assigns the +breakpoint an ID number +.I val +(no greater than 255). +Expression primaries are: +.BI k " val," +true if process +.I val +is at this breakpoint; +.BI b " val," +true if program counter is +.IR val ; +and +.BI p " val," +.I val +as a 32-bit literal. +Expression operators are: +unary +.B * +(indirect, yielding 32-bit value); +.B & +(bit-wise AND); +.B = +(values equal); +.B ! +(values not equal); +.B a +(logical AND); +.B o +(logical OR). +Although the expression is interpreted following Reverse Polish notation, +when transmitted, the +.B b +operation is sent last (to mark the end of the sequence and create the breakpoint), +but is moved to the start of the expression before evaluation. +.TP +.BI Rcondbreak +Reply to successful +.BR Tcondbreak . +.TP +.BI Tstartstop " pid\fR[4]\fP" +If the process +.I pid +is not stopped, return +.B Rerr +.BR notstop . +Otherwise, if the process is not stopped at +a breakpoint, start it, and wait for it to reach a breakpoint +that evaluates `true' +.TP +.BI Rstartstop " id\fR[1]\fP" +Process has stopped at breakpoint with the given +.I id +.TP +.BI Twaitstop +Unimplemented. See +.BR Tstartstop . +.TP +.BI Rwaitstop +Unused. +.TP +.BI Tkill " pid\fR[4]\fP note\fR[5]\fP" +Kill process +.I pid +with the given textual +.IR note . +Unimplemented. +.TP +.BI Rkill +Reply to successful +.BR Tkill . +Unused. +.PP +.SH SOURCE +.B /os/port/devdbg.c +.br +.B /os/*/*break.c +.br +.B /os/*/trap.c +.SH SEE ALSO +.IR acid (10.1) +.SH BUGS +The protocol is not itself error-detecting let alone error-correcting, although that normally does not +matter for debugging even +over a serial line, provided the connection is reasonably sound. diff --git a/static/inferno/man3/draw.3 b/static/inferno/man3/draw.3 new file mode 100644 index 00000000..db909291 --- /dev/null +++ b/static/inferno/man3/draw.3 @@ -0,0 +1,816 @@ +.TH DRAW 3 +.SH NAME +draw \- screen graphics +.SH SYNOPSIS +.EX +.B bind -a #i /dev + +.B /dev/draw/new + +.BI /dev/draw/ n /ctl +.BI /dev/draw/ n /data +.ig +.BI /dev/draw/ n /colormap +.. +.BI /dev/draw/ n /refresh + +.EE +.SH DESCRIPTION +The +.I draw +device serves a three-level file system +providing an interface to the graphics facilities of the system. +The Limbo Draw module (see +.IR draw-intro (2)) +implements its functions using this device. +Each client of the device connects by opening +.B /dev/draw/new +and reading 12 strings, each 11 characters wide followed by a blank: +the connection number +.RI ( n ), +the image id +.RI ( q.v. ) +of the display image (always zero), +the +channel format +of the image, +the +.BR min.x , +.BR min.y , +.BR max.x , +and +.B max.y +of the display image, +and the +.BR min.x , +.BR min.y , +.BR max.x , +and +.B max.y +of the clipping rectangle. +The channel format string is described in +.IR image (6), +and the other fields are decimal numbers. +.PP +The client can then open the directory +.BI /dev/draw/ n / +to access the +.BR ctl , +.BR data , +.ig +.BR colormap , +.. +and +.B refresh +files associated with the connection. +.PP +Via the +.B ctl +and +.B draw +files, the +.I draw +device provides access to +images and font caches +in its private storage, +as described in +.IR draw-intro (2). +Each image is identified by a 4-byte integer, its +.IR id . +.PP +Reading the +.B ctl +file yields 12 strings formatted as in +.BR /dev/draw/new , +but for the current image rather +than the display image. +The current image may be set by writing a +binary image id to the +.B ctl +file. +.PP +A process can write messages to +.B data +to allocate and free images, fonts, and subfonts; +read or write portions of the images; +and draw line segments and character +strings in the images. +All graphics requests are clipped to their images. +Some messages return a response to be recovered by +reading the +.B data +file. +.PP +The +.B draw +device provides three types of graphical resource: Images, Screens and Fonts. +Resource instances have an identification number. +Screen identifiers are global to the device. +All other identifiers are local to each client. +.PP +Image is the fundamental resource type on which all drawing primitives +are performed. +At client connection the physical display is represented by Image 0. +.PP +A Screen manages a set of (overlapping) Images, handling +Z-order and position manipulation and the refreshing of regions +uncovered by such operations. +When a Screen is created it is associated with an Image on which +to render itself. +New images can be associated with a screen when they are created; they +are then treated as windows on that screen. +Screens can be marked as +.IR public , +meaning that other clients can import their ID and create new windows +on them. +.PP +A Font is an image with associated character data. +The Font image provides the bitmap of all the characters in the +Font; the character data is used by the string command to render +characters from the image. +.SS "Command messages" +.PP +The format of messages written to +.B data +is a single letter +followed by binary parameters; +multibyte integers are transmitted with the low order byte first. +Points are two four-byte numbers: +.IR x , +.IR y . +Rectangles are four four-byte numbers: min +.IR x , +min +.IR y , +max +.IR x , +and max +.IR y . +Images, screens, and fonts have 32-bit identifiers. +In the discussion of the protocol below, +the distinction between identifier and actual image, screen, or font +is not made, so that +``the object +.IR id '' +should be interpreted as +``the object with identifier +.IR id ''. +The definitions of constants used in the description below can be found in +.BR /module/draw.m +or +.BR /include/draw.h . +.PP +The following requests are accepted by the +.B data +file. +The numbers in brackets give the length in bytes of the parameters. +.HP .5i +.B A +.IR id [4] +.IR imageid [4] +.IR fillid [4] +.IR public [1] +.br +Allocate a new +.B Screen +(see +.IR draw-display (2)) +with +screen identifier +.I id +using +backing store image +.IR imageid , +filling it initially +with data from image +.IR fillid . +If the +.I public +byte is non-zero, the screen can +be accessed from other processes +using the +.B publicscreen +interface. +.HP +.B b +.IR id [4] +.IR screenid [4] +.IR refresh [1] +.IR chan [4] +.IR repl [1] +.IR r [4*4] +.IR clipr [4*4] +.IR color [4] +.br +Allocate an image with a given +.I id +on the +screen named by +.IR screenid . +The image will have rectangle +.I r +and clipping rectangle +.IR clipr . +If +.I repl +is non-zero, the image's replicate +bit will be set (see +.IR draw (2)). +.IP +.I Refresh +specifies the method to be used to draw the window +when it is uncovered. +.B Refbackup +causes the server to maintain a backing store, +.B Refnone +does not refresh the image, +and +.B Refmesg +causes a message to be sent via +the +.B refresh +file +.RI ( q.v. ). +.IP +The image format is described by +.IR chan , +a binary version of the channel format string. +Specifically, the image format is the catenation of up to four +8-bit numbers, each describing a particular image channel. +Each of these 8-bit numbers contains a channel type in its +high nibble and a bit count in its low nibble. +The channel type is one of +.BR CRed , +.BR CGreen , +.BR CBlue , +.BR CGrey , +.BR CAlpha , +.BR CMap , +and +.BR CIgnore . +See +.IR image (6). +.IP +.I Color +is the catenation of four 8-bit numbers +specifying the red, green, blue, and alpha +channels of the color that the new image should +be initially filled with. +The red channel is in the highest 8 bits, and +the alpha in the lowest. +Note that color is always in this format, independent of +the image format. +.HP +.B c +.IR dstid [4] +.IR repl [1] +.IR clipr [4*4] +.br +Change the replicate bit and clipping rectangle of the +image +.IR dstid . +This overrides whatever settings were specified in +the allocate message. +.HP +.B d +.IR dstid [4] +.IR srcid [4] +.IR maskid [4] +.IR dstr [4*4] +.IR srcp [2*4] +.IR maskp [2*4] +.br +Use the +.B draw +operator to combine the rectangle +.I dstr +of +image +.I dstid +with a +rectangle of image +.IR srcid , +using a rectangle of image +.IR maskid +as an alpha mask to further control blending. +The three rectangles are congruent and aligned such that +the upper left corner +.I dstr +in image +.I dstid +corresponds to +the point +.I srcp +in image +.I srcid +and +the point +.I maskp +in image +.IR maskid . +See +.IR draw-image (2). +.HP +.B D +.IR debugon [1] +.br +If +.I debugon +is non-zero, enable debugging output. +If zero, disable it. +The meaning of ``debugging output'' is implementation dependent. +.HP +.B e +.IR dstid [4] +.IR srcid [4] +.IR c [2*4] +.IR a [4] +.IR b [4] +.IR thick [4] +.IR sp [2*4] +.IR alpha [4] +.IR phi [4] +.br +Draw an ellipse in image +.I dst +centered on the point +.I c +with horizontal and vertical semiaxes +.I a +and +.IR b . +The ellipse is drawn using the image +.IR src , +with +the point +.I sp +in +.I src +aligned with +.I c +in +.IR dst . +The ellipse is drawn with thickness +.RI 1+2× thick . +.IP +If the high bit of +.I alpha +is set, +only the arc of the ellipse from degree angles +.I alpha +to +.I phi +is drawn. +For the purposes of drawing the arc, +.I alpha +is treated as a signed 31-bit number +by ignoring its high bit. +.HP +.B E +.IR dstid [4] +.IR srcid [4] +.IR center [2*4] +.IR a [4] +.IR b [4] +.IR thick [4] +.IR sp [2*4] +.IR alpha [4] +.IR phi [4] +.br +Draws an ellipse or arc as the +.B e +message, but rather than outlining it, fills +the corresponding sector using the image +.IR srcid . +The +.I thick +field is ignored, but must be non-negative. +.HP +.B f +.IR id [4] +.br +Free the resources associated with the image +.IR id . +.HP +.B F +.IR id [4] +.br +Free the the screen with the specified +.IR id . +Windows on the screen must be freed separately. +.HP +.B i +.IR id [4] +.IR n [4] +.IR ascent [1] +.br +Treat the image +.I id +as a font cache of +.I n +character cells, each with +ascent +.IR ascent . +.HP +.B l +.IR cacheid [4] +.IR srcid [4] +.IR index [2] +.IR r [4*4] +.IR sp [2*4] +.IR left [1] +.IR width [1] +.br +Load a character into the font cache associated with image +.I cacheid +at cache position +.IR index . +The character data is drawn in rectangle +.I r +of the font cache image +and is fetched from +the congruent rectangle in image +.I srcid +with upper left corner +.IR sp . +.I Width +specifies the width of the character\(emthe spacing from this character to the next\(emwhile +.I left +specifies +the horizontal distance from the left side +of the character to the left side of the cache image. +The dimensions of the image of the character are defined by +.IR r . +.HP +.B L +.IR dstid [4] +.IR p0 [2*4] +.IR p1 [2*4] +.IR end0 [4] +.IR end1 [4] +.IR thick [4] +.IR srcid [4] +.IR sp [2*4] +.br +Draw a line of thickness +.RI 1+2× thick +in image +.I dstid +from point +.I p0 +to +.IR p1 . +The line is drawn using the image +.IR srcid , +translated so that point +.I sp +in +.I srcid +aligns with +.I p0 +in +.IR dstid . +The +.I end0 +and +.I end1 +fields specify whether the corresponding +line end should be a square, a disc, +or an arrow head. +See +.I line +in +.IR draw-image (2) +for more details. +.HP +.B N +.IR id [4] +.IR in [1] +.IR j [1] +.IR name [ j ] +.br +If +.I in +is non-zero, associate the image +.I id +with the string +.IR name . +If +.I in +is zero and +.I name +already corresponds to the +image +.IR id , +the association is deleted. +.HP +.B n +.IR id [4] +.IR j [1] +.IR name [ j ] +.br +Introduce the identifier +.I id +to correspond to the image named +by the string +.IR name . +.HP +.B o +.IR id [4] +.IR r.min [2*4] +.IR scr [2*4] +.br +Position the window +.I id +so that its upper left corner is at the +point +.I scr +on its screen. +Simultaneously change its internal (logical) coordinate system +so that the point +.I log +corresponds to the upper left corner of the window. +.HP +.B p +.IR dstid [4] +.IR n [2] +.IR end0 [4] +.IR end1 [4] +.IR thick [4] +.IR srcid [4] +.IR sp [2*4] +.IR dp [2*2*(n+1)] +.br +Draw a polygon of thickness +.RI 1+2× thick . +It is conceptually equivalent to a series of +.I n +line-drawing messages (see +.B L +above) +joining adjacent points in the list of points +.IR dp . +The source image +.I srcid +is translated so that the point +.I sp +in +.I srcid +aligns with the first point +in the list +.IR dp . +The polygon need not be closed: +.I end0 +and +.I end1 +specify the line endings for the first and +last point on the polygon. +All interior lines have rounded ends +to make smooth joins. +.HP +.B P +.IR dstid [4] +.IR n [2] +.IR wind [4] +.IR ignore [2*4] +.IR srcid [4] +.IR sp [2*4] +.IR dp [2*2*(n+1)] +.br +Draw a polygon as the +.B p +message, but +fill it rather than outlining it. +The winding rule parameter +.I wind +resolves ambiguities about what to fill if the polygon is self-intersecting. +If +.I wind +is +.BR ~0 , +a pixel is inside the polygon if the polygon's winding number about the point +is non-zero. +If +.I wind +is +.BR 1 , +a pixel is inside if the winding number is odd. +Complementary values (0 or ~1) cause outside pixels to be filled. +The meaning of other values is undefined. +The polygon is closed with a line if necessary. +.HP +.B r +.IR id [4] +.IR r [4*4] +.br +Cause the next read of the +.B data +file to return the image pixel data corresponding to the +rectangle +.I r +in image +.IR id . +.HP +.B s +.IR dstid [4] +.IR srcid [4] +.IR fontid [4] +.IR p [2*4] +.IR clipr [4*4] +.IR sp [2*4] +.IR n [2] +.IR n*(index [2]) +.br +Draw in the image +.I dstid +the text string specified by the +.I n +cache +.I indices +into font +.IR fontid , +starting with the upper left corner at point +.I p +in image +.IR dstid . +The image drawn is taken from image +.IR srcid , +translated to align +.I sp +in +.I srcid +with +.I dp +in +.IR dstid. +All drawing is confined to the clipping rectangle +.I clipr +in +.IR dstid . +.HP +.B x +.IR dstid [4] +.IR srcid [4] +.IR fontid [4] +.IR dp [2*4] +.IR clipr [4*4] +.IR sp [2*4] +.IR n [2] +.IR bgid [4] +.IR bp [2*4] +.IR n*(index [2]) +.br +Like the string drawing +.B s +command, but fill the background of each character +with pixels from image +.IR bgid . +The image +.I bgid +is translated so that the point +.I bp +aligns with the +point +.I dp +in +.IR dstid . +.HP +.B S +.IR id [4] +.IR chan [4] +Attach to the public screen with the specified +.IR id . +It is an error if the screen does not exist, is not public, or does not +have the channel descriptor +.I chan +for its associated image. +.HP +.B t +.IR top [1] +.IR n [2] +.IR n*id [4] +.br +Send +.I n +windows to the top (if +.I t +is non-zero) or bottom (if +.I t +is zero) of the window stack. +The window is specified by the list of +.I n +image +.IR id s +are moved as a group, maintaining their own order within the stack. +.HP +.B v +.br +Flush changes from a soft screen, if any, to the display buffer. +.HP +.B y +.IR id [4] +.IR r [4*4] +.IR buf [x*1] +.br +.ti -0.5i +.B Y +.IR id [4] +.IR r [4*4] +.IR buf [x*1] +.br +Replace the rectangle +.I r +of pixels in image +.I id +with the pixel data in +.IR buf . +The pixel data must be in the format dictated by +.IR id 's +image channel descriptor (see +.IR image (6)). +The +.B y +message uses uncompressed data, +while the +.B Y +message uses compressed data. +In either case, +it is an error to include more data than necessary. +.ig +.PP +Reading the +.B colormap +returns the system color map used on 8-bit displays. +Each color map entry consists of a single line containing +four space-separated decimal strings. +The first is an index into the map, and the remaining three are +the red, green, and blue values associated with that index. +The color map can be changed by writing entries in the +above format to +the +.B colormap +file. +Note that changing the system color map +does not change the color map used for +calculations involving +.B m8 +images, which is immutable. +.. +.PP +The +.B refresh +file is read-only. +As windows owned by the client are uncovered, +if they cannot be refreshed by the server (such as when they have +refresh functions associated with them), a message is made available +on the +.B refresh +file reporting what needs to be repainted by the client. +The message has five decimal integers formatted as in the +.B ctl +message: the image id of the window and the coordinates of the rectangle +that should be refreshed. +.SH SOURCE +.B /emu/port/devdraw.c +.br +.B /emu/*/win.c +.br +.B /os/port/devdraw.c +.br +.B /os/*/screen.c +.br +.B /libmemdraw +.SH SEE ALSO +.IR draw-intro (2), +.IR colour (6), +.IR image (6), +.IR font (6) +.SH DIAGNOSTICS +Most messages to +.B draw +can return errors; +these can be detected by a system call error +on the +.IR write (see +.IR sys-read (2)) +of the data containing the erroneous message. +The most common error is a failure to allocate +because of insufficient free resources. Most other errors occur +only when the protocol is mishandled by the application. +The error string (see +.IR sys-intro (2)) +will report details. +.SH BUGS +The +.B Refmesg +refresh method is not fully implemented. +.ig +.br +The +.B colormap +files only reference the system color map, and as +such should be called +.B /dev/colormap +rather than +.BI /dev/draw/ n /colormap\f1. +.. diff --git a/static/inferno/man3/ds.3 b/static/inferno/man3/ds.3 new file mode 100644 index 00000000..6d766698 --- /dev/null +++ b/static/inferno/man3/ds.3 @@ -0,0 +1,145 @@ +.TH DS 3 +.SH NAME +ds \- compound device subsystems +.SH SYNOPSIS +.nf +.B bind -b #k /dev + +.B /dev/ds +.B /dev/ds/ctl +.B /dev/ds/... +.fi +.SH DESCRIPTION +.I Ds +builds complex block storage subsystems out of simpler ones. +Inspired by the Plan 9 file server kernel's configuration strings, +it provides device mirroring, partitioning, interleaving, and catenation +for block-oriented file systems. +.PP +It serves a two-level directory. +The top level contains a single directory +.BR ds , +which contains a control file +.B ctl +and one file per configured device. +.PP +The control messages each introduce a new device, here named +.IR new . +The +.I file +arguments are interpreted in the name space of the writer. +.TP +.BI mirror " new files" \fR... +The device +.I new +corresponds to a RAID 1 mirroring of +.IR files . +Writes to +.BI new +are handled by sequentially writing to the +.I files +from right to left (the reverse of +of the order in the control message). +If any write fails, the write is aborted. +Reads from +.BI new +are handled by sequentially reading from the +.I files +from left to right until one succeeds. +The length of the mirror device is the minimum of the lengths of the +.IR files . +.TP +.BI part " new file offset length" +The device +.I new +corresponds to the +.I length +bytes starting at +.I offset +in +.IR file . +If +.IR offset + length +reaches past the end of +.IR file , +.I length +is silently reduced to fit. +.TP +.BI inter " new files" \fR... +The device +.I new +corresponds to the block interleaving of +.IR files ; +an 8192-byte block size is assumed. +.TP +.BI cat " name files" \fR... +The device +.I new +corresponds to the catenation of +.IR files . +.PD +.LP +If the variable +.B fsconfig +is set in +.IR plan9.ini (8) +then +.I ds +will read its configuration from the file +.B $fsconfig +on the first attach. +This is useful when the machine boots +from a local file server that uses +.IR fs . +.SH EXAMPLE +Mirror the two disks +.B /dev/sdC0/data +and +.B /dev/sdD0/data +as +.BR /dev/ds/m0 ; +similarly, mirror +.B /dev/sdC1/data +and +.B /dev/sdD1/data +as +.BR /dev/ds/m1 : +.IP +.EX +echo mirror m0 /dev/sdC0/data /dev/sdD0/data >/dev/ds/ctl +echo mirror m1 /dev/sdC1/data /dev/sdD1/data >/dev/ds/ctl +.EE +.LP +Interleave the two mirrored disks to create +.BR /dev/ds/data : +.IP +.EX +echo inter data /dev/ds/m0 /dev/ds/m1 >/dev/ds/ctl +.EE +.LP +Run +.IR kfs (4) +on the interleaved device: +.IP +.EX +disk/kfs -f /dev/ds/data +.EE +.LP +Save the configuration: +.IP +.EX +cp /dev/ds/ctl /dev/fd0disk +.EE +To load the configuration automatically at boot time, +add this to +.IR plan9.ini : +.IP +.EX +fsconfig=/dev/fd0disk +.EE +.SH "SEE ALSO" +.IR dossrv (4) +.SH SOURCE +.B /os/port/devds.c +.SH BUGS +Should be able to select block size for interleaved devices. diff --git a/static/inferno/man3/dup.3 b/static/inferno/man3/dup.3 new file mode 100644 index 00000000..034501dd --- /dev/null +++ b/static/inferno/man3/dup.3 @@ -0,0 +1,60 @@ +.TH DUP 3 +.SH NAME +dup \- dups of open files +.SH SYNOPSIS +.nf +.B bind #d /fd + +.B /fd/0 +.B /fd/0ctl +.B /fd/1 +.B /fd/1ctl +\&... +.fi +.SH DESCRIPTION +The +.I dup +device serves a one-level directory containing files whose +names are decimal numbers. +Each such file also has an associated control file. +A file of name +.I n +corresponds to open file descriptor +.I n +in the current process. +.PP +A +.IR sys-open (2) +of file +.I n +results in a file descriptor identical to +what would be returned from a system call +.BI sys->dup( n, +.BR -1) . +Note that the result is no longer a file in the +.I dup +device. +.PP +The +.I stat +operation returns information about the device file, not the open file it points to. +A stat of +.BI #d/ n +will contain +.I n +for the name, 0 for the length, and 400, 200, or 600 (octal) +for the mode, depending on whether the dup target is open +for reading, writing, or both. +.PP +A file of name +.IB n ctl +may be read to discover the properties of the associated file descriptor, in format identical to that of the +.B fd +file in +.IR prog (3). +.SH SEE ALSO +.IR sys-dup (2) +.SH SOURCE +.B /usr/inferno/emu/port/devdup.c +.br +.B /usr/inferno/os/port/devdup.c diff --git a/static/inferno/man3/dynld.3 b/static/inferno/man3/dynld.3 new file mode 100644 index 00000000..dbd31d8f --- /dev/null +++ b/static/inferno/man3/dynld.3 @@ -0,0 +1,75 @@ +.TH DYNLD 3 +.SH NAME +dynld \- load kernel module dynamically +.SH SYNOPSIS +.B bind -a #L /dev +.PP +.B /dev/dynld +.br +.B /dev/dynsyms +.SH DESCRIPTION +.I Dynld +serves a directory containing two files that control dynamic loading of modules. +When a module is loaded, +.IR dynld (10.2)), +checks the module's type against a type provided by the driver; +the types must match. +Currently the only supported module type is that of a device driver, +.B Dev +defined in +.IR dev (10.2)). +.PP +The control file +.B dynld +can only be opened by the host owner +(see +.IR eve (10.2)). +It accepts the following commands: +.TP +.BI "load dev" " name file \fR[\fP \fR[\fP tag \fR] dep ... ]\fP" +Load a module for device driver +.I name +from the given +.IR file . +The optional +.I tag +is typically the MD5 or SHA1 hash of the file's contents, to identify a particular version of the driver. +.TP +.BI "unload dev" " name \fR[\fP file \fR[\fP tag \fR] ]\fP" +Unload the device driver identified by the given +.IR name , +optionally qualified by the other parameters. +.PP +When read, +.B dynld +returns a list of the currently-loaded drivers, one per line, most recent first. +Each line contain: the module's device type +.BI # x +used in +.IR bind (1); +its kernel address; +its total text and data size in bytes; +its +.I name +when loaded; +the name of the +.I file +from which it was loaded; +and its +.IR tag . +.PP +.B Dynsyms +is a read-only text file that lists, one per line, +the symbols exported by the running kernel for use by modules it loads. +Each line contains: +the symbol's kernel address, +its type signature, +and its name. +.SH SOURCE +.B /os/port/devdynld.c +.SH SEE ALSO +.IR dynld (10.2), +.IR a.out (10.6), +.SH BUGS +.I Dynld +does not currently check that a driver is no longer in use before unloading it. diff --git a/static/inferno/man3/eia.3 b/static/inferno/man3/eia.3 new file mode 100644 index 00000000..2499d320 --- /dev/null +++ b/static/inferno/man3/eia.3 @@ -0,0 +1,136 @@ +.TH EIA 3 +.SH NAME +eia \- serial communication control +.SH SYNOPSIS +.nf +.B bind -a '#t' /dev + +.B /dev/eia0 +.B /dev/eia0ctl +.B /dev/eia0status +.B /dev/eia1 +.B /dev/eia1ctl +.B /dev/eia1status +\&... +.fi +.SH DESCRIPTION +.PP +The serial line device serves a one-level directory that gives access to the serial ports. +Each file set +.BI eia "n ..." +represents one serial port +and includes a data file +(eg, +.BR eia0 ), +a control file +(eg, +.BR eia0ctl ), +and a status file +(eg, +.BR eia0status ). +.PP +The +.B data +file can be read and written to access the corresponding serial port. +Reads will block until at least one character is available. +.PP +The +.B ctl +file accepts textual commands, via +.I write +(see +.IR sys-read (2)), +that control or condition +the serial port for subsequent IO: +.TP +.BI b n +Set the baud rate to +.IR n . +.TP +.BI c n +If +.I n +is non-zero, cause a hangup if the remote drops DCD. +.TP +.BI d n +Set DTR if +.I n +is non-zero; +otherwise clear it. +.TP +.BI e n +If +.I n +is non-zero, +cause a hangup if the remote drops DSR. +.TP +.B f +Flush the output queue. +.TP +.B h +Hangup both input and output queues. +.TP +.BI k n +Send a break lasting +.I n +milliseconds. +.TP +.BI l n +Set number of bits per byte to +.IR n . +Legal values are 5, 6, 7, or 8. +.TP +.BI m n +Obey modem CTS signal if +.I n +is non-zero; otherwise clear it. +.TP +.BI n n +Set the output queue to non-blocking, if +.I n +is non-zero; otherwise mark it as blocking (the default). +In non-blocking mode, if the output queue is full, new output is discarded +rather than block the writer until the queue drains. +.TP +.BI p c +Set parity to odd if +.I c +is +.BR o , +to even if +.I c +is +.BR e ; +otherwise set no parity. +.TP +.BI q n +Set the limit on input and output queues to +.IR n ; +both queues are initially set to 4k bytes. +.TP +.BI r n +Set RTS if +.I n +is non-zero; otherwise clear it. +.TP +.BI s n +Set number of stop bits to +.IR n . +Legal values are 1 or 2. +.TP +.BI x n +Enable XON/XOFF flow control if +.I n +is non-zero; otherwise disable it (the default). +.PP +Changes to port settings persist between a subsequent close and reopen. +.PP +The +.B status +file can be read for a report of the serial port status. +.SH SOURCE +.B /os/port/devns16552.c +.br +.B /os/*/devuart.c +.br +.B /os/*/devscc.c diff --git a/static/inferno/man3/env.3 b/static/inferno/man3/env.3 new file mode 100644 index 00000000..1d3ff79d --- /dev/null +++ b/static/inferno/man3/env.3 @@ -0,0 +1,48 @@ +.TH ENV 3 +.SH NAME +env \- environment device +.SH SYNOPSIS +.nf +.B bind #e /env + +.BI /env/ name +.fi +.SH DESCRIPTION +The environment device serves a one-level directory giving access to environment variables +and their values. +It is conventionally bound to +.BR /env . +The value of an environment variable +.I name +may be obtained by reading the file +.BI /env/ name. +If the file does not exist, the variable is unset and has the value nil. The +maximum length of a variable name is 127 bytes. +.PP +New environment variables are set by creating the corresponding file +in +.B /env +and writing the required value to that file. Similarly environment variables are destroyed (unset) by +removing the corresponding file. +.PP +Processes sharing an `environment group' see the same files and contents; +changes made by one process are seen by the others. +A process can insulate itself from further changes using the +.L FORKENV +option to +.IR sys-pctl (2), +which creates a new environment group that is a copy of the old, +but further changes in each are independent. +A new empty environment group is created by the +.L NEWENV +option to +.IR sys-pctl (2). +.SH SOURCE +.B /os/port/devenv.c +.br +.B /emu/port/devenv.c +.SH SEE ALSO +.IR env (1), +.IR sh (1), +.IR env (2), +.IR sys-pctl (2) diff --git a/static/inferno/man3/ether.3 b/static/inferno/man3/ether.3 new file mode 100644 index 00000000..3a8aa00c --- /dev/null +++ b/static/inferno/man3/ether.3 @@ -0,0 +1,134 @@ +.TH ETHER 3 +.SH NAME +ether \- Ethernet device +.SH SYNOPSIS +.nf +.BI "bind -a #l" n " /net" + +.BI /net/ether n /clone +.BI /net/ether n /[0-7] +.BI /net/ether n /[0-7]/data +.BI /net/ether n /[0-7]/ctl +.BI /net/ether n /[0-7]/stats +.BI /net/ether n /[0-7]/type +.BI /net/ether n /[0-7]/ifstats +.fi +.SH DESCRIPTION +The Ethernet device +.BI #l n +serves a three-level directory representing a physical Ethernet interface: +AMD LANCE, 3Com 3C509, 3Com 3C905, Intel 82557, and others. +If +.I n +is not given it is taken to be 0. +.PP +The top level directory +has a single directory named +.BI ether n, +where +.I n +is the interface number, starting from 0, +assigned in some platform-dependent way. +That directory contains a conversation directory for each of 8 Ethernet packet types, +and a +.B clone +file. +.PP +Opening the +.B clone +file returns a file descriptor open on the +.B ctl +file of an unused conversation directory. +Reading the +.B ctl +file returns a text +string representing the number of the +connection. +The connection is controlled by writing textual commands to the associated +.B ctl +file: +.TP +.BI connect " type" +Set the +.I type +of Ethernet packets received on the connection; the type is +expressed +as an integer constant +(in hexadecimal if it has a leading +.BR 0x , +octal if it has a leading +.BR 0 , +and otherwise decimal). +For instance, Ethernet packets carrying IP version 4 use type +.BR 0x800 . +The value +.B \-1 +stands for all types. +The value +.B \-2 +causes at most the first 64 bytes of all types of packets to be copied +to the conversation. +If several conversations are assigned the same packet type, +a copy of the packet is given to each. +.TP +.B promiscuous +Set the interface to capture all packets regardless of destination address. +An interface normally receives only packets whose +destination address is that of the interface or is the +broadcast address, +.BR ffffffffffff . +The interface remains promiscuous until the control file is +closed. +The extra packets are received only by conversations of the same type +as the incoming packet (or of type -1). +.TP +.BI addmulti " address" +Add the given MAC multicast +.I address +to the set of multicast addresses accepted by the interface. +.I Address +is a twelve digit MAC address in hexadecimal. +.TP +.BI remmulti " address" +Remove +.I address +from the set of multicast addresses accepted by the interface. +.PP +Incoming Ethernet packets are demultiplexed by destination address and +packet type and queued +for reading by the corresponding open connection(s). +Each read of the +.B data +file returns each packet in turn, including the Ethernet header. +A read will terminate at packet boundaries. +Each write to the +.B data +file causes a packet to be sent. +The Ethernet address of the interface is inserted into +the packet header as the source address. +.PP +Reading the +.B type +file returns the decimal value of the assigned Ethernet packet type. +.PP +Reading the +.B stats +file returns status information, the value +of counters, the `promiscuous' state, +and the Ethernet MAC address of the +interface. +.PP +Reading the +.B ifstats +file returns statistics and status information specific to a given +hardware interface. +.SH SOURCE +.B /os/port/devlance.c +.br +.B /os/port/netif.c +.br +.B /os/*/devether.c +.br +.B /os/*/ether*.c +.SH SEE ALSO +.IR ip (3) diff --git a/static/inferno/man3/flash.3 b/static/inferno/man3/flash.3 new file mode 100644 index 00000000..65acf528 --- /dev/null +++ b/static/inferno/man3/flash.3 @@ -0,0 +1,157 @@ +.TH FLASH 3 +.SH NAME +flash \- flash memory +.SH SYNOPSYS +.nf +.BI "bind -a #F" \fR[\fPn\fR]\fP " /dev" + +.B /dev/flash +.BI /dev/flash/ part +.BI /dev/flash/ part ctl +.fi +.SH DESCRIPTION +The flash memory device serves a two-level directory, +giving access to files representing part or all of a bank of flash memory. +A platform might have more than one bank of flash, numbered starting from 0. +The attach specifier +.I n +is a decimal integer that selects a particular bank of flash (default: 0). +Both NOR and NAND flash is supported. +For both types of flash, the driver gives a read/write/erase interface to the raw flash device, +which can impose constraints on operations beyond those imposed by the driver. +Other drivers such as +.IR ftl (3) +or +.IR logfs (3) +implement any higher-level format required, including ECC for NAND flash, for instance. +.PP +The top level directory contains a single directory named +.B flash +for bank 0, and +.BI flash n +for each other bank +.IR n . +It contains two files for each partition: +a data file +.I part +and an associated control file +.IB part ctl , +where +.I part +is the name of the partition. +Each partition represents a region of flash memory that starts and ends on a flash segment (erase unit) boundary. +The system initially creates a single standard partition +.B flash +representing the whole of flash memory, and the corresponding control file +.BR flashctl . +Other partitions can be created by writing to +.B flashctl +as described below. +.PP +The data file +.I part +provides read and write access to the bytes on the system's flash memory. +Bytes can be read and written on any byte boundary: +the interface hides any alignment restrictions. +A read returns the value of the bytes at the current file offset, where zero is the start of the partition. +A write reprograms the flash to the given byte values, at the current +file offset (relative to the start of the partition), using the physical +device's reprogramming algorithm. +An erased flash byte is logically +.B 16rFF +(regardless of the conventions of the physical flash device). +A write can change a bit with value 1 to a 0, +but cannot change a 0 bit to 1; +that can only be done by erasing one or more flash segments. +NAND flash typically has restrictions on the number of writes allowed to a page before requiring a block erase. +Reads and writes are unbuffered. +.PP +The control file +.BI part ctl +can be read and written. +A read returns several lines containing decimal and hexadecimal numbers +(separated by white space) +revealing the characteristics of memory within the partition. +The first line gives the +the manufacturer ID, the flash device ID, the memory width in bytes, and a string giving the flash type +(currently either +.B nor +or +.BR nand ). +Subsequent lines give characteristics of each group of erase units within the partition, +where the erase units within a group have the same properties. +Each line gives the start and end (as byte addresses) of the erase units in the region +that lie within the partition, followed by the size in bytes of each erase unit, which is followed +for NAND flash by the size in bytes of a page. +The sizes for NAND flash include the extra bytes per page typically used to hold an ECC and block status. +A write contains one of the following textual commands: +.TF erasexx +.TP +.BI add " name start end" +Create a new partition that ranges from +.I start +to +.I end +within the current partition. +Each value must be numeric (decimal, octal or hexadecimal) and a multiple of the erase unit size. +.I Name +must not be the name of an existing partition. +On success, new files +.I name +and +.IB name ctl +will appear in the parent +.B flash +directory. +.TP +.B erase all +Erase the whole flash partition, setting all bytes to +.BR 16rFF , +except those that are hardware write-protected. +.TP +.BI erase " offset" +Erase the segment that begins at the given +.I offset +within the partition, +setting all bytes to +.BR 16rFF , +except those that are hardware write-protected. +The +.I offset +is given in bytes, but must be a multiple +of the segment (erase unit) size. +.TP +.BR protectboot [ " off " ] +By default the system prevents erase unit 0 of the flash from being +erased or written, assuming it +contains the primary bootstrap. +Writing this command with parameter +.B off +removes that protection. +Writing +.B protectboot +with any other parameter (or none) restores the protection. +Note that a manufacturer might also have locked the flash in hardware, +and that protection must be removed in a device-dependent way. +.TP +.B sync +If the underlying device must buffer or cache (current devices do not), flush the buffer(s). +.PD +.PP +The syntax of all numbers is that of +.BR strtoul (10.2) ; +the default base is 10. +.SH SOURCE +.B /os/*/devflash.c +.br +.B /os/*/flash*.c +.SH SEE ALSO +.IR ftl (3) +.SH DIAGNOSTICS +A write will return an error if +an attempt is made to change a 0 bit to 1, +or if the flash memory fails to be programmed correctly. +.SH BUGS +The flash cannot be written if the kernel is executing directly from flash, +because the physical flash cannot be read during programming, +and the driver does not copy the programming code to DRAM. diff --git a/static/inferno/man3/floppy.3 b/static/inferno/man3/floppy.3 new file mode 100644 index 00000000..4a424571 --- /dev/null +++ b/static/inferno/man3/floppy.3 @@ -0,0 +1,52 @@ +.TH FLOPPY 3 +.SH NAME +floppy \- floppy disk interface +.SH SYNOPSIS +.nf +.B bind -a '#f' /dev + +.B /dev/fd0disk +.B /dev/fd0ctl +.B /dev/fd1disk +.B /dev/fd1ctl +.B /dev/fd2disk +.B /dev/fd2ctl +.B /dev/fd3disk +.B /dev/fd3ctl +.fi +.SH DESCRIPTION +.PP +The floppy disk interface serves a one-level directory giving access to up +to four floppy disk drives. +Each drive is represented by a data and control file. +There are no partitions. +.PP +Messages accepted by the +.B ctl +file include: +.TF format +.TP +.B eject +Eject the floppy, if possible. +.TP +.B reset +Reset the drive. +.TP +.BI format " type +Format the floppy. The +.I type +sets the density and +type of disk to be formatted; see +.IR format (8). +.PD +.PP +A read of the +.B ctl +file returns a string describing the form factor of the disk, one of +.BR 3½DD , +.BR 3½HD , +.BR 5¼DD , +or +.BR 5¼HD . +.SH SOURCE +.B /os/pc/devfloppy.c diff --git a/static/inferno/man3/fpga.3 b/static/inferno/man3/fpga.3 new file mode 100644 index 00000000..5396ab2a --- /dev/null +++ b/static/inferno/man3/fpga.3 @@ -0,0 +1,97 @@ +.TH FPGA 3 +.SH NAME +fpga \- interface to on-board FPGA +.SH SYNOPSIS +.B "bind -a #F /dev" +.PP +.B /dev/fpgaclk +.br +.B /dev/fpgactl +.br +.B /dev/fpgamemb +.br +.B /dev/fpgamemw +.br +.B /dev/fpgaprog +.br +.B /dev/fpgastatus +.SH DESCRIPTION +.I Fpga +allows configuration of an on-board FPGA (eg, the Altera Flex6000 on the Bright Star Engineering ip-Engine), +control of its clocks and environment, and raw access to any devices presented in the FPGA address space. +On booting, the FPGA subsystem is normally left powered down and the system's external clocks are not directed to +the processor's output pins, to conserve power if the subsystem is unused. +.PP +The control file +.B fpgactl +accepts the following requests: +.TF "power off" +.TP +.BI bclk " n" +Set BCLK output to +.I n +MHz, +where +.I n +must be a divisor of the system clock frequency (eg, of 48 if the system is running at 48 MHz). +.TP +.BI power +Power up the FPGA subsystem (that is automatically done when +.B fpgaprog +is accessed). +.TP +.B "power off" +Power down the FPGA subsystem. +.TP +.B reset +Reset the FPGA, forcing it into configuration mode (automatically done when +.B fpgaprog +is accessed). +.TP +.BI vclk " n m v r" +Program the clock synthesiser with the given parameters, and enable its output as VCLK. +.TP +.B "vclk off" +Disable output from the clock synthesiser. +.PD +.PP +The files +.B fpgamemb +and +.B fpgamemw +give 8-bit and 16-bit access respectively to the address space interpreted by the FPGA. +The file offset is the address read or written within that space; +offset and count must both be even for +.BR fpgamemw . +The interpretation of the data, including the data format and +whether byte or word access is required, is completely determined +by the program configured into the FPGA. +.PP +The write-only file +.B fpgaprog +configures the device. +A single write provides an FPGA configuration in raw binary format. +The FPGA subsystem is given power, the processor's clocks are made visible externally, and the +device is configured with the data written. +The write returns an error if configuration fails. +.PP +The read-only file +.B fpgastatus +contains a single line of text giving the state of the two status bits in the FPGA interface. +The word +.B config +appears if +.B CONFIG_DONE +is set, and +.B !config +otherwise; the word +.B status +appears if +.B nSTATUS +is set, and +.B !status +otherwise. +.SH SOURCE +.B /os/ipengine/devfpga.c +.SH SEE ALSO +.IR fpgaload (8) diff --git a/static/inferno/man3/fs.3 b/static/inferno/man3/fs.3 new file mode 100644 index 00000000..0a27c27f --- /dev/null +++ b/static/inferno/man3/fs.3 @@ -0,0 +1,120 @@ +.TH FS 3 emu +.SH NAME +fs \- host file system interface +.SH SYNOPSIS +.EX +bind #U\fIspec\fP / + +sys->bind("#U\fIspec\fP", "/", Sys->MAFTER|Sys->MCREATE); +.EE +.SH DESCRIPTION +.I Fs +provides an interface to the host file system when running +.IR emu (1). +The device is automatically bound to the root of the Inferno namespace when +.I emu +starts. +.I Fs +maps filenames from the Inferno namespace to the real host filesystem +namespace. The mapping is determined by the host system directory that +.I emu +serves (see the description of the +.B -r +option in +.IR emu (1)). +.PP +The plain name +.B #U +always refers to the root of the Inferno tree within the host file system. +An optional +.I spec +string can select a different tree using conventions peculiar to the host system type. +Currently, on Unix and Plan 9, a +.I spec +of +.B * +(ie, +.BR #U* ) +refers to the root of the host system; +on Windows, the +.I spec +can give a device letter (eg, +.BR #Uc: ) +to refer to the Windows tree on that device. +.PP +When there is nothing but +.IR root (3) +in the name space, the device can only be bound from Limbo using +.IR sys-bind (2) +as shown above, since there is nothing in the name space +to support either +.IR bind (1) +or +.IR newns (2). +It can later be rebound elsewhere in the name space using +.IR bind (1). +.PP +.I Fs +provides only an approximation to the +file ownership and permissions checking defined in +.IR intro (5) +and other entries in this manual. +.IR Emu (1) +typically runs as the user that starts it, and that user will own all newly-created +files and directories, and that user's host system access rights control access +to any file. +Other details are specific to the host system, as given below. +.PP +The set of characters visible in file names within +.I fs +is also determined by the host operating system, not Inferno. +For instance, names might contain control characters, or even `/', +which might render them unusable in Inferno. +.SS Unix +When checking owner, group and other permissions, the intent in Inferno is that +each is tried in turn, in that order. +Unix checks just the first that applies, so that if group +permission disallows access but other allows it, the access is still denied. +If +.IR emu (1) +is run as the super-user, Inferno's rules for ownership and permission checking are enforced by +.I fs +itself; otherwise, Unix's permission checking prevails. +.PP +On MacOS X, file names might be case insensitive, depending on file system settings. +.SS FAT file system (Windows9x and Windows/NT) +The values of +.B uid +and +.B gid +are +.BR Everyone . +.PP +Files and directories always have read and execute permission, +which cannot be changed. +Files without write permission cannot be removed. +.SS NTFS file system (Windows/NT, 2000, XP) +Permissions for read, write and execute operates as described in +.IR sys-stat (2). +.IR Emu (1) +attempts to maintain a limited +but consistent map between Inferno and NT worlds, specifically between Inferno names +and NT security IDs. +Special NT group +.B Everyone +represents `other' for file permissions. +The Inferno +.B uid +is the file owner under NT; +the Inferno +.B gid +reported is the first user in the file's ACL +that is neither the owner nor +.BR Everyone ; +failing that, the +.B gid +is the file's owner. +.SH SOURCE +.B /emu/*/devfs.c +.br +.B /emu/port/devfs-posix.c diff --git a/static/inferno/man3/ftl.3 b/static/inferno/man3/ftl.3 new file mode 100644 index 00000000..ec3856c4 --- /dev/null +++ b/static/inferno/man3/ftl.3 @@ -0,0 +1,185 @@ +.TH FTL 3 +.SH NAME +ftl \- flash translation layer +.SH SYNOPSIS +.EX +.B bind -a '#X' /dev + +.B /dev/ftlctl +.B /dev/ftldata +.EE +.SH DESCRIPTION +.PP +The flash translation layer device +provides the interface for management of +rewritable blocks on a flash memory device. +Flash memory differs from normal disc +or memory in that it is organised in large blocks (erase units), +typically 64k bytes or more in size, +and although writes can reset bits they cannot set them; +instead an entire erase unit must be erased at once. +These properties make it unsuitable for direct use by +a conventional block-oriented file system. +The flash translation layer compensates by +implementing a logical to physical +mapping that allows 512-byte blocks to be read or written +in the same way as rewritable disc blocks. +The translation layer manages the details of +block remapping, copying erase units to reclaim obsolete physical versions +of rewritten logical blocks, erase unit load wearing, etc. +.PP +The flash translation device serves a one-level directory, +giving access to two files. +The control file +.B ftlctl +receives commands to format a flash device +or initialise access to an already formatted device. +.B Ftldata +is the data file, giving access to the logical blocks on the formatted flash. +For example, it can be given to +.IR kfs (3) +for use as a file system. +The length of the +.B ftldata +file as returned by +.B Sys->stat +shows the total logical (formatted) space available for +use by the driver's clients. +.PP +The target flash device is identified to this driver +by name +(eg, +.BR #F/flash ) +in a control message defined below. +The flash device must have the following properties: +.IP 1. +It must have a corresponding control file +.IB device ctl +(eg, +.BR #F/flashctl ), +which must be writable. +.IP 2. +The flash control file must accept a command of the +form +.DS +.BI erase " offset" +.DE +which must cause the flash erase unit +starting at the given byte +.I offset +to be erased. +.IP 3. +The device +must allow reads and writes of any number of bytes +on arbitrary byte boundaries (file offset). +(In other words, the flash driver must hide alignment restrictions.) +.IP 4. +A write request +must allow previously-written regions to be updated provided +the new data does not change any 0 bit to 1 +(ie, writes can clear bits to 0 but will not change any 0 bits to 1). +.PP +The following control messages can be written to +.BR ftlctl : +.TP +.BI format " device [ offset [ n [ erasesize ] ] ]" +.br +Erase +.I n +bytes of +the given flash +.I device +starting at the given byte +.IR offset , +and format the erased region +for use by the flash translation layer. Omitting the +optional parameters is equivalent to setting them to +.BR 0xffffffff . +.I Erasesize +is the number of bytes in the flash device's erase unit; setting +to +.B 0xffffffff +takes the value from the underlying device. +If +.I offset +is +.BR 0xffffffff , +then the underlying device is searched from the +start for an existing flash translation layer header, and the remaining +parameters are taken from there. If +.I n +is +.BR 0xffffffff , +then everywhere from +.I offset +to the end of the +underlying device is erased. Otherwise, +.I offset +and +.I n +must be multiples of +.IR erasesize . +Make the newly formatted device's contents available on +.BR ftldata . +.TP +.BI init " device [ offset [ n [ erasesize ] ] ]" +.br +Make available on +.B ftldata +the logical blocks (with existing content) of a previously-formatted +.IR device . +The parameters are as defined for the +.B format +command, above. +.TP +.BI part " name start [ limit ]" +.br +Add a partition. This creates a new data file +.BI ftl name +with similar properties to +.BR ftldata , +but which constrains the range of the formatted data accessed to +begin at +.IR start , +and end at +.IR limit-1 , +or the last byte of the formatted data if +.I limit +is omitted. +.TP +.BI delpart " name" +.br +Removes a partition. +.TP +.B detach +Stop flash translation on +the corresponding flash device, +and close it. +An error results instead if +.B ftldata +is open. +.TP +.B scavenge +Force scavenging of reusable blocks (mainly intended to be used when +testing flash or debugging the driver). +.TP +.BI trace " n" +.br +Trace the actions of the flash translation driver. +No tracing is done if +.I n +is zero. +Larger values of +.I n +increase the level of detail. +.SH SOURCE +.B /os/*/devftl.c +.SH SEE ALSO +.IR flash (3) +.SH BUGS +Reads and writes of +.B ftldata +must be multiples of 512 bytes in length +and start on a 512-byte block boundary. +.br +Only one flash device can be active. diff --git a/static/inferno/man3/gpio.3 b/static/inferno/man3/gpio.3 new file mode 100644 index 00000000..73b26a48 --- /dev/null +++ b/static/inferno/man3/gpio.3 @@ -0,0 +1,94 @@ +.TH GPIO 3 SA1100 +.SH NAME +gpio \- access to GPIO registers +.SH SYNOPSIS +.B bind -a +.B #G +.B /dev +.PP +.nf +.B /dev/gpioclear +.B /dev/gpioctl +.B /dev/gpioedge +.B /dev/gpioset +.B /dev/gpiostatus +.fi +.SH DESCRIPTION +.PP +The GPIO interface +serves a one-level directory with five files +that give access to the GPIO registers in the SA1100. +See the SA1100 handbook for details of the function +of the various registers. +.PP +The control file +.B gpioctl +accepts commands to set individual bits in the edge detect +registers. +Each control message has three space-separated fields: +.IP +.EX +.I "reg pin value" +.EE +.LP +where +.I reg +is a single character +denoting a register, +.I pin +a bit within it, and +.I val +the value (0 or 1) for that bit. +Valid choices for +.I reg +are: +.B d +(GPDR), +.B r +(GRER), +.B f +(GFER), +and +.B a +(GAFR). +For example, the control message +.IP +.EX +d 10 1 +.EE +.LP +sets bit 10 (following the handbook's bit-numbering conventions) in the GPIO pin +direction register GPDR. +.PP +The read-only file +.B gpiostatus +shows the names and values (in hexadecimal) of all GPIO registers. +.PP +The remaining data files +allow bits to be read by +.B Sys->read +requests +and set by +.B Sys->write +requests. +When read, each file returns the value of a given +register as a single 8 digit hexadecimal number: +.B gpioset +and +.B gpioclear +both give the value of the level register, GPLR; +and +.B gpioedge +gives the value of the edge dectect register, GEDR. +Each write request +should present a single number in textual form, which +is assumed to be hexadecimal by default. +The value is written to a GPIO register: +.B gpioset +corresponds to GPSR, +.B gpioclear +corresponds to GPCR, and +.B gpioedge +corresponds to GEDR. +.SH SOURCE +.B /os/sa1100/devgpio.c diff --git a/static/inferno/man3/i2c.3 b/static/inferno/man3/i2c.3 new file mode 100644 index 00000000..c321ee02 --- /dev/null +++ b/static/inferno/man3/i2c.3 @@ -0,0 +1,87 @@ +.TH I2C 3 +.SH NAME +i2c \- basic I2C interface +.SH SYNOPSIS +.B bind -a +.BI #J n +.B /dev +.PP +.BI /dev/i2c. n .ctl +. br +.BI /dev/i2c. n .data +.fi +.SH DESCRIPTION +.I I2c +serves a one-level directory with two files +that give access to the target device with address +.I n +(given in hexadecimal) +on the system's I2C bus. +.I N +is usually determined by the I2C device manufacturer. +I2C gives address 0 special meaning as the `general call' address. +See an I2C specification for details. +.PP +The control file +.BI i2c. n .ctl +accepts commands to set the valid address range and +subaddressing mode for the corresponding data file. +The following control messages can be written to it: +.TP +.B a10 +Force 10-bit addressing instead of 7-bit addressing. +Otherwise 10-bit addressing is used only if the device address +.I n +is bigger than 255. +.TP +.BI size " nbytes" +.br +Set the logical size of the target device to +.IR nbytes . +(By default when opened, it is 256 bytes, enough for most small I2C devices.) +IO requests will be kept within this limit. +This value is also returned by +.B Sys->stat +as the length of the data file. +.TP +.BI subaddress " \fR[\fP n \fR]\fP" +.br +Cause subsequent reads and writes +on the data file to use I2C subaddressing +with +.I n +byte subaddresses (default: 1 byte). +.I N +must be no larger than 4. +The target device must support subaddressing. +By default, the device is not subaddressed. +Setting +.I n +to zero switches off subaddressing. +.PP +When read, +the control file displays the current settings. +.PP +The data file +.BI i2c. n .data +can be read or written to +exchange data with the slave device with address +.I n +(where +.I n +is given in hexadecimal). +Each write request transmits the given data +to the device. +Each read request sends a receive +request to the device and returns the resulting data. +If the I2C target is subaddressed, the current file offset +is used as the subaddress; +otherwise the file offset is ignored, and the device typically starts at 0 for each transfer request. +Read and write requests are trimmed to the declared +size of the device. +.SH SOURCE +.B /os/port/devi2c.c +.br +.B /os/*/i2c.c +.br +.B /os/cerf405/iic.c diff --git a/static/inferno/man3/i82365.3 b/static/inferno/man3/i82365.3 new file mode 100644 index 00000000..e1ee6c52 --- /dev/null +++ b/static/inferno/man3/i82365.3 @@ -0,0 +1,41 @@ +.TH I82365 3 +.SH NAME +i82365 \- Personal Computer Memory Card Interface Association (PCMCIA) device +.SH SYNOPSIS +.nf +.B bind -a #y /dev + +.B /dev/pcm0attr +.B /dev/pcm0ctl +.B /dev/pcm0mem +.B /dev/pcm1attr +.B /dev/pcm1ctl +.B /dev/pcm1mem +.fi +.SH DESCRIPTION +The +.I i82365 +driver provides an interface to an Intel +82365-compatible PCMCIA interface chip. +This chip supports up to 2 PCMCIA slots, 0 +and 1. +Reading +.B pcm[01]attr +returns the contents of attribute memory. +Reading or writing +.B pcm[01]mem +reads or writes RAM on the card. +Reading +.B pcm[01]ctl +returns the card's status. +.PP +This driver must be included to use PCMCIA +devices such as the NE4100 Ethernet card. +The individual card drivers make calls to routines +in the PCMCIA driver. +.SH SOURCE +.B /os/pc/devi82365.c +.SH "SEE ALSO" +.IR plan9.ini (10.8) +.SH BUGS +There is no driver for the Databook PCMCIA interface chip. diff --git a/static/inferno/man3/indir.3 b/static/inferno/man3/indir.3 new file mode 100644 index 00000000..04e6386b --- /dev/null +++ b/static/inferno/man3/indir.3 @@ -0,0 +1,81 @@ +.TH INDIR 3 +.SH NAME +indir \- attach to device indirectly by name +.SH SYNOPSIS +.BI "bind #*" name +[\c +.BI ! spec\c +] +.I " dir" +.SH DESCRIPTION +.I Indir +allows any other device to be referred to by its name instead of its perhaps arbitrary single character type; +.I indir +itself has the type character +.RB ` * '. +It has no name space of its own. +On attach (see +.IR attach (5)) +.I indir +interprets its device specifier string as the +.I name +of a device to which it should attach, optionally followed by specifier +.I spec +for that device, separated from the +.I name +by an exclamation mark. +Attaching to +.I indir +(eg, by +.IR sys-bind (2)), +effectively attaches to the device with the given +.I name +and +.IR spec , +and all subsequent operations in the resulting name space access that +device, not +.I indir +itself. +.PP +For example, to access +.IR cap (3), +one could write: +.IP +.B "bind -a '#*cap' /dev" +.PP +The following commands both list the second instance of +.IR ether (3), +first directly, then using +.IR indir : +.IP +.B "ls '#l1'" +.br +.B "ls '#*ether!1'" +.PP +The file +.B /dev/drivers +(see +.IR cons (3)) +lists the names of currently configured devices. +.SS Credit +Invented by Bruce Ellis for Lucent's internal Research Inferno to help name dynamically-loaded device drivers. +This is a re-implementation. +.SH SOURCE +.B /emu/port/devindir.c +.br +.B /os/port/devindir.c +.SH SEE ALSO +.IR bind (1), +.IR sys-bind (2), +.IR cons (3) +.SH DIAGNOSTICS +If +.I name +is not configured, +.I indir +returns a suitable diagnostic in the error string. +.SH BUGS +Arguably the kernel +could simply look up the +.I name +itself. diff --git a/static/inferno/man3/ip.3 b/static/inferno/man3/ip.3 new file mode 100644 index 00000000..2111d051 --- /dev/null +++ b/static/inferno/man3/ip.3 @@ -0,0 +1,927 @@ +.TH IP 3 +.SH NAME +ip \- network protocols over IP +.SH SYNOPSIS +.nf +.B bind -a #I\f1[\f5\f2ifn\f1]\f5 /net + +.B /net/arp +.B /net/bootp +.B /net/iproute +.B /net/ipselftab +.B /net/iprouter +.B /net/log + +.B /net/ipifc/clone +.B /net/ipifc/stats +.BI /net/ipifc/ n +.BI /net/ipifc/ n /data +.BI /net/ipifc/ n /ctl +.BI /net/ipifc/ n /local +.BI /net/ipifc/ n /status + +.BI /net/ proto /clone +.BI /net/ proto /stats +.BI /net/ proto / n +.BI /net/ proto / n /ctl +.BI /net/ proto / n /data +.BI /net/ proto / n /err +.BI /net/ proto / n /local +.BI /net/ proto / n /remote +.BI /net/ proto / n /status +.BI /net/ proto / n /listen +\&... +.fi +.SH DESCRIPTION +The IP device serves a directory representing a self-contained +collection of IP interfaces. +There may be several instances, identified by the decimal interface number +.IR ifn , +that follows the +.B #I +device name; +.B #I0 +is assumed by default. +Each instance +has a disjoint collection of IP interfaces, routes and address resolution maps. +A physical or virtual device, or +.IR medium , +that produces IP packets is associated +with a logical IP network using the mechanisms described under +.I "Physical and logical interfaces" +below. +Commonly all IP media on a host are assigned to a single +instance of +.BR #I , +which is conventionally bound to +.BR /net , +but other configurations are possible: interfaces might be assigned +to different device instances forming separate +logical IP networks +to partition networks in firewall or +gateway applications. +.PP +Hosted Inferno provides a subset of the interface described here that gives +to the TCP/IP and UDP/IP of the host system's own IP subsystem. +See +.IR "Hosted interfaces" +below for a summary of the differences. +.SS Protocols +Within each instance, +the IP device provides +an interface to each IP protocol configured into the system, such as TCP/IP or UDP/IP. +.PP +Each of the protocols is served by the IP device, which represents a +connection by a set of device files. +The top level directory, +.I proto +in the +.SM SYNOPSIS +above, +is named after a protocol (eg, +.BR tcp , +.BR il , +.BR udp ) +and contains a +.B clone +file, a +.B stats +file, +and subdirectories numbered from zero to the number of connections +configured for this protocol. +.PP +The read-only +.B stats +file contains protocol-specific statistics as one or more lines of text. +There is no particular format, but the values are often a superset +of those required by the SNMP MIB. +.PP +Opening the +.B clone +file reserves a connection, represented by +one of the numbered subdirectories. The resulting file descriptor +will be open on the control file, +.BR ctl , +of the newly allocated connection. +Reading the +.B ctl +file returns a text +string representing the number of the +connection. +Connections may be used either to listen for incoming calls +or to initiate calls to other machines. +.PP +A connection is controlled by writing text strings to the associated +.B ctl +file. +After a connection has been established data may be read from +and written to the data file. +.PP +Before sending data, remote and local addresses must be set for the connection. +For outgoing calls the local port number will be allocated randomly if none is set. +Addresses are set by writing control messages to the +.B ctl +file of the connection. +The connection is not established until the data file is opened. +There are two models depending on the nature of the protocol. +For connection-oriented protocols, the process will block on open +until the remote host has acknowledged the connection, +either accepting it, causing a successful return from open, +or rejecting it, causing open to return an appropriate error. +For connectionless protocols, the open always succeeds; +the `connect' request sets local parameters for the source and destination fields +for use by subsequent read and write requests. +.PP +The following control messages are provided by this interface +to all protocols. +A particular protocol can provide additional commands, or +change the interpretation or even syntax of those below, +as described in the manual page for that protocol. +The description below shows +the standard commands with the default argument syntax and interpretation: +.TP +.BI connect\ ipaddress ! port "[!r]\ [\f2lport\f5]" +Set the remote IP address and port number for the connection. +If the +.B r +flag +is supplied and the optional local port +.I lport +has not been specified the system will allocate +a restricted port number (between 600 and 1024) for the connection to allow communication +with Unix machines' +.B login +and +.B exec +services. +.TP +.BI "announce\ [" ipaddress !] port +Set the local port +number to +.I port +and accept calls to that port. +.I Port +is a decimal port number or +.LR * . +If +.I port +is zero, assign a port number +(the one assigned can be read from the +.B local +address file). +If +.I port +is +.LR * , +accept +calls for any port that no process has explicitly announced. +If the optional +.I ipaddress +is given, set the local IP address for the connection +to that address, and accept only those incoming calls to +.I port +that are addressed to +.IR ipaddress . +.B Announce +fails if the connection is already announced or connected. +.TP +.BI bind\ port +.I Port +is a decimal port number or +.LR * . +Set the local port number to +.IR port . +This request exists to support emulation of +of BSD sockets and is otherwise neither needed nor used in Inferno. +.TP +.BI tos " \f1[\f2 n \f1]\f2" +Set the type-of-service value in outgooing packets to +.I n +(default: 0). +.TP +.BI ttl " \f1[\f2 n \f1]\f2" +Set the time-to-live (TTL) value in packets transmitted on this conversation +to +.I n +(default: 255). +.PP +Port numbers must be in the range 1 to 32767. +.PP +Several read-only files report the status of a +connection. +The +.B remote +and +.B local +files contain the IP address and port number for the remote and local side of the +connection. +The +.B status +file contains protocol-dependent information to help debug network connections. +The first word on the first line gives the status of the +connection. +.PP +Having announced, a process may accept incoming connections by calling +.B open +on the +.B listen +file. +The +.B open +will block until a new connection request arrives; +it will then +return an open file descriptor that points to the control file of the +newly accepted connection. +Repeating this procedure will accept all calls for the +given protocol. +.PP +In general it should not be necessary to use the file system interface to the +networks. +The +.BR dial , +.BR announce , +and +.BR listen +functions described in +.IR dial (2) +perform the necessary I/O to establish and +manipulate network connections. +.SS TCP protocol +The TCP protocol is the standard Internet +protocol for reliable stream communication; it does not preserve +read/write +boundaries. +.PP +A connection is controlled by writing text strings to the associated +.B ctl +file. +After a connection has been established data may be read from +and written to the data file. +The TCP protocol provides a stream connection that does not preserve +read/write +boundaries. +.PP +For outgoing calls the local port number will be allocated randomly if none is set. +Addresses are set by writing control messages to the +.B ctl +file of the connection. +The connection is not established until the data file is opened. +For TCP the +process will block until the remote host has acknowledged the connection. +.PP +As well as the standard control messages above, +TCP accepts the following: +.TP +.BI hangup +Send a TCP reset (RST) to the remote side and end the conversation, +without waiting for untransmitted data to be acknowledged, +unlike a normal close of the device. +.TP +.BI keepalive\ [ "n" ] +Enable `keep alive' +mode: +if no traffic crosses the link within a given period, send a +packet to check that the remote party is still there, and remind +it that the local connection is still live. +The optional value +.I n +gives the keep-alive time in milliseconds (default: 120000). +.PP +The +.B status +file has many lines, each containing a labelled number, giving the values +of parameters and statistics such as: +maximum allowed connections, outgoing calls, incoming calls, established but later reset, +active calls, input segments, output segments, retransmitted segments, retransmitted timeouts, +input errors, transmitted reset. +.SS UDP protocol +.PP +UDP provides the standard Internet +protocol for unreliable datagram +communication. +.PP +UDP opens always succeed. +Before sending data, remote and local addresses must be set for the connection. +Alternatively, the following special control requests can be used: +.TP +.B headers +Set the connection to use an address header with IPv6 addressing +on reads and writes of the data file, +allowing a single connection to send datagrams to converse with +many different destination addresses and ports. +The 52 byte binary header appears before the data +read or written. +It contains: remote IP address, local IP address, interface IP address, remote port, and local port. +The IP addresses are 16 bytes each in IPv6 format, and +the port addresses are 2 bytes each, all written in network (big-endian) order. +On reads, the header gives the values from the incoming datagram, +except that if the remote used a multicast destination address, the IP address +of the receiving interface is substituted. +On writes, the header provides the destination for the resulting datagram, +and if the local IP address corresponds to a valid local unicast interface, +that address is used, otherwise the IP address of the transmitting interface +is substituted. +.TP +.B headers4 +Set the connection to use an address header with IPv4 addresses +on reads and writes of the data file, +allowing a single connection to send datagrams to converse with +many different destination addresses and ports. +The 12 byte binary header appears before the data +read or written. +It contains: remote IP address, local IP address, remote port, and local port. +The IP addresses are 4 bytes each, +the port addresses are 2 bytes each, all written in network (big-endian) order. +On reads, the header gives the values from the incoming datagram. +On writes, the header provides the destination for the resulting datagram. +This mode is obsolete and destined for oblivion. +.PP +A read of less than +the size of the datagram will cause the entire datagram to be consumed. +Each write to the data file will send a single datagram on the network. +.PP +In replies, in connection-oriented mode, if the remote address +has not been set, the first arriving packet sets the following +based on the source of the incoming datagram: +the remote address and port for the conversation, +and the local address is set to the destination address in the +datagram unless that is a multicast address, and then the address +of the receiving interface is used. +.PP +If a conversation is in +.B headers +mode, only the local port is relevant. +.PP +Connection-oriented UDP is hungup if an ICMP error (eg, host or port unreachable, +or time exceeded) arrives with matching port. +.PP +The +.I udp +.B status +file contains four lines, each containing a labelled number counting an event: +input datagrams, datagrams on unannounced ports, datagrams with wrong checksum, and output datagrams. +.SS IL Protocol +IL provides a reliable point-to-point datagram service for communication between Plan 9 and +native Inferno machines. +Each read and write transfers a single datagram, as for UDP. +The datagrams are delivered reliably and in order. +Conversations are addressed and established as for TCP. +.SS Routing +.PP +The +.B iproute +file can be read and written. +When read, it returns the contents of the IP routing tables, +one line per entry, +with six fields giving the +destination host or network address, address mask, +gateway address, route type, tag (see below), and the number of the +.B ipifc +interface owning the route +(or +.RB ` - ' +if none). +The route type is up to four characters: +.B 4 +or +.B 6 +(IPv4 or IPv6 route); +.B i +(route is interface); +one of +.B u +(unicast), +.B b +(broadcast), +or +.B m +(multicast); +and lastly +.B p +if the route is point-to-point. +.PP +Commands can also be written to control the routing: +.TP +.BI add " ip mask gw \f1[\f2 tag \f1]\f2" +Add a route via the gateway identified by IP address +.I gw +to the address specified by +.I ip +and subnet mask +.IR mask . +Tag the resulting table entry with the +.I tag +provided, or the current +.I tag +(see +.B tag +below), +or the tag +.BR none . +.TP +.BI flush " \f1[\f2 tag \f1]\f2" +Remove all routes with the given +.I tag +that do not correspond to a local interface. +If +.I tag +is not given, flush all routes. +.TP +.BI remove " ip mask" +Remove routes to the given address. +.TP +.BI tag " tag" +Tag the routes generated by writes on the current file descriptor with +the given +.IR tag +of up to 4 characters. +The default is +.BR none , +set when +.B iproute +is opened. +.PP +The +.B ipselftab +file summarises the addresses and routes that refer to the local host. +It gives an address, the number of logical interfaces, and the interface type +in the same form as the route type of +.BR iproute . +.PP +The +.B iprouter +file is provided for use by a user-level application acting as an IP gateway. +It is effective only when the kernel-level gateway is not enabled +(see the +.B iprouting +interface control request below). +Once opened, packets that are not addressed to a +local address can be read from this device. +The packet contents are preceded by a 16 byte binary header that +gives the IPv6 address of the local interface that received the packet. +.SS Bootstrap +.PP +The read-only +.B bootp +file contains the results of the last BOOTP +request transmitted on any interface (see +.I "Physical and logical interfaces" +below) +as several lines of text, +with two fields each. +The first field names an entity and the second field gives its value in IPv4 address format. +The current entities are: +.IP +.RS +.TF ipaddr +.TP +.B auip +Authentication server address +.TP +.B fsip +File server address +.TP +.B gwip +Address of an IP gateway out of this (sub)net. +.TP +.B ipaddr +Local IP address +.TP +.B ipmask +Subnet mask for the local IP address +.RE +.PD +.PP +If any value is unknown (no reply to BOOTP, or value unspecified), +the value will be zero, represented as +.BR 0.0.0.0 . +.SS Address resolution +The +.B arp +file can be read and written. +When read, +it returns the contents of the current ARP cache as a sequence of lines, +one per map entry, giving +type, state, IP address and corresponding MAC address. +Several textual commands can be written to it: +.TP +.BI add " \f1[\f2 medium \f1]\f2 ip mac" +Add a mapping from IP address +.I ip +to the given +.I mac +address (a sequence of bytes in hexadecimal) +on the given +.IR medium . +It must support address resolution (eg, Ethernet). +If the +.I medium +is not specified, find the one associated with a route to +.I ip +(which must be IPv4). +.TP +.B flush +Clear the cache. +.SS Logging +.PP +The +.B log +file provides protocol tracing and debugging data. +While the file is held open, the system +saves, in a small circular buffer, error messages logged by selected protocols. +When read, it returns data not previously read, +blocking until there is data to read. +The following commands can be written to determine what is logged: +.TP +.BI set " proto ..." +Enable logging of messages from each source +.IR proto , +one or more of: +.BR ppp , +.BR ip , +.BR fs , +.BR tcp , +.BR il , +.BR icmp , +.BR udp , +.BR compress , +.BR ilmsg , +.BR gre , +.BR tcpmsg , +.BR udpmsg , +.BR ipmsg +and +.BR esp . +.TP +.BI clear " proto ..." +Disable logging of messages from the given sources. +.SS Physical and logical interfaces +The configuration of the physical and logical IP interfaces +in a given instance of +.B #I +uses +a virtual protocol +.B ipifc +within that instance, +that adds, controls and removes +IP interfaces. +It is represented by the protocol directory +.BR ipifc . +Each connection corresponds to an interface to a physical or virtual medium on +which IP packets can be sent and received. +It has a set of associated values: +minimum and maximum transfer unit, +MAC address, and a set of logical IP interfaces. +Each logical IP interface has local and remote addresses and an address mask. +.PP +Opening the +.B clone +file returns a file descriptor open on the +.B ctl +file for a new connection. +A medium is then attached using a +.B bind +request; +logical interfaces are associated by +.B connect +or +.BR add ; +they are removed by +.BR remove ; +and finally +.B unbind +detaches the medium from the connection. +For certain types of media, the +.B unbind +is automatic when the connection itself is closed. +With most media, including Ethernet, +the +.B ipifc +connection files can be closed after configuration, and later +reopened if need be to add or remove logical interfaces, +or set other parameters. +.PP +The +.B ctl +file responds to the following text commands, including interface-specific variants +of standard +IP device +requests: +.TP +.BI bind " medium " "[ \f5\f2name\f5 [ \f2arg ...\f5 ]" +Attach device +.I medium +to the interface, which must not already be bound to a device. +The +.I name +and subsequent arguments are interpreted by the driver for the +.IR medium . +The device name associated with the interface is +.IR name , +if given, or a generated name otherwise. +.TP +.BR connect " \f2ip\f5 [\f2mask \f5[\f2remote \f5[\f2mtu \f5]]]" +Remove all existing logical interfaces and create a new one as if by +.B add +(see below). +The connection must be bound to a medium. +.TP +.BR add " \f2ip\f5 [\f2 mask \f5[\f2 remote \f5[\f2 mtu \f5] ] ]" +Add a logical interface with local IP address +.IR ip . +The default for +.I mask +is the mask for +.IR ip 's +address class; +for the +.IR remote +address, +.IR ip 's +network; and for +.IR mtu , +the largest MTU allowed by the medium. +The new interface is registered in the IP routing tables. +.TP +.B bootp +Broadcast a BOOTP packet (using +.BR udp ). +If a valid response is received, set the interface's IP address and mask, +and the IP stack's default gateway to the results obtained from BOOTP. +The results are also available to applications by reading +the +.B bootp +file above. +Note that this mechanism is now deprecated in favour of +.IR dhcpclient (2). +.TP +.BI remove " ip mask" +Remove the logical interface determined by +.I ip +and +.IR mask . +.TP +.BI iprouting\ [ "n" ] +Control the use of IP routing on this +.IR ip (3) +instance. +If +.I n +is missing or non-zero, allow use as a gateway, +rerouting via one interface packets received on another. +By default, +or if +.I n +is zero, use as a gateway is not allowed: if a packet received +is not addressed to any local interface, either pass it to +a gateway application if active (see +.B iprouter +in +.IR ip (3)), +and otherwise drop the packet. +.TP +.BI mtu " n" +.br +Set the maximum transmit unit (MTU) on this interface to +.I n +bytes, which must be valid for the medium. +.TP +.BI addmulti " multi" +Add the multicast address +.I multi +to the interface. +.TP +.BI remmulti " multi" +Remove the multicast address +.I multi +from the interface. +.TP +.BI unbind +Remove any association between +the current medium (device) and the connection: +remove all routes using this interface, detach the device, +stop packet transport, and +remove all logical interfaces. +The connection is ready for re-use. +.PP +The +.B local +file contains one line for each logical interface, of the form: +.IP +.IB local -> self ... +.PP +where +.I local +is the local address associated with the interface and each +.I self +is a broadcast or multicast address that can address that interface, +including subnet addresses, if any. +.PP +The +.B status +file contains many fields: +the first two give the device name and the value of the current MTU, +followed by 7 fields per line for each logical interface: +local address, address mask, remote address, packets in, packets out, input errors, and output errors. +.PP +The following sections describe the media drivers available. +Each is separately configurable into a kernel. +.SS Ethernet medium +Ethernet devices as described in +.IR ether (3) +can be bound to an IP interface. +The bind request has the form: +.IP +.BI "bind ether " device +.PP +The interface opens two conversations on the given Ethernet +.IR device , +for instance +.BR ether0 , +using an internal version of +.BR dial , +with the addresses +.IB device !0x800 +(IPv4) +and +.IB device !0x806 +(ARP). +See +.IR dial (2) +for the interpretation of such addresses. +The interface runs until a process does an explicit +.BR unbind . +Multicast settings made on the interface are propagated to the +.IR device . +.SS Point-to-point medium +An asynchronous serial device as described in +.IR eia (3) +can be bound to an interface as a Point-to-Point protocol (PPP) device. +The bind request has the form: +.IP +.BI "bind ppp " "serial ip remote mtu framing username secret" +.PP +All parameters except +.I serial +are optional. +The character +.RB ` - ' +can appear as a placeholder for any parameter. +Except for authentication data, an attempt is made to negotiate +suitable values for any missing parameter values, including network addresses. +The parameters are interpreted as follows: +.IP +.RS +.TF username +.TP +.I serial +Name of the device that will run PPP. +.TP +.I ip +Local IP address for the interface. +.TP +.I remote +IP address of the other end of the link. +.TP +.I mtu +Initial MTU value for negotiation (default: 1450) +.TP +.I framing +If +.I framing +is zero, do not provide asynch. framing (on by default). +Unimplemented. +.TP +.I username +Identification string used in PAP or CHAP authentication. +.TP +.I secret +Secret used in authentication; with CHAP it never crosses the link. +.PD +.RE +.PP +If the name +.I serial +contains +.RB ` ! ' +a connection will be opened using +.B dial +(see +.IR dial (2)). +Otherwise the name will be opened as-is; +usually it is the name of a serial device +(eg, +.BR "#t/eia0" ). +In the latter case, a companion +.B ctl +file will also be opened if possible, to set serial characteristics for PPP +(flow control, 64kbyte queue size, nonblocking writes). +An attempt is made to start the PPP link immediately. +The write of the +.B bind +control message returns with an error if the link cannot be started, +or if negotiation fails. +The PPP link is automatically unbound if the line hangs up (eg, modem drops carrier), +or an unrecoverable error occurs when reading or writing the connection. +.PP +The PPP implementation can use either PAP and CHAP authentication, +as negotiated, provided an appropriate +.I username +and +.I secret +is given in the +.B bind +request. +It does not yet support the Microsoft authentication scheme. +.SS Packet medium +The packet medium allows an application to be source and sink +for IP packets. +It is bound to an interface by the simple request: +.IP +.B "bind pkt" +.PP +All other interface parameters including its IP address are +set using the standard +.I ipifc +requests described above. +Once that has been done, the application reads the +.B data +file of the interface to receive packets addressed to the interface, +and it writes to the file to inject packets into the IP network. +The interface is automatically unbound when all interface files are closed. +.SS Hosted interfaces +Native Inferno and Plan 9 have related IP implementations. +Plan 9 +.I emu +therefore simply imports Plan 9's +.BR /net , +and in the absence of version-specific differences, what is described +above still applies. +.PP +On all other hosted platforms, +the IP device gives applications +within +.IR emu (1) +a portable interface to TCP/IP and UDP/IP, even through it +is ultimately using the host system's own TCP/IP and UDP/IP implementations +(usually but not always socket based). +The interface remains the same: for instance by +.B /net/tcp +and +.BR /net/udp , +but is currently more limited in the set of services and control requests. +Both IPv4 and IPv6 address syntax may be used, but the IPv6 form must +still map to the IPv4 address space if the IPv6 support is not configured into +.IR emu . +Only TCP and UDP are generally available, and a limited interface to ARP on some platforms (see below). +The set of TCP/UDP control requests is limited to: +.BR connect , +.BR announce , +.BR bind , +.BR ttl , +.BR tos , +.BR ignoreadvice , +.BR headers4 , +.BR oldheaders , +.BR headers , +.BR hangup +and +.BR keepalive . +.PP +The write-only +.B arp +file is implemented only on some Unix systems, and +is intended to allow the implementation of +the BOOTP protocol +using Inferno, on hosted systems. +It accepts a single textual control request: +.TP +.BI add " ip ether" +Add a new ARP map entry, or replace an existing one, for IP address +.IR ip , +associating it with the given +.I ether +MAC address. +The +.I ip +address is expressed in the usual dotted address notation; +.I ether +is a 12 digit hexadecimal number. +.PP +An error results if the host system does not allow the ARP map +to be set, or the current user lacks the privileges to set it. +.SH SOURCE +.B /emu/port/devip.c +.br +.B /os/ip/devip.c +.br +.BI /os/ip/ proto .c +.br +.B /os/ip/ipifc.c +.br +.br +.B /os/ip/*medium.c +.SH "SEE ALSO" +.IR dial (2) +.\" joinmulti and leavemulti are unimplemented +.\" many media are only partly implemented diff --git a/static/inferno/man3/kprof.3 b/static/inferno/man3/kprof.3 new file mode 100644 index 00000000..fbddc3b0 --- /dev/null +++ b/static/inferno/man3/kprof.3 @@ -0,0 +1,88 @@ +.TH KPROF 3 +.SH NAME +kprof \- kernel profiling +.SH SYNOPSIS +.nf +.B bind -a #T /dev +.sp +.B /dev/kpctl +.B /dev/kpdata +.fi +.SH DESCRIPTION +The +.I kprof +device provides simple profiling +data for the operating system kernel. The data accumulates by +recording the program counter of the kernel at each `tick' of a +profiling clock. Often this is just the system clock, but may be an +independent higher priority timer which allows profiling of interrupt +handlers, dependent on implementation. +.PP +The file +.B kpdata +holds the accumulated counts in big-endian +byte order. +The size of the file depends on the size of kernel text, and the +size of the individual counts. +The first six counts are 4 bytes in size, and are special. The +first holds the total number of ticks, the second the number of +ticks which fell outside the kernel text, the third the number +of microseconds per tick, the fourth the number of sample buckets, +the fifth the size in bytes of each sample bucket, and sixth the +log base 2 of the sample bucket size. Typically the sample size +is 4, and the log base 2 of the bucket size 3 (8 bytes). The remainder +of the file holds the sample buckets. The entire file has size +.I "sample bucket size" +times +.IR "number of sample buckets" . +That is, the first six sample buckets are replaced with the special +numbers. +.PP +The file +.B kpctl +controls profiling. +Writing the string +.B start +to +.B kpctl +begins profiling; +.B stop +terminates it. The message +.B startclr +restarts profiling after zeroing the array of counts. +.PP +.IR Kprof (10.1) +formats the data for presentation. +.SH EXAMPLE +The following +.IR sh (1) +commands define and invoke a +function +.B sample +that runs a given test program with kernel profiling enabled, +and copies the result to a server presumed to be mounted on +.BR /n/remote . +.sp +.EX +fn sample { + echo start >/dev/kpctl + $1 + echo stop >/dev/kpctl + cp /dev/kpdata /n/remote/tmp/kpdata +} +bind -a '#T' /dev +sample {cp sound /dev/audio} +.EE +.PP +On the server, the +.IR kprof (10.1) +command is used to analyse the data: +.EX + kprof /usr/inferno/os/mpc/impc /tmp/kpdata +.EE +.SH SOURCE +.B /os/port/devkprof.c +.SH SEE ALSO +.IR kprof (10.1) +.SH BUGS +It cannot provide times for each node in the dynamic call graph (dynamic profiling). diff --git a/static/inferno/man3/logfs.3 b/static/inferno/man3/logfs.3 new file mode 100644 index 00000000..04a1fdcc --- /dev/null +++ b/static/inferno/man3/logfs.3 @@ -0,0 +1,260 @@ +.TH LOGFS 3 +.SH NAME +logfs \- log-structured file system for flash devices +.SH SYNOPSIS +.B bind -b '#ʟ' /dev +.PP +.B /dev/logfsctl +.br +.B /dev/logfsusers +.br +.BI /dev/logfs name +.br +.BI /dev/logfs name boot +.PP +.B echo fsys +.I name +.B config +.I flash-device +.B "> /dev/logfsctl" +.br +.B echo fsys +.I name +.B format +.I boot-area-size +.B "> /dev/logfsctl" +.br +.B echo fsys +.I name +.B open +.B "> /dev/logfsctl" +.br +.BI "mount -Ac /dev/logfs" name +.I dir +.SH DESCRIPTION +.I Logfs +is a driver level implementation of the Inferno log structured +filesystem, a file system designed with modern flash devices +(such as NAND flash) in mind. +.I Logfs +is itself hardware independent, requiring other +devices to provide the physical medium. Currently only +.IR flash (3) +devices are supported. +.PP +The file system maintains two storage regions on the same medium: +a log-structured hierarchical file system that implements all the +functionality communicable by the 9P protocol +(see +.IR intro (5)), +and a boot +partition that offers a fixed amount of flat storage suitable for +holding such things as a kernel boot image, boot parameters etc. The +boot partition can be accessed and updated without understanding all +but the simplest facts about the hierarchical file system, making it +easy to implement boot loaders with small footprints. +.PP +The physical layout of the file system varies from medium to medium, +so that the specialised features of the medium can be accounted for. +.PP +The user table is maintained in memory; there is one table, shared between +all file systems supported by this driver. There is no distinction between +users and groups: a user is a group with one member. +The user table records a mapping +between uids +and +unames, +as well as recording the leader and members of each group. A +.I uid +is a string naming a user or group that is stored in the file system. A +.I uname +is the string naming a user or group that is used in +file system protocol messages (see +.IR intro (5)). +There is a distinction so that +unames +can be safely reused, even though +uids +cannot. +.PP +Configuration and control of the file systems is by writing commands to +.BR /dev/logfsctl : +.TP +.BI fsys " name" +.br +Sets the current file system to +.IR name , +which must be configured. Subsequent commands, not prefixed with +.BI fsys name\fR, +will by applied to the name file system. +.TP +.BI [fsys " name\f5] config\fI flash-device" +.br +Configures file system +.I name +to be written to +.BI flash (3) +device +.IR flash-device . +This does not initialise or format the filesystem, but simply bind +.I name +to +.IR flash-device . +For each configured +.IR name , +two files appear in the device name space, +.BI /dev/logfs name +and +.BI /dev/logfs name\f5boot\fI. +The former serves the 9P protocol giving access to the hierarchical file system; +the latter is a fixed size file that represents the boot partition. +.TP +.BI [fsys " name\f5] format \fIbootsize" +.br +Formats the underlying medium as a +.I logfs +format file system. Sufficent storage is set aside to create a boot partition of at +least +.I bootsize +bytes. Some medium implementations (eg, for NAND flash) store file system +parameters (eg, location, size and boot partition size) to enable automatic +location of file systems and improve bad block detection. These must +be part of the boot partition so that they are easily accessible to boot loaders, +so such medium implementations may also enforce a minimum size for the +boot partition. +.TP +.BI [fsys " name\f5] open [-P] [-W]" +.br +Initialises the specified file system, and makes it available for use. The file +system structure is verified, bad blocks are repaired and, in the case of the +log structured file system, and the log replayed to regenerate the directory structure. +The +.B -W +option reduces the permission control on +.IR wstat (5) +requests. Specifically it allows the +.BR uid , +.BR gid , +.BR mtime , +and +.B perm +to be changed by anyone. +The +.B -P +option removes all file access controls, allowing anyone to open any file in +any mode. +.TP +.BI [fsys " name\f5] sweep" +.br +Forces the log to be swept, if it has been written to since last being swept. +The log is normally swept automatically when space is low. +.TP +.BI [fsys " name\f5] sync" +.br +Flush any buffered log or data to the underlying device. +Use before shutting down the system if the device is not unmounted. +(See notes below.) +.TP +.BI [fsys " name\f5] trace [\fIlevel\f5]" +.br +If +.I +level +is non-zero, internal diagnostics for the log file system are enabled at the +given level. If +.I level +is zero, or missing, tracing is disabled. +.TP +.BI [fsys " name\f5] unconfig" +.br +removes the configuration. The file system must not be mounted, or the +boot partition open, before doing this. +.TP +.BI uname " uname uid" +.TP +.BI uname " uname \f5:\fPuid" +.br +adds the user with uname +.I uname +and uid +.I uid +to the in-memory table +.TP +.BI uname " uname \f5%\fPnewname" +.br +renames +.I uname +to +.IR newname , +throughout the user table +.TP +.BI uname " uname \f5=\fPleader" +.br +sets the group leader to the uname +.I leader +.TP +.BI uname " uname \f5=" +.br +removes the group leader; then all members are leaders +.TP +.BI uname " uname \f5+\fPmember" +.br +add the uname +.I +member +to the group +.TP +.BI uname " uname \f5-\fPmember" +.br +removes the uname +.I +member +from the group +.SS Notes +The file system log may be subject to a small amount of buffering for efficiency +purposes; therefore, it is necessary to unmount the file system before disconnecting +the power to avoid losing recent updates. Failure to do this does not result in +inconsistencies in the file system, but some recent changes will be lost. +Equivalently, a +.IR wstat (5) +of any file or directory, with all fields set to +.I no change +(also known as a +.I wstat +.IR flush) +will cause the log to be written to disk. Note that during a dismount, and also a +.I wstat +.IR flush , +a +.I wstat +flush +is also applied to the underlying +.IR flash (3) +device. Furthermore, since some buffering is used on the log, +needless use of +.I wstat flush +will consume log space more rapidly than normal, although it will be recovered during +the next sweep. +.PP +The log is automatically swept when space is low, so there is not normally any +need to use the +.B sweep +command. +.SH SOURCE +.B /liblogfs +.br +.B /libnandfs +.br +.B /emu/port/devlogfs.c +.br +.B /os/port/devlogfs.c +.SH SEE ALSO +.IR flash (3), +.IR ftl (3), +.IR kfs (4) +.SH BUGS +The only medium currently supported is NAND flash. This is detected by +recognising the manufacturer and device ids supplied by the status file of +the +.IR flash (3) +device. diff --git a/static/inferno/man3/lpt.3 b/static/inferno/man3/lpt.3 new file mode 100644 index 00000000..0d149699 --- /dev/null +++ b/static/inferno/man3/lpt.3 @@ -0,0 +1,51 @@ +.TH LPT 3 +.SH NAME +lpt \- parallel port interface +.SH SYNOPSIS +.nf +.B bind -a #L[123] /dev + +.B /dev/lpt[123]data +.B /dev/lpt[123]dlr +.B /dev/lpt[123]pcr +.B /dev/lpt[123]psr +.fi +.SH DESCRIPTION +The +.I lpt +driver provides an interface to the parallel +interface normally used for printers. +The specifiers +.BR 1 , +.BR 2 , +and +.BR 3 +correspond to +the parallel interfaces at PC ports 0x378, 0x3bc, and 0x278 +respectively. +.PP +.B Lpt?data +is write only. +Writing to it sends data to the interface. +This file is sufficient for communicating with most printers. +.PP +.BR Lpt?dlr , +.BR lpt?pcr , +and +.B lpt?psr +are used for fine control of the parallel port. +Reading or writing these files corresponds to +reading and writing the data latch register, +printer control register, and printer status +register. +These are used by programs to drive special devices. +The data is written as a hexadecimal +(leading +.BR 0x ), +octal +(leading +.BR 0 ) +or decimal number. +Reads return a hexadecimal number representing the value of the register. +.SH SOURCE +.B /os/*/devlpt.c diff --git a/static/inferno/man3/mnt.3 b/static/inferno/man3/mnt.3 new file mode 100644 index 00000000..55663b7c --- /dev/null +++ b/static/inferno/man3/mnt.3 @@ -0,0 +1,84 @@ +.TH MNT 3 +.SH NAME +mnt \- attach to 9P servers +.SH SYNOPSIS +.nf +.B #M +.fi +.SH DESCRIPTION +The +.I mount driver +is used by +.B Sys->mount +(but not +.BR Sys->bind ; +see +.IR sys-bind (2)) +to connect the name space of a process to +the service provided by a 9P server over a communications channel. +After the +.BR mount , +file operations in that portion of the name space will +be converted by the mount driver into the appropriate +9P messages to the server, and its 9P replies returned +as the status of the system calls. +.PP +Any authentication must precede +.IR mount , +which does none itself; +see +.IR security-intro (2) +for a discussion of the authentication and security +mechanisms provided `ready made' by Inferno, but +any other scheme can be agreed between client and server. +The +.I mount +system call does, however, issue an +.IR attach (5) +message to the server to identify the user of the connection. +Each distinct user of a connection must mount it separately; +the mount driver multiplexes the access of the various users and their +processes to the service. +.PP +File-oriented system calls are converted by the kernel into messages in the 9P protocol. +Within the kernel, 9P is implemented by procedure calls to the +various kernel device drivers, as described in +.IR intro (10) +and +.IR dev (10.2). +The mount driver translates these procedure calls into remote procedure calls +to be transmitted as messages over the communication channel to the server. +Each message is implemented by a write +of the corresponding protocol message to the server channel +followed by a read on the server channel to get the reply. +Errors in the reply message are turned into system call error returns. +.PP +A +.IR sys-read (2) +or +.I Sys->write +system call on a file served by the mount driver +may be translated +into more than one +message, +since there is a maximum data size for a 9P message. +The system call +will return when the specified number of bytes have been transferred +or a short reply is returned. +.PP +The string +.L #M +is an illegal file name, +so this device can be accessed directly only by the kernel. +.SH "SEE ALSO" +.IR bind (1), +.IR sys-bind (2) +.SH SOURCE +.B /emu/port/devmnt.c +.br +.B /os/port/devmnt.c +.SH BUGS +When mounting a service through the mount driver, +that is, when the channel being multiplexed is itself +a file being served by the mount driver, +large messages may be broken in two. diff --git a/static/inferno/man3/mpeg.3 b/static/inferno/man3/mpeg.3 new file mode 100644 index 00000000..8fc7bd52 --- /dev/null +++ b/static/inferno/man3/mpeg.3 @@ -0,0 +1,102 @@ +.TH MPEG 3 +.SH NAME +mpeg \- Boffin mpeg decoder +.SH SYNOPSIS +.B +bind -b #E /dev +.PP +.B /dev/mpeg +.br +.B /dev/mpegctl +.SH DESCRIPTION +The +.I mpeg +device serves two files giving access to a Boffin MPEG-1 decoder. +.PP +The control file +.B mpegctl +when read returns lines of text giving the device's properties. +Each line starts +.B video +or +.B audio +followed by a list of capabilities. +The current device returns a fixed set: +.IP +.EX +video mpeg1,sif +.br +audio musicam,I musicam,II +.EE +.PP +The control file accepts the following commands: +.TF pause +.PD +.TP +.B init +Reinitialise the device's video and audio subsystems; +cancel the effect of +.B stop +or +.B pause +.TP +.B stop +Stop the display immediately. +.TP +.B pause +Suspend display. +.TP +.B video iso11172 mpeg1,sif +Set the output video mode and formats; only this precise setting is valid. +.TP +.BI audio " format rate" +There are two choices for +.IR format : +.B musicam,I +(MPEG audio layer 1), +with +.I rate +from 64000 to 448000 Hz, +and +.B musicam,II +(MPEG audio layer 2) +with +.I rate +from 48000 to 384000. +.TP +.BI window " minx miny maxx maxy" +Sets the overlay window on the screen, in screen coordinates. +If the window size exceeds 320x240, the image is scaled accordingly, +separately in each dimension. +.PP +The data file +.B mpeg +is an exclusive-use device. +Once the device has been initialised and an output window +set using the +.B init +and +.B window +commands to the control file, +and an audio format selected by the +.B audio +command, +MPEG data can be written in the agreed format to the +.B mpeg +file, +for display in the output window. +The driver buffers the data written and implements flow control between application +and the hardware. +When closed, the device waits for the last block of data to display +before returning to the application. +.SH SOURCE +.B /os/pc/devmpeg.c +.SH CONFIGURATION +.B "mpeg0=port=0x1e0 irq=15 dma=6 +.SH SEE ALSO +.IR mpeg (2), +.I stream +in +.IR sys-read (2) +.SH DIAGNOSTICS +An error results on a write to the device once stopped. diff --git a/static/inferno/man3/pbus.3 b/static/inferno/man3/pbus.3 new file mode 100644 index 00000000..619cd420 --- /dev/null +++ b/static/inferno/man3/pbus.3 @@ -0,0 +1,60 @@ +.TH PBUS 3 +.SH NAME +pbus \- USR/3Com Edgeserver packet bus +.SH SYNOPSIS +.B bind -a '#Y' /dev +.PP +.B /dev/pbus +.br +.B /dev/pbusctl +.SH DESCRIPTION +The packet bus driver serves a directory containing two files, +giving MAC-level access to the EPB version of the packet bus +of the US Robotics (3Com) Edgeserver chassis. +.PP +The read-only file +.B pbusctl +contains a single integer that gives the chassis slot occupied by the Edge server +(its address on the packet bus). +.PP +The file +.B pbus +is read and written to communicate on the bus. +Each write +transmits a single packet on the bus. +The driver expects a four byte header in each write: +.IP +.IB "slot chan" " 0 0" +.PP +where +.I slot +is the destination chassis slot number and +.I chan +identifies a logical receiver in that slot. +Including the header, the largest write accepted is 128 bytes. +The driver completes the header as the bus firmware requires; +it also pads each packet with zero bytes to a hardware packet boundary +as it puts it on the bus. +It flashes green in the `Wan TX' LED as packets are transmitted. +.PP +Each read of the +.B pbus +file returns the contents of a single packet received from the bus. +The read will block if necessary until a packet arrives. +The data includes a four byte header +as above, and padding to a hardware packet boundary. +Normally a higher-level protocol will provide its own headers including +an actual length. +.PP +At reset, the driver downloads firmware to the controller if required. +All invalid packets received are quietly discarded. +Packets are also dropped whenever an internal input queue overflows +because the reader has not kept up with arriving traffic. +.SH SOURCE +.B /os/pc/devpbus.c +.SH SEE ALSO +.IR plap (3) +.SH BUGS +The driver detects but does not recover from bus clock loss +.br +The driver cannot be included in the public distribution. diff --git a/static/inferno/man3/pipe.3 b/static/inferno/man3/pipe.3 new file mode 100644 index 00000000..494e57db --- /dev/null +++ b/static/inferno/man3/pipe.3 @@ -0,0 +1,69 @@ +.TH PIPE 3 +.SH NAME +pipe \- two-way interprocess communication +.SH SYNOPSIS +.nf +.BI "bind '#|'" dir +.IB dir /data +.IB dir /data1 +.fi +.SH DESCRIPTION +A pipe provides a mechanism for interprocess I/O by +reading and writing file descriptors (see +.IR sys-read (2)). +An +.IR attach (5), +typically via +.IR sys-pipe (2) +or +.IR sys-bind (2), +allocates two files that are cross-connected: +data written to one can be read back from the other, in the same order. +.PP +Write boundaries are preserved: each read terminates when the read buffer +is full or after reading the last byte of a write, whichever comes first. +In particular, a write of zero bytes will result in a zero-length read, +which is usually interpreted by readers as end-of-file, but could be used +to delimit the data stream for other purposes. +.PP +Written data is buffered by the kernel and stored on internal queues +(see +.IR qio (10.2)). +The maximum block size is 128k bytes; +larger writes will be split across several blocks, which are queued separately. +Each read will return data from at most one block. +Concurrent writers are therefore guaranteed that their data will not be interleaved +with data from other writers (ie, will be written atomically) only when +each write is less than the maximum buffer size. +Writers to pipe interfaces on remotely mounted portions of the namespace have their guarantee of atomicity lowered to +.BR Sys->ATOMICIO +bytes by +.IR mnt (3). +.PP +The system mediates between producer and consumer. +Writers will block when buffered data reaches a high-water mark, currently 32k bytes, +until a reader has reduced it by half. +The length returned by +.IR sys-stat (2) +on each name +gives the number of bytes waiting to be read on the corresponding end of the pipe. +.PP +When all file descriptors on +one side of the pipe have been closed, and after any remaining data has +been read, +a reader on the other side sees end-of-file (count of zero) on a subsequent read. +Once both ends are closed, the pipe can be reused. +.PP +A pipe persists until it is unmounted and no processes have either end open. +.SH SOURCE +.B /emu/port/devpipe.c +.br +.B /os/port/devpipe.c +.SH "SEE ALSO" +.IR sys-file2chan (2), +.IR sys-pipe (2) +.SH DIAGNOSTICS +Writes to a closed pipe generate an exception +.RB ` "write on closed pipe" '. +Persistently reading a closed pipe after reading end-of-file +will result in a read error. diff --git a/static/inferno/man3/plap.3 b/static/inferno/man3/plap.3 new file mode 100644 index 00000000..2af950e0 --- /dev/null +++ b/static/inferno/man3/plap.3 @@ -0,0 +1,136 @@ +.TH PLAP 3 +.SH NAME +plap \- USR/3Com Edgeserver packet bus link access protocol +.SH SYNOPSIS +.B bind -a '#X' /net +.PP +.nf +.B /net/plap/clone +.BI /net/plap/ n /ctl +.BI /net/plap/ n /data +.BI /net/plap/ n /local +.BI /net/plap/ n /remote +.BI /net/plap/ n /status +.BI /net/plap/ n /listen +.SH DESCRIPTION +The +.I plap +driver serves a three-level directory giving access to the link level +protocol used by an Edgeserver card to communicate with +other cards in a USR/3Com chassis. +On first +.I attach +(usually by a +.IR bind (1) +to +.BR /net ) +the driver opens a connection to the packet bus device +.B #Y +described in +.IR pbus (3). +It multiplexes that connection using a specialised member of the LAP family +of protocols. +.PP +The top level directory contains a single directory naming the protocol, +.BR plap . +It contains a +.B clone +file and a set of conversation directories numbered from 0 to 127; +only active conversation directories are present. +.PP +Opening the +.B clone +file allocates a new conversation directory +.IR n . +The file descriptor will point to the control file, +.BR ctl , +of that directory. +Reading the file returns a text string giving the conversation number. +.PP +Each conversation directory contains six files. +The connection is controlled by writing text strings to the +.B ctl +file. +Once a connection has been established, data is exchanged with the +remote peer by reading and writing the +.B data +file. +.PP +A +.I plap +address has the form: +.IP +[ +.IB slot . +] +.IB chan ! sap +.PP +where +.I slot +is a chassis slot number, +.I chan +is a logical channel (eg, a modem number), +and +.I sap +is a number representing a `service access point'. +.PP +The following control messages are supported: +.TP +.BI connect " remoteaddr \fP\fR[\fP \fIlocaladdr\fP ]\fI " +Make a connection to the given +remote address (of the form given above). +If a local address is not specified, the +system will assign an unused address dynamically +(the local chassis slot number is of course fixed). +Connect fails if the connection is already announced or connected, +or +.I localaddr +is already in use. +.TP +.BI announce address +Set the local address to +.I address +and accept incoming calls to that address. +If no address is specified, all incoming calls to addresses not explicitly announced +will be accepted by this connection. +Announce fails if the connection is already announced or connected, +or the local +.I address +specified is already in use. +.PP +The +.B remote +and +.B local +files contain the remote and local addresses for the connection +in the full address form +.IB slot . chan ! sap. +The +.B status +file returns a line giving the directory name, number of active opens, and the state +of the connection. +.PP +A process listens for incoming calls by opening the +.B listen +file using +.IR sys-open (2). +The open will block until a call arrives, when it will return a file descriptor +open on the +.B ctl +file of the newly accepted connection, which can be read to find the directory +number and thus the other files. +.PP +The device follows the conventions that allow +.BR dial , +.BR announce +and +.B listen +of +.IR dial (2) +to do the work needed to establish and manipulate network connections. +.SH SOURCE +.B /os/pc/devplap.c +.SH SEE ALSO +.IR pbus (3) +.SH BUGS +The driver cannot be included in the public distribution. diff --git a/static/inferno/man3/pnp.3 b/static/inferno/man3/pnp.3 new file mode 100644 index 00000000..f2eab7dc --- /dev/null +++ b/static/inferno/man3/pnp.3 @@ -0,0 +1,150 @@ +.TH PNP 3 +.SH NAME +pnp, pci \- Plug 'n' Play ISA and PCI Interfaces +.SH SYNOPSIS +.nf +.B bind -a '#$' /dev + +.BI /dev/pci/ bus\fL.\fPdev\fL.\fPfn ctl +.BI /dev/pci/ bus\fL.\fPdev\fL.\fPfn raw + +.BI /dev/pnp/ctl +.BI /dev/pnp/csn n ctl +.BI /dev/pnp/csn n raw +\&... + +.fi +.SH DESCRIPTION +This device provides a limited interface to the PCI bus and +Plug 'n' Play ISA devices. +Both are present on most PC platforms; on others, only the +.B pci +interface is present (because there is no ISA bus). +.SS PCI Interface +.PP +PCI devices are addressed logically by a bus number, +a device number on that bus, and a function number +within the device. +The set of all such device functions may be enumerated +by traversing the +.B /dev/pci +directory; the driver serves two files for each function. +These are a control file +.RL ( /dev/pci/\fIbus\fP.\fIdev\fP.\fIfn\fPctl ) +which may be read for a textual summary of the device function, +and a `raw' file +.RL ( /dev/pci/\fIbus\fP.\fIdev\fP.\fIfn\fPraw ) +which may be read to obtain the raw contents of PCI configuration space. +.PP +The first field of a PCI control file contains the class, sub-class and +programming interface values for the device function, expressed +as 2-digit hexadecimal values, and separated by periods. +The second field yields the vendor ID and device ID, each as 4-digit +hex numbers, separated by a slash. +The third field is the associated interrupt line in decimal. +The remainder of the line enumerates any valid base address +registers for the function, using two fields for each. +In the first field, the index of the register is followed by +a colon, and then the value of the register itself. +The following field gives the associated size of the memory +(or I/O space) that is mapped by the register. +.SS Plug 'n' Play +.PP +Plug 'n' Play ISA devices are discovered by sending a fixed `unlock' sequence +over an I/O port, and then reading back data from another port. +An arbitration algorithm is used to separate out the individual +cards and enumerate them in turn. +Each card is assigned a unique number, called a CSN, in the range 1-255 as a +result of enumeration. +Cards also have a fixed 64 bit identification number, set by the +manufacturer, which is used by the arbitration algorithm to +resolve conflicts. +The first 32 bits describe the type of the card, and the second +32 bits form a serial number for the particular instance of that card type. +When formatted textually, it appears as 3 upper-case letters +(typically representing the manufacturer), +followed by 4 hex digits, then a period, then 8 hex digits. +The substring before the period is the card type, and the substring +after the period is the serial number. +.PP +The enumeration algorithm needs to be enabled by specifying the +port number to write the unlock sequence out on. +This can be configured to take place at boot time by adding a line +like the following to +.IR plan9.ini : +.IP +.EX +pnp0=port=0x203 +.EE +.PP +Here +.B port +should be chosen to not conflict with any existing devices. +It must be in the range +.BR 0x203-0x3ff . +Alternatively, one can use the following command: +.IP +.EX +echo port 0x203 >/dev/pnp/ctl +.EE +.PP +Note that a side-effect of PnP enumeration is to reset the configuration +state of all such cards; any settings made by a Plug and Play BIOS will be lost. +Reading the file +.B /dev/pnp/ctl +returns one of the strings +.B "enabled\fI port\fP" +or +.BR "disabled" . +.PP +For each enumerated card, two files are served in +.BR /dev/pnp . +A control file +.RL ( /dev/pnp/csn\fIn\fPctl ) +may be read to determine the ID of the card, and a raw file +.RL ( /dev/pnp/csn\fIn\fPraw ) +may be read to obtain the configuration data associated with the card. +It is intended that the control file should take commands which set the +various configurable resources of the card, but this has not been +implemented yet. +.PP +A mechanism is provided for configuring cards via +.IR plan9.ini (10.6). +A line of the form +.BI pnp n = "idstring ..." +will cause the driver to look for the card named by +.I idstring +and, if found, assign it the CSN +.IR n . +The intention is that +any additional text after the idstring is interpreted as if it +was written to the card's +.B ctl +file, but this is not yet implemented. +.SH EXAMPLES +.PP +To list all PCI functions: +.IP +.EX +cat /dev/pci/*ctl +.EE +.PP +To find just the PCI video card (class 3): +.IP +.EX +grep '^03' /dev/pci/*ctl +.EE +.SH SOURCE +.B /os/pc/devpnp.c +.br +.B /os/port/devpci.c +.SH BUGS +There is currently no way to write to PCI configuration space, +or to perform reads of less than 32 bits. +Access to the I/O and memory regions of a PCI device is not provided. +.PP +The ability to set a Plug 'n' Play card's configurable settings has not been +implemented. +.PP +There should be a user program for identifying and configuring +Plug 'n' Play cards. diff --git a/static/inferno/man3/pointer.3 b/static/inferno/man3/pointer.3 new file mode 100644 index 00000000..3c90fde3 --- /dev/null +++ b/static/inferno/man3/pointer.3 @@ -0,0 +1,80 @@ +.TH POINTER 3 +.SH NAME +pointer \- mouse and stylus interface +.SH SYNOPSIS +.B "bind -a #m /dev" +.PP +.B /dev/cursor +.br +.B /dev/pointer +.SH DESCRIPTION +The +.I pointer +device is the interface to input from a mouse, stylus, or some other device +for pointing at positions on a display. +On some platforms, the pointer is associated with a cursor +on the display, that is displayed at the current pointer position. +There often are buttons associated with the pointer, whether on +the pointing device or elsewhere. +For instance, some of the buttons on a PDA might be associated +with the stylus not a keypad, to allow modification of stylus actions +when there are are no buttons on the stylus itself. +In the hosted environment of +.IR emu (1), +the pointer is associated with the host system's own pointing device. +.PP +Reading the +.B pointer +file returns the current pointer position and the state of any buttons associated with the pointer. +The read blocks until the state has changed since the last read. +Each read returns a 49 byte record: +.IP +.BI m "x y buttons msec" +.PP +Each record has the letter +.B m +immedlately followed by four 11-character decimal numbers, each number ended by a blank. +.I X +and +.I y +give the coordinates of the pointer in display coordinates; +the value +.I buttons +has bit +.RI "(1<<" b ) +set when button +.I b +is down; and +.I msec +is a time stamp in milliseconds. +.PP +Writing a record of the above form to +.B pointer +moves the displayed cursor to the given +.I x +and +.I y +position; +.I buttons +and +.I msec +are ignored. +.PP +Writing an +.IR image (6) +file to the +.B cursor +file sets the image of the cursor on the display. +Reading +.B cursor +returns the current cursor image, again in +.IR image (6) +format. +.SH SOURCE +.B /emu/port/devpointer.c +.br +.B /os/port/devpointer.c +.SH SEE ALSO +.IR wm (1), +.IR draw-intro (2), +.IR image (6) diff --git a/static/inferno/man3/prof.3 b/static/inferno/man3/prof.3 new file mode 100644 index 00000000..db08e07f --- /dev/null +++ b/static/inferno/man3/prof.3 @@ -0,0 +1,93 @@ +.TH PROF 3 +.SH NAME +prof \- profiling device +.SH SYNOPSIS +.nf +.B bind #P /prof + +.BI /prof/ctl +.BI /prof/ n /name +.BI /prof/ n /path +.BI /prof/ n /histogram +.BI /prof/ n /pctl +.fi +.SH DESCRIPTION +The +.B prof +device serves a two-level directory structure. The first level contains a control file +.B ctl +and zero or more numbered directories each corresponding to a module being +profiled. Inside each of these numbered directories are further files which describe +the particular module being profiled. +.PP +The write-only control file +.B ctl +provides the facilities to profile a module. Messages written to this file initiate and +control the profiling. +.TP 10n +.BI module " name" +Add the module or the module whose path is +.I name +to the list of modules to be profiled. +.TP 10n +.B start +Start profiling all modules in the above list or, if the list is empty, start profiling all +modules loaded by the kernel. The profiling is done by sampling. +.TP 10n +.B startcp +As above but do coverage profiling. All instructions executed in the wanted modules +are counted. +.TP 10n +.B startmp +As above but do memory profiling. All heap memory allocations are associated +with a line of limbo source and all deallocations with the line that did the allocation. +.TP 10n +.B stop +Stop all profiling. +.TP 10n +.B end +Stop all profiling and free all memory associated with the modules being profiled. +The profiler returns to it's initial state with no modules under profile. +.TP 10n +.BI interval " i" +Change the sampling interval to +.I i +ms. The default sampling rate is 100 ms. +.PP +The second level directories contain information about each module under profile. +.PP +The read-only file +.B name +contains the name of the module in the form it appears in it's module source file. +.PP +The read-only file +.B path +contains the path of the dis file that implements the module. +.PP +The write-only control file +.B pctl +allows finer control of the profiling of a module. It is not used at present. +.PP +The read-only file +.B histogram +contains statistics about the profiled module. The file contains a list of pairs +of integers seperated by a space. The first number of the pair is a program counter +value representing the address of a dis instruction. Addresses start from 0 and the +list is in order of increasing address. The +second number is the frequency with which this address was sampled. Each read +of this file returns the next pair in the list. The frequency is guaranteed to be non-zero. +.PP +When coverage profiling the second number of each pair is the number of times +that dis instruction was executed, when memory profiling it's the amount of memory in bytes. +.SH SOURCE +.B /emu/port/devprof.c +.SH BUGS +The device profiles on a global basis and therefore does not distinguish between multiple profilers running at once. +.PP +The coverage profiling can only be done on dis instructions. +.PP +The device can do only one of time, coverage or memory profiling at once. + + + + diff --git a/static/inferno/man3/prog.3 b/static/inferno/man3/prog.3 new file mode 100644 index 00000000..83254836 --- /dev/null +++ b/static/inferno/man3/prog.3 @@ -0,0 +1,310 @@ +.TH PROG 3 +.SH NAME +prog \- running programs +.SH SYNOPSIS +.nf +.B bind #p /prog + +.BI /prog/ n /ctl +.BI /prog/ n /dbgctl +.BI /prog/ n /exception +.BI /prog/ n /fd +.BI /prog/ n /heap +.BI /prog/ n /ns +.BI /prog/ n /nsgrp +.BI /prog/ n /pgrp +.BI /prog/ n /stack +.BI /prog/ n /status +.BI /prog/ n /text +.BI /prog/ n /wait +\&... +.fi +.SH DESCRIPTION +The +.B prog +device serves a two-level directory structure. +The first level contains numbered directories +corresponding to pids of live Limbo processes; +each such directory contains a set of files +representing the corresponding process. +All files operate on +.I UTF +(see +.IR utf (6)) +strings. +.PP +The read-only +.B status +file contains seven space-separated fields. +The fields are: the process and process group identifiers, each 8 characters right justified; +the user name, at least 10 characters left justified; +cpu time in minutes, seconds and tenths of seconds; +the process state, 10 characters left justified; +the amount of memory used by the process in units of 1024 bytes, +at least 5 characters, right justified, followed by a +.BR K ; +and the name of the current program module, +up to 28 characters, left justified. +.PP +The read-only +.B pgrp +file contains the process group identifier, in decimal. +.PP +The read-only +.B nsgrp +file contains the namespace group identifier, in decimal. +.PP +The read-only +.B ns +file contains a set of mount and bind commands +which describe the +.IR sys-bind (2) +and +.B mount +operations used to construct the name space, in +the format of +.IR namespace (6). +The last +line of the file is a +.B cd +command indicating the working directory. +.PP +The read-only +.B wait +file may be read to recover +information about the exiting children of the process. +A read of +.B wait +will block until a child of the process, created after +.B wait +was opened, exits. +When such a child exits, it produces a string with three fields: +the pid of the exiting process, a space, +module name enclosed in +\ \f5"\fP's, +a colon, +and a possibly empty error message. +The error message will contain at most 64 characters. +.PP +The read-only +.B fd +file +describes the open file descriptors in the +file descriptor group of the process. +Each line describes an open file. +The fields are: the file descriptor index, the open mode +.RB ( r , +.BR w , +.BR rw ); +the type and number of the device; +the path, version and type of the file's +.I qid +(see +.IR intro (5)); +the file's atomic I/O unit, as defined in +.IR sys-iounit (2)); +the file I/O offset in bytes; +and the name with which it was opened. +.PP +The read-only +.B exception +file gives details of the last exception to occur in the process, if any. The fields +are the program counter value when the exception occurred, the module it +occurred in and the exception itself, each separated by a space. If none, the +result is the empty string. +.PP +Messages written to the +.B ctl +file control the execution of the process. +.TF killgrp +.PD +.TP +.B kill +Kill the process. +.TP +.B killgrp +Kill all processes in the same group as the process. +A process writing to its own ctl file does not kill itself. +.TP +.B exceptions propagate +Applies to process group leaders only (ie any process that executes a system +call +.I sys->pctl(Sys->NEWPGRP, ... +). +If any process in the same group as the leader incurs an exception which it +does not handle, atomically raise the exception in all processes in the group. +In this case exceptions are generated for killed processes as well. This mechanism allows +all processes in a process group to perfom error recovery when one of them +faults. +.TP +.B exceptions notifyleader +Applies to process group leaders only. +If any process in the same group as the leader incurs an exception which it +does not handle, atomically destroy all processes in the group except for the +leader and raise the exception in the leader. This error recovery mechanism might +be appropriate when a fault occurs amongst a group of processes and the group +leader takes sole responsibilty for recovery. +.TP +.B restricted +Mark all processes that the process spawns in future as restricted. A restricted +process is one which can run out of memory when a configured limit has been +reached and before total memory is exhausted. An unrestricted process can +allocate memory until memory is truly exhausted. Typically a window manager +or server might be unrestricted as they are processes fundamental to the +running of a system. +.PP +The +.B dbgctl +file provides facilities for debugging a process. +Messages written to the file control the execution of the process. +.TP 10n +.BI step " n" +Step the interpreter for at most +.I n +instructions, or until a breakpoint is reached. +.TP 10n +.B toret +Step the interpreter until a return from the current activation frame +or a breakpoint is reached. +.TP 10n +.B cont +Step the interpreter until a breakpoint is reached. +.TP 10n +.B stop +Stop the process as soon as possible. +Do not allow the process to execute again until an +.B unstop +message is received. +.TP 10n +.B unstop +Cancel the effect of any previous +.BR stop . +.TP 10n +.BI "bpt set " "path pc" +Set a breakpoint at +.I pc +for the module given by +.IR path . +.TP 10n +.BI "bpt del " "path pc" +Clear a breakpoint if one exists. +.PP +Reading +.B +dbgctl +gives updates for some state transitions while the process is being debugged. +Each update is terminated by a newline. +.TP 10n +.B exited +The process exited without error. +.TP 10n +.BI broken: " error" +The process died due to +.IR error , +a string with up to 64 characters. +.TP 10n +.B send +The process is blocked sending on a channel. +.TP 10n +.B recv +The process is blocked receiving on a channel. +.TP 10n +.B alt +The process is blocked in an +.B alt +statement. +.TP 10n +.B run +The process is unblocked and now ready to run. +.TP 10n +.BI new " pid" +The process has spawned a new process identified by +.IR pid . +.PP +The read-only +.B stack +file contains the dynamic call stack trace. +Each activation frame is described by one line with six fields, separated by a space: +the frame pointer, program counter, +module data pointer, and module code pointer, +each 8 hexadecimal digits; +the execution method for the module (0 means interpreted, 1 compiled); +and the path name of the module. +The top activation frame starts at offset 0. +.PP +The +.B heap +file may be queried to examine the state of the process. +A data query contains an address, a period, a format character, +and a count. +An instruction query contains a pc, a plus, a mode address, a period, +the format +.BR I , +and a count. +The addresses in the query may be decimal, +hexadecimal preceded by +.B 0x +or +.BR 0X , +or octal preceded by +.BR 0 . +Count gives the number of consecutive +data items retrieved by reading +.B heap +starting at offset 0; +the format varies according to the format character. +All data items other than strings are terminated by a newline. +.TP 10n +.B W +32-bit decimal ints. +.TP 10n +.B B +8-bit unsigned decimal bytes. +.TP 10n +.B V +64-bit decimal bytes. +.TP 10n +.B R +64-bit reals. +.TP 10n +.B I +Disassembled Dis instructions. +.TP 10n +.B P +32-bit hexadecimal address, or +.BR nil . +.PP +The following formats examine properties of specific 32-bit pointers. +.TP 10n +.B L +Examine a list, yielding +a pair of hexadecimal addresses separated by a period, +giving the address of the head and tail of a list. +It is an error to use +.B L +on +.BR nil . +.TP 10n +.B A +Examine an array, yielding +a decimal length, a period, and the address of the 0th element of an array, +or +.BR nil . +.TP 10n +.B C +Examine a string, yielding +the decimal length in characters, a period, and the +.IR utf (6) +representation of the string. +.TP 10n +.B M +Examine a module reference, yielding the address of its global data or +.BR nil . +.PP +The +.B text +file is currently unimplemented. +.SH SOURCE +.B /emu/port/devprog.c +.br +.B /os/port/devprog.c diff --git a/static/inferno/man3/root.3 b/static/inferno/man3/root.3 new file mode 100644 index 00000000..f1bd487b --- /dev/null +++ b/static/inferno/man3/root.3 @@ -0,0 +1,54 @@ +.TH ROOT 3 +.SH NAME +root \- the root file system +.SH SYNOPSIS +.nf +.B / +.B /chan +.B /dev +.B /env +.B /fd +.B /net +.B /net.alt +.B /nvfs +.B /prog +.B /root +.B /srv +.B /osinit.dis +.fi +.SH DESCRIPTION +This device is set up by the kernel to be the initial root of +the name space. +In the emulation environment, +the names in the one-level tree shown above are mostly just place-holders, +to allow a place on which to +.I bind +(see +.IR sys-bind (2)). +.PP +In the native environment, an arbitrary initial directory structure and +file content can be built-in +when the kernel is configured, but it will typically include at least +the names above, to act as mount points. +(See the discussion of the `root section' in +.IR conf (10.6).) +The required file +.B /osinit.dis +(not present in the emulation environment) +provides an executable Dis binary when read, +and is the first program invoked when initialising the system. +Other files needed for bootstrap +might also reside in this device. +.PP +Its local name +.B #/ +can be used by programs outside the kernel, for instance to implement +.B newns +in +.IR newns (2). +.SH SOURCE +.B /emu/port/devroot.c +.br +.B /os/port/devroot.c +.SH SEE ALSO +.IR init (8) diff --git a/static/inferno/man3/rtc.3 b/static/inferno/man3/rtc.3 new file mode 100644 index 00000000..72d32400 --- /dev/null +++ b/static/inferno/man3/rtc.3 @@ -0,0 +1,60 @@ +.TH RTC 3 +.SH NAME +rtc \- real-time clock and non-volatile memory +.SH SYNOPSIS +.B bind -b '#r' /dev +.PP +.B /dev/rtc +.br +.B /dev/rtcid +.br +.B /dev/nvram +.SH DESCRIPTION +The +.I rtc +device provides access to the real-time clock and any associated non-volatile memory. +Physical devices supported include the Mostek MK48T12-15 Zeropower/Timekeeper, +the Dallas Semiconductor DS1687 real-time clock, +and the IBM PC real-time clock on various platforms. +.PP +The +.B rtc +file when read returns the time as a decimal number, expressed as the number of seconds since the epoch, +1 January 1970 00:00 GMT. +The clock is set by writing the desired number of seconds since the epoch to the file. +Setting the time in this device has no effect on system time returned by +.B /dev/time +(see +.IR cons (3)), +which must be set separately if desired. +For example, when +.I rtc +is available +.I osinit +(see +.IR init (8)) +uses it to set +.BR /dev/time . +.PP +The +.B nvram +file provides access to the non-volatile memory commonly implemented +by these clock chips. +There are no cross-platform standards for the range of addresses that +can be safely used by Inferno, or for the content and format of the data. +.PP +The +.B rtcid +file holds a decimal number giving the serial number of the device, +set during manufacturing. +The file exists only if a particular device provides such a number. +.SH SOURCE +.B /os/*/devrtc.c +.SH SEE ALSO +.IR cons (3) +.SH BUGS +The +.B rtc +file returns seconds but +.B /dev/time +returns microseconds: it's history. diff --git a/static/inferno/man3/sd.3 b/static/inferno/man3/sd.3 new file mode 100644 index 00000000..fb9d4555 --- /dev/null +++ b/static/inferno/man3/sd.3 @@ -0,0 +1,194 @@ +.TH SD 3 +.SH NAME +sd \- storage device interface +.SH SYNOPSIS +.nf +.B bind #S /dev + +.BI /dev/sd Cu /ctl +.BI /dev/sd Cu /raw +.BI /dev/sd Cu /data +\&... +.fi +.SH DESCRIPTION +The storage device interface serves a two-level directory +giving access to multiple storage units, +typically ATA(PI) or SCSI discs. +Each unit +is accessed via files in the directory named by the controller +to which it is attached, +.IR C , +and by its unit number +.IR u . +The controller naming convention for ATA(PI) units starts +with the first controller being named +.LR C , +the second +.LR D , +etc. up to a maximum of 4 controllers +.RB ([ C-F ]); +legacy controllers are always 'C' and 'D'. +There can be a maximum of 2 units per ATA(PI) controller +.RB ([ 01 ]). +The controller naming convention for SCSI units starts with +the first controller being named +.LR 0 , +the second +.LR 1 , +etc. up to a maximum of 16 controllers +.RB ([ 0-9a-f ]). +There can be a maximum of 16 units per SCSI controller +.RB ([ 0-9a-f ]). +.PP +Units are not accessed before the first attach. +Units may be individually attached using the attach specifier, +for example +.IP +.EX +bind -a '#SsdD0' /dev +.EE +.PP +An attach without a specifier will cause the driver to scan for all possible +units before processing the rest of the name. +.PP +The subdirectory for each unit contains two files, +.I ctl +and +.IR raw . +In addition, +if the unit is a direct-access disc of some type +it may be split into partitions and +the subdirectory may contain a file per partition. +By default, +the partition +.I data +will exist for such media. +.PP +Partitions are added and deleted by writing to the +.I ctl +file +.IP +.EX +part \f2name start-sector end-sector\fP +delpart \f2name\fP +.EE +.PP +The default +.I data +partition may be deleted. +A partition cannot be deleted if a process has it open. +If a change of removable media is detected, +the new media cannot be opened until all open partitions +on the old media are closed. +.PP +Reading the +.I ctl +file returns at least one line of textual information about +the unit. +The first line will always be prefixed by +.B inquiry +and will give a manufacturer and model number if possible. +A line prefixed by +.B config +will be returned for appropriate media, +e.g. for ATA(PI) units the remainder of the line contains +configuration information from the device's +.I identify +command (config and capabilities) +and also the available I/O transfer options; +this is a diagnostic aid. +A line prefixed by +.B geometry +will be returned for appropriate media; +at least two numbers will follow, +the first being the number of sectors contained in the unit +and the second the sector size in bytes. +Any remaining information on the +.B geometry +line is unit-dependent, +for instance, head, +cylinder and sector counts for ATA discs. +If any partitions are defined for the media, +their name, start-sector and end-sector will be returned, +prefixed by +.BR part . +.IP +.EX +% cat /dev/sdD0/ctl +inquiry KENWOOD CD-ROM UCR-421 208E10/20/99 7.39 2 M0 +config 85C0 capabilities 0F00 dma 00550004 dmactl 00000000 +geometry 242725 2352 +part data 0 242725 +% +.EE +.PP +The use of DMA and multi-sector read/write commands may be +enabled and disabled on ATA(PI) units by writing to the +.B ctl +file +.B dma +and +.B rwm +respectively followed by +.B on +or +.BR off . +For example, to enable DMA on a unit that supports it: +.IP +.EX +% echo 'dma on'>/dev/sd00/ctl +.EE +.PP +If supported by the unit, +the standby timer may be enabled: +.IP +.EX +% echo 'standby \f2T\fP'>/dev/sdC0/ctl +.EE +.PP +where +.I T +is the standby timer period in seconds. +.I T +must be between 30 and 1200, +or can be 0 to disable the timer. +.PP +The +.B raw +file is used to execute an arbitrary command on the unit at +a low level. +This is used by programs +to manipulate devices that do not fit the simple storage model +or using special commands for maintenance purposes. +The following steps may be used to execute a command +.IP +\- Write the command to the +.I raw +file; +.IP +\- Read or write data associated with the command, according to the direction of the transfer. +.IP +\- Read the +.I raw +file to retrieve the status of the command, +returned as a text integer. +.SH SOURCE +.B /os/port/devsd.c +.br +.B /os/*/sd*.[hc] +.SH SEE ALSO +.IR ds (3), +.IR floppy (3) +.SH BUGS +.PP +Still in development. +.PP +No LUNs. +.PP +The 4 controller limit for ATA(PI) is not enforced. +.PP +No account is taken of some buggy ATA PCI controllers +such as the CMD640. +.PP +ATA(PI) units come up with DMA and multi-sector read/write +capability disabled. diff --git a/static/inferno/man3/sign.3 b/static/inferno/man3/sign.3 new file mode 100644 index 00000000..c992c296 --- /dev/null +++ b/static/inferno/man3/sign.3 @@ -0,0 +1,92 @@ +.TH SIGN 3 +.SH NAME +sign \- control use of signed modules +.SH SYNOPSIS +.B "bind -a #Σ /dev" +.PP +.B /dev/signerkey +.br +.B /dev/signctl +.SH DESCRIPTION +.I Sign +is a device, still experimental, to +control the use of signed Dis modules. +After system initialisation, any process can load any module. +Using +.IR sign , +.B load +operations can subsequently be restricted for a process and its descendents. +.PP +.B Signerkey +is a file that can be opened for writing only by the host owner +(see +.IR eve (10.2)) +(but any process holding the file descriptor can write to it). +The data written must be the textual representation of a public key in the form produced by +.B Keyring->pktostr +(see +.IR keyring-certtostr (2)). +After a successful write, subsequent +.B load +operations will be limited to Dis modules in any of the following sets: +.IP • +built-in modules +.IP • +unsigned modules found in the kernel's +.IR root (3) +file system +.IP • +currently loaded unsigned modules +.IP • +acceptable signed modules +.PP +A signed Dis module contains a signature in its header, as specified by +.IR dis (6). +The signature contains the result of signing the +remaining data in the file (or more precisely, a cryptographically secure hash of it), using +a configured public key algorithm and the signer's secret key +(for instance using +.BR Keyring->sign , +see +.IR keyring-sha1 (2)). +.PP +A signed module is `acceptable' if it was signed by the secret key corresponding to one +of the public keys written to +.BR signerkey . +There can be up to 8 such keys. +The set of keys and the secured status is shared across +.BR spawn . +.PP +.B Signerkey +is generally readable, and when read yields a list of the keys installed, one per line, +showing +.BR owner , +.BR alg , +and other attributes in +.IB attr = value +format, space separated. +The actual key value is not currently shown. +.PP +.B Signctl +can be read or written only by the host owner. +Each write contains a textual control request. +(Currently there are none such.) +If security is not enabled, it is empty when read. +Otherwise, it contains the number of keys loaded, as a decimal integer. +.SH SOURCE +.B /emu/port/devsign.c +.br +.B /os/port/devsign.c +.SH SEE ALSO +.B wm/rt +in +.IR wm-misc (2), +.IR sys-pctl (2), +.IR dis (6), +.IR createsignerkey (8), +.IR eve (10.2) +.SH DIAGNOSTICS +If the text is not a valid public key or uses an algorithm that is not configured, +a write to +.B signer +fails and sets the error string. diff --git a/static/inferno/man3/snarf.3 b/static/inferno/man3/snarf.3 new file mode 100644 index 00000000..810504d1 --- /dev/null +++ b/static/inferno/man3/snarf.3 @@ -0,0 +1,29 @@ +.TH SNARF 3 hosted +.SH NAME +snarf \- host window system clipboard +.SH SYNOPSIS +.B bind -a #^ /dev +.br +.B bind -b #^ /chan +.PP +.B /dev/snarf +.br +.B /chan/snarf +.SH DESCRIPTION +.I Snarf +serves a single file, +.BR snarf . +Reading the file returns the current +contents of the host window system's own clipboard (equivalent to +the Inferno window system's `snarf buffer'). +If the file is opened for writing, subsequent writes append to an internal buffer; +when the file is closed, that buffer's contents are written to the host window system's clipboard. +.PP +.IR Emu (1) +automatically binds the device to both +.B /dev +and +.B /chan +when it starts up, if a window system is configured. +.SH SEE ALSO +.IR wm (1) diff --git a/static/inferno/man3/srv.3 b/static/inferno/man3/srv.3 new file mode 100644 index 00000000..74ec4586 --- /dev/null +++ b/static/inferno/man3/srv.3 @@ -0,0 +1,86 @@ +.TH SRV 3 +.SH NAME +srv \- server registry +.SH SYNOPSIS +.BI "bind #s" +[ +.I spec +] +.B /chan +.PP +.EX +sys->bind("#s\fIspec\fP", "/chan", Sys->MREPL); +.EE +.SH DESCRIPTION +.I Srv +converts between file system operations by applications +and messages on channels, as described in +.IR sys-file2chan (2). +Each attach that does not include a +.I spec +produces a new instance: an empty directory owned +by the current user in which only files +may be created, and then only by +.IR sys-file2chan , +using a special internal interface. +Each such file initially has the same owner as the +directory, and permissions +.B 8r600 +(read-write for the owner only), +but the permissions can be changed by +.BR Sys->wstat +(see +.IR sys-stat (2)) +and thus +.IR chmod (1). +If mode +.B Sys->DMEXCL +is thereby set, the file becomes exclusive-use and can be opened by +only one process at a time. +The file length and +mode bit +.B Sys->DMAPPEND +may also be set by +.B wstat +but are not interpreted by the system. +.PP +Files may be removed, directly using +.IR sys-remove (2) +(and thus +.IR rm (1)), +or indirectly by opening them with mode +.B Sys->ORCLOSE +(see +.IR sys-open (2)). +.I File2chan +also removes the corresponding file when the last references +to the server's read and write channels have gone +(eg, on server exit). +.PP +A +.I spec +may be given to name specific instances of +.IR srv , +so that a new name space can bind in a service created in another. +Only the owner (original creator) of the instance may attach to it, +unless the mode of the service directory is changed +using +.B Sys->wstat +(see +.IR sys-stat (2)) +to have general access. +.SH FILES +.TF /chan +.TP +.B /chan +directory to which +.I srv +is conventionally bound by various applications +.SH SOURCE +.B /emu/port/devsrv.c +.br +.B /os/port/devsrv.c +.SH SEE ALSO +.IR plumb (1), +.IR wm (1), +.IR sys-file2chan (2) diff --git a/static/inferno/man3/srv9.3 b/static/inferno/man3/srv9.3 new file mode 100644 index 00000000..e6dff525 --- /dev/null +++ b/static/inferno/man3/srv9.3 @@ -0,0 +1,108 @@ +.TH SRV9 3 "Plan 9" +.SH NAME +srv9 \- plan 9 server registry +.SH SYNOPSIS +.nf +.B bind -c #₪ /srv + +.BI /srv/ service1 +.BI /srv/ service2 + ... +.fi +.SH DESCRIPTION +On Inferno hosted on Plan 9, +.I srv9 +serves a one-level directory that gives Inferno applications +direct access to Plan 9 services posted in its +.B #s +server registry, +and allows Inferno applications to post services for access by Plan 9 applications. +A service is represented by a file descriptor, usually serving the common file service +protocol described in +.IR intro (5), +allowing it to be mounted (see +.IR bind (1) +and +.IR sys-bind (2)) +in the name space of an application in the other system. +.PP +To access a Plan 9 service in Inferno, open the desired service file; +the resulting file descriptor is connected to the associated Plan 9 service. +When that service is a shared Plan 9 file service, +.I srv9 +automatically starts Plan 9's +.I exportfs +with appropriate options to make the service accessible from Inferno. +It can safely be shared with Plan 9 applications, but note that any path names +mentioned in the attach specifier (see +.IR mount (1) +and +.IR attach (5)) +will be in the Plan 9 application's name space, not the Inferno application's. +(Indeed, a similar caveat applies in Plan 9 itself.) +.PP +To export an Inferno service to Plan 9, create a new file such as +.BR /srv/myserv +using +.B Sys->create +with mode +.B Sys->ORDWR +(see +.IR sys-open (2)) +and any desired permissions for the new service file. +(Note that the +.B #₪ +device must have been bound in with the +.B -c +option, as shown above, to allow file creation.) +If the create is successful, Plan 9's service registry will have a new entry +.BR myserv , +and the file descriptor returned from +.B create +acts as a pipe to any Plan 9 application +that opens the associated service file in Plan 9. +Typically on the Inferno side the file descriptor is passed to +.IR sys-export (2) +or made the standard input of an Inferno file service +(see +.IR intro (4)). +The Plan 9 service file is automatically removed when the Inferno file descriptor is no longer referenced. +.SH EXAMPLES +To make Plan 9's factotum available in Inferno: +.IP +.EX +mount -Aa /srv/factotum /mnt +.EE +.PP +(Note the +.B -A +option to suppress Inferno authentication.) +.PP +To mount the Plan 9 file service from which a Plan 9 machine booted: +.IP +.EX +mount -9 /srv/boot /n/local +.EE +.PP +The +.B -9 +option to +.IR mount (1) +requests Plan 9 authentication; that could also have been used instead of +.B -A +in the previous example. +.PP +To make the environment variables of the current Inferno name space available to Plan 9: +.IP +.EX +fd := sys->create("/srv/infenv", Sys->ORDWR, 8r600); +sys->export(fd, "/env", Sys->EXPWAIT); +.EE +.SH SOURCE +.B /emu/Plan9/devsrv9.c +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-open (2), +.IR sys-export (2), +.IR import (4), +.IR 9srvfs (4) diff --git a/static/inferno/man3/ssl.3 b/static/inferno/man3/ssl.3 new file mode 100644 index 00000000..bf1c2545 --- /dev/null +++ b/static/inferno/man3/ssl.3 @@ -0,0 +1,145 @@ +.TH SSL 3 +.SH NAME +ssl \- secure sockets layer device +.SH SYNOPSIS +.B #D/clone +.br +.BI #D/ n +.br +.BI #D/ n /data +.br +.BI #D/ n /ctl +.br +.BI #D/ n /secretin +.br +.BI #D/ n /secretout +.br +.BI #D/ n /encalgs +.br +.BI #D/ n /hashalgs +.SH DESCRIPTION +The +.I ssl +device provides access to a Secure Socket Layer that implements the record layer protocol +of SSLv2 +(but not its handshaking). +The device provides encrypting and digesting for many independent connections. +Once associated with a network connection, the +.I ssl +device can be thought of as a filter for the connection. +.I Ssl +can send data in the clear, digested or encrypted. In all cases, if +.I ssl +is associated with both ends of a connection, all messages are delimited. +As long as reads always specify buffers that are of equal or greater lengths than the writes at the other end of the connection, one write will correspond to one read. +The device is unusual because it is not bound into the name space but named directly by its local name, +.BR #D . +That is because the interface described below requires writing a local file descriptor number to a file, +which will not work remotely. +.PP +The top-level directory contains a +.B clone +file and numbered directories, each representing a connection. +Opening the +.B clone +file reserves a connection; the file descriptor resulting from the +.IR \%sys-open (2) +will be open on the control file, +.BR ctl , +in the directory that represents the new connection. +Reading the control file will return a text string giving the connection number +.IR n , +and thus the directory name. +.PP +Writing to +.B ctl +controls the corresponding connection. +The following control messages are possible: +.TP +.BI fd " m" +Associate the network connection on existing file descriptor +.I m +with the +.I ssl +device. +.TP +.B alg clear +Allow data to pass in the clear with only message delimiters added. The device starts in this mode. +.TP +.B alg sha +Append a SHA digest to each buffer written to +.BR data . +The digest covers the outgoing secret (written to +.BR secretout ), +the message, and a message number which starts at 0 and increments by one for each message. +Messages read have their appended digests compared to a digest computed using the incoming secret (written to +.BR secretin ). +If the comparison fails, so will the read. +.TP +.B alg md4 +Like +.B sha +but using the MD4 message digest algorithm. +.TP +.B alg md5 +Like +.B sha +but using the MD5 message digest algorithm. +.TP +.B alg rc4 +.PD0 +.TP +.B alg rc4_40 +.TP +.B alg rc4_128 +.TP +.B alg rc4_256 +RC4 encrypt each message written to +.B data +with the key written to +.BR secretout , +using the key length as indicated (40-bit keys by default). +.PD +.TP +.B alg des_56_cbc +Encrypt the stream using DES and Cipher Block Chaining (CBC) +.TP +.B alg des_56_ecb +Encrypt the stream using DES and Electronic Code Book (ECB) +.TP +.B alg ideacbc +Encrypt the stream using IDEA and CBC +.TP +.B alg ideaecb +Encrypt the stream using IDEA and ECB +.TP +.BI alg " digest" / crypt +Combine the use of the given +.I digest +algorithm and the stream encryption algorithm +.IR crypt +.PP +Files +.B secretin +and +.B secretout +must be written before digesting or encryption is turned on. If only one is written, they are both assumed to be the same. +.PP +The mode may be changed at any time during a connection. +.PP +The list of algorithms supported by a given implementation of +.I ssl +may be read from the read-only text files +.B encalgs +(encryption algorithms) +and +.B hashalgs +(hashing algorithms for digests). +Each contains a space-separated list of algorithm names. +.PP +.SH "SEE ALSO" +.IR security-ssl (2) +.br +B. Schneier, +.IR "Applied Cryptography , +1996, J. Wiley & Sons, Inc. diff --git a/static/inferno/man3/switch.3 b/static/inferno/man3/switch.3 new file mode 100644 index 00000000..4c74db66 --- /dev/null +++ b/static/inferno/man3/switch.3 @@ -0,0 +1,28 @@ +.TH SWITCH 3 MPC8xx +.SH NAME +switch \- hardware option switch +.SH SYNOPSYS +.nf +.B bind -a '#r' /dev + +.B /dev/switch +.fi +.SH DESCRIPTION +.PP +The switch device serves a one-level directory, +giving access to one read-only file, +.BR switch . +A read returns the value of the development board's +option switch (DS1), represented as a decimal number +from 0 to 15, representing four bits, +each corresponding to one of the four toggles. +Each toggle produces the value 0 when it +is set `ON' and 1 when it is off. +Toggle 1 corresponds to bit +.B 1<<3 +in the number, +toggle 2 corresponds to bit +.BR 1<<2 , +and so on +.SH SOURCE +.B /os/mpc/devrtc.c diff --git a/static/inferno/man3/tinyfs.3 b/static/inferno/man3/tinyfs.3 new file mode 100644 index 00000000..cbabe2b5 --- /dev/null +++ b/static/inferno/man3/tinyfs.3 @@ -0,0 +1,45 @@ +.TH TINYFS 3 +.SH NAME +tinyfs \- file system for miniscule devices +.SH SYNOPSIS +.EX +bind -c #F\fIname\fP /nvfs +.EE +.SH DESCRIPTION +.I Tinyfs +provides file system access to the contents of low-capacity devices, +ranging from several hundred bytes (at least 144 bytes) to at most the order of a kilobyte. +It is provided to support file system access to small non-volatile memories, +as for instance are found in some real-time clock chips, +where IDs, keys, PINs, certificates and the like might be stored by either client or server. +.PP +The file system has only one directory, its root, which can contain only files. +Once created, a write can only append to a file; random updates are not allowed, +although the file could be truncated and rewritten. +.PP +The device specifier following the +.B #F +device name is the +.I name +of a file in +.B /dev +on which the tiny file system will live. +For instance, +.B #Fnvram +refers to +.BR /dev/nvram . +The device must allow seek and write. +During the +.IR attach , +the system scans the device, checking the file system structure +by building a table of files, and checking a checksum stored +in each block; inconsistent structure is reinitialised, and thus +a previously unused device will emerge correctly formatted as an empty tiny file system. +.SH FILES +.TF /nvfs +.TP +.B /nvfs +conventional mount point used by +.IR init (8) +.SH SOURCE +.B /os/port/devtinyfs.c diff --git a/static/inferno/man3/tls.3 b/static/inferno/man3/tls.3 new file mode 100644 index 00000000..64071e08 --- /dev/null +++ b/static/inferno/man3/tls.3 @@ -0,0 +1,276 @@ +.TH TLS 3 +.SH NAME +tls \- TLS1 and SSL3 record layer +.SH SYNOPSIS +.nf +.B bind -a #a /net + +.B /net/tls/clone +.B /net/tls/encalgs +.B /net/tls/hashalgs +.BI /net/tls/ n +.BI /net/tls/ n /ctl +.BI /net/tls/ n /data +.BI /net/tls/ n /hand +.BI /net/tls/ n /stats +.BI /net/tls/ n /status +.fi +.SH DESCRIPTION +The TLS device implements the record layer protocols +of Transport Layer Security version 1.0 and Secure Sockets Layer version 3.0. +It does not implement the handshake protocols, which are responsible for +mutual authentication and key exchange. +The +.I tls +device can be thought of as filters providing optional encryption and anti-tampering. +.PP +The top level directory contains a +.B clone +file and subdirectories numbered from zero through at least the last active filter. +Opening the +.B clone +file reserves a filter. +The file descriptor returned from the +.IR sys-open (2) +will point to the control file, +.BR ctl , +of the newly allocated filter. +Reading the +.B ctl +file returns a text string containing the number of the filter directory. +.PP +The filter initially cannot be used to pass messages +and will not encrypt or digest messages. +It is configured and controlled by writing commands to +.BR ctl . +.PP +The following commands are supported: +.TP +.BI fd \ open-fd\ vers +Pass record messages over the communications channel +.IR open-fd . +Initially, outgoing messages use version +.I vers +format records, but incoming messages of either version are accepted. +Valid versions are +.B 0x300 +for SSLv3.0 and +.B 0x301 +for TLSv1.0 (which could be known as SSLv3.01.) +This command must be issued before any other command +and before reading or writing any messages; +it may only be executed once. +.TP +.BI version \ vers +Use +.I vers +format records for all future records, +both outgoing and incoming. +This command may only be executed once. +.TP +.BI secret \ hashalg\ encalg\ isclient\ secretdata +Set up the digesting and encryption algorithms and secrets. +.I Hashalg +and +.I encalg +must be algorithm names returned by the corresponding files. +.I Secretdata +is the base-64 encoded (see +.IR encode (2)) +secret data used for the algorithms. +It must contain at least enough data to populate the +secrets for digesting and encrypting. +These secrets are divided into three categories: digest secrets, keys, and initialization vectors. +The secrets are packed in this order, with no extra padding. +Within each category, the secret for data traveling from the client to the server comes first. +The incoming and outgoing secrets are automatically selected by devtls based on the +.I isclient +argument, which must be non-zero for the client of the TLS handshake, +and zero for the server. +.br +This command must be issued after +.BR version , +and may be issued more than once. +At least one new +.I secret +command must be issued before each +.I changecipher +command; similarly, at least one new +.I secret command +must precede each incoming changecipher message. +.TP +.BI changecipher +Enable outgoing encryption and digesting as configured by the previous +.I secret +command. +This command sends a +.I changecipher +message. +.TP +.BI opened +Enable data messages. +This command may be issued any number of times, +although only the first is significant. +It must follow at least one successful +.I changecipher +command. +.TP +.BI alert \ alertno +Send an alert message. +.I Alertno +may be a valid alert code for either SSLv3.0 or TLSv1.0, +and is mapped to an appropriate code for the protocol in use. +If it is a fatal alert, the filter is set into an error state. +.PP +Application messages and handshake messages are communicated using +.I data +and +.IR hand , +respectively. +Only one +.IR sys-open (2) +of +.I hand +is allowed at a time. +.PP +Any record layer headers and trailers are inserted and +stripped automatically, and are not visible from the outside. +The device tries to synchronize record boundaries with reads and writes. +Each read will return data from exactly one record, +and will return all of the data from the record as long as +the buffer is big enough. +Each write will be converted into an integral number of records, +with all but potentially the last being maximal size. +The maximum record length supported is 16384 bytes. +This behavior is not specified in the protocols, +and may not be followed by other implementations. +.PP +If a fatal alert message is received, or a fatal +.I alert +command issued, the filter is set into an error state. +All further correspondence is halted, +although some pending operations may not be terminated. +Operations on +.I data +will fail with a +.BR "'tls error'" , +and operations on +.I hand +will fail with a textual decoding of the alert. +The current non-fatal alert messages are +.BR "'close notify'" , +.BR "'no renegotiation'" , +and +.BR "'handshake canceled by user'" . +Receipt of one of these alerts cause the next read on +.I hand +to terminate with an error. +If the alert is +.BR "'close notify'", +all future reads will terminate with a +.B "tls hungup" +error. +A +.B "'close notify'" +.I alert +command will terminate all future writes or reads from +.I data +with a +.B "'tls hungup'" +error. +.PP +If an error is encountered while reading or writing +the underlying communications channel, the error is returned +to the offending operation. +If the error is not +.BR "'interrupted'" , +the filter is set into the error state. +In this case, all future operations on +.I hand +will fail with a +.BR "'channel error'" . +.PP +When all file descriptors for a filter have been closed, +the session is terminated and the filter reclaimed for future use. +A +.B "'close notify'" +alert will be sent on the underlying communications channel +unless one has already been sent or the filter is in the error state. +.PP +Reading +.I stats +or +.I status +returns information about the filter. +Each datum is returned on a single line of the form +.IB tag ": " data . +.I Stats +returns the number of bytes communicated by the +.B data +and +.B hand +channels. +The four lines returned are tagged by, in order, +.BR DataIn , +.BR DataOut , +.BR HandIn , +and +.BR HandOut . +.I Status +returns lines following tags: +.BR State , +.BR Version , +.BR EncIn , +.BR HashIn , +.BR NewEncIn , +.BR NewHashIn , +.BR EncOut , +.BR HashOut , +.BR NewEncOut , +and +.BR NewHashOut . +.BR State 's +value is a string describing the status of the connection, +and is one of the following: +.BR 'Handshaking' , +.BR 'Established' , +.BR 'RemoteClosed' , +.BR 'LocalClosed' , +.BR 'Alerting' , +.BR 'Errored' , +or +.BR 'Closed' . +.BR Version 's +give the hexadecimal record layer version in use. +The +.B Enc +and +.B Hash +fields return name of the current algorithms in use +or ready to be used, if any. +.PP +Reading +.I encalgs +and +.I hashalgs +will give the space-separated list of algorithms implemented. +This will always include +.BR clear , +meaning no encryption or digesting. +Currently implemented encryption algorithms are +.B 'rc4_128' +and +.BR '3des_ede_cbc' . +Currently implemented hashing algorithms are +.B 'md5' +and +.BR 'sha1' . +.SH "SEE ALSO" +.IR listen (1), +.IR dial (2), +.IR ssl (3) +\".IR pushtls (2) +.SH SOURCE +.B /emu/port/devtls.c +.br +.B /os/port/devtls.c diff --git a/static/inferno/man3/touch.3 b/static/inferno/man3/touch.3 new file mode 100644 index 00000000..d86933d1 --- /dev/null +++ b/static/inferno/man3/touch.3 @@ -0,0 +1,138 @@ +.TH TOUCH 3 +.SH NAME +touch \- touch screen +.SH SYNOPSIS +.EX +bind -a '#T' /dev + +/dev/touchcal +/dev/touchctl +/dev/touchstat +/dev/touch +.EE +.SH DESCRIPTION +The touch screen driver +serves a one-level directory giving access to a touch panel. +The driver attempts to compensate +for the warped nature of the panels we have used: +amongst other things, +it repeatedly samples the panel to obtain a stable reading, +and applies a transformation to the +.RI ( "x, y" ) +coordinates obtained to account for the peculiar distortions of individual panels. +A panel should be calibrated by +.IR touchcal (8) +before use. +.PP +There are two variants of the driver. +One drives a +DynaPro touch panel +on a York Electronics Centre BRD/98/024 interface (Version A) +accessed via the Motorola MPC8xx SPI interface. +The other drives a different pressure-sensitive touch panel on a webphone reference design. +.PP +The driver initialisation starts a kernel process to read samples from the +touch screen and provide them to the system through the interface used +for mouse events. +The events generated mark +`mouse button' 1 as down as long as the panel is touched and up otherwise. +Other `mouse buttons' are always up. +This is adequate for many applications (but not +.IR acme (1)). +.PP +The data file +.B touch +is read-only. +Each read samples the touch panel +and returns two decimal numbers, separated by a space, +giving the +.I x +and +.I y +coordinates read. +The values are both -1 if a consistent reading could not be made. +This file is used only for debugging; the window system should not be running. +.PP +The control file +.B touchctl +accepts commands to set driver parameters: +.TF "X a b c" +.PD +.TP +.BI X " a b c" +(MPC8xx only) Set the parameters for a transformation of the X-coordinates received from the +panel: +.RS +.IP +.IR "x' = a*x+b*y+c" +.PP +The values are fixed-point: 1.0 is represented by 2\u\s-216\s0\d. +.RE +.TP +.BI Y " d e f" +(MPC8xx only) Set the parameters for a similar transformation of Y-coordinates: +.RS +.IP +.IR "y' = d*x+e*y+f" +.RE +.TP +.BI s n +Sample every +.I n +milliseconds. +.TP +.BI c "p sx sy" +(SA1100) Wait for the screen to be touched and sample parameters for point +.IR p , +0\(<=\fIp\fP\(<=3, +corresponding to one of the four corners of the screen. +Save the sample parameters for calibration. +.TP +.B C +(SA1100) Compute calibration parameters based on previously stored samples. +.TP +.BI r n +Sets delay between touch reads. +.TP +.BI R n +Average +.RI 2 ^n +readings each sample. +.TP +.BI f n +Set the filter level (-1024 \(<=\fIn\fP\(<=1024). +.TP +.BI e "x y" +Set error term for +.I x +and +.IR y ; +normally calculated by +.BR C . +.TP +.BI t "p r" +Set pressure threshold for press and release +.PP +Reads of +.B touchctl +return all current parameters in the same form as the commands +(allowing settings to be read from the file and later restored by simply writing them back). +.PP +The read-only file +.B touchstat +contains four decimal values separated by spaces or newlines: +the number of raw samples, the number of valid samples, +microseconds waiting for samples, and microseconds spent processing samples. +.PP +The SA1100 driver +provides a file +.B /dev/touchcal +that holds the calibration results as a set of +decimal numbers for each of the four sample points, one set per line. +The results can be saved and written back to restore the same calibration. +.SH SOURCE +.B /os/mpc/devtouch.c +.br +.B /os/sa1100/devtouch.c +.SH SEE ALSO +.IR touchcal (8) diff --git a/static/inferno/man3/tv.3 b/static/inferno/man3/tv.3 new file mode 100644 index 00000000..fa37a5ea --- /dev/null +++ b/static/inferno/man3/tv.3 @@ -0,0 +1,179 @@ +.TH TV 3 +.SH NAME +tv \- Hauppage TV device +.SH SYNOPSIS +.B +bind -b #V /dev +.PP +.B /dev/tv +.br +.B /dev/tvctl +.SH DESCRIPTION +The +.I tv +device serves two files giving access to a Hauppage television card +in NTSC mode (only). +.PP +The control device +.B tvctl +accepts the following commands to control +tuning and image processing: +.TP +.B init +Reset the device to the default settings. +.TP +.BI window " minx miny maxx maxy" +Set the display window size (default: none). +.TP +.BI colorkey " rl rh gl gh bl bh" +Set the key limits for chromakey display to +the given `low' and `high' values for +each of red, green and blue +(default: 15 63 255 15 15 63), and enable +use of the colour key. +The value 255 for a lower limit disables the limit. +.TP +.BI capture " minx miny maxx maxy" +Set the capture window (default: none); +see the description of reading the +.B tv +file, below. +.TP +.BI capbrightness " n" +Set the brightness of a captured frame to +.IR n , +on a scale from 0 to 100 +(default: 13). +.TP +.BI capcontrast " n" +Set the contrast of a captured frame to +.IR n , +on a scale from 0 to 100 +(default: 57). +.TP +.BI capsaturation " n" +Set the saturation of a captured frame to +.IR n , +on a scale from 0 to 100 +(default: 51). +.TP +.BI caphue " n" +Set the hue of a captured frame to +.IR n , +on a scale from 0 to 100 +(default: 0). +.TP +.BI capbw " n" +Capture colour +.RI ( n=0 ) +or monochrome +.RI ( n=1 ); +(default: 0). +.TP +.BI brightness " n" +Set the image brightness to +.IR n , +on a scale from 0 to 100 +(default: 0) +.TP +.BI contrast " n" +Set the image contrast to +.IR n , +on a scale from 0 to 100 +(default: 54) +.TP +.BI saturation " n" +Set image saturation to +.IR n , +on a scale from 0 to 100 +(default: 54) +.TP +.BI source " n" +Set the input source to +.I n +(default: video input 0). +.TP +.BI svideo " n" +If +.I n +is non-zero, set the input capture format to +S-Video. +.TP +.BI format " n" +Set the input format to +.I n +(0, NTSC-M; 1, NTSC-443; 2, external control). +Default: 0. +.TP +.BI channel " c f" +Sets the right frequency for HRC CATV channel +.IR c , +with fine tuning by signed offset +.I f +(in MHz). +.TP +.BI volume " m" [ " n " ] +Set the volume of left and right channels to +.I m +and +.IR n , +on a scale from 0 to 100 +(default: 80). +If only +.I m +is given, set both left and right volumes to +.IR m . +.TP +.BI bass " n" +Set the bass to +.IR n , +on a scale from 0 to 100 (default: 50). +.TP +.BI treble " n" +Set the treble to +.IR n , +on a scale from 0 to 100 (default: 50). +.TP +.BI freeze " n" +If +.I n +is non-zero, freeze the current frame; +if +.I n +is zero, unfreeze the video. +.PP +The data file +.B tv +is read-only. +Reading is valid only after a capture window has been set +(see +.B capture +above). +Each read at file offset 0 causes the contents of the input video image +within the previously-set capture window to be +captured. +The frame data is successively returned +in this and subsequent reads until a short read signals that +all frame data has been transferred. +The data is returned in Plan 9 +.I picfile +format, with a two line textual header followed by an empty +line, followed by the image data in binary format. +The header has the form: +.IP +.B "TYPE=ccir601" +.br +.BI "WINDOW=" "minx miny maxx maxy" +.PP +The +.B WINDOW +coordinates are those of the capture window. +The image data is organised as interleaved scan lines from top to bottom of the window, +with UY0 and VY1 values alternating, with two bytes per value, stored high-order byte +first, encoded according to the IEEE digital component video standard. +.SH SOURCE +.B /os/port/devtv.c +.br +.B /os/pc/tv.h +.SH SEE ALSO +.IR audio (3) diff --git a/static/inferno/man3/usb.3 b/static/inferno/man3/usb.3 new file mode 100644 index 00000000..90ebc851 --- /dev/null +++ b/static/inferno/man3/usb.3 @@ -0,0 +1,143 @@ +.TH USB 3 MPC823 +.SH NAME +usb \- USB device interface +.SH SYNOPSYS +.nf +.B bind -a '#U' /dev + +.B /dev/usbctl +.B /dev/usbdata +.B /dev/usbstat +.B /dev/usbaddr +.B /dev/usbframe +.B /dev/usbsetup +.fi +.SH DESCRIPTION +.PP +The USB device serves a one-level directory, +giving access to six files. +They provide an interface to the device (slave) mode of the 823/850 USB controller, +allowing an Inferno system to provide services to the USB host. +The controller's endpoints are configured as follows. +Endpoint 0 is the default USB control endpoint, as required by the USB standard. +Endpoint 1 responds to bulk output requests from the host; +endpoint 2 responds to bulk input requests from the host; +endpoint 3 is unused. +.PP +The data file +.B usbdata +provides read and write access to endpoints 1 and 2. +When the file is read, it returns data written to endpoint 1 by the USB host. +Data written to the file is provided in response to the host's read requests +on endpoint 2. +Output data is converted to packets limited to the maximum packet +length for the endpoint (see the +.B maxpkt +control request, below), which is 1023 bytes by default. +Note that zero length records can be transmitted and +received on USB. +.PP +The file +.B usbsetup +provides read and write access to endpoint 0. +When the file is read, it returns +SETUP +requests from the host. +If a given request requires a reply, the reply must be written to the file +(host requests will automatically be NAKd until then). +Requests and replies are in binary form as defined in the USB specification, +except for the reset message described below. +The driver itself interprets all +SET_ADDRESS +requests from the host, and sets the controller's address accordingly. +That request will therefore not be visible on the +.B usbsetup +file. +.PP +A USB bus or device reset sets the controller's USB address to zero, +the USB `default address' for configuration. +It also resets all data toggles to DATA0. +A subsequent read of +.B usbsetup +will return the following special 8-byte reset message: +.IP +.EX +byte 16rFF, byte 16rFF, byte 'r', byte 'e', +.br +byte 's', byte 'e', byte 't', byte '\en' +.EE +.PP +which does not resemble a normal SETUP message. +Further reads and writes on +.B usbdata +will return errors until that file has been closed and reopened. +.PP +The control file +.B usbctl +receives textual commands to set device parameters and responses: +.TP +.BI maxpkt "n nb" +Set the maximum packet size for endpoint +.I n +to +.I nb +bytes. +.I Nb +must be between 8 and 64 bytes for the control endpoint 0, +and between 1 and 1023 bytes for the other endpoints. +The default is 8 bytes for endpoint 0 and 1023 bytes for the others. +.TP +.BI rdtog "n t" +Set the data toggle for input in endpoint +.I n +to +.IR t , +which must be either 0 (DATA0) or 1 (DATA1). +.TP +.BI stall "n" +Cause endpoint +.I n +to respond to host IN and OUT tokens by stalling. +.TP +.BI unstall "n" +Cancel the effect of a previous +.B stall +request on endpoint +.IR n . +.TP +.BI wrtog "n t" +Set the data toggle for the next packet output by endpoint +.I n +to +.IR t , +which must be either 0 (DATA0) or 1 (DATA1). +.PP +Stalling an endpoint causes IN and OUT +transactions from the host to return a `stalled' error status. +On the control endpoint (endpoint 0), however, +SETUP transactions will still arrive on +.BR usbsetup , +and the arrival of a SETUP will automatically clear the `stalled' status +for the endpoint, +allowing an application to reject a +control request (by stalling the subsequent status transaction) +without stalling the control endpoint by rejecting subsequent +SETUP transactions. +.PP +The status file +.B usbstat +is a read-only file, +containing one line of statistics for each endpoint, giving: +endpoint number; data toggles; maximum packet size; +count of input and output bytes and packets; and counts +of various error conditions. +.PP +The read-only file +.B usbaddr +contains a single number giving the current device address. +.PP +The read-only file +.B usbframe +contains a single line giving the current USB frame number. +.SH SOURCE +.B /os/mpc/devusb.c diff --git a/static/inferno/man3/vga.3 b/static/inferno/man3/vga.3 new file mode 100644 index 00000000..526d5231 --- /dev/null +++ b/static/inferno/man3/vga.3 @@ -0,0 +1,247 @@ +.TH VGA 3 +.SH NAME +vga \- VGA controller device +.SH SYNOPSIS +.B bind #v /dev +.PP +.B /dev/vgactl +.br +.B /dev/vgaovlctl +.br +.B /dev/vgaovl +.SH DESCRIPTION +The VGA device allows configuration of a graphics controller +on a PC (and any other platform with VGA devices). +.B Vgactl +allows control over higher-level settings such as display height, width, depth, +controller and hardware-cursor type. +Along with the I/O-port registers +provided by +.IR arch (3), +it is used to implement configuration and setup of VGA controller cards. +....This is usually performed by +.....IR vga (8). +.PP +Writing strings to +.B vgactl +configures the VGA device. +The following are valid commands. +.TP +.BI size " X" x Y x "Z chan" +Set the size of the screen image to be +.I X +pixels wide +and +.I Y +pixels high. +Each pixel is +.I Z +bits as specified by +.IR chan , +whose format is described in +.IR image (6). +.TP +.BI actualsize " X" x Y +Set the physical size of the display to be +.I X +pixels wide by +.I Y +pixels high. +This message is optional; +it is used to implement panning and to accommodate +displays that require the in-memory screen image +to have certain alignment properties. +For example, a 1400x1050 screen with a 1408x1050 in-memory image +will use +.B "size 1408x1050 +but +.BR "actualsize 1400x1050" . +.TP +.BI panning " mode" +Depending on whether +.I mode +is +.B on +or +.BR off , +enable or disable panning in a virtual screen. +If panning is on and the screen's +.B size +is larger than its +.BR actualsize , +the displayed portion of the screen will pan to follow the mouse. +Setting the panning mode after the first attach of the +.B #i +driver has no effect. +.TP +.BI type " ctlr" +Set the type of VGA controller being used. +.I Ctlr +is one of +.BR ark200pv , +.BR clgd542x , +.BR clgd546x , +.BR ct65545 , +.BR cyber938x , +.BR hiqvideo , +.BR mach64xx , +.BR mga2164w , +.BR neomagic , +.BR s3 , +and +.BR t2r4 . +.IP +Note that this list does not indicate the full set of VGA chips +supported. For example, +.B s3 +includes the 86C801/5, 86C928, Vision864, and Vision964. +It is the job of a user-level program +....IR vga (8) +to recognise which particular chip is being used and to initialize it +appropriately. +.TP +.BI hwgc " gc" +Set the type of hardware graphics cursor being used. +.I Gc +is one of +.BR ark200pvhwgc , +.BR bt485hwgc , +.BR clgd542xhwgc , +.BR clgd546xhwgc , +.BR ct65545hwgc , +.BR cyber938xhwgc , +.BR hiqvideohwgc , +.BR mach64xxhwgc , +.BR mga2164whwgc , +.BR neomagichwgc , +.BR rgb524hwgc , +.BR s3hwgc , +.BR t2r4hwgc , +.BR tvp3020hwgc , +and +.BR tvp3026hwgc . +A value of +.B off +disables the cursor. +There is no software cursor. +.TP +.BI palettedepth " d" +Set the number of bits of precision used by the +VGA palette to +.IR d , +which must be either +.B 6 +or +.BR 8 . +.TP +.B blank +Blank the screen. +This consists of setting the hardware +color map to all black as well as, on some controllers, setting the +VGA hsync and vsync signals so as to turn off +VESA DPMS-compliant monitors. +The screen also blanks after 30 minutes of inactivity. +The screen can be unblanked by moving the mouse. +.TP +.BI blanktime " minutes" +Set the timeout before the +screen blanks; the default is 30 minutes. +If +.I minutes +is zero, blanking is disabled. +.TP +.BI hwaccel " mode" +Depending on whether +.I mode +is +.B on +or +.BR off , +enable or disable whether hardware acceleration +(currently for rectangle filling and moving) +used by the graphics engine. +The default setting is +.BR on . +.TP +.BI hwblank " mode" +Depending on whether +.I mode +is +.B on +or +.BR off , +enable or disable the use of DPMS blanking +(see +.B blank +above). +.TP +.BI linear " size align" +Use a linear screen aperture of size +.I size +aligned on an +.IR align -byte +boundary. +.TP +.B drawinit +Initialize the graphics hardware. +This must be sent after setting the +.BR type . +.PP +Reading +.B vgactl +returns the current settings, one per line. +.PP +Some VGA cards support overlay graphics. +Writing strings to +.B vgaovlctl +configures such cards. +The following are valid overlay control commands: +.TP +.BI openctl +opens the overlay device. +.TP +.BI configure " w h format" +allocates resources inside the driver to support an overlay area +of width +.I w +and height +.I h +pixels. Currently, the only supported +.I format +is +.B YUYV +packed. +In +.B YUYV +two pixels are encoded by their separate Y values +and their combined U and V values. +The size of the two pixels is 32 bits. +.TP +.BI enable " x y w h" +enables drawing data on the display through the overlay mode. The data +is drawn at position +.IR x , y +and has a width and height of +.IR w , h +respectively. +.TP +.BI closectl +terminates overlay control. +.PP +Overlay data can be written to +.BR vgaovl . +.SH EXAMPLES +The following disables hardware acceleration. +.IP +.EX +echo hwaccel off > /dev/vgactl +.EE +.SH SOURCE +.B /os/pc/devvga.c +.SH SEE ALSO +.IR arch (3) +....IR vga (8) +.SH BUGS +The hardware graphics cursor on the +.B et4000 +does not work in 2x8-bit mode. diff --git a/static/inferno/man3/vid.3 b/static/inferno/man3/vid.3 new file mode 100644 index 00000000..e21645e6 --- /dev/null +++ b/static/inferno/man3/vid.3 @@ -0,0 +1,64 @@ +.TH VID 3 MPC823 +.SH NAME +vid \- Motorola 823 video output +.SH SYNOPSIS +.B bind -b #v /dev +.PP +.B /dev/viddata +.br +.B /dev/vidctl +.br +.B /dev/vidcram +.SH DESCRIPTION +The +.I vid +device serves two +files giving basic access +to the on-chip video output of the Motorola 823. +It assumes a video hardware configuration exactly like that of the 823FADS +board, with an I²C interface to an off-chip ADV7176 NTSC/PAL converter +at I²C address 0x54. +.PP +The control device +.B vidctl +accepts the following commands: +.TP +.B on +Disable LCD panel (if present) and enable output from the video frame buffer. +.TP +.B off +Stop display from the video frame buffer and re-enable the LCD panel (if present). +.TP +.BI mode " m" +Set the video output format to +.IR m , +which is one of: +.BR ntsc , +.BR pal-i , +.B pal-m +or +.BR pal-n . +This command is only effective when video output is off. +When next switched on, the both the video controller RAM and +ADV7176 are reprogrammed to the new format. +.PP +Video data can be written to the video frame buffer +by writes of the +.B viddata +file. +The file offset selects the starting byte within the frame buffer. +Reads return the corresponding data from the frame buffer. +The application is responsible for formatting the data as the 823's video +encoder requires, for the selected video format. +.PP +The file +.B vidcram +gives read and write access to the contents of the +video control RAM. +The file offset addresses bytes in the RAM; values can be read from or +written to the RAM in groups of 4-byte big-endian words. +.SH SOURCE +.B /os/mpc/devvid.c +.SH BUGS +Square pixel mode cannot be used on the FADS board: +no suitable video clock source is available. diff --git a/static/inferno/man4/0intro.4 b/static/inferno/man4/0intro.4 new file mode 100644 index 00000000..fd36468b --- /dev/null +++ b/static/inferno/man4/0intro.4 @@ -0,0 +1,16 @@ +.TH INTRO 4 +.SH NAME +intro \- introduction to file servers +.SH DESCRIPTION +This section describes programs that serve 9P +(see +.IR intro (5)), +and can therefore +be mounted, generating a new part of the name space. +Some, such as +.IR dossrv , +thereby make the contents of a foreign file format visible directly +to Inferno applications; +others, such as +.IR acme , +provide their own services through operations on files in a name space. diff --git a/static/inferno/man4/9srvfs.4 b/static/inferno/man4/9srvfs.4 new file mode 100644 index 00000000..83c9dbe9 --- /dev/null +++ b/static/inferno/man4/9srvfs.4 @@ -0,0 +1,73 @@ +.TH 9SRVFS 4 "Plan 9" +.SH NAME +9srvfs \- add Inferno service to Plan 9 service registry +.SH SYNOPSIS +.B 9srvfs +[ +.BI -p " perm" +] +.I srvname +.I source +.SH DESCRIPTION +.I 9srvfs +is only usable (or indeed of interest) on Inferno hosted under Plan 9. +It uses +.IR srv9 (3) +to make an Inferno service +.I source +available to Plan 9 applications via the Plan 9 service registry. +.IR Srv9 (3) +must previously have been bound to +.B /srv +in the current name space, with +.B -c +to allow file creation (see +.IR bind (1)). +.PP +.I Source +may be either a command or the name of a directory. +If +.I source +is surrounded by braces +.RB ( { +and +.BR } ), +it is invoked as a +.IR sh (1) +command, and its standard input (sic) is posted as Plan 9 service +.BI /srv/ srvname +with permissions +.I perm +(default: mode 600). +Otherwise, +.I source +is taken to be a directory that is the root of a name space to export to Plan 9, +an exporting file service is started (see +.IR sys-export (2)), +and again posted as Plan 9 service +.BI /srv/ srvname, +and the export terminates when the Plan 9 service file +has been removed and the last mounted instance goes away in Plan 9. +.SH EXAMPLE +Make the current Inferno environment variables available to Plan 9 applications: +.IP +.EX +bind -c '#₪' /srv # if not already done +9srvfs infenv /env +.EE +.PP +The name space can then be mounted in Plan 9, +allowing variables to be read and written in that Inferno environment: +.IP +.EX +mount -c /srv/infenv /n/ftp +ls /n/ftp +cat /n/ftp/emuargs +echo masked man >/n/ftp/zorro +.EE +.SH SOURCE +.B /appl/cmd/9srvfs.b +.SH SEE ALSO +.IR bind (1), +.IR srv9 (3), +.IR import (4) diff --git a/static/inferno/man4/INDEX.4 b/static/inferno/man4/INDEX.4 new file mode 100644 index 00000000..eacf968a --- /dev/null +++ b/static/inferno/man4/INDEX.4 @@ -0,0 +1,34 @@ +intro 0intro +9srvfs 9srvfs +acme acme +archfs archfs +dbfs dbfs +rawdbfs dbfs +9660srv dossrv +dossrv dossrv +export export +factotum factotum +feedkey factotum +ftpfs ftpfs +cpu grid-cpu +grid grid-cpu +grid-cpu grid-cpu +9export import +import import +iostats iostats +keyfs keyfs +keysrv keysrv +kfs kfs +lockfs lockfs +logfile logfile +memfs memfs +mntgen mntgen +namespace namespace +palmsrv palmsrv +ramfile ramfile +registry registry +regquery registry +spree spree +tarfs tarfs +trfs trfs +vacfs vacfs diff --git a/static/inferno/man4/Makefile b/static/inferno/man4/Makefile new file mode 100644 index 00000000..38781aad --- /dev/null +++ b/static/inferno/man4/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.4) + +include ../../mandoc.mk diff --git a/static/inferno/man4/acme.4 b/static/inferno/man4/acme.4 new file mode 100644 index 00000000..20b39746 --- /dev/null +++ b/static/inferno/man4/acme.4 @@ -0,0 +1,408 @@ +.TH ACME 4 +.SH NAME +acme \- control files for text windows +.SH SYNOPSIS +.B acme +[ +.B -f +.I varfont +] [ +.B -F +.I fixfont +] +[ +.I file +\&... ] +.SH DESCRIPTION +The text window system +.IR acme (1) +serves a variety of files for reading, writing, and controlling +windows. +Some of them are virtual versions of system files for dealing +with the virtual console; others control operations +of +.I acme +itself. +When a command is run under +.IR acme , +a directory holding these files is mounted on +.B /mnt/acme +(also bound to +.BR /chan ) +and also +.BR /dev/acme ; +the files mentioned here +appear in both these directories. +.PP +Some of these files supply virtual versions of services available from the underlying +environment, in particular the character terminal files +.IR cons (3). +Other files are unique to +.IR acme . +.TP +.B acme +is a subdirectory used by +.B win +(see +.IR acme (1)) +as a mount point for the +.I acme +files associated with the window in which +.B win +is running. +It has no specific function under +.I acme +itself. +.TP +.B cons +is the standard and diagnostic output file for all commands +run under +.IR acme . +(Input for commands is redirected to +.BR /dev/null .) +Text written to +.B cons +appears in a window labelled +.IB dir /+Errors\f1, +where +.I dir +is the directory in which the command +was run. +The window is created if necessary, but not until text is actually written. +.TP +.B consctl +Is an empty unwritable file present only for compatibility. +.TP +.B index +holds a sequence of lines of text, one per window. Each line has 5 decimal numbers, +each formatted in 11 characters plus a blank\(emthe window ID; +number of characters (runes) in the tag; +number of characters in the body; +a 1 if the window is a directory, 0 otherwise; +and a 1 if the window is modified, 0 +otherwise\(emfollowed by the tag up to a newline if present. +Thus at character position 5×12 starts the name of the window. +If a file has multiple zeroxed windows open, +only the most recently used will appear in the +.B index +file. +.TP +.B label +is an empty file, writable without effect, present only for compatibility. +.TP +.B new +A directory analogous to the numbered directories +.RI ( q.v. ). +Accessing any +file in +.B new +creates a new window. Thus to cause text to appear in a new window, +write it to +.BR /dev/new/body . +For more control, open +.BR /dev/new/ctl +and use the interface described below. +.LP +.PP +Each +.I acme +window has associated a directory numbered by its ID. +Window IDs are chosen sequentially and may be discovered by the +.B ID +command, by +reading the +.B ctl +file, or +indirectly through the +.B index +file. The files in the numbered directories are as follows. +.TP +.B addr +may be written with any textual address (line number, regular expression, etc.), +in the format understood by button 3 but without the initial colon, including compound addresses, +to set the address for text accessed through the +.B data +file. +When read, it returns the value of the address that would next be read +or written through the +.B data +file, in the format +.BI # m ,# n +where +.I m +and +.I n +are character (not byte) offsets. If +.I m +and +.I n +are identical, the format is just +.BI # m\f1. +Thus a regular expression may be evaluated by writing it to +.B addr +and reading it back. +The +.B addr +address has no effect on the user's selection of text. +.TP +.B body +holds contents of the window body. It may be read at any byte offset. +Text written to +.B body +is always appended; the file offset is ignored. +.TP +.B ctl +may be read to recover the five numbers as held in the +.B index +file, described above, plus three more fields: the width of the +window in pixels, the name of the font used in the window, +and the width of a tab character in pixels. +Text messages may be written to +.B ctl +to affect the window. +Each message is terminated by a newline and multiple +messages may be sent in a single write. +.RS .5i +.TF "dumpdir\ directory" +.TP +.B addr=dot +Set the +.B addr +address to that of the user's selected text in the window. +.TP +.B clean +Mark the window clean as though it has just been written. +.TP +.B cleartag +Remove all text in the tag after the vertical bar. +.TP +.B del +Equivalent to the +.B Del +interactive command. +.TP +.B delete +Equivalent to the +.B Delete +interactive command. +.TP +.B dot=addr +Set the user's selected text in the window to the text addressed by the +.B addr +address. +.TP +.BI dump " command +Set the command string to recreate the window from a dump file. +.TP +.BI dumpdir " directory +Set the directory in which to run the command to recreate the window from a dump file. +.TP +.B get +Equivalent to the +.B Get +interactive command with no arguments; accepts no arguments. +.TP +.B limit=addr +When the +.B ctl +file is first opened, regular expression context searches in +.B addr +addresses examine the whole file; this message restricts subsequent +searches to the current +.B addr +address. +.TP +.B mark +Cancel +.BR nomark , +returning the window to the usual state wherein each modification to the +body must be undone individually. +.TP +.BI name " name +Set the name of the window to +.IR name . +.TP +.B nomark +Turn off automatic `marking' of changes, so a set of related changes +may be undone in a single +.B Undo +interactive command. +.TP +.B noscroll +Turn off automatic `scrolling' of the window to show text written to the body. +.TP +.B put +Equivalent to the +.B Put +interactive command with no arguments; accepts no arguments. +.TP +.B scroll +Cancel a +.B noscroll +message, returning the window to the default state wherein each write +to the +.B body +file causes the window to `scroll' to display the new text. +.TP +.B show +Guarantee at least some of the selected text is visible on the display. +.TP +.B noecho +Stop echoing characters sent to the window but indicate their presence by +printing an asterisk. +.TP +.B echo +Turns +.BR noecho +off. +.RE +.PD +.TP +.B data +is used in conjunction with +.B addr +for random access to the contents of the body. +The file offset is ignored when writing the +.B body +file, but the character (not byte) offset may be set with +.B addr +and then read from the +.B data +file. +Text, which must contain only whole characters (no `partial runes'), +written to +.B data +replaces the characters addressed by the +.B addr +file and sets the address to the null string at the end of the written text. +A read from +.B data +returns as many whole characters as the read count will permit starting +at the beginning of the +.B addr +address (the end of the address has no effect) +and sets the address to the null string at the end of the returned +characters. +.TP +.B event +When a window's +.B event +file is open, changes to the window occur as always but the +actions are also reported as +messages to the reader of the file. Also, user actions with buttons 2 and 3 +(other than chorded +.B Cut +and +.BR Paste , +which behave normally) have no immediate effect on the window; +it is expected that the program reading the +.B event +file will interpret them. +The messages have a fixed format: +a character indicating the origin or cause of the action, +a character indicating the type of the action, +four free-format blank-terminated decimal numbers, +optional text, and a newline. +The first and second numbers are the character addresses of the action, +the third is a flag, +and the final is a count of the characters in the optional text, which +may itself contain newlines. +The origin characters are +.B E +for writes to the +.B body +or +.B tag +file, +.B F +for actions through the window's other files, +.B K +for the keyboard, and +.B M +for the mouse. +The type characters are +.B D +for text deleted from the body, +.B d +for text deleted from the tag, +.B I +for text inserted to the body, +.B i +for text inserted to the tag, +.B L +for a button 3 action in the body, +.B l +for a button 3 action in the tag, +.B X +for a button 2 action in the body, and +.B x +for a button 2 action in the tag. +.IP +If the relevant text has less than 256 characters, it is included in the message; +otherwise it is elided, the fourth number is 0, and the program must read +it from the +.B data +file if needed. No text is sent on a +.B D +or +.B d +message. +.IP +For +.BR D , +.BR d , +.BR I , +and +.BR i +the flag is always zero. +For +.BR X +and +.BR x , +the flag is a bitwise OR (reported decimally) of the following: +1 if the text indicated is recognized as an +.I acme +built-in command; +2 if the text indicated is a null string that has a non-null expansion; +if so, another complete message will follow describing the expansion +exactly as if it had been indicated explicitly (its flag will always be 0); +8 if the command has an extra (chorded) argument; if so, +two more complete messages will follow reporting the argument (with +all numbers 0 except the character count) and where it originated, in the form of +a fully-qualified button 3 style address. +.IP +For +.B L +and +.BR l , +the flag is the bitwise OR of the following: +1 if +.I acme +can interpret the action without loading a new file; +2 if a second (post-expansion) message follows, analogous to that with +.B X +messages; +4 if the text is a file or window name (perhaps with address) rather than +plain literal text. +.IP +For messages with the 1 bit on in the flag, +writing the message back to the +.B event +file, but with the flag, count, and text omitted, +will cause the action to be applied to the file exactly as it would +have been if the +.B event +file had not been open. +.TP +.B tag +holds contents of the window tag. It may be read at any byte offset. +Text written to +.B tag +is always appended; the file offset is ignored. +.SH SOURCE +.B /appl/acme +.br +.B /appl/acme/acme +.SH SEE ALSO +.IR acme (1), +.IR cons (3) diff --git a/static/inferno/man4/archfs.4 b/static/inferno/man4/archfs.4 new file mode 100644 index 00000000..308d95dc --- /dev/null +++ b/static/inferno/man4/archfs.4 @@ -0,0 +1,64 @@ +.TH ARCHFS 4 +.SH NAME +archfs \- mount a mkfs archive +.SH SYNOPSIS +.B archfs +[ +.B -ab +] [ +.B -s +] [ +.B -m mountpoint +] +.I archfile +[ +.I prefix ... +] +.SH DESCRIPTION +.I Archfs +mounts at +.IR mountpoint +(default: +.BR /mnt/arch ), +a read-only file system representing the contents of +.IR archfile , +which is a file of the format produced by +.IR mkfs (8) +with the +.B -a +option. +Typically the archive file will have been created by +.IR mkfs (8) +or +.IR create (8). +Any +.I prefix +names limit the file system's contents to files and directories in the +archive whose path names start with one of the prefixes. +.PP +The +.B -a +and +.B -b +options cause the archive contents to be mounted after or before the +mount point's existing contents, in a union dirctory (see +.IR bind (1) +for details). +Normally the archive contents replace the contents of +.IR mountpoint . +The +.B -s +option causes the rest of the archive to be skipped once a file is found in the archive which +does not start with any of the given prefixes. This is useful an archive is known to start +with a description of its contents (eg, the +.B /wrap +directory provided by +.IR create (8)), +and that is all that is needed under +.IR mountpoint . +.SH SOURCE +.B /appl/cmd/archfs.b +.SH SEE ALSO +.IR tarfs (4), +.IR mkfs (8), +.IR create (8) diff --git a/static/inferno/man4/dbfs.4 b/static/inferno/man4/dbfs.4 new file mode 100644 index 00000000..e7d8afc2 --- /dev/null +++ b/static/inferno/man4/dbfs.4 @@ -0,0 +1,126 @@ +.TH DBFS 4 +.SH NAME +dbfs, rawdbfs \- simple database file system +.SH SYNOPSIS +.B dbfs +[ +.B -abcer +] +.I file mountpoint +.br +.B rawdbfs +[ +.B -abcelx +] +[ +.B -u +.I cmd +] +.I file mountpoint +.PP +.IB mountpoint /new +.br +.IB mountpoint /0 +.br +.IB mountpoint /1 +.br +.IB mountpoint /\fR...\fP +.SH DESCRIPTION +.B Dbfs +and +.B rawdbfs +both expose a simple, record-based filesystem stored +in +.IR file . +The +.BR -a , +.B -b +and +.B -c +options have the same meaning as the options accepted by +.IR bind (1). +If the +.B -e +option is given, then +.I file +will be created if it does not already exist. +The filesystem provided by both +.B dbfs +and +.B rawdbfs +is substantially the same: +when started, +.I mountpoint +is populated with numbered files, one for each record found in +.IR file . +A read of one of these files yields the data in the record; +a write stores data in the record. A new record can be created +by opening the +.B new +file; writes to this file write to the new record. The name +of the new file can be discovered by using +.I fstat +in +.IR sys-stat (2). +Records can be removed by removing the appropriate +record file. +.PP +.B Rawdbfs +has additional features for database use: +.BR -x +causes two additional files ("index" and "stats") to appear +in the mounted directory, +.BR -l +specifies that a record can only be opened for writing +by one process at once, and +.BR -u +.I cmd +specifies a +.IR sh (1) +command to be run whenever the contents of the database +change. +The index file is provided as a convenience for database +client applications. Once initialised (by writing an integer value to it), +subsequent reads return an ever-increasing integer value. +Reading the stats file returns counts of database +read, write, create and delete operations as a string of four +integers. +.PP +.B Dbfs +and +.B rawdbfs +differ in the way that they store their data. +.B Dbfs +stores its records in +.I file +in a simple text format: the end of a record is indicated +by an empty line. The file is completely rewritten every time +a record is written. Storing records containing blank lines +will lead to confusion when the database is re-read. +.B Rawdbfs +can store arbitrary data, but the format of the data +storage is known only to itself. It does not rewrite +the whole file on every record change, so can be more +suitable for flash-based storage, where it is important +to minimise the number of writes. +.PP +Note that the record numbers always get their initial +numbering from the order of the records in +.IR file . +You cannot assume that the filename given to a record +will remain the same between runs of +.BR dbfs . +.SH SOURCE +.B /appl/cmd/dbfs.b +.br +.B /appl/cmd/rawdbfs.b +.SH SEE ALSO +.IR memfs (4), +.IR ramfile (4), +.IR calendar (1) +.SH BUGS +Write offsets are ignored, so the maximum amount of data +that can be stored in a record is ATOMICIO bytes (i.e. 8K). +.PP +There is no way to compact a file maintained by +.BR dbfs . diff --git a/static/inferno/man4/dossrv.4 b/static/inferno/man4/dossrv.4 new file mode 100644 index 00000000..14968a01 --- /dev/null +++ b/static/inferno/man4/dossrv.4 @@ -0,0 +1,76 @@ +.TH DOSSRV 4 +.SH NAME +dossrv, 9660srv \- DOS/Windows and ISO 9660 file systems +.SH SYNOPSIS +.B dossrv +.RB [ \-v ] +.RB [ \-s ] +.RB [ \-F ] +.RB [ \-c ] +[ +.BI -f " devicefile" +] +[ +.BI -m " mountpoint" +] +[ +.BI -S " sectors/track" +] +.PP +.B 9660srv +.RB [ \-rab ] +.I cdfile +.I dir +.SH DESCRIPTION +.I Dossrv +makes the contents of a DOS/Windows file system visible in the Inferno name space. +The options are: +.TP +.B -v +print a debugging trace, including 9P messages, on standard error +.TP +.B -F +display FAT information +.TP +.B -c +display cluster data and I/O activity +.TP +.B -s +standard ouput is connected to a client; serve that +.TP +.BI -f " devicefile" +the DOS/Windows file system image; defaults to +.BR /dev/hd0disk . +.TP +.BI -m " mountpoint" +The directory where the contents of the file system should appear; defaults to +.BR /n/dos . +.TP +.BI -S " sectors/track" +The number of sectors per track. The default is 9. +.PP +.I 9660srv +performs a similar function for files (notably CDROMs) in ISO9660 format, +including the Rock Ridge extension and its Plan 9 variant. +It makes the contents of +.I cdfile +visible in the name space at +.IR dir . +The options are those of +.IR bind (1): +.BR \-r , +to replace the contents of +.IR dir ; +.BR \-a , +to make a union directory with the CD contents after the contents of +.IR dir ; +.BR \-b , +to make a union directory with the CD contents before the contents of +.IR dir . +.SH SOURCE +.B /appl/cmd/dossrv.b +.br +.B /appl/cmd/9660srv.b +.SH BUGS +.I Dossrv +cannot handle all the FAT32 extensions. diff --git a/static/inferno/man4/export.4 b/static/inferno/man4/export.4 new file mode 100644 index 00000000..ea2b378c --- /dev/null +++ b/static/inferno/man4/export.4 @@ -0,0 +1,56 @@ +.TH EXPORT 4 +.SH NAME +export \- export name space on a connection +.SH SYNOPSIS +.B export +[ +.B \-a +] +.I dir +[ +.I file +] +.SH DESCRIPTION +.I Export +calls +.IR sys-export (2) +to serve the name space rooted at +.I dir +over a connection to a 9P (Styx) client. +.I Export +opens the connection on the given +.IR file , +or uses the standard input by default. +It returns when the client closes the connection. +If the +.B \-a +option is given, however, +.I export +starts an Inferno kernel process +to serve the name space and returns immediately. +.I Export +serves the current name space without forking it; changes made to it +will be visible to clients. +.PP +.I Export +starts serving 9P immediately; it assumes that the connection +has been authenticated if required. +.I Export +is typically called via +.IR listen (1), +which can authenticate the connection. +.SH EXAMPLE +Start a background process to serve the name space on the serial port. +.IP +.B "export / /dev/eia0 &" +.PP +Although useful when bootstrapping a system, this is unsafe +unless a transport protocol is run on the connection. +.SH SOURCE +.B /appl/cmd/export.b +.SH SEE ALSO +.IR cpu (1), +.IR listen (1), +.IR dial (2), +.IR sys-export (2), +.IR intro (5) diff --git a/static/inferno/man4/factotum.4 b/static/inferno/man4/factotum.4 new file mode 100644 index 00000000..867206b6 --- /dev/null +++ b/static/inferno/man4/factotum.4 @@ -0,0 +1,717 @@ +.TH FACTOTUM 4 +.SH NAME +factotum, feedkey \- authentication agent +.SH SYNOPSIS +.B auth/factotum +[ +.B -d +.\" ] [ +.\" .B -a authaddr +] [ +.B -s +.I srvname +] [ +.B -m +.I mtpt +] +.B ... +.IB attribute ? +.B ... +.PP +.B auth/feedkey +.SH DESCRIPTION +.I Factotum +is a user-level file system that +acts as the authentication agent for a user. +It does so by managing a set of +.IR keys . +A key is a collection of information used to authenticate a particular action. +Stored as a list of +.IB attribute = value +pairs, a key typically contains a user, an authentication domain, a protocol, and +some secret data. +.PP +.I Factotum +serves +.IR srv (3) +directory +.BR #sfactotum , +which it binds to +.BR /mnt/factotum . +It serves the following files: +.TF needkey +.TP +.B rpc +each open represents a new private channel to +.I factotum +.TP +.B proto +when read lists the protocols available +.\" .TP +.\" .B confirm +.\" for confiming the use of key +.TP +.B needkey +allows external programs to control the addition of new keys +.TP +.B log +a log of actions +.TP +.B ctl +for maintaining keys; when read, it returns a list of keys. +For secret attributes, only the attribute name follow by a +.L ? +is returned. +.PD +.PP +In any authentication, the caller typically acts as a client +and the callee as a server. The server determines +the authentication domain, sometimes after a negotiation with +the client. Authentication always requires the client to +prove its identity to the server. Under some protocols, including the one normally +used by Inferno, the +authentication is mutual. +Proof is accomplished using secret information kept by +.I factotum +in conjunction with a cryptographic protocol. +.PP +.I Factotum +can act in the role of client for any process possessing the +same user id as it. +.\" For select protocols such as +.\" .B p9sk1 +.\" it can also act as a client for other processes provided +.\" its user id may speak for the other process' user id (see +.\" .IR authsrv (6)). +.I Factotum +can act in the role of server for any process. +.PP +.IR Factotum 's +structure is independent of +any particular authentication protocol. +.I Factotum +currently supports the following protocols: +.TF mschap +.TP +.B infauth +Inferno's authentication protocol +.IR auth (6) +.TP +.B p9any +a metaprotocol used to negotiate which actual protocol to use. +.TP +.B p9sk1 +a Plan 9 shared key protocol described in +.I authsrv +in section 6 of Plan 9's Programmer's Manual +.\" .TP +.\" .B p9sk2 +.\" a variant of +.\" .B p9sk1 +.\" described in +.\" .IR authsrv (6)'s +.\" ``Remote Execution'' section. +.\" .TP +.\" .B p9cr +.\" a Plan 9 protocol that can use either +.\" .B p9sk1 +.\" keys or SecureID tokens. +.\" .TP +.\" .B apop +.\" the challenge/response protocol used by POP3 mail servers. +.\" .TP +.\" .B cram +.\" the challenge/response protocol also used by POP3 mail servers. +.\" .TP +.\" .B chap +.\" the challenge/response protocols used by PPP and PPTP. +.\" .TP +.\" .B mschap +.\" a proprietary Microsoft protocol also used by PPP and PPTP. +.\" .TP +.\" .B rsa +.\" RSA public key decryption, used by SSH and TLS. +.TP +.B pass +passwords in the clear. +.\" .TP +.\" .B vnc +.\" .IR vnc (1)'s +.\" challenge/response. +.\" .TP +.\" .B wep +.\" WEP passwords for wireless ethernet cards. +.PD +.PP +The options are: +.\".TP +.\" .B \-a +.\" supplies the address of the authentication server to use. +.\" Without this option, it will attempt to find an authentication server by +.\" querying the connection server +.\" .IR cs (8), +.\" the file +.\" .IB net /ndb , +.\" and finally the network database +.\" .IR ndb (6). +.TP +.B \-m +specifies the mount point to use, by default +.BR /mnt/factotum . +.TP +.B \-s +specifies the service name to use, +by default it is +.BR factotum . +.TP +.B \-d +turns on debugging, written to standard error. +.PD +.PP +.I Feedkey +is a +.IR wm (1) +user interface for +.\" confirming key usage and +entering new keys. It puts its window in the +.IR wm (1) +toolbar, +and waits, reading requests from +.\" .B confirm +.\" and +.BR needkey . +For each request, it pops open a window containing suitable prompts and waits for +user input. +See the sections on key confirmation and key prompting below. +.SS "Key Tuples +.PP +A +.I "key tuple +is a space-delimited list of +.IB attribute = value +pairs. Values containing spaces must be quoted following +the conventions of +.IR sh (1). +An attribute whose name begins with an exclamation point +.RB ( ! ) +is `secret' and +does not appear when reading the +.B ctl +file. +See the `Protocols' section below. +Here are some examples: +.PP +.EX + proto=p9sk1 dom=avayalabs.com user=presotto !password=lucent + proto=pass user=tb !password=does.it.matter +.EE +.PP +The required attributes depend on the authentication protocol. +The `Protocols' section below describes the attributes specific +to each supported protocol. +.PP +All keys can have additional attributes that act either as comments +or as selectors to distinguish them in the +.IR factotum (2) +and other +library calls. +.PP +The factotum owner can use any key stored by factotum. +Any key may have one or more +.B owner +attributes listing the users who can use the key +as though they were the owner. +For example, the TLS and SSH host keys on a server +often have an attribute +.B owner=* +to allow any user (and in particular, +.L none ) +to run the TLS or SSH server-side protocol. +.PP +Any key may have a +.B role +attribute for restricting how it can be used. +If this attribute is missing, the key can be used in any role. +The possible values are: +.TP +.B client +for authenticating outbound calls +.TP +.B server +for authenticating inbound calls +.TP +.B speaksfor +for authenticating processes whose +user id does not match +.IR factotum 's. +.PP +If a key has a +.B disabled +attribute (with any value), the key is not used +during any protocols. +.\" Factotum automatically marks +.\" keys with +.\" .B disabled=by.factotum +.\" when they fail during certain authentication +.\" protocols (in particular, the Plan 9 ones). +.PD +.\" .PP +.\" Whenever +.\" .I factotum +.\" runs as a server, it must have a +.\" .B p9sk1 +.\" key in order to communicate with the authentication +.\" server for validating passwords and challenge/responses of +.\" other users. +.SS "Key Templates +Key templates are used by routines that interface to +.IR factotum , +such as those in +.IR factotum (2), +to specify which key and protocol to use for an authentication. +Like a key tuple, a key template is also a list of +.IB attribute = value +pairs. +It must specify at least the protocol and enough +other attributes to uniquely identify a key, or set of keys, to use. +The keys chosen are those that match all the attributes specified +in the template. The possible attribute/value formats are: +.TP 1i +.IB attr = val +The attribute +.I attr +must exist in the key and its value must exactly +match +.I val +.TP 1i +.IB attr ? +The attribute +.I attr +must exist in the key but its value doesn't matter. +.TP 1i +.I attr +The attribute +.I attr +must exist in the key with a null value +.PD +.PP +Key templates are also used by +.I factotum +to request a key either via +an RPC error or via the +.B needkey +interface. +The possible attribute/value formats are: +.TP 1i +.IB attr = val +This pair must remain unchanged +.TP 1i +.IB attr ? +This attribute needs a value +.TP 1i +.I attr +The pair must remain unchanged +.PD +.SS "Control and Key Management +.PP +A number of messages can be written to the control file. +The messages are: +.TP +.B "key \fIattribute-value-list\fP +add a new key. This will replace any old key whose +public attributes match (ie, non +.B ! +attributes). +.TP +.B "delkey \fIattribute-value-list\fP +delete a key whose attributes match those given. +.TP +.B debug +toggle debugging on and off, i.e., the debugging also +turned on by the +.B \-d +option. +.\" .PP +.\" By default when factotum starts it looks for a +.\" .IR secstore (1) +.\" account on $auth for the user and, if one exists, +.\" prompts for a secstore password in order to fetch +.\" the file +.\" .IR factotum , +.\" which should contain control file commands. +.\" An example would be +.\" .EX +.\" key dom=x.com proto=p9sk1 user=boyd !hex=26E522ADE2BBB2A229 +.\" key proto=rsa service=ssh size=1024 ek=3B !dk=... +.\" .EE +.\" where the first line sets a password for +.\" challenge/response authentication, strong against dictionary +.\" attack by being a long random string, and the second line +.\" sets a public/private keypair for ssh authentication, +.\" generated by +.\" .B ssh_genkey +.\" (see +.\" .IR ssh (1)). +.\" .PD +.\" .SS "Confirming key use +.\" .PP +.\" The +.\" .B confirm +.\" file provides a connection from +.\" .I factotum +.\" to a confirmation server, normally the program +.\" .IR auth/fgui . +.\" Whenever a key with the +.\" .B confirm +.\" attribute is used, +.\" .I factotum +.\" requires confirmation of its use. If no process has +.\" .B confirm +.\" opened, use of the key will be denied. +.\" However, if the file is opened a request can be read from it +.\" with the following format: +.\" .PP +.\" .B confirm +.\" .BI tag= tagno +.\" .I " +.\" .PP +.\" The reply, written back to +.\" .BR confirm , +.\" consists of string: +.\" .PP +.\" .BI tag= tagno +.\" .BI answer= xxx +.\" .PP +.\" If +.\" .I xxx +.\" is the string +.\" .B yes +.\" then the use is confirmed and the authentication will proceed. +.\" Otherwise, it fails. +.\" .PP +.\" .B Confirm +.\" is exclusive open and can only be opened by a process with +.\" the same user id as +.\" .IR factotum . +.SS "Prompting for keys +.PP +The +.B needkey +file provides a connection from +.I factotum +to a key server, normally the program +.IR auth/fgui . +Whenever +.I factotum +needs a new key, it first checks to see if +.B needkey +is opened. If it isn't, it returns a error to its client. +If the file is opened a request can be read from it +with the following format: +.PP +.B needkey +.BI tag= tagno +.I " +.PP +It is up to the reader to then query the user for any missing fields, +write the key tuple into the +.B ctl +file, and then reply by writing into the +.B needkey +file the string: +.PP +.BI tag= tagno +.PP +.B Needkey +is exclusive open and can only be opened by a process with +the same user id as +.IR factotum . +.SS "The RPC Protocol +Authentication is performed by +.IP 1) +opening +.BR rpc +.IP 2) +setting up the protocol and key to be used (see the +.B start +RPC below), +.IP 3) +shuttling messages back and forth between +.IR factotum +and the other party (see the +.B read +and +.B write +RPC's) until done +.IP 4) +if successful, reading back an +.I AuthInfo +structure (see +.IR factotum (2)). +.PP +The RPC protocol is normally embodied by one of the +routines in +.IR factotum (2). +We describe it here should anyone want to extend +that module. +.PP +An RPC consists of writing a request message to +.B rpc +followed by reading a reply message back. +RPC's are strictly ordered; requests and replies of +different RPC's cannot be interleaved. +Messages consist of a verb, a single space, and data. +The data format depends on the verb. The request verbs are: +.TP +.B "start \fIattribute-value-list\fP +start a new authentication. +.I Attribute-value-pair-list +must include a +.B proto +attribute, a +.B role +attribute with value +.B client +or +.BR server , +and enough other attibutes to uniquely identify a key to use. +A +.B start +RPC is required before any others. The possible replies are: +.RS +.TP +.B ok +start succeeded. +.TP +.B "error \fIstring\fP +where +.I string +is the reason. +.RE +.PD +.TP +.B read +get data from +.I factotum +to send to the other party. The possible replies are: +.RS +.TP +.B ok +read succeeded, this is zero length message. +.TP +.B "ok \fIdata\fP +read succeeded, the data follows the space and is +unformatted. +.TP +.B "done +authentication has succeeded, no further RPC's are +necessary +.TP +.B "done haveai +authentication has succeeded, an +.B AuthInfo +structure (see +.IR factotum (2)) +can be retrieved with an +.B authinfo +RPC +.TP +.B "phase \fIstring\fP +its not your turn to read, get some data from +the other party and return it with a write RPC. +.TP +.B "error \fIstring\fP +authentication failed, +.I string +is the reason. +.TP +.B "protocol not started +a +.B start +RPC needs to precede reads and writes +.TP +.B "needkey \fIattribute-value-list\fP +a key matching the argument is needed. +This will not appear if the +.B needkey +file is in use. +Otherwise, a suitable key can be written to +.B ctl +and after that, +authentication may proceed (ie, the read restarted). +.PD +.RE +.TP +.B "write \fIdata\fP +send data from the other party to +.IR factotum . +The possible replies are: +.RS +.TP +.B "ok +the write succeeded +.TP +.B "needkey \fIattribute-value-list\fP +see above +.TP +.B "toosmall \fIn\fP +the write is too short, get more data from the +other party and retry the write. +.I n +specifies the maximun total number of bytes. +.TP +.B "phase \fIstring\fP +its not your turn to write, get some data from +.I factotum +first. +.TP +.B "done +see above +.TP +.B "done haveai +see above +.RE +.TP +.B authinfo +retrieve the AuthInfo structure. +The possible replies are: +.RS +.TP +.B "ok \fIdata\fP +.I data +is a marshaled form of the AuthInfo structure. +.TP +.B "error \fIstring\fP +where +.I string +is the reason for the error. +.PD +.RE +.TP +.B attr +retrieve the attributes used in the +.B start +RPC. +The possible replies are: +.RS +.TP +.B "ok \fIattribute-value-list\fP +.TP +.B "error \fIstring\fP +where +.I string +is the reason for the error. +.PD +.RE +.SS Protocols +.I Factotum +can support many authentication protocols, each implemented by a separate +module in the directory +.BR /dis/auth/proto . +Currently only a few are implemented in Inferno: +.PP +.B Infauth +is the Inferno public-key authentication protocol described by +.IR auth (6). +It requires a key with +.BR proto = infauth , +and a +.B !authinfo +attribute providing Inferno authentication data as an S-expression (see +.IR sexprs (6)). +The S-expression has five string elements: +the signer's public key, the certificate for the user's public key, +the user's secret key, and the values for parameters +.I alpha +and +.IR p , +selected by the signer when the key was generated. +The keys and certificates are represented as strings of the form produced by +.IR keyring-certtostr (2); +the parameter values are represented as binary in the form produced by +.B IPint.iptobytes +(see +.IR keyring-ipint (2)). +Normally +.B infauth +checks that the other party's key was signed by the signer in the +.B !authinfo +data, but +if the key has the attribute +.B anysigner +with non-zero integer value, +.B infauth +will accept keys signed by any signer. +The actual signer can be determined by inspecting the data +returned by the +.B authinfo +request; +the option is intended for use by services that support calls from many domains, +each with its own signer. +.PP +.BR P9sk1 +is the shared-secret protocol used to authenticate to various Plan 9 services. +It requires a key with +.BR proto = p9sk1 , +a +.B dom +attribute identifying the authentication domain, a +.B user +name valid in that domain, and either a +.B !password +or +.B !hex +attribute specifying the password or hexadecimal secret +to be used. +.B P9sk1 +normally is invoked by Plan 9's general authentication protocol, +.BR p9any , +which is supported by Inferno's +.IR factotum . +.PP +.B Pass +requires a key with +.B proto=pass +in addition to +.B user +and +.B !password +attributes. +.\" .PP +.\" .B Rsa +.\" requires a key with +.\" .B proto=rsa +.\" in addition to all the hex attributes defining an RSA key: +.\" .BR ek , +.\" .BR n , +.\" .BR !p , +.\" .BR !q , +.\" .BR !kp , +.\" .BR !kq , +.\" .BR !c2 , +.\" and +.\" .BR !dk . +.\" By convention, programs using the RSA protocol also require a +.\" .B service +.\" attribute set to +.\" .BR ssh , +.\" .BR sshserve , +.\" or +.\" .BR tls . +.\" .PP +.\" .B Wep +.\" requires a +.\" .BR key1 , +.\" .BR key2 , +.\" or +.\" .BR key3 +.\" set to the password to be used. +.\" Starting the protocol causes +.\" .I factotum +.\" to configure the wireless ethernet card +.\" .B #l/ether0 +.\" for WEP encryption with the given password. +.SH SOURCE +.B /appl/cmd/auth/factotum +.SH SEE ALSO +.IR factotum (2) diff --git a/static/inferno/man4/ftpfs.4 b/static/inferno/man4/ftpfs.4 new file mode 100644 index 00000000..6857366f --- /dev/null +++ b/static/inferno/man4/ftpfs.4 @@ -0,0 +1,117 @@ +.TH FTPFS 4 +.SH NAME +ftpfs \- file transfer protocol (FTP) file server +.SH SYNOPSIS +.B ftpfs +[ +.B -/dpq +] [ +.BI -m " mountpoint" +] [ +.BI -a " password" +] +.I ftphost +.SH DESCRIPTION +.I Ftpfs +connects to +.I ftphost +using the Internet's File Transfer Protocol, +and makes the remote files +visible at +.I mountpoint +(default: +.BR /n/ftp ) +in the current name space, +for access by ordinary Inferno file operations. +In other words, it is a protocol translator between FTP and 9P. +The connection is shut down by unmounting the mount point; +see +.IR bind (1). +The +.I ftphost +can be any address acceptable to +.IR cs (8); +the default network is +.BR tcp , +and the default service is +.B ftp +(port 21). +.PP +.I Ftpfs +will prompt for a user name and password as +.I ftphost +demands. +If the FTP host supports `anonymous FTP' (ie, guest access), +it will accept the user name +.L anonymous +and a conventional password (notionally the user's e-mail address). +Given the +.B -a +option, +.I ftpfs +automatically logs in as +.L anonymous +with the +.I password +supplied, +avoiding prompting. +.PP +By default, +.I ftpfs +uses a `passive' connection for file transfer: the remote system gives the local +system a new address to call to fetch the data. +This often works best for local systems behind firewalls that block incoming calls +to arbitrary ports, +but can fail for instance if the remote system does not support passive mode, +or is itself behind such a firewall. +The +.B \-p +option forces `active' connection: the local system gives the remote machine +an address on which to call it back to transfer the data. +.PP +Other options are: +.TP +.B \-/ +Mount the remote machine's root directory on +.IR mountpoint , +not the user's home directory (which is used by default). +.TP +.B \-q +Suppress the printing of chatter (`informational messages') from +the remote server. +.TP +.B \-d +Display all FTP protocol transactions to allow a failure to connect to be debugged. +.\" -/? +.PP +.I Ftpfs +keeps a limited local cache of remote files and directories. +The cache is kept consistent with file and directory operations by the local +user through the current connection, but not with changes made by others on the remote site. +Cached entries for a given directory can be flushed explicitly by +accessing the name +.B .flush.ftpfs +in that directory. +.SH EXAMPLE +Mount a remote machine and copy files from there to here. +.IP +.EX +mkdir here +ftpfs -a 'bloggs@' ftp.vitanuova.com +cp /n/ftp/package.tgz here +unmount /n/ftp +.EE +.SH FILES +.TF /tmp/ftp.* +.TP +.B /tmp/ftp.* +Temporarily cached files +.SH SOURCE +.B /appl/cmd/ftpfs.b +.SH BUGS +Symbolic links are not supported. +.br +.I Ftpfs +does not implement `rename', forcing +.IR mv (1) +to rename by copying. diff --git a/static/inferno/man4/grid-cpu.4 b/static/inferno/man4/grid-cpu.4 new file mode 100644 index 00000000..ea364e90 --- /dev/null +++ b/static/inferno/man4/grid-cpu.4 @@ -0,0 +1,141 @@ +.TH GRID-CPU 4 +.SH NAME +grid: cpu \- cpu server resource +.SH SYNOPSIS +.B grid/srv/cpu +.br +.B grid/runcpu +.SH DESCRIPTION +.I Cpu +is a file server that provides a processing resource. This resource imports a namespace from one or more external sources and executes selected commands within it. +.I Cpu +creates its own namespace containing three files +.BR ctl , +.B cmd +and +.B ns +which are used to configure the processing task prior to execution, this namespace is exported and served on +.I stdin. +In order to configure a processing task, a client must first mount the +.I cpu +namespace. Once this is done, reading the +.B cmd +and +.B ns +files will display the current configuration of commands to be executed or directories to be imported respectively. The +.B ctl +file is used to modify the current configuration and accepts the following input: +.IP +.B add cmd +.I command +.IP +.B add ns +.I path address +.IP +.B del [cmd|ns] +.I index +.PP +Where +.I command +is the name (including full path and parameters) of a command to be executed. +.I Path +is the name of a directory to import from the exported namespace available at +.I address +and +.I index +is the index (as shown when reading the +.B cmd +and +.B ns +files) of the command or directory to be removed from the configuration. +.PP +For example, to import +.B /dis +and +.B /dev +from a resource exporting a 9P (see +.IR intro(5)) +namespace at address +.B tcp!200.1.5.53!7003 +and then run +.B ls -l +and +.BR du , +the following commands would be used: +.IP +.B "echo 'add cmd /dis/ls -l' > ctl" +.br +.B "echo 'add cmd /dis/du' > ctl" +.br +.B "echo 'add ns /dis tcp!200.1.5.53!7003' > ctl" +.br +.B "echo 'add ns /dev tcp!200.1.5.53!7003' > ctl" +.PP +Reading the +.B cmd +and +.B ns +files will give the following output: +.IP +.B cmd +.br +.B 1: /dis/ls -l +.br +.B 2: /dis/du +.IP +.B ns +.br +.B 1: /dis (200.1.5.53!7003) +.br +.B 2: /dev (200.1.5.53!7003) +.PP +Once the client disconnects from (unmounts) the cpu, the selected namespaces will be imported and the commands executed. Note: A +.I cpu +does not have +.I any +namespace of its own. All required namespaces +.I must +be imported, for a simple command such as +.BR ls , +the minimum recommended namespace to import would be: +.B /chan /dev /dis /module +.PP +.IR Register (1) +may be used in conjunction with +.I cpu +to register it with a +.IR registry (4) +and to export and serve its namespace across +.IR dial(2) +network connections. Incoming connections may also be displayed visually using +.IR grid-monitor (1). +For example: +.PP +.BI "grid/register [" " options ..." " ] { grid/srv/cpu } | grid/srv/monitor 2 'CPU resource' +.PP +This set of commands is encapsulated within the shell script +.I runcpu +which will automatically register +.I cpu +with a +.IR registry(4) +if possible and start up the graphical display to show connections to the resource. There is no need for the user to execute +.I cpu +outside of +.I runcpu +unless the namespace it provides is required to be accessible in a different way to that provided by +.IR grid-register (1). +.SH SOURCE +.B /appl/grid/srv/cpu.b + +.SH BUGS +At the moment, +.I Cpu +will only import namespaces across an unauthenticated connection as provided by +.IR ns (1). + +.SH "SEE ALSO" +.IR grid-monitor (1), +.IR grid-ns (1), +.IR grid-query (1), +.IR grid-register (1) diff --git a/static/inferno/man4/import.4 b/static/inferno/man4/import.4 new file mode 100644 index 00000000..31bc8232 --- /dev/null +++ b/static/inferno/man4/import.4 @@ -0,0 +1,145 @@ +.TH IMPORT 4 +.SH NAME +import, 9export \- exchange name spaces with a Plan 9 system +.SH SYNOPSIS +.B import +[ +.B -ab +] [ +.B -c +] [ +.BI -k " keyspec" +] [ +.BI -e " crypt hash" +] +.I host +.I file +[ +.I localfile +] +.PP +.B 9export +[ +.B -A +] [ +.BI -k " keyspec" +] [ +.BI -e " crypt hash" +] +.SH DESCRIPTION +.I Import +dials the Plan 9 +.I host +(which might be the current host) and makes the given +.I file +on that system visible in the local name space as +.I localfile +(if +.I localfile +is not given, +.I file +is used as the local name). +The authentication agent +.IR factotum (4) +must be active. +(When Inferno is running on Plan 9, Plan 9's own authentication +agent can be used, by binding Plan 9's +.B /mnt/factotum +to the same name in Inferno's own name space. See +.IR fs (3).) +The remote files are accessed with the permissions of the user authenticated +to the remote system by +.IR factotum . +.PP +If the remote +.I file +is a directory, the whole file tree rooted at that +directory is accessible, the local mount point must also be a directory, +and the +.BR -a , +.BR -b , +and +.B -c +options control the creation of union directories just as for +.IR bind (1). +By default, the remote file replaces the local one in the name space. +.PP +If the +.B -e +option is given, the network connection can be encrypted, or provided +with digests to authenticate the contents, or both. +.I Crypt +is an encryption algorithm accepted by +.IR ssl (3); +.I hash +is one of its digest algorithms. +Plan 9's +.I exportfs +normally requires +.B +\&'rc4_256 sha1' +on such connections; +it currently provides no negotiation of algorithms. +.PP +The +.B -k +option gives a string of space separated +.IB attr = value +pairs that control +.IR factotum 's +selection of a suitable key for the remote system. +.PP +.I 9export +serves the Plan 9 +.I exportfs +protocol on its standard input, +allowing a Plan 9 system to import parts of the Inferno name space in which +.I 9export +is run. +If the +.B -A +option is given, the caller is not authenticated, line encryption and message authentication +are not done, +and the Plan 9 +.I exportfs +protocol starts immediately. +Otherwise, +.IR factotum (4) +must be accessible via +.B /mnt/factotum +as for +.IR import , +and it is used to run the Plan 9 authentication protocol. +The +.B -e +and +.B -k +options are as for +.IR import . +Normally +.I 9export +returns when the client closes the connection; the +.B -a +option causes +.I 9export +to return immediately, leaving a kernel process to serve the name space. +.I 9export +might be used as follows: +.IP +.EX +listen -Av 'tcp!*!exportfs' {9export&} +.EE +.PP +Beware that currently the name space is served with the permissions of the +person running +.IR 9export , +not those of the caller. +.SH SOURCE +.B /appl/cmd/9export.b +.br +.B /appl/cmd/import.b +.SH SEE ALSO +.IR bind (1), +.IR factotum (2), +.IR export (4), +.IR namespace (6) diff --git a/static/inferno/man4/iostats.4 b/static/inferno/man4/iostats.4 new file mode 100644 index 00000000..376f6325 --- /dev/null +++ b/static/inferno/man4/iostats.4 @@ -0,0 +1,81 @@ +.TH IOSTATS 4 +.SH NAME +iostats \- file system to measure I/O +.SH SYNOPSIS +.B iostats +[ +.B -d +] +[ +.B -f +.I dbfile +] +.I cmd +[ +.I args... +] +.SH DESCRIPTION +.I Iostats +is a file server that interposes itself between a program and a copy of the current name space, +which allows it to gather statistics of file system +use at the level of the file system protocol of +.IR intro (5). +When the program exits, +a report is printed on standard error. +.PP +The report consists of three sections. +The first section reports the amount +of user data in +.B read +and +.B write +messages sent by the program and the average rate at +which the data was transferred. +The +.B protocol +line reports the amount +of data sent as message headers, that is, +protocol overhead. +The +.B rpc +line reports the +total number of file system transactions. +.PP +The second section gives +the number of messages, the fastest, slowest, and average turn around +time and the amount of data involved with each 9P +message type. +The final section gives an I/O summary for each file used +by the program in terms of opens, reads and writes. +.PP +The +.B -d +option causes +.I iostats +to write a debugging log to +.I dbfile +(default: +.BR iostats.out ) +that records all protocol messages. +.SH EXAMPLE +Display summary of file I/O incurred by +.IR ls (1): +.IP +.EX +iostats ls +.EE +.PP +Start a new shell, displaying all 9P traffic caused by the shell or its children: +.IP +.EX +iostats -df /fd/1 sh +.EE +.SH SOURCE +.B /appl/cmd/iostats.b +.SH BUGS +Poor clock resolution means that large amounts of I/O must be done to +get accurate rate figures. +.PP +Can be fooled by programs that do fresh mounts outside its purview. +.PP +Cannot monitor standard input or output. diff --git a/static/inferno/man4/keyfs.4 b/static/inferno/man4/keyfs.4 new file mode 100644 index 00000000..03642b96 --- /dev/null +++ b/static/inferno/man4/keyfs.4 @@ -0,0 +1,126 @@ +.TH KEYFS 4 +.SH NAME +keyfs \- encrypted key storage +.SH SYNOPSIS +.B auth/keyfs +[ +.B -D +] +[ +.BI -m " mountpoint" +] [ +.BI -n " nvram" +] [ +.I keyfile +] +.SH DESCRIPTION +.I Keyfs +serves a two-level name space for storing authentication data, specifically +the status and secrets of each user to whom +.IR logind (8) +can issue a certificate. +The data is stored in +.I keyfile +(default: +.BR /keydb/keys ), +encrypted by a master key using AES +(see +.IR keyring-crypt (2)). +.I Keyfs +should be started only on the machine acting as authentication server (signer), +before a listener is started for +.IR signer (8). +Note that +.I signer +and +.I keyfs +must share the name space. +Furthermore, no other application except the console should see that name space. +.PP +.I Keyfs +prompts for the master key, reads and decrypts +.IR keyfile , +and serves files representing the contents at +.I mountpoint +in the name space (default: +.BR /mnt/keys ). +.PP +Each +.I user +in +.I keyfile +is represented by a directory +.IB mountpoint / user. +Each such directory has the following files: +.TF status +.TP +.B log +A count of the number of failed authentications. +Writing +.B bad +to the file increments the count; writing +.B good +resets it to 0. +When the count reaches some implementation-defined limit, +the account status is set to +.B disabled +(see the +.B status +file below). +.TP +.B expire +The time in seconds since the epoch when the account will expire, +or the text +.B never +if it has no expiration time. +The string +.B never +or a number can be written to the file to set a new expiry time. +.TP +.B secret +The secret (supposedly) known only to the user and the authentication service. +A secret is any sequence of bytes between 0 and 255 bytes long; +it is initially empty. +The length of the file returned by +.IR sys-stat (2) +is the length of the secret. +If the account has expired or is disabled, an attempt to read the file +will give an error. +.TP +.B status +The current status of the user's account, either +.B ok +or +.BR disabled . +Either string can be written to the file to change the state accordingly. +.PD +.PP +To add a new account, make a directory with that name in +.IR mountpoint . +It must not already exist. +To remove an account, remove the corresponding directory; +to rename an account, rename the directory. +.PP +All changes made via file system operations in +.I mountpoint +result in appropriate changes to +.IR keyfile . +.PD +.PP +If the +.B -n +option is given, instead of prompting for the master key, +.I keyfs +will read it from the file +.IR nvram . +Obviously that file should be well-protected from ordinary observers. +.PP +The +.B -D +option enables tracing of the file service protocol, for debugging. +.SH SOURCE +.B /appl/cmd/auth/keyfs.b +.SH SEE ALSO +.IR changelogin (8), +.IR logind (8), +.IR signer (8) diff --git a/static/inferno/man4/keysrv.4 b/static/inferno/man4/keysrv.4 new file mode 100644 index 00000000..2b12d43a --- /dev/null +++ b/static/inferno/man4/keysrv.4 @@ -0,0 +1,116 @@ +.TH KEYSRV 4 +.SH NAME +keysrv \- secret key server +.SH SYNOPSIS +.B auth/keysrv +.SH DESCRIPTION +.I Keysrv +is a file service run on a connection to an authentication server. +It allows a remote user +to change a secret stored on the server by +.IR keyfs (4), +which must have been started before +.IR keysrv , +in a name space with the authentication data available under +.BR /mnt/keys . +.PP +.I Keysrv +serves a single file, +.BR secret , +on a connection accessed through file descriptor 0 (ie, the standard `input'). +When invoked, it +first authenticates the connection using +.IR security-auth (2), +requiring the client to use +.B sha1 +and +.BR rc4_256 . +If authentication succeeds, +.I keysrv +exports a name space containing a file +.BR secret . +The authentication ensures that only a user that possesses a valid certificate can connect to the service. +.PP +If the authenticated user (ie, the user name in the verified certificate) +has an entry in +.BR /mnt/keys , +as served by +.IR keyfs (4), +and that user has a non-empty secret, +then the file +.B secret +will accept reads and writes. +(Otherwise, every read or write returns an appropriate error.) +Every successful read returns 0 bytes; thus a read can be used to check that the user is known and has a secret key. +Each write contains data of the following form: +.IP +.EX +.fi +.I oldhash +[ +.I newsecret +] +.EE +.PP +.I Oldhash +is the SHA1 hash +(see +.IR keyring-sha1 (2)) +of the user's existing secret, as 20 hexadecimal digits. +If the value of +.I oldhash +does not match that of the stored secret, the write returns an error and suitable diagnostic. +.I Oldhash +is optionally followed by a +.IR newsecret , +in clear text as a sequence of bytes (typically the secret as +.IR utf (6)), +separated from +.I oldhash +by a single space. +If the +.I oldhash +matches that of the secret currently stored, +.I newsecret +replaces it. +The write returns an error if +.I oldhash +does not match the stored value, or if something else goes wrong. +.PP +.I Keysrv +can be invoked via +.IR listen (1): +.IP +.EX +listen -t -A 'tcp!*!infkey' {auth/keysrv} +.EE +.PP +Normally that is done automatically when +starting an authentication service using +.B svc/auth +(see +.IR svc (8)). +.PP +.IR Passwd (1) +dials the service, authenticates, and mounts the resulting connection on +.BR /mnt/keysrv , +where it accesses the +.B secret +file to change the secret. +.SH FILES +.TF /mnt/keysrv +.TP +.B /mnt/keys +mount point for +.IR keyfs (4) +.TP +.B /mnt/keysrv +exported mount point for +.I keysrv +.SH SOURCE +.B /appl/cmd/auth/keysrv.b +.SH SEE ALSO +.IR listen (1), +.IR passwd (1), +.IR keyfs (4), +.IR logind (8) diff --git a/static/inferno/man4/kfs.4 b/static/inferno/man4/kfs.4 new file mode 100644 index 00000000..509d5f1e --- /dev/null +++ b/static/inferno/man4/kfs.4 @@ -0,0 +1,175 @@ +.TH KFS 4 +.SH NAME +kfs \- disk file system +.SH SYNOPSIS +.BI "mount {disk/kfs" +.RB [ -r +[ +.BI -b " bsize" +] ] +.RB [ -c ] +.RB [ -A ] +.RB [ -P ] +.RB [ -R ] +.RB [ -W ] +[ +.BI -n " name" +] +.IB " file" "} " dir +.SH DESCRIPTION +.I Kfs +implements a hierarchical Inferno file system within an existing +.IR file , +which is typically a disk or flash memory partition. +It gives access to it through the 9P protocol on its standard input, +and the contents can be mounted directly on a given +.I dir +as shown above. +The file system format is the same as that used by the +.I kfs +command of Plan 9, except that the modification user ID is implemented. +.PP +The +.B -r +option causes the file system to be reset to an initially empty state +(`reamed'). +Permission checking is turned off, to allow any desired permissions and +file ownership to be set. +(In other words, the +.B -W +and +.B -P +options are also set by default.) +The file system block size is set to the +.IR bsize +given by the +.B -b +option +(default: 1024 bytes), +which must be a multiple of 512 and not greater than 16k bytes. +The block size is stored in the +.I file +and need not be given again. +The storage representation is always little-endian. +.PP +Otherwise, the file system is checked if required, unless the +.B -c +option is given. +.PP +The contents of the file system can be provided by using commands +such as +.IR mkdir (1), +.IR cp (1) +and +.IR rm (1) +in +.IR dir , +or built from a description using +.IR mkfs (8). +.PP +The mapping between user names and +internal IDs within the file system is established by the file +.BR adm/users +(within the file system itself) +as described by +.IR users (6), +which +.I kfs +reads when it starts. +If no such file exists, as for instance when the file system is initially empty, +.I kfs +uses a minimal set corresponding to the following +.IR users (6) +file: +.IP +.EX +-1:adm:adm: +0:none:adm: +9999:noworld:: +10000:sys:: +10001:upas:upas: +10002:bootes:bootes: +10006:inferno:: +.EE +.PP +Any +.IR users (6) +file used with +.I kfs +should include entries for at least +.BR adm , +.BR none , +and +.BR noworld +as above (although group membership can vary). +.PP +.I Kfs +can optionally serve a control file, for use by +.IR kfscmd (8). +If the +.B -n +option is given, +.I kfs +creates a channel +.BI /chan/kfs. name .cmd +and accepts commands on it from the user that started +.IR kfs . +.PP +Other options are: +.TP +.B -A +do not update access times; useful when running a file system in flash over +.IR ftl (3), +to avoid excessive wear +.TP +.B -P +suppress permission checking +.TP +.B -R +file system is read only +.TP +.B -W +allow +.B wstat +(see +.IR sys-stat (2) +or +.IR stat (5)) +to make arbitrary changes to user and group fields +.SH EXAMPLES +Create an empty file system +in the file +.BR kfs.file . +Because the file system will be no larger than the existing +file's size, and the file is assumed not to be a device file, use +.IR zeros (1) +to prepare a file with 2048 blocks of 1024 bytes each: +.IP +.EX +zeros 1024 2048 >kfs.file +mount -c {disk/kfs -r kfs.file} /n/local +.EE +.PP +The +.B -c +option to +.I mount +allows files to be created in +.BR /n/local . +.SH SOURCE +.B /appl/cmd/disk/kfs.b +.SH SEE ALSO +.IR dd (1), +.IR zeros (1), +.IR flash (3), +.IR ftl (3), +.IR logfs (3), +.IR sd (3), +.IR users (6), +.IR kfscmd (8), +.IR mkfs (8) +.SH BUGS +Because the file system format is the same as Plan 9's +.IR kfs , +this one also does not support file names longer than 27 bytes. +It likewise cannot cope with files bigger than 2â³â±-1 bytes. diff --git a/static/inferno/man4/lockfs.4 b/static/inferno/man4/lockfs.4 new file mode 100644 index 00000000..8914f934 --- /dev/null +++ b/static/inferno/man4/lockfs.4 @@ -0,0 +1,89 @@ +.TH LOCKFS 4 +.SH NAME +lockfs \- exclusive access file server +.SH SYNOPSIS +.B lockfs +[ +.B -A +] [ +.B -a +.I alg +]... [ +.B -p +.I addr +] +.I dir +[ +.I mountpoint +] +.SH DESCRIPTION +.I Lockfs +acts as a filesystem layer above an existing namespace, +allowing multiple-reader, exclusive writer access to the +files therein. Opening a file served by +.I lockfs +obtains a lock on the file, or blocks until a lock can +be obtained. +.I Lockfs +serves a single-level directory that initially contains the +files in +.IR dir . +If the +.B -p +option is provided, +.I lockfs +will listen for incoming connections on +.IR addr , +authenticating them as required. +Each +.B -a +argument provides an acceptable +algorithm to run on the connection. +The list of all +.IR alg s +is passed to +.B server (see +.IR security-auth (2)). +If no +.B -a +arguments are given, +.B "-a none" +is assumed. +If the +.B -A +option is given, then no authentication +will be performed. +.PP +If the +.B -p +option is not given, the lockfs file system +will be mounted on +.IR mountpoint , +or +.I dir +if +.I mountpoint +is not given. +.SH EXAMPLE +Run a lock server guarding access to +.BR /lib/datafiles : +.IP +.EX +lockfs -p 'tcp!*!32454' /lib/datafiles +.EE +.PP +Mount the above server (where +.I locksrv +was originally run on a server named +.IR machine . +.IP +.EX +mount -c tcp!\fImachine\fP!32454 /n/remote +.EE +.SH SOURCE +.B /appl/cmd/lockfs.b +.SH BUGS +There's no way to break a lock held by a +malingering process. +.PP +Should probably support multi-level directories. diff --git a/static/inferno/man4/logfile.4 b/static/inferno/man4/logfile.4 new file mode 100644 index 00000000..ee05f38b --- /dev/null +++ b/static/inferno/man4/logfile.4 @@ -0,0 +1,45 @@ +.TH LOGFILE 4 +.SH NAME +logfile \- memory-based append-only circular storage buffer +.SH SYNOPSIS +.B logfile +.RB [ \-\fIsize\fP ] +.I \fIfile\fP +.SH DESCRIPTION +.I Logfile +creates a name at +.I file +(the containing directory must already exist). +Each write to +.I file +appends the written data up to a maximum of +.I size +bytes; subsequent writes erase the existing +data in a circular fashion. A read from +.I file +will return any currently stored data, if any; +if there is none, then it will block until more +data becomes available. +Multiple readers will receive the data independently +of one another. If a writing process is consistently +producing data faster than a reading process, then +the data read will have some bytes elided; a write +is never blocked. +.SH SOURCE +.B /appl/cmd/logfile.b +.SH SEE ALSO +.IR wm-logwindow (1), +.IR sys-file2chan (2) +.SH BUGS +Restrictions on +.IR sys-file2chan (2) +mean that the +.I logfile +process will not terminate automatically +when its file is removed or unmounted. +.PP +There is no indication to a reader of any +missing data. +.PP +It is not possible to do a non-blocking +read of the log file. diff --git a/static/inferno/man4/memfs.4 b/static/inferno/man4/memfs.4 new file mode 100644 index 00000000..7394fa53 --- /dev/null +++ b/static/inferno/man4/memfs.4 @@ -0,0 +1,62 @@ +.TH MEMFS 4 +.SH NAME +memfs \- mount a heap based filesystem +.SH SYNOPSIS +.B memfs +.RB [ \-s ] +.RB [ \-rab ] +.RB [ \-m +.IR size ] +.RI [ mountpoint ] +.SH DESCRIPTION +.I Memfs +mounts a newly created heap-based filesystem +on the given +.I mountpoint +directory (default +.BR /tmp ). +.PP +The filesystem is entirely maintained in memory, no external storage is used. +File data is allocated in 512 byte blocks. +If a maximum +.I size +is specified, the actual maximum is rounded down to the nearest +whole number of blocks: +.IP +.EX +actualsize := (size / 512) * 512; +.EE +.PP +The root of the filesystem is owned by the user who invoked memfs and +is created with Read, Write and Execute permissions for the owner and Read and Execute +permissions for everyone else (8r755). +.PP +.SH OPTIONS +.TP +.B \-s +Serve styx on file descriptor 0. +The +.I mountpoint +and other mount options are ignored. +.TP +.B \-r +The default option. +The old +.I mountpoint +directory becomes a union directory consisting of just the root of the new filesystem. +.TP +.B \-a +Add the root of the new filesystem to the end of the union directory +represented by the +.I mountpoint +directory. +.TP +.B \-b +Add the root of the new filesystem to the beginning of the union directory +represented by the +.I mountpoint +directory. +.SH SOURCE +.B /appl/cmd/memfs.b +.SH SEE ALSO +.IR ramfile (4) diff --git a/static/inferno/man4/mntgen.4 b/static/inferno/man4/mntgen.4 new file mode 100644 index 00000000..ceecf6ca --- /dev/null +++ b/static/inferno/man4/mntgen.4 @@ -0,0 +1,30 @@ +.TH MNTGEN 4 +.SH NAME +mntgen \- dynamically generate mount points +.SH SYNOPSIS +.BI "mount {mntgen} " dir +.SH DESCRIPTION +.I Mntgen +serves 9P on its standard input, providing a name space containing a +single directory that is initially empty, but in which a subdirectory name appears when +is first referenced, and remains only as long as it is needed (referenced). +.I Mntgen +is typically mounted on a directory +.I dir +using +.I mount +(see +.IR bind (1)) +as above. +.I Dir +is commonly +.B /n +or +.BR /mnt , +to generate mount points on demand for file systems or services. +.SH SOURCE +.B /appl/cmd/mntgen.b +.SH SEE ALSO +.IR intro (1), +.IR bind (1), +.IR intro (5) diff --git a/static/inferno/man4/namespace.4 b/static/inferno/man4/namespace.4 new file mode 100644 index 00000000..727b0adf --- /dev/null +++ b/static/inferno/man4/namespace.4 @@ -0,0 +1,332 @@ +.TH NAMESPACE 4 +.SH NAME +namespace \- structure of conventional Inferno name space +.SH SYNOPSIS +none +.SH DESCRIPTION +The list below gives an overview of the Inferno distribution +file tree, organised into related categories. +.TF /appl/cmd +.TP +.B / +The root directory. To programs running outside Inferno, +this corresponds to the directory in which Inferno has been +installed (e.g. +.B C:\einferno +under Windows). +.SS Mount points +The following are all placeholders for filesystems +that are mounted when Inferno is running. They +contain no data files. Although an Inferno namespace +is a dynamic entity, and devices can be mounted anywhere +therein, many programs assume that devices have been +mounted in the standard places, as suggested by the skeleton +directories listed below. +.TF /appl/cmd +.TP +.B /dev +The standard mount point +for devices (e.g. +.IR cons (3)) +.TP +.B /env +The standard mount point for the +.IR env (3) +device. +.TP +.B /mnt +A directory containing mount points for applications. +.TP +.B /chan +An empty directory, used for holding +files created with +.IR sys-file2chan (2). +.TP +.B /net +The standard mount point directory for network interfaces. +.TP +.B /n +A directory containing mount points for file trees on local devices or imported from +remote systems. +.TP +.B /prog +An empty directory, the mount point for the +.IR prog (3) +device. +.TP +.B /nvfs +An empty directory, the mount point for a non-volatile RAM +filesystem on devices that have one. +.TP +.B /tmp +Mount point for private +directory of temporary files (eg, +.BI /usr/ user /tmp\c +). +.TP +.B /mail +Conventional place to mount mailboxes. +.SS Limbo applications +.TF /appl/cmd +.TP +.B /dis +Dis executables (commands) +.TP +.B /dis/lib +Dis libraries +.TP +.B /dis/wm +Dis commands that run under +.IR wm (1). +.TP +.B /man +Manual pages. +.TP +.B /doc +Documentation other than manual pages. +.TP +.B /appl +Source to Limbo applications. +.TP +.B /appl/cmd +Source to the commands in +.BR /dis +(as documented in Section 1). +.TP +.B /appl/wm +Source to the commands in +.B /dis/wm +.TP +.B /appl/lib +Source to the modules in +.B /dis/lib +(as documented in Section 2). +.TP +.B /module +Limbo module declarations +.SS Supporting data +.TF /appl/cmd +.TP +.B /acme +Programs and guide files specific to +.IR acme (1). +.TP +.B /fonts +Font definitions +.TP +.B /locale +Timezone and locale information +.TP +.B /icons +Contains +.IR image (6) +files used by programs. +.TP +.B /icons/tk +Default directory searched by tk's +.B -bitmap +option (see +.IR options (9)). +.TP +.B /lib +Static program-specific data. +.TP +.B /lib/ndb +Network configuration files +used by +.IR cs (8), +.IR dns (8) +and others. +.SS Administration +.TF /appl/cmd +.TP +.B /keydb +Storage of secrets and certificates on signers (authentication servers). +.TP +.B /services +A jungle of program-specific configuration files. +.SS Platform specific +.TF /appl/cmd +.TP +.BI / Platform +Binaries specific to +.IR Platform . +Current platforms include +.B Inferno +(native binaries), +.BR FreeBSD , +.BR Hp , +.BR Irix , +.BR Linux , +.BR Nt , +.BR Plan9 , +.B Solaris +and +.BR Unixware . +.TP +.BI / Platform / arch /bin +.TP +.BI / Platform / arch /lib +.TP +.BI / Platform / arch /include +.I Platform +specific binaries, libraries and include files +respectively. +.I Arch +is the architecture type, as defined +in +.IR 2c (10.1) +and held in the +.B $objtype +environment variable. +.TP +.B /usr +A directory containing user directories. +.SS Inferno source code +.TF /libmemlayerxx +.TP +.B /emu +Directory containing source specific to +.IR emu (1). +.TP +.B /emu/port +Cross-platform source for +.IR emu (1). +.BI /emu/ Platform +.IR Platform -specific +source for +.IR emu (1). +.TP +.B /libkfs +The emu version of +.IR kfs (3). +.TP +.B /libbio +.TP +.B /libregexp +Source to libraries used by hosted commands. +.TP +.B /lib9 +Source to the Plan 9 emulation library, used by +emu and the hosted commands. +.TP +.B /libmemdraw +.TP +.B /libmemlayer +.TP +.B /libprefab +.TP +.B /libkern +.TP +.B /libkeyring +.TP +.B /libdraw +.TP +.B /libinterp +.TP +.B /libtk +Inferno source used by both native and hosted versions of +Inferno. +.TP +.B /asm +.TP +.B /limbo +Source to the two hosted Inferno commands of +the same name. +.TP +.B /utils +Source to hosted utilities run from +.IR emu (1) +via the +.IR cmd (3) +interface. +.TP +.B /tools +A directory containing source directories +for hosted tools used in building Inferno +(e.g. +.IR mk (10.1)). +.TP +.B /os +A directory holding source directories for the native versions of Inferno. +.TP +.B /os/init +Limbo source for platform-specific initialisation procedures. +.TP +.B /os/port +Portable native kernel source. +.TP +.BI /os/ arch +.IR Arch -specific +native kernel source. +.TP +.B /os/kfs +The native kernel version of +.IR kfs (3). +.SS "Minimal name space" +The above is all very well on a system with lots of storage, +but what is actually necessary for the running of Inferno? +The following gives a quick summary of the structure that +must be provided for Inferno to function correctly. +.TF /appl/cmd +.TP +.B /dis +This must contain Dis modules for all the applications +you plan to run, and the modules they depend on. +.IR Disdep (1) +can be useful when trying to determine this set. +.TP +.B /dev +.TP +.B /env +.TP +.B /chan +.TP +.B /net +.TP +.B /prog +.TP +.B /tmp +All empty unwritable directories, place holders for mounted services and +applications. +Often these are provided by the built-in +.IR root (3). +.TP +.B /mnt +A directory containing mount points for applications. +.TP +.B /n +A directory containing mount points for remote file systems. +.SS "Files needed to run as a server" +.TF /appl/cmd +.TP +.B /keydb/keys +See +.IR keyfs (4), +.IR logind (8) +and +.IR signer (8). +.TP +.B /keydb/signerkey +See +.IR createsignerkey (8) +and +.IR logind (8). +.SS "Files needed to run the window manager" +.TF /appl/cmd +.TP +.B /fonts +At least one font must be provided - a default font for Tk +to use. +.TP +.B /icons/tk +This should contain icons used by applications that run within Tk. +.TP +.BI /user/ user +At least one user directory must exist if +.IR logon (1) +is to function correctly. +.SH SEE ALSO +.IR intro (1), +.IR root (3), +.IR namespace (6) diff --git a/static/inferno/man4/palmsrv.4 b/static/inferno/man4/palmsrv.4 new file mode 100644 index 00000000..d5718771 --- /dev/null +++ b/static/inferno/man4/palmsrv.4 @@ -0,0 +1,49 @@ +.TH PALMSRV 4 +.SH NAME +palmsrv \- packet link to Palm device on serial connection +.SH SYNOPSIS +.B palm/palmsrv +[ +.B -D +] [ +.BI -d " device" +] [ +.BI -s " speed" +] +.SH DESCRIPTION +.I Palmsrv +serves packet link connections to a Palm device connected on the given +.I device +(default: +.BR "/dev/eia0" ) +at the given +.I speed +(default: +57600 baud). +Client applications open +.B /chan/palmsrv +to obtain a connection. +Each write must contain the data portion of a single Packet Assembly-Disassembly Protocol message +containing a Desklink protocol request. +If the device rejects the request, the write returns a diagnostic; otherwise, +a subsequent read will retrieve the reply. +.PP +The server can be shut down by writing the text +.B exit +to the file +.BR /chan/palmsrv : +.IP +.EX +echo -n exit >/chan/palmsrv +.EE +.PP +.SH FILES +.B /chan/palmsrv +.SH SOURCE +.B /appl/cmd/palm/palmsrv.b +.SH SEE ALSO +.IR palmfile (2) +.SH BUGS +It does not yet support USB. +.br +It does not tickle the Palm when there are long delays. diff --git a/static/inferno/man4/ramfile.4 b/static/inferno/man4/ramfile.4 new file mode 100644 index 00000000..415c3094 --- /dev/null +++ b/static/inferno/man4/ramfile.4 @@ -0,0 +1,63 @@ +.TH RAMFILE 4 +.SH NAME +ramfile \- synthesise file +.SH SYNOPSIS +.B ramfile +.I file +[ +.I data +] +.SH DESCRIPTION +.I Ramfile +puts a virtual file in the name space at +.IR file , +and services file requests on it. +Data written to the file is stored in +.IR ramfile 's +memory; read requests return the previously stored data. +If the optional +.I data +argument is provided, the file will initially contain that text. +The parent directory of +.I file +must exist; +.I ramfile +creates a union mount on that directory, and if +.I file +previously existed, the synthesised file will hide it. +.PP +.I Ramfile +uses +.IR sys-file2chan (2), +which simplifies implementation but prevents it from knowing +when the file has been truncated. +Instead, it truncates the file on any write to the start of the file +(offset 0), +allowing +.IR cp (1) +to copy in new contents, and +text editors to edit it. +Indeed, the file will be usable by all applications that do +not rely on updating parts of the file in place, or if they do, +do not update the start of the file. +.SH SOURCE +.B /appl/cmd/ramfile.b +.SH SEE ALSO +.IR bind (1), +.IR sys-file2chan (2), +.IR srv (3), +.IR memfs (4) +.SH BUGS +.I Ramfile +cannot tell when the +.I path +has been unmounted; +the only option is to +.IR kill (1) +it. +.br +The +.I file +always appears to have zero length to +.IR sys-stat (2), +which prevents loading a Dis file from it. diff --git a/static/inferno/man4/registry.4 b/static/inferno/man4/registry.4 new file mode 100644 index 00000000..91aa2244 --- /dev/null +++ b/static/inferno/man4/registry.4 @@ -0,0 +1,205 @@ +.TH REGISTRY 4 +.SH NAME +registry, regquery \- registration of services dynamically +.SH SYNOPSIS +.B ndb/registry +[ +.BI -f " dbfile" +] +.PP +.B ndb/regquery +[ +.BI -m " mntpt" +] +[ +.B -n +] +[ +.I "attr value" +] ... +.SH DESCRIPTION +.I Registry +is a file server that +provides registration and location of services by their attributes +where services come and go. +It was originally intended to register Grid resources +but has much wider use. +.I Registry +serves 9P on its standard input. +That can be mounted in the local name space (see below for an example), +or served over a connection +(eg, via +.IR listen (1)). +The conventional local mount point is +.BR /mnt/registry , +which is where +.IR registries (2) +expects to find the local registry by default. +There can, however, be any number of registries active, +each supporting a different group of users and services, +in different authentication domains. +.PP +.I Registry +serves a one-level directory containing a few control files +and one file per registered service. +All the files are text files with similar format: +zero or more lines of one or more words, separated by white space (blank or tab). +A word can be quoted, using single quotes in the style of +.IR sh (1), +allowing it to contain white space +or represent the empty string +.BR \&'' . +Within a quoted word, a single quote character is represented by two adjacent ones. +(In programs, use +.B String->quoted +from +.IR string (2), +or more simply the +.B %q +string format of +.IR sys-print (2) +to quote strings appropriately.) +.PP +The control files are: +.TF index +.PD +.TP +.B new +A text file that is opened and written to register a new service. +Opening +.B new +returns a file descriptor to a new but anonymous service file. +It must be written to set its name and initial description. +The first write contains one or more words: +.RS +.IP +.IR svcname " [" " attr value " ] ..." +.PP +The first word, +.IR svcname , +is the proposed service name. +The write returns an error if the name duplicates any existing name. +Otherwise, a new file +.I svcname +will appear in the directory. +The optional attribute value pairs form the initial service description. +The service is removed from the register by default when the file is closed. +To advertise a service without having to hold open a file descriptor, include an +.I attr +named +.B persist +with non-zero +.IR value ; +the service will then remain registered until explicitly removed (see below). +.RE +.TP +.B index +A read-only text file containing a list of all the currently-registered services, one per line. +Each line contains a sequence of words. +The first word is the service name and the remaining ones are paired: attribute name then value. +.TP +.B find +A text file which should be opened for reading and writing. +Each write provides a set of attribute/value pairs that acts as a filter, selecting only those +services that possess all the given attributes with the given values; +the value +.B \&"*" +matches any value. +Subsequent reads return a list of services, in the same format +as +.BR index , +but listing only the selected services. +The selection is made from those available at the time of the write. +There is a separate filter for each open instance of +.BR find , +so that several processes can set different filters simultaneously. +(Note that after the write, the file offset must be set to zero using +.IR sys-seek (2) +before reading.) +.TP +.B event +A read-only text file that can be used to detect when changes are made to the registry. +Reading from it blocks until a change is made. At that point, the read completes and returns a +string with a newline terminated decimal version number representing +the number of changes made to the registry, which matches +.B Qid.vers +for the registry directory. +Multiple changes are coalesced into one report. +.PP +A service file created by +.B new +may be read by anyone, but may be written only by its owner. +Each write must contain a set of attribute/value pairs, formatted as above, which adds new attributes to the service +description and changes the value of +existing attributes. +The file remains until the service is struck off the register. +The owner of a service can remove its registration at any time by removing the corresponding +service file (eg, using +.IR rm (1) +or +.IR sys-remove (2)). +.PP +Typically, most services register themselves dynamically, perhaps using their locations (eg, network address) +as their service names. +.RI ( Registry +itself does not interpret the name.) +The +.B -f +option causes +.I registry +to load initially a set of static service descriptions from +.IR dbfile , +which is in +.IR attrdb (6) +format. +The database entry for each service contains the pair +.BI service= svcname, +causing +.I registry +to make an entry for the given +.I svcname +with attribute/value pairs initialised from the rest of that database entry. +For example: +.IP +.EX +service=net!click!1234 + description='snapshot service' auth=none +.EE +.PP +Static entries are regarded as persistent but can be removed explicitly by the registry owner. +.PP +.I Regquery +looks for services in the registry mounted at +.I mntpt +(default: +.BR /mnt/registry ) +that match all the given attribute/value pairs. +It prints the resulting list of services, one per line. +If the +.B -n +option is given, +.I regquery +prints only the service name(s); otherwise it prints the service description as well. +If no attributes are given on the command line, +.I regquery +prompts for successive queries, one per line, and prints each result. +.SH EXAMPLE +Start a registry that appears at the standard location for local registries, +.BR /mnt/registry : +.IP +.EX +mount {ndb/registry} /mnt/registry +.EE +.PP +Make that registry available to the network on authenticated connections: +.IP +.EX +listen -v 'tcp!*!registry' {export /mnt/registry&} +.EE +.SH SOURCE +.B /appl/cmd/ndb/registry.b +.SH SEE ALSO +.IR attrdb (2), +.IR registries (2) +.SH BUGS +It is not currently possible to have two values with the same attribute name in the same service description. diff --git a/static/inferno/man4/spree.4 b/static/inferno/man4/spree.4 new file mode 100644 index 00000000..f4541e1d --- /dev/null +++ b/static/inferno/man4/spree.4 @@ -0,0 +1,195 @@ +.TH SPREE 4 +.SH NAME +spree \- distributed interactive sessions. +.SH SYNOPSIS +.B mount {spree/spree} /n/remote +.PP +.B /n/remote/name +.br +.BI /n/remote/ n +.br +.BI /n/remote/ n /ctl +.SH DESCRIPTION +.B Spree +serves a file system that allows clients to interact +through various types of +.I engine +(see +.IR spree (2) +for an explanation of engines). +It serves styx messages through file descriptor 0; +thus it can be mounted directly with +.IR mount (1), +or made available across the network +with +.I styxlisten +(see +.IR listen (1)). +.PP +Spree serves a name-space consisting of a directory +for each clique that is currently active, and +a file, +.BR name , +that holds the authenticated name of the user that has +mounted the spree namespace. +A clique's directory holds at least one file, +.BR ctl ; +if a client opens this file, it can write to it +communicate with the clique's engine, and read from +it to find updates to the state of the clique. +Messages written to the file are formed as text +and the write yields an error if there is an error +executing the command. +The first message written to the file is the +initial request to join the clique; conventionally it +is the string +.BR join , +but some engines accept other kinds of message +(e.g. +.BR watch ). +If the initial request succeeds, the client will be +informed of the current state of the clique by means +of update messages read from the same file. +Reading from the file will block until an update +is available, whereupon the read request will return +as many updates are available, separated by newline characters. +If there are more updates available than can fit +in the read request, the last two bytes of the buffer +read will be a newline character and an asterisk +.RB ( * ) +respectively, indicating that there are more updates +to come. +.PP +When +.I spree +is first started, it creates one clique, a ``lobby'' +(see +.IR spree-lobby (4)) +that allows other cliques to be created; this +is named +.BR 0 ). +.PP +A client cannot join a particular clique +more than once. +.PP +A zero-length write to the +.B ctl +file causes any reads +of that file from the same file descriptor to yield +EOF (no bytes). +This is necessary to force a hangup under +systems such as Windows, where it is not possible +to interrupt a kproc blocked on a network read. +.PP +The update messages generated by +.I spree +are as follows: +.RS +.TP +.BI create " objid parentid visibility objtype" +Create an object, identified by +.IR objid , +at the end of +.IR parentid 's +children +.RI ( parentid +is +.B -1 +for the root object). +.I Visibility +is non-zero if the object's children are visible +to the member reading the update. +.I Objtype +is the object's type (engine dependent). +.TP +.BI tx " srcid dstid start end index" +Transfer objects from +.I srcid +to +.IR dstid. +Take the objects from the range +.RI [ start ,\ end ) +in the children of +.IR srcid , +and insert them just before +.I index +in +.IR dstid . +When objects are transferred +to an object that conceals its children, +and the object is itself visible, +the objects will first be transferred to the +destination and then deleted; objects transferred +out of such an object will first be created and +.I then +transferred to their destination. +This enables a client to maintain some knowledge +of where an object has been transferred to, even +if the object is no longer visible, and means +that a client is unable to keep track of objects +that are concealed from it. +.TP +.BI del " parentid start end " "" objid\fR... +Delete the range +.RI [ start ,\ end ) +of children from the object identified by +.IR parentid . +.I Spree +guarantees that those objects will themselves +not have any children. +The list of +.IR objid s +gives the actual identifiers of the objects deleted, +for the benefit of clients that do not wish to keep lists of objects' children. +.TP +.BI set " objid attr val" +Set the attribute named +.I attr +on object +.I objid +to +.IR val . +.TP +.BI vis " objid visibility" +The visibility of object to the reading member +.I objid +has changed to +.I visibility +(non-zero if visible). +.TP +.I action +Game engines can generate arbitrary messages +of their own devising; such messages are specific +to particular engine types. +.PP +Note that a given client does not have to interpret +all the above messages \- different client types +have their own conventions. The +.B card +client type uses most of the above functionality, +for example, whereas a client for the +.B chat +engine listed in +.IR spree (2) +can get away with interpreting only one message, the custom action +.BR chat . +.PP +Writes to the opened clique file +are interpreted as clique actions by +the clique that has been loaded, and acted on accordingly. +Invalid actions will draw a write error. +.RE +.SH EXAMPLE +The simplest client! +.PP +.EX +mount tcp!somehost.com!3242 /n/remote +{ + echo create chat >[1=0] + cat & + cat >[1=0] < /dev/cons +} <> /n/remote/new +.SH SOURCE +.B /appl/cmd/cliques/spree.b +.SH SEE ALSO +.IR spree (2) diff --git a/static/inferno/man4/tarfs.4 b/static/inferno/man4/tarfs.4 new file mode 100644 index 00000000..3f28f49f --- /dev/null +++ b/static/inferno/man4/tarfs.4 @@ -0,0 +1,45 @@ +.TH TARFS 4 +.SH NAME +tarfs \- mount tar archive +.SH SYNOPSIS +.B tarfs +[ +.B -ab +] [ +.B -p +] +.I tarfile +.I mountpt +.SH DESCRIPTION +.I Tarfs +makes the contents of the directories and files archived in the given Unix/POSIX +.I tar +archive +.I tarfile +visible in the name space under +.IR mountpt . +They can then be accessed in an obvious way by other commands +such as +.IR ls (1) +and +.IR cp (1). +Only read access is supported. +User and group names are taken from the ``ustar'' headers when present. Otherwise, the numeric user and group IDs are used. +The +.B -a +and +.B -b +options cause the +.IR tarfile 's +name space to be placed after or before the current contents of +.IR mountpt ; +the default is to replace that directory's contents. +Option +.B -p +causes permissions in the tar file to be discarded. +.SH SOURCE +.B /appl/cmd/tarfs.b +.SH SEE ALSO +.IR gettar (1), +.IR archfs (4), +.IR intro (5) diff --git a/static/inferno/man4/trfs.4 b/static/inferno/man4/trfs.4 new file mode 100644 index 00000000..cc7ecdb5 --- /dev/null +++ b/static/inferno/man4/trfs.4 @@ -0,0 +1,22 @@ +.TH TRFS 4 +.SH NAME +trfs \- translate spaces and other runes in names in a file system +.SH SYNOPSIS +.B trfs +.I olddir +.I mountdir +.SH DESCRIPTION +.I Trfs +makes the contents of directory +.I olddir +appear on the directory +.IR mountdir , +but every space character in file and directory names viewed through +.I mountdir +is made visible as a special `no-break space' character (U+00A0). +Other Inferno applications will not mistake it for the end of a file name, +and it has some visible representation in most fonts. +.SH SOURCE +.B /appl/cmd/trfs.b +.SH BUGS +There can be error or ambiguity if the existing tree also uses no-break space in its names. diff --git a/static/inferno/man4/vacfs.4 b/static/inferno/man4/vacfs.4 new file mode 100644 index 00000000..1cfeaff2 --- /dev/null +++ b/static/inferno/man4/vacfs.4 @@ -0,0 +1,47 @@ +.TH VACFS 4 +.SH NAME +vacfs \- mount venti archive +.SH SYNOPSIS +.B vacfs +[ +.B -Ddp +] [ +.B -a +.I addr +] +.I [vac:score] +.SH DESCRIPTION +.I Vacfs +makes the contents of a venti archive available over styx. Standard input is used for reading and writing styx messages. +If +.I score +is not specified, vacfs +serves multiple venti archives. In this case the root directory lists no files, but walking to a directory +.I score +opens the venti archive with that score. Note that the vacfs does not support writing. +.TP +.B -D +Print styx trace messages. +.TP +.B -d +Print debug messages. +.TP +.B -p +Disable permission checking. +.TP +.BI -a " address" +Dial +.I address +instead of the default venti server. +.SH SOURCE +.B /appl/cmd/vacfs.b +.SH SEE ALSO +.IR vacget (1), +.IR vacput (1), +.IR vcache (1), +.IR venti (2), +.IR ventisrv (8) +.SH BUGS +Vacfs needs more testing. +.br +When the venti connection is broken, directories appear empty. diff --git a/static/inferno/man5/0intro.5 b/static/inferno/man5/0intro.5 new file mode 100644 index 00000000..5b2afc06 --- /dev/null +++ b/static/inferno/man5/0intro.5 @@ -0,0 +1,647 @@ +.TH INTRO 5 +.SH NAME +intro \- introduction to the Plan 9 File Protocol 9P in Inferno +.SH SYNOPSIS +.B #include +.br +.B #include +.SH DESCRIPTION +Inferno uses the Plan 9 protocol 9P to make resources visible as file hierarchies. +There have been two versions of 9P, the most recent being 9P2000. +Inferno originally used its own protocol called +.IR Styx , +which was a simplified version of the first 9P protocol. +When 9P was subsequently revised as 9P2000, Inferno adopted that, but still using the name +.IR Styx . +To reduce confusion and to emphasise that Inferno and Plan 9 use the same protocol, +the name +.I Styx +is being replaced by 9P. +References to `Styx' remain in the programs and documentation, +but will eventually be eliminated. +.PP +An Inferno +.I server +is an agent that provides one or more hierarchical file systems +\(em file trees \(em +that may be accessed by Inferno processes. +A server responds to requests by +.I clients +to navigate the hierarchy, +and to create, remove, read, and write files. +The prototypical server is a separate machine that stores +large numbers of user files on permanent media. +Another possibility for a server is to synthesize +files on demand, perhaps based on information on data structures +inside the kernel; the +.IR prog (3) +.I kernel device +is a part of the Inferno kernel that does this. +User programs can also act as servers. +One easy way is to serve a set of files +using the +.IR sys-file2chan (2) +interface. +More complex Limbo file service applications can use +.IR styx (2) +to handle the protocol messages directly, +or use +.IR styxservers (2) +to provide a higher-level framework for file serving. +.PP +A +.I connection +to a server is a bidirectional communication path from the client to the server. +There may be a single client or +multiple clients sharing the same connection. +A server's file tree is attached to a process +group's name space by +.IR bind +and +.I mount +calls; +see +.IR intro (2) +and +.IR sys-bind (2). +Processes in the group are then clients +of the server: +system calls operating on files are translated into requests +and responses transmitted on the connection to the appropriate service. +.PP +The +.IR "Plan 9 File Protocol" , +9P, is used for messages between +.I clients +and +.IR servers . +A client transmits +.I requests +.RI ( T-messages ) +to a server, which +subsequently returns +.I replies +.RI ( R-messages ) +to the client. +The combined acts of transmitting (receiving) a request of a particular type, +and receiving (transmitting) +its reply is called a +.I transaction +of that type. +.PP +Each message consists of a sequence of bytes. +Two-, four-, and eight-byte fields hold unsigned +integers represented in little-endian order +(least significant byte first). +Data items of larger or variable lengths are represented +by a two-byte field specifying a count, +.IR n , +followed by +.I n +bytes of data. +Text strings are represented this way, +with the text itself stored as a UTF-8 +encoded sequence of Unicode characters (see +.IR utf (6)). +Text strings in 9P messages are not +.SM NUL\c +-terminated: +.I n +counts the bytes of UTF-8 data, which include no final zero byte. +The +.SM NUL +character is illegal in all text strings in 9P, and is therefore +excluded from file names, user names, and so on. +.PP +Each 9P message begins with a four-byte size field +specifying the length in bytes of the complete message including +the four bytes of the size field itself. +The next byte is the message type, one of the constants +in the module +.IR styx (2), +and in the C include file +.BR +(see +.IR styx (10.2)). +The next two bytes are an identifying +.IR tag , +described below. +The remaining bytes are parameters of different sizes. +In the message descriptions, the number of bytes in a field +is given in brackets after the field name. +The notation +.IR parameter [ n ] +where +.I n +is not a constant represents a variable-length parameter: +.IR n [2] +followed by +.I n +bytes of data forming the +.IR parameter . +The notation +.IR string [ s ] +(using a literal +.I s +character) +is shorthand for +.IR s [2] +followed by +.I s +bytes of UTF-8 text. +(Systems may choose to reduce the set of legal characters +to reduce syntactic problems, +for example to remove slashes from name components, +but the protocol has no such restriction. +Inferno names may contain any printable character (that is, any character +outside hexadecimal 00-1F and 80-9F) +except slash.) +Messages are transported in byte form to allow for machine independence; +.IR styx (10.2) +describes routines that convert to and from this form into a machine-dependent +C structure. +.SH MESSAGES +.ta \w'\fLTsession 'u +.IP +.ne 2v +.IR size [4] +.B Tversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.br +.IR size [4] +.B Rversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.IP +.ne 2v +.IR size [4] +.B Tauth +.IR tag [2] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.br +.IR size [4] +.B Rauth +.IR tag [2] +.IR aqid [13] +.IP +.ne 2v +.IR size [4] +.B Rerror +.IR tag [2] +.IR ename [ s ] +.IP +.ne 2v +.IR size [4] +.B Tflush +.IR tag [2] +.IR oldtag [2] +.br +.IR size [4] +.B Rflush +.IR tag [2] +.IP +.ne 2v +.IR size [4] +.B Tattach +.IR tag [2] +.IR fid [4] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.IR size [4] +.B Rattach +.IR tag [2] +.IR qid [13] +.IP +.ne 2v +.IR size [4] +.B Twalk +.IR tag [2] +.IR fid [4] +.IR newfid [4] +.IR nwname [2] +.IR nwname *( wname [ s ]) +.br +.IR size [4] +.B Rwalk +.IR tag [2] +.IR nwqid [2] +.IR nwqid *( wqid [13]) +.IP +.ne 2v +.IR size [4] +.B Topen +.IR tag [2] +.IR fid [4] +.IR mode [1] +.br +.IR size [4] +.B Ropen +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.IP +.ne 2v +.IR size [4] +.B Tcreate +.IR tag [2] +.IR fid [4] +.IR name [ s ] +.IR perm [4] +.IR mode [1] +.br +.IR size [4] +.B Rcreate +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.IP +.ne 2v +.IR size [4] +.B Tread +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.br +.IR size [4] +.B Rread +.IR tag [2] +.IR count [4] +.IR data [ count ] +.IP +.ne 2v +.IR size [4] +.B Twrite +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.IR data [ count ] +.br +.IR size [4] +.B Rwrite +.IR tag [2] +.IR count [4] +.IP +.ne 2v +.IR size [4] +.B Tclunk +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rclunk +.IR tag [2] +.IP +.ne 2v +.IR size [4] +.B Tremove +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rremove +.IR tag [2] +.IP +.ne 2v +.IR size [4] +.B Tstat +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rstat +.IR tag [2] +.IR stat [ n ] +.IP +.ne 2v +.IR size [4] +.B Twstat +.IR tag [2] +.IR fid [4] +.IR stat [ n ] +.br +.IR size [4] +.B Rwstat +.IR tag [2] +.PP +Each T-message has a +.I tag +field, chosen and used by the client to identify the message. +The reply to the message will have the same tag. +Clients must arrange that no two outstanding messages +on the same connection have the same tag. +An exception is the tag +.BR NOTAG , +defined as +.B 16rFFFF +in +.IR styx (2) +and +.IR styx (10.2): +the client can use it, when establishing a connection, +to +override tag matching in +.B version +messages. +.PP +The type of an R-message will either be one greater than the type +of the corresponding T-message or +.BR Rerror , +indicating that the request failed. +In the latter case, the +.I ename +field contains a string describing the reason for failure. +.PP +The +.B version +message identifies the version of the protocol and indicates +the maximum message size the system is prepared to handle. +It also initializes the connection and +aborts all outstanding I/O on the connection. +The set of messages between +.B version +requests is called a +.IR session . +.PP +Most T-messages contain a +.IR fid , +a 32-bit unsigned integer that the client uses to identify +a ``current file'' on the server. +Fids are somewhat like file descriptors in a user process, +but they are not restricted to files open for I/O: +directories being examined, files being accessed by +.IR sys-stat (2) +calls, and so on \(em all files being manipulated by the operating +system \(em are identified by fids. +Fids are chosen by the client. +All requests on a connection share the same fid space; +when several clients share a connection, +the agent managing the sharing must arrange +that no two clients choose the same fid. +.PP +The fid supplied in an +.B attach +message +will be taken by the server to refer to the root of the served file tree. +The +.B attach +identifies the user +to the server and may specify a particular file tree served +by the server (for those that supply more than one). +.PP +Permission to attach to the service is proven by providing a special fid, called +.BR afid , +in the +.B attach +message. This +.B afid +is established by exchanging +.B auth +messages and subsequently manipulated using +.B read +and +.B write +messages to exchange authentication information not defined explicitly by 9P. +Once the authentication protocol is complete, the +.B afid +is presented in the +.B attach +to permit the user to access the service. +.PP +A +.B walk +message causes the server to change the current file associated +with a fid to be a file in the directory that is the old current file, or one of +its subdirectories. +.B Walk +returns a new fid that refers to the resulting file. +Usually, a client maintains a fid for the root, +and navigates by +.B walks +from the root fid. +.PP +A client can send multiple T-messages without waiting for the corresponding +R-messages, but all outstanding T-messages must specify different tags. +The server may delay the response to a request +and respond to later ones; +this is sometimes necessary, for example when the client reads +from a file that the server synthesizes from external events +such as keyboard characters. +.PP +Replies (R-messages) to +.BR auth , +.BR attach , +.BR walk , +.BR open , +and +.B create +requests convey a +.I qid +field back to the client. +The qid represents the server's unique identification for the +file being accessed: +two files on the same server hierarchy are the same if and only if their qids +are the same. +(The client may have multiple fids pointing to a single file on a server +and hence having a single qid.) +The thirteen-byte qid fields hold a one-byte type, +specifying whether the file is a directory, append-only file, etc., +and two unsigned integers: +first the four-byte qid +.IR version , +then the eight-byte qid +.IR path . +The path is an integer unique among all files in the hierarchy. +If a file is deleted and recreated with the +same name in the same directory, the old and new path components of the qids +should be different. +The version is a version number for a file; +typically, it is incremented every time the file is modified. +.PP +An existing file can be +.BR opened , +or a new file may be +.B created +in the current (directory) file. +I/O of a given number of bytes +at a given offset +on an open file is done by +.B read +and +.BR write . +.PP +A client should +.B clunk +any fid that is no longer needed. +The +.B remove +transaction deletes files. +.PP +The +.B stat +transaction retrieves information about the file. +The +.I stat +field in the reply includes the file's +name, +access permissions (read, write and execute for owner, group and public), +access and modification times, and +owner and group identifications +(see +.IR sys-stat (2)). +The owner and group identifications are textual names. +The +.B wstat +transaction allows some of a file's properties +to be changed. +.PP +A request can be aborted with a +flush +request. +When a server receives a +.BR Tflush , +it should not reply to the message with tag +.I oldtag +(unless it has already replied), +and it should immediately send an +.BR Rflush . +The client must wait +until it gets the +.B Rflush +(even if the reply to the original message arrives in the interim), +at which point +.I oldtag +may be reused. +.PP +Because the message size is negotiable and some elements of the +protocol are variable length, it is possible (although unlikely) to have +a situation where a valid message is too large to fit within the negotiated size. +For example, a very long file name may cause a +.B Rstat +of the file or +.B Rread +of its directory entry to be too large to send. +In most such cases, the server should generate an error rather than +modify the data to fit, such as by truncating the file name. +The exception is that a long error string in an +.B Rerror +message should be truncated if necessary, since the string is only +advisory and in some sense arbitrary. +.PP +Most programs do not see the 9P protocol directly; instead calls to library +routines that access files are +translated by the mount driver, +.IR mnt (3), +into 9P messages. +.SH DIRECTORIES +Directories are created by +.B create +with +.B DMDIR +set in the permissions argument (see +.IR stat (5)). +The members of a directory can be found with +.IR read (5). +All directories must support +.B walks +to the directory +.B .. +(dot-dot) +meaning parent directory, although by convention directories +contain no explicit entry for +.B .. +or +.B . +(dot). +The parent of the root directory of a server's tree is itself. +.SH "ACCESS PERMISSIONS" +Each file server maintains a set of user and group names. +Each user can be a member of any number of groups. +Each group has a +.I group leader +who has special privileges (see +.IR stat (5)). +Every file request has an implicit user id (copied from the original +.BR attach ) +and an implicit set of groups (every group of which the user is a member). +.PP +Each file has an associated +.I owner +and +.I group +id and +three sets of permissions: +those of the owner, those of the group, and those of ``other'' users. +When the owner attempts to do something to a file, the owner, group, +and other permissions are consulted, and if any of them grant +the requested permission, the operation is allowed. +For someone who is not the owner, but is a member of the file's group, +the group and other permissions are consulted. +For everyone else, the other permissions are used. +Each set of permissions says whether reading is allowed, +whether writing is allowed, and whether executing is allowed. +A +.B walk +in a directory is regarded as executing the directory, +not reading it. +Permissions are kept in the low-order bits of the file +.IR mode : +owner read/write/execute permission represented as 1 in bits 8, 7, and 6 +respectively (using 0 to number the low order). +The group permissions are in bits 5, 4, and 3, +and the other permissions are in bits 2, 1, and 0. +.PP +The file +.I mode +contains some additional attributes besides the permissions. +If bit 31 +.RB ( DMDIR ) +is set, the file is a directory; +if bit 30 +.RB ( DMAPPEND ) +is set, the file is append-only (offset is ignored in writes); +if bit 29 +.RB ( DMEXCL ) +is set, the file is exclusive-use (only one client may have it +open at a time); +if bit 27 +.RB ( DMAUTH ) +is set, the file is an authentication file established by +.B auth +messages; +if bit 26 +.RB ( DMTMP ) +is set, the contents of the file (or directory) are not included in nightly archives. +(Bit 28 is skipped for historical reasons.) +These bits are reproduced, from the top bit down, in the type byte of the Qid: +.BR QTDIR , +.BR QTAPPEND , +.BR QTEXCL , +(skipping one bit) +.BR QTAUTH , +and +.BR QTTMP . +The name +.BR QTFILE , +defined to be zero, +identifies the value of the type for a plain file. +.SH SEE ALSO +.IR intro (2), +.IR styx (2), +.IR styxservers (2), +.IR sys-bind (2), +.IR sys-stat (2), +.IR mnt (3), +.IR prog (3), +.IR read (5), +.IR stat (5), +.IR styx (10.2) diff --git a/static/inferno/man5/INDEX.5 b/static/inferno/man5/INDEX.5 new file mode 100644 index 00000000..79cae862 --- /dev/null +++ b/static/inferno/man5/INDEX.5 @@ -0,0 +1,15 @@ +intro 0intro +attach attach +auth attach +clunk clunk +error error +flush flush +create open +open open +read read +write read +remove remove +stat stat +wstat stat +version version +walk walk diff --git a/static/inferno/man5/Makefile b/static/inferno/man5/Makefile new file mode 100644 index 00000000..0a0569ba --- /dev/null +++ b/static/inferno/man5/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.5) + +include ../../mandoc.mk diff --git a/static/inferno/man5/attach.5 b/static/inferno/man5/attach.5 new file mode 100644 index 00000000..4e4860c6 --- /dev/null +++ b/static/inferno/man5/attach.5 @@ -0,0 +1,159 @@ +.TH ATTACH 5 +.SH NAME +attach, auth \- messages to establish a connection +.SH SYNOPSIS +.ta \w'\fLTauth 'u +.IR size [4] +.B Tauth +.IR tag [2] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.IR size [4] +.B Rauth +.IR tag [2] +.IR aqid [13] +.PP +.IR size [4] +.B Tattach +.IR tag [2] +.IR fid [4] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.IR size [4] +.B Rattach +.IR tag [2] +.IR qid [13] +.SH DESCRIPTION +.PP +The +.B attach +message serves as a fresh introduction from a user on +the client machine to the server. +The message identifies the user +.RI ( uname ) +and may select +the file tree to access +.RI ( aname ). +The +.I afid +argument specifies a fid previously established by an +.B auth +message, as described below. +.PP +As a result of the +.B attach +transaction, the client will have a connection to the root +directory of the desired file tree, +represented by +.IR fid . +An error is returned if +.I fid +is already in use. +The server's idea of the root of the file tree is represented by the returned +.IR qid . +.PP +If the client does not wish to authenticate the connection, or knows that +authentication is not required, the +.I afid +field in the +.B attach +message should be set to +.BR NOFID , +defined as +.B (u32int)~0 +in +.BR . +If the client does wish to authenticate, it must acquire and validate an +.I afid +using an +.B auth +message before doing the +.BR attach . +.PP +The +.B auth +message contains +.IR afid , +a new fid to be established for authentication, and the +.I uname +and +.I aname +that will be those of the following +.B attach +message. +If the server does not require authentication, it returns +.B Rerror +to the +.B Tauth +message. +.PP +If the server does require authentication, it returns +.I aqid +defining a file of type +.B QTAUTH +(see +.IR intro (5)) +that may be read and written (using +.B read +and +.B write +messages in the usual way) to execute an authentication protocol. +That protocol's definition is not part of 9P itself. +.PP +Once the protocol is complete, the same +.I afid +is presented in the +.B attach +message for the user, granting entry. +The same validated +.I afid +may be used for multiple +.B attach +messages with the same +.I uname +and +.IR aname . +.SH ENTRY POINTS +An +.B attach +transaction will be generated for kernel devices +(see +.IR intro (3)) +when a system call evaluates a file name +beginning with +.LR # . +.IR Sys-pipe (2) +generates an attach on the kernel device +.IR pipe (3). +The +.B mount +call (see +.IR sys-bind (2)) +generates an +.B attach +message to the remote file server. +When the kernel boots, an +.I attach +is made to the root device, +.IR root (3), +and then an +.B attach +is made to the requested file server machine. +.PP +An +.B auth +transaction is generated by the +.IR sys-fauth (2) +system call or by the first +.B mount +system call on an uninitialized connection. +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-fauth (2), +.IR intro (3), +.IR root (3), +.IR version (5) diff --git a/static/inferno/man5/clunk.5 b/static/inferno/man5/clunk.5 new file mode 100644 index 00000000..b21eba0a --- /dev/null +++ b/static/inferno/man5/clunk.5 @@ -0,0 +1,44 @@ +.TH CLUNK 5 +.SH NAME +clunk \- forget about a fid +.SH SYNOPSIS +.ta \w'\fLTclunk 'u +.IR size [4] +.B Tclunk +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rclunk +.IR tag [2] +.SH DESCRIPTION +The +.B clunk +request informs the file server +that the current file represented by +.I fid +is no longer needed by the client. +The actual file is not removed on the server unless the fid had been opened with +.BR ORCLOSE . +.PP +Once a fid has been clunked, +the same fid can be reused in a new +.B walk +or +.B attach +request. +.PP +Even if the +.B clunk +returns an error, the +.I fid +is no longer valid. +.SH ENTRY POINTS +A +.B clunk +message is generated when a file descriptor is closed (usually by the garbage collector) +and indirectly by other actions such as failed +.I open +calls. +.SH SEE ALSO +.IR sys-open (2) diff --git a/static/inferno/man5/error.5 b/static/inferno/man5/error.5 new file mode 100644 index 00000000..2dfb79bd --- /dev/null +++ b/static/inferno/man5/error.5 @@ -0,0 +1,25 @@ +.TH ERROR 5 +.SH NAME +error \- return an error +.SH SYNOPSIS +.ta \w'\fLRerror 'u +.IR size [4] +.B Rerror +.IR tag [2] +.IR ename [ s ] +.SH DESCRIPTION +The +.B Rerror +message +(there is no +.BR Terror ) +is used to return an error string +describing the +failure of a transaction. +It replaces the corresponding reply message +that would accompany a successful call; its tag is that +of the failing request. +.PP +By convention, clients may truncate error messages after +.B Sys->ERRMAX-1 +bytes. diff --git a/static/inferno/man5/flush.5 b/static/inferno/man5/flush.5 new file mode 100644 index 00000000..914f81d7 --- /dev/null +++ b/static/inferno/man5/flush.5 @@ -0,0 +1,101 @@ +.TH FLUSH 5 +.SH NAME +flush \- abort a message +.SH SYNOPSIS +.ta \w'\fLTflush 'u +.IR size [4] +.B Tflush +.IR tag [2] +.IR oldtag [2] +.br +.IR size [4] +.B Rflush +.IR tag [2] +.SH DESCRIPTION +When the response to a request is no longer needed, such as when +a user interrupts a process doing a +.IR sys-read (2), +a +.B Tflush +request is sent to the server to purge the pending response. +The message being flushed is identified by +.IR oldtag . +The semantics of +.B flush +depends on messages arriving in order. +.PP +The server should answer the +.B flush +message immediately. +If it recognizes +.I oldtag +as the tag of a pending transaction, it should abort any pending response +and discard that tag. +In either case, it should respond with an +.B Rflush +echoing the +.I tag +(not +.IR oldtag ) +of the +.B Tflush +message. +A +.B Tflush +can never be responded to by an +.B Rerror +message. +.PP +The server may respond to the pending request before +responding to the +.BR Tflush . +It is possible for a client to send multiple +.B Tflush +messages for a particular pending request. Each +subsequent +.B Tflush +must contain as +.I oldtag +the tag of the pending request (not a previous +.BR Tflush ). +Should multiple +.BR Tflush es +be received for a pending request, they must be answered in +order. An +.B Rflush +for any of the multiple +.BR Tflush es +implies an answer for all previous ones. Therefore, should +a server receive a request and then multiple flushes for that +request, it need respond only to the last flush. +.PP +When the client sends a +.BR Tflush , +it must wait to receive the corresponding +.B Rflush +before reusing +.I oldtag +for subsequent messages. +If a response to the flushed request is received before the +.BR Rflush , +the client must honor the response +as if it had not been flushed, +since the completed request may signify a state change in the server. +For instance, +.B Tcreate +may have created a file and +.B Twalk +may have allocated a fid. +If no response is received before the +.BR Rflush , +the flushed transaction is considered to have been cancelled, +and should be treated as though it had never been sent. +.PP +Several exceptional conditions are handled correctly by the above specification: +sending multiple flushes for a single tag, +flushing after a transaction is completed, +flushing a +.BR Tflush , +and flushing an invalid tag. +.SH SEE ALSO +.IR sys-read (2) diff --git a/static/inferno/man5/open.5 b/static/inferno/man5/open.5 new file mode 100644 index 00000000..d7e4c8ef --- /dev/null +++ b/static/inferno/man5/open.5 @@ -0,0 +1,250 @@ +.TH OPEN 5 +.SH NAME +open, create \- prepare a fid for I/O on an existing or new file +.SH SYNOPSIS +.ta \w'\fLTcreate 'u +.IR size [4] +.B Topen +.IR tag [2] +.IR fid [4] +.IR mode [1] +.br +.IR size [4] +.B Ropen +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.PP +.IR size [4] +.B Tcreate +.IR tag [2] +.IR fid [4] +.IR name [ s ] +.IR perm [4] +.IR mode [1] +.br +.IR size [4] +.B Rcreate +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.SH DESCRIPTION +The +.B open +request asks the file server to check permissions and +prepare a fid for I/O with subsequent +.B read +and +.B write +messages. +The +.I mode +field determines the type of I/O: +0 +(called +.BR OREAD +in +.BR Sys ), +1 +.RB ( OWRITE ), +2 +.RB ( ORDWR ), +and 3 +.RB ( OEXEC ) +mean +.I +read access, write access, read and write access, +and +.I +execute access, +to be checked against the permissions for the file. +In addition, if +.I mode +has the +.B OTRUNC +.RB ( 16r10 ) +bit set, +the file is to be truncated, which requires write permission +(if +the file is append-only, and permission is granted, the +.B open +succeeds but the file will not be truncated); +if the +.I mode +has the +.B ORCLOSE +.RB ( 16r40 ) +bit set, the file is to be removed when the fid +is clunked, which requires permission to remove the file from its directory. +All other bits in +.I mode +should be zero. +It is illegal to write a directory, truncate it, or attempt to remove it on close. +If the file is marked for exclusive use (see +.IR stat (5)), +only one client can have the file open at any time. +That is, after such a file has been opened, +further opens will fail until +.I fid +has been clunked. +All these permissions are checked at the time of the +.B open +request; subsequent changes to the permissions of files do not affect +the ability to read, write, or remove an open file. +.PP +The +.B create +request asks the file server to create a new file +with the +.I name +supplied, in the directory +.RI ( dir ) +represented by +.IR fid , +and requires write permission in the directory. +The owner of the file is the implied user id of the request, +the group of the file is the same as +.IR dir , +and the permissions are the value of +.ce +.B "perm & (~8r666 | (dir.perm & 8r666))" +if a regular file is being created and +.ce +.B "perm & (~8r777 | (dir.perm & 8r777))" +if a directory is being created. +This means, for example, that if the +.B create +allows read permission to others, but the containing directory +does not, then the created file will not allow others to read the file. +.PP +Finally, the newly created file is opened according to +.IR mode , +and +.I fid +will represent the newly opened file. +.I Mode +is not checked against the permissions in +.IR perm . +The +.I qid +for the new file is returned with the +.B create +reply message. +.PP +Directories are created by setting the +.B DMDIR +bit +.RB ( 16r80000000 ) +in the +.IR perm . +.PP +The names +.B . +and +.B .. +are special; it is illegal to create files with these names. +.PP +It is an error for either of these messages if the fid +is already the product of a successful +.B open +or +.B create +message. +.PP +An attempt to +.B create +a file in a directory where the given +.I name +already exists will be rejected; +in this case, the +.I create +system call +(see +.IR sys-open (2)) +uses +.B open +with truncation. +The algorithm used by the +.IR create +system call +is: +first walk to the directory to contain the file. +If that fails, return an error. +Next +.B walk +to the specified file. +If the +.B walk +succeeds, send a request to +.B open +and truncate the file and return the result, successful or not. +If the +.B walk +fails, send a create message. +If that fails, it may be because the file was created by another +process after the previous walk failed, so (once) try the +.B walk +and +.B open +again. +.PP +For the behavior of +.I create +on a union directory, see +.IR sys-bind (2). +.PP +The +.B iounit +field returned by +.B open +and +.B create +may be zero. +If it is not, it is the maximum number of bytes that are guaranteed to +be read from or written to the file without breaking the I/O transfer +into multiple 9P messages; see +.IR read (5). +.SH ENTRY POINTS +.I Open +and +.I create +both generate +.B open +messages; only +.I create +generates a +.B create +message. +The +.B iounit +associated with an open file may be discovered by calling +.IR sys-iounit (2). +.PP +For programs that need atomic file creation, without the race +that exists in the +.B open-create +sequence described above, +the kernel does the following. +If the +.B OEXCL +.RB ( 16r1000 ) +bit is set in the +.I mode +for a +.B create +system call, +the +.B open +message is not sent; the kernel issues only the +.BR create . +Thus, if the file exists, +.B create +will draw an error, but if it doesn't and the +.B create +system call succeeds, the process issuing the +.B create +is guaranteed to be the one that created the file. +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-open (2), +.IR stat (5) diff --git a/static/inferno/man5/read.5 b/static/inferno/man5/read.5 new file mode 100644 index 00000000..7a32c42b --- /dev/null +++ b/static/inferno/man5/read.5 @@ -0,0 +1,124 @@ +.TH READ 5 +.SH NAME +read, write \- transfer data from and to a file +.SH SYNOPSIS +.ta \w'\fLTwrite 'u +.IR size [4] +.B Tread +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.br +.IR size [4] +.B Rread +.IR tag [2] +.IR count [4] +.IR data [ count ] +.PP +.IR size [4] +.B Twrite +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.IR data [ count ] +.br +.IR size [4] +.B Rwrite +.IR tag [2] +.IR count [4] +.SH DESCRIPTION +The +.B read +request +asks for +.I count +bytes of data +from the file identified by +.IR fid , +which must be opened for reading, +starting +.I offset +bytes after the beginning of the file. +The bytes are returned with the +.B read +reply message. +.PP +The +.I count +field in the reply indicates the number of bytes returned. +This may be less than the requested amount. +If the +.I offset +field is greater than or equal to the number of bytes in the file, +a count of zero will be returned. +.PP +For directories, +.B read +returns an integral number of +directory entries exactly as in +.B stat +(see +.IR stat (5)), +one for each member of the directory. +The +.B read +request message must have +.B offset +equal to zero or the value of +.B offset +in the previous +.B read +on the directory, plus the number of bytes +returned in the previous +.BR read . +In other words, seeking other than to the beginning +is illegal in a directory (see +.IR sys-seek (2)). +.PP +The +.B write +request asks that +.I count +bytes of data be recorded in the file identified by +.IR fid , +which must be opened for writing, starting +.I offset +bytes after the beginning of the file. +If the file is append-only, +the data will be placed at the end of the file regardless of +.IR offset . +Directories may not be written. +.PP +The +.B write +reply records the number of bytes actually written. +It is usually an error +if this is not the same as requested. +.PP +Because 9P implementations may limit the size of individual +messages, +more than one message may be produced by a single +.I read +or +.I write +call. +The +.I iounit +field returned by +.IR open (5), +if non-zero, reports the maximum size that is guaranteed +to be transferred atomically. +.SH ENTRY POINTS +.B Read +and +.B write +messages are generated by the corresponding calls in +.IR sys-read (2). +Although +.IR sys-seek (2) +affects the offset, it does not generate a message. +.SH SEE ALSO +.IR sys-read (2), +.IR stat (5) diff --git a/static/inferno/man5/remove.5 b/static/inferno/man5/remove.5 new file mode 100644 index 00000000..39742375 --- /dev/null +++ b/static/inferno/man5/remove.5 @@ -0,0 +1,39 @@ +.TH REMOVE 5 +.SH NAME +remove \- remove a file from a server +.SH SYNOPSIS +.ta \w'\fLTremove 'u +.IR size [4] +.B Tremove +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rremove +.IR tag [2] +.SH DESCRIPTION +The +.B remove +request asks the file server both to remove the file represented by +.I fid +and to +.B clunk +the +.IR fid , +even if the remove fails. +This request will fail if the client does not have write permission +in the parent directory. +.PP +It is correct to consider +.B remove +to be a +.B clunk +with the side effect of removing the file if permissions allow. +.SH ENTRY POINTS +.B Remove +messages are generated by +.B remove +(see +.IR sys-remove (2)). +.SH SEE ALSO +.IR sys-remove (2) diff --git a/static/inferno/man5/stat.5 b/static/inferno/man5/stat.5 new file mode 100644 index 00000000..71082d8e --- /dev/null +++ b/static/inferno/man5/stat.5 @@ -0,0 +1,309 @@ +.TH STAT 5 +.SH NAME +stat, wstat \- inquire or change file attributes +.SH SYNOPSIS +.ta \w'\fLTwstat 'u +.IR size [4] +.B Tstat +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rstat +.IR tag [2] +.IR stat [ n ] +.PP +.IR size [4] +.B Twstat +.IR tag [2] +.IR fid [4] +.IR stat [ n ] +.br +.IR size [4] +.B Rwstat +.IR tag [2] +.SH DESCRIPTION +The +.B stat +transaction inquires about the file +identified by +.IR fid . +The reply will contain a +machine-independent +.I directory +.IR entry , +.IR stat , +laid out as follows: +.TP +.I size\f1[2]\fP +total byte count of the following data +.TP +.I type\f1[2]\fP +for kernel use +.TP +.I dev\f1[4]\fP +for kernel use +.TP +.I qid.type\f1[1]\fP +the type of the file (directory, etc.), represented as a bit vector +corresponding to the high 8 bits of the file's mode word. +.TP +.I qid.vers\f1[4]\fP +version number for given path +.TP +.I qid.path\f1[8]\fP +the file server's unique identification for the file +.TP +.I mode\f1[4]\fP +permissions and flags +.TP +.I atime\f1[4]\fP +last access time +.TP +.I mtime\f1[4]\fP +last modification time +.TP +.I length\f1[8]\fP +length of file in bytes +.TP +.I name\f1[ s ]\fP +file name; must be +.B / +if the file is the root directory of the server +.TP +.I uid\f1[ s ]\fP +owner name +.TP +.I gid\f1[ s ]\fP +group name +.TP +.I muid\f1[ s ]\fP +name of the user who last modified the file +.PD +.PP +Integers in this encoding are in little-endian order (least +significant byte first). +The +.B unpackdir +and +.B packdir +functions of +.IR styx (2) +convert between directory entries and the Limbo adt +.BR Sys->Dir . +For C implementations, the +.I convM2D +and +.I convD2M +routines (see +.IR styx (10.2)) +convert between directory entries and a C structure called +.BR Dir . +.PP +The +.I mode +contains permission bits as described in +.IR intro (5) +and the following: +.B 16r80000000 +.RB ( DMDIR , +this file is a directory), +.B 16r40000000 +.RB ( DMAPPEND , +append only), +.B 16r20000000 +.RB ( DMEXCL , +exclusive use), +.B 16r04000000 +.RB ( DMTMP , +temporary); +these are echoed in +.BR Qid.type . +Writes to append-only files always place their data at the +end of the file; the +.I offset +in the +.B write +message is ignored, as is the +.B OTRUNC +bit in an open. +Exclusive use files may be open for I/O by only one fid at a time +across all clients of the server. If a second open is attempted, +it draws an error. Servers may implement a timeout on the lock +on an exclusive use file: if the fid holding the file open has +been unused for an extended period (of order at least minutes), +it is reasonable to break the lock and deny the initial fid +further I/O. +Temporary files are not included in any automatic archives or dumps a server might create. +.PP +The two time fields are measured in seconds since the epoch +(Jan 1 00:00 1970 GMT). +The +.I mtime +field reflects the time of the last change of content (except when later changed by +.BR wstat ). +For a plain file, +.I mtime +is the time of the most recent +.BR create , +.B open +with truncation, +or +.BR write ; +for a directory it is the time of the most recent +.BR remove , +.BR create , +or +.B wstat +of a file in the directory. +Similarly, the +.I atime +field records the last +.B read +of the contents; +also it is set whenever +.I mtime +is set. +In addition, for a directory, it is set by +an +.BR attach , +.BR walk , +or +.BR create , +all whether successful or not. +.PP +The +.I muid +field names the user whose actions most recently changed the +.I mtime +of the file. +.PP +The +.I length +records the number of bytes in the file. +Directories and most files representing devices have a conventional +length of 0. +.PP +The +.B stat +request requires no special permissions. +.PP +The +.B wstat +request can change some of the file status information. +The +.I name +can be changed by anyone with write permission in the parent directory; +it is an error to change the name to that of an existing file. +The +.I length +can be changed (affecting the actual length of the file) by anyone with +write permission on the file. +It is an error to attempt to set the length of a directory to a non-zero value, +and servers may decide to reject length changes for other reasons. +The +.I mode +and +.I mtime +can be changed by the owner of the file or the group leader of the file's current +group. +The directory bit cannot be changed by a +.BR wstat ; +the other defined permission and mode bits can. +The +.I gid +can be changed: by the owner if also a member of the new group; or +by the group leader of the file's current group +if also leader of the new group +(see +.IR intro (5) +for more information about permissions and +.IR users (6) +for users and groups). +None of the other data can be altered by a +.B wstat +and attempts to change them will trigger an error. +In particular, +it is illegal to attempt to change the owner of a file. +(These conditions may be +relaxed when establishing the initial state of a file server.) +.PP +Either all the changes in +.B wstat +request happen, or none of them does: if the request succeeds, +all changes were made; if it fails, none were. +.PP +A +.B wstat +request can avoid modifying some properties of the file +by providing explicit ``don't touch'' values in the +.B stat +data that is sent: zero-length strings for text values and +the maximum unsigned value of appropriate size +for integral values. +As a special case, if +.I all +the elements of the directory entry in a +.B Twstat +message are ``don't touch'' values, the server may interpret it +as a request to guarantee that the contents of the associated +file are committed to stable storage before the +.B Rwstat +message is returned. +(Consider the message to mean, ``make the state of the file +exactly what it claims to be.'') +.PP +A +.I read +of a directory yields an integral number of directory entries in +the machine independent encoding given above +(see +.IR read (5)). +.PP +Note that since the +.B stat +information is sent as a 9P variable-length datum, it is limited to a maximum of +65535 bytes. +.SH ENTRY POINTS +.B Stat +messages are generated by +.I fstat +and +.IR stat . +.PP +.B Wstat +messages are generated by +.I fwstat +and +.IR wstat . +.SH SEE ALSO +.IR sys-stat (2), +.IR intro (5), +.IR read (5), +.IR intro (10), +.IR styx (10.2) +.SH BUGS +To make the contents of a directory, such as returned by +.IR read (5), +easy to parse, each +directory entry begins with a size field. +For consistency, the entries in +.B Twstat +and +.B Rstat +messages also contain +their size, which means the size appears twice. +For example, the +.B Rstat +message is formatted as +.RI ``(4+1+2+2+ n )[4] +.B Rstat +.IR tag [2] +.IR n [2] +.RI ( n -2)[2] +.IR type [2] +.IR dev [4]...,'' +where +.I n +is the length of the array returned by +.BR Styx->packdir . diff --git a/static/inferno/man5/version.5 b/static/inferno/man5/version.5 new file mode 100644 index 00000000..ac36394a --- /dev/null +++ b/static/inferno/man5/version.5 @@ -0,0 +1,103 @@ +.TH VERSION 5 +.SH NAME +version \- negotiate protocol version +.SH SYNOPSIS +.ta \w'\fLTversion 'u +.IR size [4] +.B Tversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.br +.IR size [4] +.B Rversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.SH DESCRIPTION +The +.B version +request negotiates the protocol version and message size +to be used on the connection and initializes the connection for I/O. +.B Tversion +must be the first message sent on the 9P connection, +and the client cannot issue any further requests until it has received the +.B Rversion +reply. +The +.I tag +should be +.B NOTAG +(value +.BR (ushort)~0 ) +for a +.B version +message. +.PP +The client suggests a maximum message size, +.BR msize , +that is the maximum length, in bytes, +it will ever generate or expect to receive in a single 9P message. +This count includes all 9P protocol data, starting from the +.B size +field and extending through the message, +but excludes enveloping transport protocols. +The server responds with its own maximum, +.BR msize , +which must be less than or equal to the client's value. +Thenceforth, both sides of the connection must honor this limit. +.PP +The +.B version +string identifies the level of the protocol. +The string must always begin with the two characters +.RB `` 9P ''. +If the server does not understand the client's version string, +it should respond with an +.B Rversion +message (not +.BR Rerror ) +with the +.B version +string the 7 characters +.RB `` unknown ''. +.PP +The server may respond with the client's version string, +or a version string identifying +an earlier defined protocol version. +Currently, the only defined version is the 6 characters +.RB `` 9P2000 ''. +Version strings are defined such that, if the client string contains +one or more period characters, the initial substring up to but not including +any single period in the version string defines a version of the protocol. +After stripping any such period-separated suffix, the server is allowed to respond +with a string of the form +.BI 9P nnnn\f1, +where +.I nnnn +is less than or equal to the digits sent by the client. +.PP +The client and server will use the protocol version defined by the +server's response for all subsequent communication on the connection. +.PP +A successful +.B version +request initializes the connection. +All outstanding I/O on the connection is aborted; all active fids are freed (`clunked') automatically. +The set of messages between +.B version +requests is called a +.IR session . +.SH ENTRY POINTS +The +.B version +message is generated by +.IR sys-fversion (2). +It is also generated automatically, if required, by a +.B mount +or +.B fauth +system call on an uninitialized connection. +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-fversion (2) diff --git a/static/inferno/man5/walk.5 b/static/inferno/man5/walk.5 new file mode 100644 index 00000000..c7365b73 --- /dev/null +++ b/static/inferno/man5/walk.5 @@ -0,0 +1,186 @@ +.TH WALK 5 +.SH NAME +walk \- descend a directory hierarchy +.SH SYNOPSIS +.ta \w'\fLTwalk 'u +.IR size [4] +.B Twalk +.IR tag [2] +.IR fid [4] +.IR newfid [4] +.IR nwname [2] +.IR nwname *( wname [ s ]) +.br +.IR size [4] +.B Rwalk +.IR tag [2] +.IR nwqid [2] +.IR nwqid *( qid [13]) +.SH DESCRIPTION +The +.B walk +request carries as arguments an existing +.IR fid +and a proposed +.I newfid +(which must not be in use unless it is the same as +.IR fid ) +that the client wishes to associate with +the result of traversing the directory hierarchy +by `walking' the hierarchy using the successive path name +elements +.BR wname . +The +.I fid +must represent a directory unless zero path name elements are specified. +.PP +The +.I fid +must be valid in the current session and must not have been opened for I/O +by an +.B open +or +.B create +message. +If the full sequence of +.B nwname +elements is walked successfully, +.I newfid +will represent the file that results. +If not, +.I newfid +(and +.BR fid ) +will be unaffected. +However, if +.I newfid +is in use or otherwise illegal, an +.B Rerror +is returned. +.PP +The name +.RB `` .. '' +(dot-dot) represents the parent directory. +The name +.RB `` . '' +(dot), meaning the current directory, is not used in the protocol. +.PP +It is legal for +.B nwname +to be zero, in which case +.I newfid +will represent the same file as +.I fid +and the +.B walk +will usually succeed; this is equivalent to walking to dot. +The rest of this discussion assumes +.B nwname +is greater than zero. +.PP +The +.B nwname +path name elements +.B wname +are walked in order, ``elementwise''. +For the first elementwise walk +to succeed, the file identified by +.I fid +must be a directory, +and the implied user of the request must have permission +to search the directory (see +.IR intro (5)). +Subsequent elementwise walks have equivalent restrictions +applied to the implicit fid that results from the preceding elementwise walk. +.PP +If the first element cannot be walked for any reason, +.B Rerror +is returned. +Otherwise, the walk will return an +.B Rwalk +message containing +.I nwqid +qids corresponding, in order, to the files that are visited by the +.I nwqid +successful elementwise walks; +.I nwqid +is therefore either +.B nwname +or the index of the first elementwise walk that failed. +The value of +.I nwqid +cannot be zero unless +.B nwname +is zero. +Also, +.I nwqid +will always be less than or equal to +.BR nwname . +Only if it is equal, however, will +.I newfid +be affected, in which case +.I newfid +will represent the file +reached by the final elementwise walk requested in the message. +.PP +A +.B walk +of the name +.RB `` .. '' +in the root directory of a server is equivalent to a walk with no name elements. +.PP +If +.I newfid +is the same as +.IR fid , +the above discussion applies, with the obvious difference +that if the walk changes the state of +.IR newfid , +it also changes the state of +.IR fid ; +and if +.I newfid +is unaffected, then +.I fid +is also unaffected. +.PP +To simplify the implementation of the servers, a maximum of sixteen name elements or qids +may be packed in a single message. +This constant is called +.B MAXWELEM +in +.IR styx (2) +and +.IR styx (10.2). +Despite this restriction, the system imposes no limit on the number of elements in a file name, +only the number that may be transmitted in a single message. +.SH ENTRY POINTS +A call to +.IR sys-chdir (2) +causes a +.BR walk . +One or more +.B walk +messages may be generated by +any of the following calls, which evaluate file names: +.BR bind , +.BR create , +.BR mount , +.BR open , +.BR remove , +.BR stat , +.BR unmount , +.BR wstat . +The file name element +.B . +(dot) is interpreted locally and +is not transmitted in +.B walk +messages. +.SH SEE ALSO +.IR sys-bind (2), +.IR sys-chdir (2), +.IR sys-open (2), +.IR sys-remove (2), +.IR sys-stat (2), +.IR intro (5) diff --git a/static/inferno/man6/0intro.6 b/static/inferno/man6/0intro.6 new file mode 100644 index 00000000..28d23789 --- /dev/null +++ b/static/inferno/man6/0intro.6 @@ -0,0 +1,7 @@ +.TH INTRO 6 +.SH NAME +intro \- introduction to file formats +.SH DESCRIPTION +This section describes Inferno file formats that are meant to be public +(as opposed to formats that are for a program's internal use). +It also describes a few system conventions. diff --git a/static/inferno/man6/INDEX.6 b/static/inferno/man6/INDEX.6 new file mode 100644 index 00000000..cdbaa344 --- /dev/null +++ b/static/inferno/man6/INDEX.6 @@ -0,0 +1,30 @@ +intro 0intro +attrdb attrdb +audio audio +auth auth +colour colour +dis dis +font font +subfont font +image image +json json +keyboard keyboard +keys keys +keytext keytext +login login +man man +namespace namespace +ndb ndb +plumbing plumbing +proto proto +regex regexp +regexp regexp +sbl sbl +scancode scancode +sexprs sexprs +translate translate +ubfa ubfa +users users +ascii utf +unicode utf +utf utf diff --git a/static/inferno/man6/Makefile b/static/inferno/man6/Makefile new file mode 100644 index 00000000..cd649fe8 --- /dev/null +++ b/static/inferno/man6/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.6) + +include ../../mandoc.mk diff --git a/static/inferno/man6/attrdb.6 b/static/inferno/man6/attrdb.6 new file mode 100644 index 00000000..9a8f03a4 --- /dev/null +++ b/static/inferno/man6/attrdb.6 @@ -0,0 +1,101 @@ +.TH ATTRDB 6 +.SH NAME +attrdb \- data base of attribute-value pairs +.SH DESCRIPTION +An attribute data base is formed from one or more text files, +each containing groups of related attribute-value pairs. +A given data base typically stores data relating to a single logical domain. +For instance, +Inferno uses an attribute data base +.IR ndb (6) +to organise network configuration data. +.IR Attrdb (2) +is typically used by applications to search the data. +.PP +Each entry in the data base consists of one or more lines containing +attribute/value pairs, separated by white space. +The first line of an entry starts a line; subsequent lines in the entry +are preceded by white space (spaces or tabs). +Pairs on the same line bind tighter together than others in the same entry. +(This is important when one known pair is used to find another by attribute name.) +The character +.RB ` # ' +causes the rest of the line to be ignored (eg, as commentary). +Empty lines are also ignored. +.PP +Attribute/value pairs are written as +.IB attribute = value, +which can be abbreviated to +.IB attribute = +or simply +.I attribute +if the attribute has no value. +A +.I value +that contains white space, or any of the characters \f5#'"=\fP +must be quoted, using either the single or double quote character. +Within a quoted string, two adjacent quotes can be written to enter a quote in the string. +For example: +.IP +.EX +name='Paul Wilson' business company='Fruitbat Villas Ltd' + title='Key Grip' + address='39 Willis Street, York' tel='+44 1904 20927' + address='On the road' tel='+44 7904 169 704' +name='James Mason' personal= + address='10 St James''s, East Grinstead' tel='01342 7674' +.EE +.PP +Note that the binding rule associates each +.B address +in the first entry most closely with the +.B tel +on the same line. +The attributes +.B business +(first entry) +and +.B personal +(second entry) +are both attributes without value. +.PP +A single logical data base can be formed by concatenating several physical files, +each having the format above. +One of the files must contain an entry (typically first in the file) containing a +.B database +attribute and a sequence of attributes of the form +.BI file= filename. +For example: +.IP +.EX +database= + file=file1 + file=file2 + file=file3 +.EE +.PP +The logical database is formed by (logically) concatenating the contents +of each +.I filename +in the order listed +(ie, +.BR file1 , +.BR file2 , +and +.BR file3 +above). +Typically the file containing the +.B database +attribute +appears in the list as well, at the point where its contents should go; +if it does not appear at all, it is assumed to be first. +The name of that file is also used as the name of the logical database, +for instance when opened by +.IR attrdb (2). +.SH SEE ALSO +.IR cfg (2), +.IR attrdb (2), +.IR ipattr (2), +.IR ndb (6), +.IR cs (8), +.IR dns (8) diff --git a/static/inferno/man6/audio.6 b/static/inferno/man6/audio.6 new file mode 100644 index 00000000..3d8e9699 --- /dev/null +++ b/static/inferno/man6/audio.6 @@ -0,0 +1,79 @@ +.TH AUDIO 6 +.SH NAME +audio \- Inferno audio file format +.SH DESCRIPTION +Inferno audio files accepted by commands such as +.IR auplay (1) +have a simple format. +The file contains a header consisting of +non-empty lines of text specifying the data format and characteristics, +followed by an empty line, +followed by the audio data in binary form. +The data can be copied +directly to a suitable audio device (see +.IR audio (3)) +correctly configured, +using +.BR read , +.B write +or +.B stream +(see +.IR sys-read (2)). +.PP +Each header line corresponds to a command that can be written to +the control file +.B audioctl +of the +.IR audio (3) +device. +The first line of the header must be a +.BR rate +command; +other commands can appear in any order. +The commands available are: +.TP +.BI rate " n" +The data was recorded at +.I n +Hz, typically one of +.BR 44100 , +.BR 22050 , +.BR 11025 +or +.BR 8000 +but other values are legal. +.TP +.BI chans " n" +There are +.I n +channels of audio data (eg, 1 for mono and 2 for stereo). +.TP +.BI bits " n" +Each sample is +.I n +bits (typically 8 or 16). +.TP +.BI enc " e" +.br +The string +.I e +gives the recording format, and +will usually be one of the following: +.BR ulaw , +.BR alaw , +.BR pcm +or +.BR adpcm . +.PP +The audio data is stored with a sample from each channel in turn +(`left' sample first if stereo, regardless of encoding or data size). +Data encoded as +.B pcm +is little-endian, 2's complement if 16-bit, but unsigned if 8 bit. +The +.B adpcm +encoding uses 4-bit samples (two mono samples or one stereo sample per byte, again little-endian). +.SH SEE ALSO +.IR auplay (1), +.IR audio (3) diff --git a/static/inferno/man6/auth.6 b/static/inferno/man6/auth.6 new file mode 100644 index 00000000..f0b6b025 --- /dev/null +++ b/static/inferno/man6/auth.6 @@ -0,0 +1,74 @@ +.TH AUTH 6 +.SH NAME +auth \- authentication using station-to-station protocol +.SH DESCRIPTION +The following protocol, +based on the Station-to-Station +protocol, is used for mutual authentication of two parties, +each possessing a certificate from the same certifying authority (CA). +.PP +In the description below: +.TF CERTx +.PD +.TP +.I alpha +is a Diffie-Hellman base used system wide +.TP +.I p +is a Diffie-Hellman modulus used system wide +.TP +.I Rx +is a random number of the same order as +.IR p . +.TP +.BI PK x +the public key of +.I x +.TP +.BI SK x +the private key of +.I x +.TP +.BI CERT x +the public key +of +.I x +signed by the certifying authority +.TP +.BI sig n ( x ) +represents +.I x +signed with +.IR n 's +private key +.PP +In the following, the parties are labelled 0 and 1. +.PP +Each sends its public key and certificate to the other together with +a computation +.IR "alpha**r0 mod p" +.RI ( "alpha**r1 mod p" ) +based on the Diffie-Hellman parameters contained in the certificate: +.IP +.EX +0 → 1 alpha**r0 mod p, CERTu0, PKu0 +1 → 0 alpha**r1 mod p, CERTu1, PKu1 +.EE +.PP +Each can now use the CA's public key and the certificate received to check +that each has the other's public key. +.PP +Finally, each user signs values known to both that each can then verify: +.IP +.EX +0 → 1 sig0(alpha**r0 mod p, alpha**r1 mod p) +1 → 0 sig1(alpha**r0 mod p, alpha**r1 mod p) +.EE +.PP +At this point 0 and 1 can calculate the shared secret +.BR "alpha**(r0*r1)" , +and can use it to encrypt later communications. +.SH SEE ALSO +.IR keyring-auth (2), +.IR keytext (6), +.IR login (6) diff --git a/static/inferno/man6/colour.6 b/static/inferno/man6/colour.6 new file mode 100644 index 00000000..145e5b4b --- /dev/null +++ b/static/inferno/man6/colour.6 @@ -0,0 +1,187 @@ +.TH COLOUR 6 +.SH NAME +colour \- representation of pixels and colours +.SH DESCRIPTION +An image manipulated by +.IR draw (2) +(via the device +.IR draw (3)), +including the image corresponding to a physical display, +contains a set of pixels. +Each pixel has one or more components: +colour components (red, green, blue); greyscale value; colour-map index; alpha value; and +``don't care'' (for padding). +Each component takes a given number of bits; the sum of the sizes of all components +determines the size of the pixel. +The implementation supports only pixel sizes that are either divisors or multiples of 8 bits. +All pixels in an image have the same structure, corresponding to the +.I channels +of that image (see +.IR image (6)). +.PP +The values of the red, green and blue components are chosen so 0 represents +no intensity (black) and the maximum value (all ones, 255 for an 8-bit component) +represents full intensity (eg, full red). +Common colour physical display depths are 24 bits per pixel, with 8 bits per colour in order +red, green, blue, and 16 bits per pixel, with 5 bits of red, 6 bits of green, and 5 bits of blue. +.PP +Colors may also be created with an opacity factor called +.IR alpha , +which is scaled so 0 represents fully transparent and the maximum value (eg, 255 for +an 8-bit alpha component) represents opaque colour. +The alpha is +.I premultiplied +into the other channels, as described in the paper by Porter and Duff cited in +.IR draw-image (2). +The function +.B Draw->setalpha +(see +.IR draw-intro (2)) +aids the initialisation of colour values with non-trivial alpha. +.PP +Because images are stored in memory managed by +.IR draw (3) +and operated through +.IR draw-image (2), +the details of pixel representation internally can be ignored by many applications. +The representation is visible, however, when using the operations +.B Image.readpixels +and +.B Image.writepixels +(see +.IR draw-image (2)). +The bits representing a pixel's channel components are packed contiguously, and +pixels are stored in contiguous bytes. +The packing of pixels into bytes and words is odd. +For compatibility with VGA frame buffers, the bits within a +pixel byte are in big-endian order (leftmost pixel is most +significant bits in byte), while bytes within a pixel are packed in little-endian order. +This results in unintuitive pixel formats. For example, for the RGB24 format, +the byte ordering is blue, green, red. +.PP +To maintain a constant external representation, the +.IR draw (3) +interface +as well as the +various graphics libraries represent colours +by 32-bit integers, containing red, blue, green and alpha components +as 8-bit values, in that order from most to least significant byte. +The color component values range from 0 (no colour) to 255 (saturated); +alpha ranges from 0 (fully transparent) to 255 (fully opaque). +.PP +On displays with 8 bits per pixel or less, +to address problems of consistency and portability amongst Inferno applications, +Inferno uses a fixed colour map, called +.BR rgbv . +Although this avoids problems caused by multiplexing colour maps between +applications, it requires that the colour map chosen be suitable for most purposes +and usable for all. +Other systems that use fixed colour maps tend to sample the colour cube +uniformly, which has advantages\(emmapping from a (red, green, blue) triple +to the colour map and back again is easy\(embut ignores an important property +of the human visual system: eyes are +much more sensitive to small changes in intensity than +to changes in hue. +Sampling the colour cube uniformly gives a colour map with many different +hues, but only a few shades of each. +Continuous tone images converted into such maps demonstrate conspicuous +artifacts. +.PP +Rather than dice the colour cube into subregions of +size 6\(mu6\(mu6 (as in Netscape Navigator) or 8\(mu8\(mu4 +picking 1 colour in each, +the +.B rgbv +colour map uses a 4\(mu4\(mu4 subdivision, with +4 shades in each subcube. +The idea is to reduce the colour resolution by dicing +the colour cube into fewer cells, and to use the extra space to increase the intensity +resolution. +This results in 16 grey shades (4 grey subcubes with +4 samples in each), 13 shades of each primary and secondary colour (3 subcubes +with 4 samples plus black) and a reasonable selection of colours covering the +rest of the colour cube. +The advantage is better representation of +continuous tones. +.PP +The following function computes the 256 3-byte entries in the colour map: +.IP +.EX +.ta 6n +6n +6n +6n +void +setmaprgbv(uchar cmap[256][3]) +{ + uchar *c; + int r, g, b, v; + int num, den; + int i, j; + + for(r=0,i=0; r!=4; r++) + for(v=0; v!=4; v++,i+=16) + for(g=0,j=v-r; g!=4; g++) + for(b=0; b!=4; b++,j++){ + c = cmap[i+(j&15)]; + den = r; + if(g > den) + den = g; + if(b > den) + den = b; + if(den == 0) /* would divide check; pick grey shades */ + c[0] = c[1] = c[2] = 17*v; + else{ + num = 17*(4*den+v); + c[0] = r*num/den; + c[1] = g*num/den; + c[2] = b*num/den; + } + } +} +.EE +.PP +There are 4 nested loops to pick the (red,green,blue) coordinates of the subcube, +and the value (intensity) within the subcube, indexed by +.BR r , +.BR g , +.BR b , +and +.BR v , +whence +the name +.IR rgbv . +The peculiar order in which the colour map is indexed is designed to distribute the +grey shades uniformly through the map\(emthe +.IR i 'th +grey shade, +.RI 0<= i <=15 +has index +.IR i ×17, +with black going to 0 and white to 255. +Therefore, when a call to +.B Image.draw +(see +.IR draw-image (2)) +converts a 1, 2 or 4 bit-per-pixel picture to 8 bits per pixel (which it does +by replicating the pixels' bits), the converted pixel values are the appropriate +grey shades. +.PP +The +.B rgbv +map is not gamma-corrected, for many reasons. First, photographic +film and television are both normally under-corrected, the former by an +accident of physics and the latter by NTSC's design. +Second, we require extra colour resolution at low intensities because of the +non-linear response and adaptation of the human visual system. +Properly +gamma-corrected displays with adequate low-intensity resolution pack the +high-intensity parts of the colour cube with colours whose differences are +almost imperceptible. +Either of these reasons suggests concentrating +the available intensities at the low end of the range. +Third, the compositing computations underlying the graphics operations in +.IR draw-image (2) +assume a linear colour space. +Finally, the right value for gamma correction is determined in part by the +characteristics of the physical display device, and correction should be done on output. +.SH "SEE ALSO" +.IR draw-intro (2), +.IR draw-image (2) diff --git a/static/inferno/man6/dis.6 b/static/inferno/man6/dis.6 new file mode 100644 index 00000000..26a43997 --- /dev/null +++ b/static/inferno/man6/dis.6 @@ -0,0 +1,487 @@ +.TH DIS 6 +.SH NAME +dis \- Dis object file +.SH DESCRIPTION +.ds Os "\v'0.2m'\s-3\|opt\s+3\^\v'-0.2m' +A Dis object file contains the executable form of a single module, +and conventionally uses the file suffix +.BR .dis . +.PP +The following names are used in the description of the file encoding. +.PP +.TP 10n +.I byte +An unsigned 8-bit byte. +.TP +.I word +A 32-bit integer value represented in exactly 4 bytes. +.TP +.I long +A 64-bit integer value represented in exactly 8 bytes. +.TP +.I operand +An integer stored in a compact variable-length +encoding selected by the two most significant bits as follows: +.IP +.nf +0x signed 7 bits, 1 byte +.br +10 signed 14 bits, 2 bytes +.br +11 signed 30 bits, 4 bytes +.fi +.TP +.I string +A variable length sequence of bytes terminated by a zero byte. +Names thus represented are in +.IR utf (6) +format. +.PP +All integers are encoded in two's complement format, most significant byte first. +.PP +Every object file has a header followed by five sections containing code, data, and several sorts of descriptors: +.IP +.I "header code-section type-section data-section module-name link-section" +.PP +Each section is described in turn below. +.SS Header +The header contains a magic number, +a digital signature, a flag word, +sizes of the other sections, and a description of the entry point. +It has the following format: +.IP +.EX +.ft I +header: + magic signature\*(Os runflag stack-extent + code-size data-size type-size link-size entry-pc entry-type +magic, runflag: + operand +stack-extent, code-size, data-size, type-size, link-size: + operand +entry-pc, entry-type: + operand +.EE +.PP +The magic number is defined as 819248 +(symbolically +.BR XMAGIC ), +for modules that have not been signed cryptographically, and 923426 +(symbolically +.BR "SMAGIC" ), +for modules that contain a signature. +The symbolic names +.B "XMAGIC" +and +.B SMAGIC +are defined by the C include file +.B "/include/isa.h" +and by the Limbo module +.IR dis (2). +.PP +The +.I signature +is present only if the magic number is +.BR "SMAGIC" . +It has the form: +.IP +.EX +.ft I +signature: + length signature-data +length: + operand +signature-data: + byte ... +.EE +.PP +A digital signature is defined by a length, followed by an array of bytes of that +length that contain the signature in some unspecified format. +Data within the signature should identify the signing authority, algorithm, and data to be signed. +.PP +.I Runflag +is a bit mask that +selects various execution options for a Dis module. The flags currently defined are: +.IP +.RS +.TP +.BR MUSTCOMPILE " (1<<0)" +The module must be compiled into native instructions for execution (using a just-in-time compiler); +if the implementation cannot do that, +the +.B load +instruction should given an error. +.TP +.BR DONTCOMPILE " (1<<1)" +The module should not be compiled into native instructions, when that is the default for the runtime environment, but +should be interpreted. +This flag may be set to allow debugging or to save memory. +.TP +.BR SHAREMP " (1<<2)" +Each instance of the module should use the same module data for all instances of the module. There is no implicit synchronisation between threads using the shared data. +.TP +.BR HASLDT " (1<<4)" +The dis file contains a separate import section. On older versions of the system, +this section was within the data section. +.TP +.BR HASEXCEPT " (1<<5)" +The dis file contains an exception handler section. +.RE +.PP +.IR Stack-extent , +if non-zero, gives the number of bytes by which the thread stack of this module should be extended in the event that procedure calls exhaust the allocated stack. +While stack extension is transparent to programs, increasing this value may improve the efficiency of execution at the expense of using more memory. +.PP +.IR Code-size , +.I type-size +and +.I link-size +give the number of entries (instructions, type descriptors, linkage directives) +in the corresponding sections. +.PP +.I Data-size +is the size in bytes of the module's global data area +(not the number of items in +.IR data-section ). +.PP +.I Entry-pc +is an integer index into the instruction stream that is the default entry point for this module. +It should point to the first instruction of a function. +Instructions are numbered from a program counter value of zero. +.PP +.I Entry-type +is the index of the type descriptor in the type section that corresponds to the function entry point set by +.IR entry-pc . +.SS Code Section +.PP +The code section describes a sequence of instructions for the virtual machine. +There are +.I code-size +instructions. +An instruction is encoded as follows: +.IP +.EX +.ft I +instruction: + opcode address-mode middle-data\*(Os source-data\*(Os dest-data\*(Os +opcode, address-mode: + byte +middle-data: + operand +source-data, dest-data: + operand operand\*(Os +.ft R +.EE +.PP +The one byte +.I opcode +specifies the instruction to execute; opcodes are +defined by the virtual machine specification. +.PP +The +.I address-mode +byte specifies the addressing mode of each of the three operands: middle, source and destination. The source and destination operands are encoded by three bits and the middle operand by two bits. The bits are packed as follows: +.IP +.EX +bit 7 6 5 4 3 2 1 0 + m1 m0 s2 s1 s0 d2 d1 d0 +.EE +.PP +The following definitions are used in the description of addressing modes: +.IP +.RS +.TP +.B OP +30 bit integer operand +.PD0 +.TP +.B SO +16 bit unsigned small offset from register +.TP +.B SI +16 bit signed immediate value +.TP +.B LO +30 bit signed large offset from register +.PD +.RE +.PP +The middle operand is encoded as follows: +.IP +.RS +.TF "00 SO(MP)" +.TP +.BI "00 " "none" +no middle operand +.TP +.B "01 $SI" +small immediate +.TP +.B "10 SO(FP)" +small offset indirect from FP +.TP +.B "11 SO(MP)" +small offset indirect from MP +.RE +.PD +.PP +The +.I middle-data +field is present only if the middle operand specifier of the +.I address-mode +is not `none'. +If the field is present it is encoded as an +.IR operand . +.PP +The source and destination operands are encoded as follows: +.IP +.RS +.TF "000 SO(SO(MP))" +.TP +.B "000 LO(MP)" +offset indirect from MP +.TP +.B "001 LO(FP)" +offset indirect from FP +.TP +.B "010 $OP" +30 bit immediate +.TP +.BI "011 " "\fInone\fP" +no operand +.TP +.B "100 SO(SO(MP))" +double indirect from MP +.TP +.B "101 SO(SO(FP))" +double indirect from FP +.TP +.B 110 +\fIreserved\fP +.TP +.B 111 +\fIreserved\fP +.RE +.PD +.PP +The +.I source-data +and +.I dest-data +fields are present only when the corresponding +.I address-mode +field is not `none'. +For offset indirect and immediate modes the field contains a single +.I operand +value. +For double indirect modes the values are encoded as two +.IR operands : +the first is the register indirect offset, and the second is the final indirect offset. +The offsets for double indirect addressing cannot be larger than 16 bits. +.SS Type Section +The type section contains +.I type-size +type descriptors describing the layout of pointers within data types. The format of each descriptor is: +.IP +.EX +.ft I +type-descriptor: + desc-number memsize mapsize map +desc-number, memsize, mapsize: + operand +map: + byte ... +.ft R +.EE +.PP +The +.I desc-number +is a small integer index used to identify the descriptor to instructions such as +.BR "new" . +.I Memsize +is the size in bytes of the memory described by this type. +.PP +The +.I mapsize +field gives the size in bytes of the following +.I "map" +array. +.I Map +is an array of bytes representing +a bit map where each bit corresponds to a word in memory. +The most significant bit corresponds to the lowest address. +For each bit in the map, +the word at the corresponding offset in the type is a pointer iff the bit is set to 1. +.SS Data Section +.PP +The data section encodes the contents of the +data segment for the module, addressed by +.B MP +at run-time. +The section contains a sequence of items of the following form: +.IP +.EX +.ft I +data-item: + code count\*(Os offset data-value ... +code: + byte +count, offset: + operand +.EE +.PP +Each item contains an +.I offset +into the section, followed by one or more data values in +a machine-independent encoding. +As each value is placed in the data segment, the offset is incremented by the size of the datum. +.PP +The +.I code +byte has two 4-bit fields. +The bottom 4 bits of +.I code +gives the number of +.I data-values +if there are between 1 and 15; +if there are more than 15, +the low-order field is zero, and a following +.I operand +gives the count. +.PP +The top 4 bits of +.I code +encode the type of each +.I data-value +in the item, which determines its encoding. +The defined values are: +.IP +.RS +.TF 0000 +.TP +.B 0001 +8 bit bytes +.TP +.B 0010 +32 bit integers, one +.I word +each +.TP +.B 0011 +string value encoded by +.IR utf (6) +in +.I count +bytes +.TP +.B 0100 +real values in IEEE754 canonical representation, 8 bytes each +.TP +.B 0101 +Array, represented by two +.I words +giving type and length +.TP +.B 0110 +Set base for data items: one +.I word +giving an array index +.TP +.B 0111 +Restore base for data items: +no operands +.TP +.B 1000 +64 bit big, 8 bytes each +.RE +.PD +.PP +The loader maintains a current base address and a stack of addresses. +Each item's value is stored at the address formed by adding the current offset +to the current base address. +That address initially is the base of the module's data segment. +The `set base' operation immediately follows +an `array' +.IR data-item . +It stacks the current base address and sets the current base address to the +address of the array element selected by its operand. +The `restore base' operation sets the current base address to the +address on the top of the stack, and pops the stack. +.SS Module name +The module name immediately follows the data section. +It contains the name of the module implemented by the object file, +as a sequence of bytes in +UTF encoding, terminated by a zero byte. +.SS Link Section +The link section contains an array of +.I link-size +external linkage items, +listing the functions exported by this module. +Each variable-length item contains the following: +.IP +.EX +.ft I +link-item: + pc desc sig fn-name +pc, desc: + operand +sig: + word +fn-name: + string +.ft R +.EE +.PP +.I Fn-name +is the name of an exported function. +Adt member functions appear with their +full names: the member name qualified by the adt name, in the form +.IB adt-name . member-name, +for instance +.BR Iobuf.gets . +.PP +.I Pc +is the instruction number of its entry point. +.I Desc +is an index value that selects a type descriptor in the type section, +which gives the type of the function's stack frame. +.I Sig +is an integer hash of the type signature of the function, used in type checking. +.SS Import Section +The optional import section lists all those functions imported from other +modules. This allows type checking at load time. The size of the section in +bytes is given at the start in operand form. For each module imported there +is a list of functions imported from that module. For each function, its type signature (a word) is followed by +a 0 terminated list of bytes representing its name. +.SS Handler Section +The final optional section lists all exception handlers declared in the module. The number +of such handlers is given at the start of the section in operand form. For each one, its format +is: +.IP +.EX +.ft 1 +handler: + offset pc1 pc2 desc nlab exc-tab +offset, pc1, pc2, desc, nlab: + operand +exc-tab: + exc-name pc ... exc-name pc pc +exc-name: + string +pc: + operand +.ft R +.EE +.PP +Each handler specifies the frame offset of its exception structure, the range of pc values it covers (from pc1 up to but not including pc2), the type descriptor of any +memory that needs destroying by the handler (or -1 if none), the number of +exceptions in the handler and then the exception table itself. The latter consists +of a list of exception names and the corresponding pc to jump to when this +exception is raised. This is then followed by the pc to jump to in any wildcard (*) case +or -1 if this is not applicable. +.SH SEE ALSO +.IR asm (1), +.IR dis (2), +.IR sbl (6) +.br +``The Dis Virtual Machine Specification'', Volume 2 diff --git a/static/inferno/man6/font.6 b/static/inferno/man6/font.6 new file mode 100644 index 00000000..b118ad6d --- /dev/null +++ b/static/inferno/man6/font.6 @@ -0,0 +1,102 @@ +.TH FONT 6 +.SH NAME +font, subfont \- external format for character fonts and subfonts +.SH DESCRIPTION +Fonts are constructed as a list defining a range of Unicode characters +and a subfont containing the character images for that range. +Subfonts are not directly accessible from Limbo. +.PP +External fonts are described by a plain text file that can be read using +.BR Font.open ; +.B Font.build +reads the same format from a string rather than a file. +(see +.IR draw-font (2)). +.PP +The format is a header followed by any number of +subfont range specifications. +The header contains two numbers: the height and the ascent, both in pixels. +The height is the inter-line spacing and the ascent is the distance +from the top of the line to the baseline. These numbers should be chosen +to display consistently all the subfonts of the font. +A subfont range specification contains two or three numbers and a file name. +The numbers are the inclusive range of characters covered by the subfont, +with an optional starting position within the subfont, +and the file name names an external file holding the subfont data. +The minimum number of a covered range is mapped to the specified starting position +(default zero) of the +corresponding subfont. +If the subfont file name does not begin with a slash, it is taken relative to the +directory containing the font file. +Each field must be followed by some white space. +Each numeric field may be C-format decimal, octal, or hexadecimal. +.PP +External subfonts are represented in a more rigid format: +an image containing character images, +followed by a subfont header, followed by character information. +The image has the format for external image files described in +.IR image (6). +The subfont header has 3 +decimal strings: +.BR n , +.BR height , +and +.BR ascent . +Each number is right-justified and blank padded in 11 characters, followed by a blank. +The character +.B info +consists of +.BR n +1 +6-byte entries, each giving values called +.B x +(2 bytes, low order byte first), +.BR top , +.BR bottom , +.BR left , +and +.BR width +for the successive characters from left to right (in increasing Unicode order) in the +subfont. +The rectangle holding the character is +.B (x, +.B top, +.B xn, +.BR bottom) , +where +.B xn +is the +.B x +field of the next character. +When the character is to be drawn in an image at point +.BR p , +the rectangle is placed at +.B (p.x+left , +.B p.y) +and the next character to be drawn is placed at +.B (p.x+width , +.B p.y) +The +.B x +field of the last +entry +is used to calculate the image width +of the previous character; the other fields in the last +entry +are irrelevant. +.PP +Note that the convention of using the character with value zero (NUL) to represent +characters of zero width (see the description of +.B Image.text +in +.IR draw-image (2)) +means that fonts should have, as their zeroth character, +one with non-zero width. +.SH FILES +.TF /fonts/* +.TP +.B /fonts/* +font directories +.SH "SEE ALSO" +.IR draw-intro (2), +.IR draw-font (2), +.IR draw (3) diff --git a/static/inferno/man6/image.6 b/static/inferno/man6/image.6 new file mode 100644 index 00000000..8bd91298 --- /dev/null +++ b/static/inferno/man6/image.6 @@ -0,0 +1,178 @@ +.TH IMAGE 6 +.SH NAME +image \- external format for images +.SH DESCRIPTION +Images are described in +.IR draw-image (2), +and the definition of pixel values is in +.IR colour (6). +Fonts and images are stored in external files +in machine-independent formats. +.PP +Image files are read and written using +.B Display.readimage +and +.B Display.writeimage +(see +.IR draw-display (2)). +An image is a rectangular array of pixels, +where each pixel is organised as one or more channels, +as determined by the image. +.PP +An uncompressed image file starts with 5 +strings: +.BR chan , +.BR r.min.x , +.BR r.min.y , +.BR r.max.x , +and +.BR r.max.y . +Each is right-justified and blank padded in 11 characters, followed by a blank. +The +.B chan +value is a textual string describing the pixel format +(see below for a discussion of channel descriptors), +and the rectangle coordinates are decimal strings. +The rest of the file contains the +.B r.max.y-r.min.y +rows of pixel data. +A +.I row +consists of the byte containing pixel +.B r.min.x +and all the bytes up to and including the byte containing pixel +.BR r.max.x -1. +For images with depth +.I d +less than eight, a pixel with x-coordinate = +.I x +will appear as +.I d +contiguous bits in a byte, with the pixel's high order bit +starting at the byte's bit number +.if t \fIw\fP\(mu(\fIx\fP mod (8/\fIw\fP)), +.if n w*(x mod (8/w)), +where bits within a byte are numbered 0 to 7 from the +high order to the low order bit. +Rows contain integral number of bytes, so there may be some unused +pixels at either end of a row. +If +.I d +is greater than 8, the definition of images requires that it be a multiple of 8, so +pixel values take up an integral number of bytes. +.PP +The +.B Image.readpixels +and +.B Image.writepixel +operations described in +.IR draw-image (2) +also deal with rows in this format, stored in Limbo arrays of bytes. +.PP +The channel format string is a sequence of two-character channel descriptions, +each comprising a letter +.RB ( r +for red, +.B g +for green, +.B b +for blue, +.B a +for alpha, +.B m +for colour-mapped, +.B k +for greyscale, +and +.B x +for ``don't care'') +followed by a number of bits per pixel. +The sum of the channel bits per pixel is the +depth of the image, which must be either +a divisor or a multiple of eight. +It is an error to have more than +one of any channel but +.BR x . +An image must have either a greyscale channel; a colour-mapped channel; +or red, green, and blue channels. +If the alpha channel is present, it must be at least as deep as any other channel. +.PP +The channel string defines the format of the pixels in the file, +and should not be confused with ordering of bytes in the file, +which is little-endian. +In particular +.B 'r8g8b8' +pixels have byte ordering blue, green, and red within the file. +See +.IR colour (6) +for more details of the pixel format. +.PP +A previous Inferno image format replaces the channel string +with a decimal +.IR ldepth , +which is the base two logarithm of the number +of bits per pixel in the image. +In this case, +.IR ldepth s +0, 1, 2, and 3 +correspond to channel descriptors +.BR k1 , +.BR k2 , +.BR k4 , +and +.BR m8 , +respectively. +Furthermore, the pixel values are inverted compared to the current colour maps; +in particular, an all-zero pixel is white and all-ones is black. +That format is still readable but cannot be written; older files should be converted to the +newer one. +The image file reading operations automatically invert the pixel values to produce correct results. +.PP +A compressed image file begins with the 11 bytes "compressed\en", +immediately followed by a header as described above, followed by the +image data. +(The pixel data once uncompressed has the format described above.) +The rest of the file is a string of compression blocks, each encoding +a number of rows of the image's pixel data. Compression blocks +are at most 6024 bytes long, so that they fit comfortably in a +single 9P message. Since a compression block must encode a +whole number of rows, there is a limit (about 5825 bytes) to the width of images +that may be encoded. Most wide images are in subfonts, +which, at 1 bit per pixel (the usual case for fonts), can be 46600 pixels wide. +.PP +A compression block begins with two decimal strings of twelve bytes each. +The first number is one more than the +.B y +coordinate of the last row in the block. The second is the number +of bytes of compressed data in the block, not including the two decimal strings. +This number must not be larger than 6000. +.PP +Pixels are encoded using a version of Lempel & Ziv's sliding window scheme LZ77, +best described in J A Storer & T G Szymanski +`Data Compression via Textual Substitution', +JACM 29#4, pp. 928-951. +.PP +The compression block is a string of variable-length +code words encoding substrings of the pixel data. A code word either gives the +substring directly or indicates that it is a copy of data occurring +previously in the pixel stream. +.PP +In a code word whose first byte has the high-order bit set, the rest of the +byte indicates the length of a substring encoded directly. +Values from 0 to 127 encode lengths from 1 to 128 bytes. +Subsequent bytes are the literal pixel data. +.PP +If the high-order bit is zero, the next 5 bits encode +the length of a substring copied from previous pixels. Values from 0 to 31 +encode lengths from 3 to 34 bytes. The bottom two bits of the first byte and +the 8 bits of the next byte encode an offset backward from the current +position in the pixel data at which the copy is to be found. Values from +0 to 1023 encode offsets from 1 to 1024. The encoding may be `prescient', +with the length larger than the offset, which works just fine: the new data +is identical to the data at the given offset, even though the two strings overlap. +.SH "SEE ALSO" +.IR draw-intro (2), +.IR draw-image (2), +.IR draw (3), +.IR colour (6), +.IR font (6) diff --git a/static/inferno/man6/json.6 b/static/inferno/man6/json.6 new file mode 100644 index 00000000..ad972949 --- /dev/null +++ b/static/inferno/man6/json.6 @@ -0,0 +1,68 @@ +.TH JSON 6 +.SH NAME +json \- javascript object notation +.SH DESCRIPTION +.I JSON +is a textual data transport encoding for a small collection of basic and structured values: +.BR null , +booleans, numbers, strings, arrays, and objects (property/value list). +It is a subset of JavaScript (ECMAScript). +.IR Json (2) +describes a Limbo module that can read and write streams of JSON-encoded data. +.PP +The encoding syntax and its interpretation is defined by Internet RFC4627, but is briefly summarised here: +.IP +.EX +.ft R +.ta \w'\f2simple-xxx\f1'u +\w'\ ::=\ 'u +\f2text\fP ::= \f2array\fP | \f2object\fP + +\f2value\fP ::= \f5null\fP | \f5true\fP | \f5false\fP | \f2number\fP | \f2string\fP | \f2array\fP | \f2object\fP + +\f2object\fP ::= \f5'{'\fP [\f2pair\fP (\f5','\fP \f2pair\fP)*] \f5'}'\fP +\f2pair\fP ::= \f2string\fP \f5':'\fP \f2value\fP + +\f2array\fP ::= \f5'['\fP [\f2value\fP (\f5','\fP \f2value\fP)*] \f5']'\fP + +\f2number\fP ::= \f2int\fP \f2frac\fP? \f2exp\fP? +\f2int\fP ::= \f5'-'\fP? \f5[0-9]\fP | \f5[1-9][0-9]\fP+ +\f2frac\fP ::= \f5'.'\fP \f5[0-9]\fP+ +\f2exp\fP ::= \f5[eE][-+]\fP? \f5[0-9]\fP+ + +\f2string\fP ::= \f5'"'\fP \f2char\fP* \f5'"'\fP +\f2char\fP ::= \f5[^\ex00-\ex1F"\e\e]\fP | + \f5'\e"'\fP | \f5'\e/'\fP | \f5'\eb'\fP | \f5'\ef'\fP | \f5'\en'\fP | \f5'\er'\fP | \f5'\et'\fP | + \f5'\eu'\fP \f2hex\fP \f2hex\fP \f2hex\fP \f2hex\fP +\f2hex\fP ::= \f5[0-9a-fA-F]\fP +.EE +.PD +.DT +.PP +A sequence of blank, tab, newline or carriage-return characters (`white space') can appear +before or after opening and closing brackets and braces, colons and commas, +and is ignored. +The +.B null +represents a null value of any type. +The +.I strings +in the +.I pairs +of an +.I object +are intended to represent member names, and should be unique within that object. +Note that array and object denotations can be empty. +Also note that the RFC wants applications to exchange a +.I text +(ie, object or array) not an arbitrary +.IR value . +.SH SEE ALSO +.IR json (2), +.IR sexprs (6), +.IR ubfa (6) +.br +.br +D Crockford, ``The application/json Media Type for JavaScript Object Notation (JSON)'', +.IR RFC4627 . +.br +.B "http://www.json.org/" diff --git a/static/inferno/man6/keyboard.6 b/static/inferno/man6/keyboard.6 new file mode 100644 index 00000000..e2a210fe --- /dev/null +++ b/static/inferno/man6/keyboard.6 @@ -0,0 +1,170 @@ +.TH KEYBOARD 6 +.SH NAME +keyboard \- how to type characters +.SH DESCRIPTION +Keyboards are idiosyncratic. +The differing conventions of host operating systems +make them more so for Inferno. +In all implementations, +it should be obvious how to type ordinary +.SM ASCII +characters, +backspace, tab, escape, and newline. +When typing into the Inferno environment, the key labelled +.B Return +or +.B Enter +generates a newline +.RB ( 0x0A ); +if there is a key labelled +.B Line +.BR Feed , +it generates a carriage return +.RB ( 0x0D ); +Inferno eschews CRLFs. +All control characters are typed in the usual way; +in particular, control-J is a line feed and control-M a carriage return. +.PP +In native mode, +on the PC and some other machines, the following +extra conventions might also be used. +The key labelled +.B Caps +.B Lock +acts as an additional control key. +The character erase key generates backspace. +The key labelled +.B Del +or +.B Delete +generates the delete character +.RB ( 0x7F ). +The plethora of function keys generate values in the Unicode +user-defined space, as defined by +.B /include/keyboard.h +and +.BR /module/keyboard.m . +They are fitfully supported by applications, but +.B "Page\ Up" +and +.B "Page\ Down" +are often understood by Tk applications. +.PP +Characters in Inferno are runes (see +.IR utf (6)). +Any rune can be typed using a compose key followed by several +other keys. +The compose key is implementation-dependent, and +is also generally near the lower right of the main key area: +either +.B Alt +key on the PC, +and in X11 implementations, whatever X11 regards +as +.B Alt +or +.BR Meta . +After typing the compose key, type a capital +.L X +and exactly four hexadecimal characters (digits and +.L a +to +.LR f ) +to type a single rune with the value represented by +the typed number. +There are shorthands for many characters, comprising +the compose key followed by a two- or three-character sequence. +There are several rules guiding the design of the sequences, as +illustrated by the following examples. +The full list is too long to repeat here, but is contained in the file +.L /lib/keyboard +in a format suitable for +.IR grep (1). +.IP +A repeated symbol gives a variant of that symbol, e.g., +.B ?? +yields ¿\|. +.IP +ASCII digraphs for mathematical operators give the corresponding operator, e.g., +.B <= +yields ≤. +.IP +Two letters give the corresponding ligature, e.g., +.B AE +yields Æ. +.IP +Mathematical and other symbols are given by abbreviations for their names, e.g., +.B pg +yields ¶. +.IP +Chess pieces are given by a +.B w +or +.B b +followed by a letter for the piece +.RB ( k +for king, +.B q +for queen, +.B r +for rook, +.B n +for knight, +.B b +for bishop, or +.B p +for pawn), +e.g., +.B wk +for a white king. +.IP +Greek letters are given by an asterisk followed by a corresponding latin letter, +e.g., +.B *d +yields δ. +.IP +Cyrillic letters are given by an at sign followed by a corresponding latin letter or letters, +e.g., +.B @ya +yields Ñ. +.IP +Script letters are given by a dollar sign followed by the corresponding regular letter, +e.g., +.B $F +yields ℱ. +.IP +A digraph of a symbol followed by a letter gives the letter with an accent that looks like the symbol, e.g., +.B ,c +yields ç. +.IP +Two digits give the fraction with that numerator and denominator, e.g., +.B 12 +yields ½. +.IP +The letter s followed by a character gives that character as a superscript, e.g., +.B s1 +yields ¹. +.IP +Sometimes a pair of characters give a symbol related to the superimposition of the characters, e.g., +.B cO +yields ©. +.IP +A mnemonic letter followed by $ gives a currency symbol, e.g., +.B l$ +yields £. +.PP +Note the difference between ß (ss) and µ (micron) and +the Greek β and μ. +.SH FILES +.TF "/lib/keyboard " +.TP +.B /lib/keyboard +sorted table of characters and keyboard sequences +.SH "SEE ALSO" +.IR acme (1), +.IR wm-brutus (1), +.IR intro (1), +.IR unicode (1), +.IR cons (3), +.IR utf (6), +.IR kbdputc (10.2) diff --git a/static/inferno/man6/keys.6 b/static/inferno/man6/keys.6 new file mode 100644 index 00000000..02e7cfee --- /dev/null +++ b/static/inferno/man6/keys.6 @@ -0,0 +1,52 @@ +.TH KEYS 6 +.SH NAME +keys \- secrets shared with signer +.SH DESCRIPTION +The file +.B /keydb/keys +exists only on a host acting as a `signer' (authentication server, Certifying Authority). +It +holds a password entry +for each user registered with an Inferno server. +Each entry contains a user name, a password, the time at which the entry +expires, and the entry's status. +The password is the secret shared between the user +and signer (authentication server), +allowing the signer to sign a certificate to authenticate a +user's public key to others, using the secret to check the user's identity. +The actual secret is not stored, but rather its SHA-1 hash. +.PP +The file is encrypted with a secret provided by the signer's administrator; +normally that secret is entered once when +authentication services are started by +.B svc/auth +on the host acting as signer +(see +.IR svc (8)). +The file should also be readable and writable only by the user identity +that runs the signing service +(ie, +mode +.BR 600 , +see +.IR chmod (1)). +Entries are usually accessed only through +the name space provided by +.IR keyfs (4), +which decrypts the file into internal data structures given the administrative key, +and makes each entry visible as a separate directory. +Using that name space, +entries are added and updated by an administrator using +.IR changelogin (8), +a user can change a secret using +.IR passwd (1) +via +.IR keysrv (4), +and it is accessed for signing by +.IR logind (8) +to obtain the secret used to verify the identity +of a client requesting a certificate +(typically via +.IR security-login (2)). +.SH FILES +.B /keydb/keys diff --git a/static/inferno/man6/keytext.6 b/static/inferno/man6/keytext.6 new file mode 100644 index 00000000..173806e5 --- /dev/null +++ b/static/inferno/man6/keytext.6 @@ -0,0 +1,124 @@ +.TH KEYTEXT 6 +.SH NAME +keytext \- textual form of Inferno public/private keys +.SH DESCRIPTION +.IR Keyring-certtostr (2) +defines a set of functions that convert between textual forms of the elements of the +Inferno public-key authentication system and their internal data types. +The textual form is used for key storage and as the transport format for the authentication protocol +.IR auth (6). +In storage and transport each encoded value is encapsulated by the record-oriented +encoding defined in +.IR keyring-getmsg (2). +The format represents public and private keys, and signer's certificates. +In this context a +.I certificate +is a time-limited cryptographically signed hash of some other value +(usually a public key) and contains neither that value nor the signer's key, which is assumed to be +available elsewhere. +.PP +All values are represented by a sequence of newline-separated text fields. +The type of any given value is determined by its context. +Each type of value has a common prefix that includes an algorithm identifier, followed by a sequence of algorithm-dependent fields: +.IP +.EX +.ft R +.ta \w'\f2elgamal-public-keyxx\f1'u +\w'\ ::=\ 'u +.fi +.IR "authinfo" " ::= " "signer-public-key certificate !private-key big-alpha big-p" +.br +.IR certificate " ::= " "sigalg hashalg signer-name exp-time *-sig" +.br +.IR sigalg " ::= " +.BR "rsa" " | " +.BR "dsa" " | " +.BR "elgamal" +.br +.IR hashalg " ::= " +.BR sha1 " | " +.B md5 +.br +.IR "*-key" " ::= " "sigalg owner-name ..." +.sp +.IR "rsa-public-key" " ::= " +.B rsa +.I owner-name +.I "big-n big-ek" +.br +.IR "rsa-private-key" " ::= " +.B rsa +.I owner-name +.I "big-n big-ek" +.br +.I " !big-dk !big-p !big-q !big-kp !big-kq !big-c2" +.br +.IR "dsa-public-key" " ::= " +.B dsa +.I owner-name +.I "big-p big-q big-alpha big-key" +.br +.IR "dsa-private-key" " ::= " +.B dsa +.I owner-name +.I "big-p big-q big-alpha big-key !big-secret" +.sp +.IR rsa-sig " ::= " "big-val" +.br +.IR dsa-sig " ::= " "big-r big-s" +.br +.IR elgamal-sig " ::= " "big-r big-s" +.EE +.PP +Each value labelled as +.RI ` big- ' +is an unsigned multiple-precision integer +from +.IR keyring-ipint (2), +represented as a sequence of bytes with +in big-endian order, +as produced by +.BR IPint->iptobytes +with an extra leading zero byte added if the top bit of the first byte is set, +and then encoded in base-64 (as by +.IR encoding (2)). +Each value labelled +.RI ` -name ' +is +.IR utf (6) +text not containing a newline; +it is interpreted by an application and need not be a name. +The expiry time +.I exp-time +is represented in decimal as seconds from the Epoch (1 January 1970 00:00 GMT); +if it is zero, no expiry time is set. +A label prefixed by +.RB ` ! ' +marks a value that should be considered secret. +.PP +The hash of a key is computed over its textual encoding according to the syntax above. +A certificate's signature value is produced by digitally signing using +.I sigalg +the hash (using +.IR hashalg ) +of the concatenation of the value to be authenticated, the +.I signer-name +in +.IR utf (6), +a single space, and the +.I exp-time +in decimal (with no leading zeroes). +When checking a signature, comparisons are done with values in internal multiple-precision form +(ie, as +.BR IPint s), +not in base-64 form. +.SH SEE ALSO +.IR keyring-certtostr (2), +.IR keyring-getmsg (2), +.IR factotum (4), +.IR keys (6), +.IR getauthinfo (8) +.SH BUGS +The byte-array encoding of +.B IPint +should not require the leading zero; +it does so for compatibility with old keys. diff --git a/static/inferno/man6/login.6 b/static/inferno/man6/login.6 new file mode 100644 index 00000000..e43d085b --- /dev/null +++ b/static/inferno/man6/login.6 @@ -0,0 +1,109 @@ +.TH LOGIN 6 +.SH NAME +login \- key exchange protocol +.SH DESCRIPTION +The following encrypted key exchange protocol is used between a client such as +.B login +in +.IR security-login (2), +and a certificate signing process such as +.IR logind (8), +to justify the latter's issuing a certificate that can +later be presented to an Inferno service +to establish credentials. +.PP +A shared secret must previously be agreed between +user and certifying authority (CA). +It is used by the protocol to establish a secure channel between user and CA. +.PP +In the description below: +.TF key(m) +.PD +.TP +.I ivec +is an 8 byte random number (`initialisation vector') chosen for +this conversation. +.TP +.I sha +is the 20 byte secure hash (SHA-1) of the password +.TP +.I key +is an 8 byte secret formed as follows: +.EX +.br +key[0] = ivec[0]^sha[0]^sha[8]^sha[16] +key[1] = ivec[1]^sha[1]^sha[9]^sha[17] +.EE +\&... +.EX +key[5] = ivec[5]^sha[5]^sha[13]; +key[6] = ivec[6]^sha[6]^sha[14]; +key[7] = ivec[7]^sha[7]^sha[15]; +.EE +.TP +.I alpha +is a Diffie-Hellman base used system wide +.TP +.I p +is a Diffie-Hellman modulus used system wide +.TP +.I "key(m)" +is +.I m +encrypted using the RC4 algorithm with +.IR key . +.TP +.I Rx +is a random number of the same order as +.IR p . +.TP +.I "secret" +is the Diffie-Hellman secret +.IR "alpha**(r0*r1) mod p" . +.PP +The protocol follows. ``user→CA xxx'' means that the user +sends the message ``xxx'' to the certifying authority. +Any party can send an error instead of a message at any +point to terminate the protocol. +.IP +.EX +user→CA name +CA→user ACK +.sp 1v +user→CA ivec +CA→user key(alpha**r0 mod p), alpha, p +.sp 1v +user→CA alpha**r1 mod p +CA→user CA's public key, SHA(CA's public key + secret) +.sp 1v +user→CA user's public key, SHA(user's public key + secret) +CA→user user's public key certificate +.EE +.PP +The complexity of this protocol is intended to shield the password. +To start a clear text attack against the password, one +needs to first attack the Diffie-Hellman exponential +to determine +.IR "alpha**r0 mod p" . +A possible weakness is that the encrypted quantity +is base64 encoded, constraining +the possible values of each byte. +This could aid a brute force attack. +.PP +.I Alpha +and +.I p +are sent unprotected, though the user code does a few sanity checks +on the values it receives. +This is another likely point of attack. +We should like to know about any. +.PP +The role of +.I ivec +is to foil any replay attacks by someone spoofing the CA +though this is probably overkill. +.SH SEE ALSO +.IR security-intro (2), +.IR security-login (2), +.IR logind (8), +.IR signer (8) diff --git a/static/inferno/man6/man.6 b/static/inferno/man6/man.6 new file mode 100644 index 00000000..142bfe84 --- /dev/null +++ b/static/inferno/man6/man.6 @@ -0,0 +1,248 @@ +.TH MAN 6 +.SH NAME +man \- manual page format +.SH DESCRIPTION +The Inferno manual pages are stored as text files in a format originally defined for use with the Unix and Plan 9 +.I troff +command, when used with the +.I man +macro package. +Within Inferno, the format is interpreted by the programs of +.IR man (1). +.PP +Except in +.L .LR +and +.L .RL +requests, any text argument denoted +.I t +in the request summary may be zero to six words. +Quotes +\fL"\fP ... \fL"\fP +may be used to include blanks in a `word'. +If +.I t +is empty, +the special treatment is applied to +the next text input line (the next line that doesn't begin with dot). +In this way, for example, +.B .I +may be used to italicize a line of more than 6 words, or +.B .SM +followed by +.B .B +to make small letters in `bold' font. +.PP +A prevailing indent distance is remembered between +successive indented paragraphs, +and is reset to default value upon reaching a non-indented paragraph. +Default units for indents +.I i +are ens. +.PP +The fonts are +.TP +.B R +roman, the main font, preferred for diagnostics +.PD 0 +.TP +.B I +italic, preferred for parameters, short names of commands, +names of manual pages, +and naked function names +.TP +.B B +`bold', actually the constant width font, +preferred for examples, file names, declarations, keywords, names of +.B struct +members, and literals +(numbers are rarely literals) +.TP +.B L +also the constant width font. +For graphical display and printing, +.BR L = B ; +when converted to plain text, the +arguments of the macros +.BR .L , +.BR .LR , +and +.B .RL +are printed in quotes; +preferred only where quotes really help (e.g. lower-case literals and +punctuation). +.PD +.LP +Type font and size are reset to default values +before each paragraph, and after processing +font- or size-setting macros. +.PP +The +.I man +format +admits equations and tables in the style of Unix +.I eqn +(equation setting) +and +.I tbl +(table layout) +preprocessors, +but do not support arguments on +.B .EQ +and +.B .TS +macros. +.PP +These strings are predefined by +.IR man : +.TP +.B \e*R +Trademark symbol +.br +.ns +.TP +.B \e*S +Change to default type size. +.SH FILES +.TF /man/1/INDEX +.TP +.B /man/*/* +Source files of manual pages. +.SH SEE ALSO +.IR man (1) +.SH REQUESTS +.ta \w'.TH n c x 'u +\w'Cause 'u +\w'Argument\ 'u +.if 1 .di xx +.if 1 \ka +.if 1 .br +.if 1 .di +.if 1 .in \nau +.ti0 +Request Cause If no Explanation +.ti0 + Break Argument +.ti0 +\&\fL.B\fR \fIt\fR no \fIt\fR=n.t.l.* Text +.I t +is `bold'. +.ti0 +\&\fL.BI\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating bold and italic. +.ti0 +\&\fL.BR\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating bold and Roman. +.ti0 +\&\fL.DT\fR no Restore default tabs. +.ti0 +\&\fL.EE\fR yes End displayed example +.ti0 +\&\fL.EX\fR yes Begin displayed example +.ti0 +\&\fL.HP\fR \fIi\fR yes \fIi\fR=p.i.* Set prevailing indent to +.IR i . +Begin paragraph with hanging indent. +.ti0 +\&\fL.I\fR \fIt\fR no \fIt\fR=n.t.l. Text +.I t +is italic. +.ti0 +\&\fL.IB\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating italic and bold. +.ti0 +\&\fL.IP\fR \fIx i\fR yes \fIx\fR="" Same as \fL.TP\fP with tag +.IR x . +.ti0 +\&\fL.IR\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating italic and Roman. +.ti0 +\&\fL.L\fR \fIt\fR no \fIt\fR=n.t.l. Text +.I t +is literal. +.ti0 +\&\fL.LP\fR yes Same as \fL.PP\fP. +.ti0 +\&\fL.LR\fR \fIt\fR no Join 2 +words of +.I t +alternating literal and Roman. +.ti0 +\&\fL.PD\fR \fId\fR no \fId\fR=\fL.4v\fP Interparagraph distance is +.IR d . +.ti0 +\&\fL.PP\fR yes Begin paragraph. +Set prevailing indent to default. +.ti0 +\&\fL.RE\fR yes End of relative indent. +Set prevailing indent to amount of starting \fL.RS\fP. +.ti0 +\&\fL.RI\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating Roman and italic. +.ti0 +\&\fL.RL\fR \fIt\fR no Join 2 or 3 +words of +.I t +alternating Roman and literal. +.ti0 +\&\fL.RS\fR \fIi\fR yes \fIi\fR=p.i. Start relative indent, +move left margin in distance +.IR i . +Set prevailing indent to default for nested indents. +.ti0 +\&\fL.SH\fR \fIt\fR yes \fIt\fR="" Subhead; reset paragraph distance. +.ti0 +\&\fL.SM\fR \fIt\fR no \fIt\fR=n.t.l. Text +.I t +is small. +.ti0 +\&\fL.SS\fR \fIt\fR no \fIt\fR="" Secondary subhead. +.ti0 +\&\fL.TF\fR \fIs\fR yes Prevailing indent is wide as +string +.I s +in font +.BR L ; +paragraph distance is 0. +.ti0 +\&\fL.TH\fR \fIn c x\fR yes Begin page named +.I n +of chapter +.IR c; +.I x +is extra commentary, e.g. `local', for page head. +Set prevailing indent and tabs to default. +.ti0 +\&\fL.TP\fR \fIi\fR yes \fIi\fR=p.i. Set prevailing indent to +.IR i . +Restore default indent if +.IR i =0. +Begin indented paragraph +with hanging tag given by next text line. +If tag doesn't fit, place it on separate line. +.ti0 +\&\fL.1C\fR yes Equalize columns and return to 1-column output +.ti0 +\&\fL.2C\fR yes Start 2-column nofill output +.PP +.ti0 +* n.t.l. = next text line; p.i. = prevailing indent +.SH BUGS +There's no way to include literal double quote marks +.B \&" +in font-alternation macros, such as +.LR .BI . +.br +There is no direct way to suppress column widows in 2-column +output; the column lengths may be adjusted by inserting +.L .sp +requests before the closing +.LR .1C . diff --git a/static/inferno/man6/namespace.6 b/static/inferno/man6/namespace.6 new file mode 100644 index 00000000..09c12a25 --- /dev/null +++ b/static/inferno/man6/namespace.6 @@ -0,0 +1,165 @@ +.TH NAMESPACE 6 +.SH NAME +namespace \- name space description file +.SH DESCRIPTION +Namespace files describe how to construct a name space from scratch, +or add to an existing name space. +The files are interpreted by +.IR newns (2), +invoked by commands such as +.IR logon (1) +and by other system services. +.PP +The name space description file contains one or more +lines each of which specifies one name space operation. +Empty lines and lines with +.B # +as the first non-space character are ignored. +Environment variables of the form +.BI $ name +are expanded within arguments, where +.I name +is a string terminated by white space, or one of the characters +.LR / , +.LR . , +or +.LR $ . +.PP +The known operations and their arguments are: +.TP +.B "bind [-abci] \f2old\fP \f2new\fP" +Use +.I new +as an alias for file or directory +.IR old . +Options +.BR a , +.BR b +and +.BR c +translate to flag values +.BR Sys\->MAFTER , +.B Sys\->MBEFORE +and +.B Sys\->MCREATE +of +.IR sys-bind (2). +If neither +.B a +nor +.B b +are given, the default is +.BR Sys\->MREPL . +Option +.B i +means to ignore errors. +.TP +.B cd \f2directory\fP +Change working directory to +.IR directory . +.TP +.B fork +Split the name space before modification. +This is equivalent to passing a value of +.B Sys->FORKNS +to +.IR sys-pctl (2). +.TP +.B "mount [-abc9iA] [-k \f2keyfile\fP] [-C \f2alg\fP] [\f2net\fP!]\f2machine\fP[!\f2svc\fP] \f2dir\fP [\f2spec\fP]" +Mount the file tree of +.I machine +upon directory +.IR dir . +The default service is +.BR styx . +Options +.BR a , +.BR b , +.B c +and +. B i +are the same as for +.BR bind, +option +.BR A +is the same for mount. +The tokens +.I dir +and +.I spec +translate to +.I old +and +.I aname +of +.B mount +as described under +.IR sys-bind (2). +The +.BR -k , +.B -C +and +.B -9 +options are the same as those for the +.I mount +command (see +.IR bind (1)). +.TP +.B "import [-abc9i] [\f2net\fP!]\f2machine\fP[!\f2svc\fP] [\f2remotedir\fP] \f2dir\fP" +Import a directory from a remote Plan 9 +.I machine +and make it appear on directory +.IR dir . +Options +.BR a , +.BR b , +.BR c +and +.B i +are the same as for +.BR mount . +By default, +.I remotedir +is assumed to be the same name as +.IR dir . +The default service is +.BR exportfs . +(Currently this operation works only under native Inferno and Plan 9.) +.TP +.B new +Create a new name space in which the current directory +becomes the root directory; +typically used after +.BR cd . +This is equivalent to passing a value of +.B Sys->NEWNS +to +.IR sys-pctl (2). +.TP +.B nodev +Disallow device attaches. +This is equivalent to passing a value of +.B Sys->NODEVS +to +.IR sys-pctl (2). +.TP +.B unmount [-i] [\f2name\fP] \f2from\fP +If two arguments are given, undo a +.B bind +or +.B mount +with the same arguments. +If only one argument is given, everything bound to or mounted on +.I from +is unmounted. +The +.B -i +option means ignore errors. +.TP +.BI "\&." " path" +Include the name space description file +.IR path . +.SH SEE ALSO +.IR nsbuild (1), +.IR wm (1), +.IR newns (2) diff --git a/static/inferno/man6/ndb.6 b/static/inferno/man6/ndb.6 new file mode 100644 index 00000000..e2bc7ab6 --- /dev/null +++ b/static/inferno/man6/ndb.6 @@ -0,0 +1,219 @@ +.TH NDB 6 +.SH NAME +ndb \- network data base +.SH SYNOPSIS +.B /lib/ndb/local +.br +.B /lib/ndb/inferno +.br +.B /lib/ndb/dns +.br +.B /lib/ndb/common +.SH DESCRIPTION +Network configuration data is stored in one or more files in the directory +.BR /lib/ndb , +in the attribute data base format defined by +.IR attrdb (6). +Most applications that use it start with +.B /lib/ndb/local +by default. +That can refer (using a +.B database +entry) to other files that form part of the same logical database. +They are stored in distinct files to allow different configurations +to avoid duplicating data by sharing some common content. +For example, +.B /lib/ndb/common +associates service names with port numbers for Internet protocols, +and +.B /lib/ndb/inferno +provides the Inferno-specific port mapping. +A database is automatically reread if any component file has +changed since it was last read (based on its modification time). +.PP +A network database gives particular meaning to the following attributes: +.TF dnsdomainxx +.TP +.B auth +name or address of authentication server +.TP +.B bootf +name of the file to send to a device on request when booting +.TP +.B dns +name or address of DNS resolver (see also the +.B ns +attribute below) +.TP +.B dnsdomain +domain in which the local host lives (used to qualify unqualified names) +.TP +.B dom +Internet domain name (host or DNS zone) +.TP +.B ether +Ethernet address in the form accepted by +.IR ether (2) +.TP +.B fs +name or address of file server +.TP +.B il +IL service name +.TP +.B infernosite +empty-valued attribute that labels default site parameters +.TP +.B ip +Internet address +.TP +.B ipgw +name or address of Internet gateway +.TP +.B ipmask +Internet network mask +.TP +.B ipnet +network or subnetwork name +.TP +.B ipv4proto +IPv4 protocol number (see also +.BR protocol ) +.TP +.B mx +mail exchanger +.TP +.B ns +name of a DNS name server for an associated +.B dom +.TP +.B port +port number for a service +.TP +.B protocol +protocol name +.TP +.B soa +start of area (value is empty if locally authoritative, or +.RB ` delegated ' +if another server is authoritative) +.TP +.B sys +system name (short local name for a host) +.TP +.B tcp +TCP service name +.TP +.B udp +UDP service name +.PD +.PP +Internet addresses and masks can be written in any form +accepted by +.IR Ip (2). +Network applications might use other attributes of their own, +which they document on their own pages. +.PP +.IR Cs (8) +interprets a host name of the form +.BI $ server +as referring to the set of names and addresses that are values +of the attribute +.I server +in the network data base. +Attributes in general use include some of those above, and the following: +.TF FILESERVER +.TP +.B FILESERVER +older name for file server +.B fs +file server +.TP +.B pop3 +mail reading service using the POP3 protocol +.TP +.B PROXY +firewall proxy for +.IR ftpfs (4) +.TP +.B SIGNER +Inferno authentication server running +.IR logind (8) +and/or +.IR signer (8) +.TP +.B smtp +mail delivery gateway using the SMTP protocol +.PD +.PP +Other such symbolic server names are mentioned in the manual pages for associated applications. +.PP +.IR Dns (8) +interprets +.BR dns +and +.BR dnsdomain +values in any +.B infernosite +entry, and +.BR dom , +.BR ip , +and +.BR ns +values more generally. +When resolving a domain name, +.I dns +looks first in this data base to see if there is a +.B dom +entry for the name, and if so, whether there is either an associated +.B ns +attribute giving a name server to ask, or an +.B ip +attribute giving the name's IP address. +Failing that, it works up the name hierarchy looking for name servers to ask. +Failing that, it looks for a +.B dnsdomain +entry with +.B dns +attributes listing other resolvers to ask. +Bootstrap data is commonly stored in +.BR /lib/ndb/dns ; +by default it defines the root name servers: +.IP +.EX +dom= # root + ns=a.root-servers.net + ns=b.root-servers.net + \f1...\fP +dom=a.root-servers.net ip=198.41.0.4 +dom=b.root-servers.net ip=128.9.0.107 + \f1...\fP +.EE +.SH EXAMPLE +Specify the site's default DNS domain name and resolvers for +.IR dns (8), +and a collection of symbolic service names for +.IR cs (8): +.IP +.EX +infernosite= + dnsdomain=vitanuova.com + dns=200.1.1.11 + dns=158.152.1.58 + dns=158.152.1.43 + SIGNER=doppio + FILESERVER=doppio + smtp=doppio + pop3=doppio + PROXY=doppio + GAMES=vivido + IRMSERVER=vivido +.EE +.SH FILES +.B /lib/ndb/* +.SH SEE ALSO +.IR attrdb (2), +.IR attrdb (6), +.IR bootpd (8), +.IR cs (8), +.IR dns (8) diff --git a/static/inferno/man6/plumbing.6 b/static/inferno/man6/plumbing.6 new file mode 100644 index 00000000..d28e26b8 --- /dev/null +++ b/static/inferno/man6/plumbing.6 @@ -0,0 +1,163 @@ +.TH PLUMBING 6 +.SH NAME +plumbing \- plumbing rules +.SH DESCRIPTION +Plumbing rules tell +.IR plumber (8) +how to route plumbing messages +generated by applications using +.IR plumbmsg (2). +.PP +The file is a set of rules separated by blank lines. +Each +rule +is a set of patterns followed by a set of actions. +The rules are interpreted in order. +The first rule whose patterns all match is applied, and no further +rules are examined. +Comments start with +.B # +and continue to end of line. +Single quotes protect special characters (use +.B '' +to get a single quote). +.PP +A +pattern +has the general form: +.IP +.I "field verb arg" +.PP +Each +.I field +corresponds to a field in the incoming plumbing message: +.RS +.TP +.B src +Source application +.TP +.B dst +Destination port +.TP +.B dir +Working directory +.TP +.B kind +Format of the data (eg, +.B text +or +.BR image ) +.TP +.B attr +A line of +.IB name = value +pairs +.TP +.B data +The message data (an array of bytes) +.RE +.PP +The verbs are: +.RS +.TF matches +.PD +.TP +.B is +Exact string comparison with +.I arg +.TP +.B matches +Regular expression comparison with +.I arg +.TP +.B isdir +.I Arg +must name an existing directory +.TP +.B isfile +.I Arg +must name an existing file +.TP +.B set +Set the value of the +.I field +to +.IR arg . +This verb operates in place, so put it after all other patterns in the rule. +.RE +.PP +The +.I arg +can refer to one of the following variables: +.RS +.TF "$0 to $9 " +.PD +.TP +.BR $0 " to " $9 +Substrings resulting from the most recent regular expression match: +.B $0 +is the entire substring; +.B $1 +the first parenthesised substring, etc. +.TP +.B $file +The file name examined by the last +.B isfile +verb. +.TP +.B $dir +The directory name examined by the last +.B isdir +verb. +.RE +.PP +The following actions are provided: +.RS +.TP +.BI "plumb to" " port" +Route the message to the given plumbing +.IR port . +.TP +.BI "plumb start" " command arg ..." +If no program is currently listening on the current rule's +.IR port , +start the +.I command +with the given arguments. +The +.RB ` $ ' +variables listed above can be used, to include part +of the message in the command line arguments to the program. +They are replaced in the command string by their actual values. +.RE +.PP +For example, the following rule sends the names of module files\- +file names ending with suffix +.RB ` .m '\- +to +.IR wm-brutus (1), +starting it if it is not already running: +.IP +.EX +kind is text +data matches '([a-zA-Z0-9]+\.m)(:[0-9]+)?' +data isfile /module/$1 +data set /module/$0 +plumb to edit +plumb start /dis/wm/brutus.dis $file$2 +.EE +.PP +Note the use of +.B $2 +in the +.B start +action to pass +.B brutus +the line number selected by the second parenthesised +expression in the pattern. +.SH FILES +.BI /usr/ user /lib/plumbing +.SH SEE ALSO +.IR plumb (1), +.IR plumbmsg (2), +.IR plumber (8) diff --git a/static/inferno/man6/proto.6 b/static/inferno/man6/proto.6 new file mode 100644 index 00000000..1a324373 --- /dev/null +++ b/static/inferno/man6/proto.6 @@ -0,0 +1,153 @@ +.TH PROTO 6 +.SH NAME +proto \- file system prototype +.SH DESCRIPTION +A +.I proto +file defines a file system hierarchy, for +programs that create, copy or operate on them, +such as +.IR fs (1) +or +.IR mkfs (8). +The +.I proto +file defines the hierarchy as a set of names relative to an +existing hierarchy, for instance in an existing file system or a list of path names +in an archive. +Files in the existing hierarchy that are not specified in the +.I proto +file +are ignored. +.IR Fsproto (2) +provides functions to read a prototype file and enumerate the names it selects in an +existing hierarchy. +.PP +Each line of the +.I proto +file specifies a file (where the term `file' includes directories). +Indentation is significant, +with each level of indentation corresponding to a level in the file tree. +Each line contains up to five fields separated by white space: +.IP +.EX +.I "name perm uid gid source" +.EE +.PP +.I Name +is the last path element in the resulting file tree. +.I Perm +specifies the permissions, as described below. +.I Uid +is the owner of the file, +and +.I gid +is the group owning the file. +.I Source +is the name of a file in the current name space +(not the source file tree) from which to copy +.IR name 's +content. +All fields except +.I name +are optional. +If a field such as +.I perm +or +.I uid +is not given, or is given as +.LR - , +its value is taken from the existing file. +.PP +A +.I name +starting with +.L $ +is taken as a reference to an environment variable (see +.IR sh (1) +and +.IR env (3)) +and replaced by the value of that variable. +If the first +.I name +in a directory is +.LR + , +all of the files are represented, and all subdirectories recursively. +If the first +.I name +is +.LR * , +all of the names in the corresponding existing directory are represented, +but only the names of subdirectories, not their content. +If the first +.I name +is +.LR % , +only non-directory names are represented excluding both the names and content +of subdirectories. +.PP +.I Perm +has the form: +.IP +.RB [ d ] +.RB [ a ] +.RB [ l ] +.I oct +.PP +where the optional letters set file attributes +.RL ( d +directory, +.L a +append-only, and +.L l +exclusive-use), +and +.I oct +is an octal number giving the permissions for user, group and others +(see +.IR chmod (1)). +.SH EXAMPLES +.PP +Denote all files in a given file system: +.IP +.EX ++ +.EE +.PP +Denote all files in the current user's home directory: +.IP +.EX +usr + $user +.EE +.PP +Specify a subset of files in +.BR /dis : +.IP +.EX +dis + * + install + * + lib + arg.dis + names.dis +.EE +.SH FILES +.TF /lib/proto/portproto +.TP +.B /lib/proto +directory of prototype files +.TP +.B /lib/proto/all +prototype for whole hierarchy (ie, line containing +.LR + ) +.TP +.B /lib/proto/portproto +generic prototype file +.SH "SEE ALSO" +.IR fs (1), +.IR fsproto (2), +.IR kfs (4), +.IR mkfs (8) + diff --git a/static/inferno/man6/regexp.6 b/static/inferno/man6/regexp.6 new file mode 100644 index 00000000..09dea814 --- /dev/null +++ b/static/inferno/man6/regexp.6 @@ -0,0 +1,126 @@ +.TH REGEXP 6 +.SH NAME +regexp, regex \- regular expression notation +.SH DESCRIPTION +A +.I "regular expression" +specifies +a set of strings of characters. +A member of this set of strings is said to be +.I matched +by the regular expression. In many applications +a delimiter character, commonly +.LR / , +bounds a regular expression. +In the following specification for regular expressions +the word `character' means any character (rune) but newline. +.PP +The syntax for a regular expression +.B e0 +is +.IP +.EX +e3: literal | charclass | '.' | '^' | '$' | '(' e0 ')' + +e2: e3 + | e2 REP + +REP: '*' | '+' | '?' + +e1: e2 + | e1 e2 + +e0: e1 + | e0 '|' e1 +.EE +.PP +A +.B literal +is any non-metacharacter, or a metacharacter +(one of +.BR .*+?[]()|\e^$ ), +or the delimiter +preceded by +.LR \e . +.PP +A +.B charclass +is a nonempty string +.I s +bracketed +.BI [ \|s\| ] +(or +.BI [^ s\| ]\fR); +it matches any character in (or not in) +.IR s . +A negated character class never +matches newline. +A substring +.IB a - b\f1, +with +.I a +and +.I b +in ascending +order, stands for the inclusive +range of +characters between +.I a +and +.IR b . +In +.IR s , +the metacharacters +.LR - , +.LR ] , +an initial +.LR ^ , +and the regular expression delimiter +must be preceded by a +.LR \e ; +other metacharacters +have no special meaning and +may appear unescaped. +.PP +A +.L . +matches any character. +.PP +A +.L ^ +matches the beginning of a line; +.L $ +matches the end of the line. +.PP +The +.B REP +operators match zero or more +.RB ( * ), +one or more +.RB ( + ), +zero or one +.RB ( ? ), +instances respectively of the preceding regular expression +.BR e2 . +.PP +A concatenated regular expression, +.BR "e1\|e2" , +matches a match to +.B e1 +followed by a match to +.BR e2 . +.PP +An alternative regular expression, +.BR "e0\||\|e1" , +matches either a match to +.B e0 +or a match to +.BR e1 . +.PP +A match to any part of a regular expression +extends as far as possible without preventing +a match to the remainder of the regular expression. +.SH "SEE ALSO" +.IR acme (1), +.IR sh-regex (1), +.IR regex (2) diff --git a/static/inferno/man6/sbl.6 b/static/inferno/man6/sbl.6 new file mode 100644 index 00000000..9e147f4e --- /dev/null +++ b/static/inferno/man6/sbl.6 @@ -0,0 +1,392 @@ +.TH SBL 6 +.SH NAME +sbl \- symbol table file +.SH DESCRIPTION +A Limbo symbol table file provides type information for the module +in an associated Dis executable file, +for use by debuggers and similar applications. +They are written by the Limbo compiler +when given the +.B -g +option. +The files conventionally have a +.B .sbl +suffix; they need not be stored in the same directory as +the corresponding Dis file. +.PP +The file consists of a header followed by five tables: +.IP +.I "header file-table pc-table type-table fn-table data-table" +.PP +Each table starts with a line containing a decimal +count of the items in that table. +The count can be zero. The following +sections describe the format of table items in each table. +In the description, the following terminals are used. +.PP +A +.I "string" +is a sequence of letters, digits, and the characters _, ., -, and >. Letters are the Unicode characters a through z and A through Z, and all Unicode characters with encoded values greater than A0 hexadecimal. +.PP +An +.I int +is an optional minus sign followed by a sequence of digits, 0 to 9. +.PP +In the following description, +the presence of a space is represented by +.B • +and a newline by +.BR \en . +There are no other spaces between syntactic elements in the file format. +Other special characters represent themselves. +.SS Header +.PP +The header consists of two items. +.ds Os "\v'0.2m'\s-3\|opt\s+3\^\v'-0.2m' +.IP +.EX +.ft I +.nf +header: + magic\f5\en\fP + module\f5\en\fP +magic: + \f5limbo .sbl 2.0\fP +module: + string +.ft R +.EE +.PP +There have been two previous versions of symbol table format, distinguished +by the number in +.IR magic . +Version +.B 1. +was the original; version +.B 1.1 +added more references back to the source; and version +.B 2.0 +replaced the original +adt table by a type table and added support for Limbo's +.B pick +construction. +Only version 2.0 is described here; the others are obsolete. +.PP +.I Module +is the name of the module implemented in the Dis file. +Symbol file references to identifiers declared by the implementation module are unqualified. +A name referenced that is imported from any other module is preceded by +.IB m -> +where +.I m +is that module's identifier. +.SS File table +The file table is a list of file names referenced by the rest of the tables. Each file name is terminated by a newline character; within the name, any character other than a newline is valid. +.SS PC table +The PC table relates every instruction in the Dis file to the source from which it was compiled. +The table is indexed by Dis PC to obtain a reference to the corresponding source. +Each item consists of a source description +and a statement reference: +.IP +.EX +.ft I +pc-item: + src stmt \f5\en\fP +src: + pos\f5,\fPpos• +pos: + file\f5:\fP\*(Os line\f5.\fP\*(Os char +file, line, char, stmt: + int +.ft R +.EE +.PP +A source description +.I src +selects source text as a range of characters within lines of a source file. +.I File +is an index into the file table (origin 0); +.I "line" +and +.I "char" +are positions within that source file, with line numbers starting at 1 and character positions at 0. If +.I "file" +or +.I "line" +is omitted, it is assumed to have the previous value, or 0 if there is no previous value. +.PP +.I Stmt +is the `statement number' of the instruction. +Despite its name, the scope of a statement number is smaller than a Limbo statement: +it identifies a region marked by the compiler for treatment as a unit when debugging. +For instance, +in a +.B for +statement, the initial expression, increment, test, and body all have unique +statement numbers. +All instructions compiled from the same region in a Limbo program have the same statement number. +The number is that of the innermost region that contains the instruction. +.SS Type table +The type table describes the Limbo adts used in the Dis file, +both locally declared and imported. +Each entry describes a +.IR type : +.IP +.EX +.I "type:" +.ft 5 + @ \fItype-index\fP \en + a \fIadt-item\fP + p \fIadt-item\fP \fItag-table\fP + t \fIsize\fP . \fIid-table\fP + m \fImodule\fP \en \fIsrc\fP + A \fItype\fP + C \fItype\fP + F \fIfn-name\fP \fItype\fP + L \fItype\fP + R \fItype\fP + n + N + B + b + i + f + s +.ft I +type-index: + int +.EE +.PP +Each leading character specifies a different Limbo type: +.IP +.RS +.TF N +.TP 5n +.B @ +existing type referenced by type table index (not self-referential) +.TP +.B A +.B array of +.I type +.TP +.B a +.B adt +without +.B pick +.TP +.B B +.B big +.TP +.B b +.B byte +.TP +.B +C +.B chan of +.I type +.TP +.B +F +.B fn +returning +.I type +.TP +.B f +.B real +.TP +.B i +.B int +.TP +.B L +.B list of +.I type +.TP +.B m +.B module +.TP +.B N +.BR nil 's +type +.TP +.B n +no type (eg, function with no return type) +.TP +.B p +.B adt +with +.B pick +.TP +.B R +.B ref +.I type +.TP +.B s +.B string +.TP +.B t +tuple +.PD +.RE +.PP +A +.I type-index +is an offset in the type table, representing the corresponding type. +.I Size +is the size in bytes of a value of the given type. +The size of basic types is known and does not appear explicitly: +.B big +and +.B real +are 64 bits; all others including strings and reference types are 4 bytes. +(Strings are represented internally by a pointer.) +.PP +Each +.I "id-table" +is preceded by a count of the number of entries, followed by +an +.I id-item +for each entry in the table: +.IP +.EX +.ft I +id-table: + count \f5\en\fP id-items +id-item: + id-offset \f5:\fP id-name \f5:\fP src type \f5\en\fP +id-offset: + int +id-name: + string +count: + int +.ft R +.EE +.PP +.I Id-offset +is the number of bytes from the start of the enclosing object to the value of the +object identified by +.IR "id-name" . +.PP +An adt without a +.B pick +clause is described using an +.IR adt-item : +.IP +.EX +.ft I +adt-item: + adt-name • src size \f5\en\fP id-table +adt-name: + string +size: + int +.ft R +.EE +.PP +The +.I id-table +has an entry for every data element of +.IR "adt-name" . +.PP +If an adt has a +.B pick +clause, the adt's type table entry uses the +.B p +type character. +The invariant part of the adt is described by an +.I adt-item +(with zero +.IR size ) +and the variant clause is described by a +.I tag-table +of the following form: +.IP +.EX +.ft I +tag-table: + count \f5\en\fP tag-items +tag-item: + name \f5:\fP src size \f5\en\fP id-table + \f1|\fP name \f5:\fP src \f5\en\fP +.ft R +.EE +.PP +The +.I tag-table +describes the variants of a Limbo adt +that includes a +.B pick +clause. +The +.I name +is the +.B pick +tag for the associated alternative. +If the +.I size +and +.I id-table +are missing, the given variant has the same description +as the previous one. +.PP +A tuple's +.I id-table +contains +.I id-names +of the form +.BI t n, +where +.I n +is the 0-origin index of the item in the tuple. +.PP +.I Src +is as previously defined above in the PC table section. +.SS Fn table +The function table describes each function implemented by the Dis file. +.IP +.EX +.ft I +fn-item: + fn-pc \f5:\fP fn-name \f5\en\fP args locals return +fn-pc: + int +fn-name: + string +args, locals: + id-table +return: + type +.ft R +.EE +.PP +.I Fn-pc +is the starting pc for the Dis instructions for +.IR "fn-name" . +If the function is a member of an adt, +the member name is qualified by the adt name, so that +.I fn-name +has the form +.IB `adt-name . member-name'. +Within the +.I id-tables +for +.I args +and +.IR locals , +the +.I "id-offset" +fields give offsets relative to the function's activation frame. +Furthermore, no table entries are made for +.I args +that are declared +.B nil +(unused). +.SS Data table +The data table describes the global variables in the Dis file. It is an +.IR "id-table" , +with one entry for each global variable. +.SH SEE ALSO +.IR limbo (1), +.IR wm-deb (1), +.IR debug (2), +.IR dis (6) diff --git a/static/inferno/man6/scancode.6 b/static/inferno/man6/scancode.6 new file mode 100644 index 00000000..11c6c495 --- /dev/null +++ b/static/inferno/man6/scancode.6 @@ -0,0 +1,37 @@ +.TH SCANCODE 6 +.SH NAME +scancode \- known formats of scan codes +.SH DESCRIPTION +The +.B scancode +interface of +.IR cons (3) +provides access to scan codes of the primary keyboard. There +are as many scan code formats as keyboards. Here are some +common ones. +.SH Microsoft Windowsâ„¢ Virtual Key +.PP +The identifier is +.BR emu_win32vk , +and each scan code is encoded in the two byte format specified in +.IR cons(3) . +This format is used by the Microsoft Windowsâ„¢ implementation of +.IR emu (1E), +and each scan code is a +.IR "Virtual Key" . +See the appropriate Microsoft documentation for the meaning of the +codes. +.SH X11 +.PP +The identifier is +.BR emu_x11 , +and each scan code is encoded in the single byte format specified in +.IR cons(3) . +This format is used by the various Unix/X11 implementations of +.IR emu (1E), +and each scan code is an X11 +.IR keycode . +See the appropriate X11 documentation for the meaning of the +codes. +.SH "SEE ALSO" +.IR cons (3) diff --git a/static/inferno/man6/sexprs.6 b/static/inferno/man6/sexprs.6 new file mode 100644 index 00000000..11d3d790 --- /dev/null +++ b/static/inferno/man6/sexprs.6 @@ -0,0 +1,238 @@ +.TH SEXPRS 6 +.SH NAME +sexprs \- symbolic expressions +.SH DESCRIPTION +S-expressions (`symbolic expressions') provide a way for programs to store and +exchange tree-structured text and binary data. +The Limbo module +.IR sexprs (2) +provides the variant defined by +Rivest in Internet Draft +.L draft-rivest-sexp-00.txt +(4 May 1997), +as used for instance by the Simple Public Key Infrastructure (SPKI). +It provides a `canonical' form of S-expression, +and an `advanced' form for display. +They can convey binary data directly and efficiently, unlike some +other schemes such as XML. +The two forms are closely related and all can be read or written by +.IR sexprs (2), +including a variant sometimes used for transport on links that are not 8-bit safe. +.PP +An S-expression is either a sequence of bytes (a byte +.IR string ), +or a parenthesised list of smaller S-expressions. +All forms start with the fundamental rules below, in extended BNF: +.IP +.EX +.ft R +.ta \w'\f2simple-stringxxxxx\f1'u +\w'\ ::=\ 'u +\f2sexpr\fP ::= \f2string\fP | \f2list\fP +\f2list\fP ::= '(' \f2sexpr\fP* ')' +.EE +.DT +.PD +.PP +They give the recursive structure. +The various representations ultimately differ only in how the byte string is represented +and whether white space such as blanks or newlines can appear. +.PP +Furthermore, the definition of +.I string +is also common to all forms: +.IP +.EX +.ft R +.ta \w'\f2simple-stringxxxxx\f1'u +\w'\ ::=\ 'u +\f2string\fP ::= \f2display\fP? \f2simple-string\fP +\f2display\fP ::= '[' \f2simple-string\fP ']' +.EE +.DT +.PD +.PP +The optional bracketed +.I display +string provides information on how to present the associated byte string to a user. +(``It has no other function. Many of the MIME types work here.'') +Although supported by +.IR sexprs (2), +it is largely unused by Inferno applications and is usually left out. +The canonical and advanced forms differ in their definitions of +.IR simple-string . +They always denote sequences of 8-bit bytes, but with different syntax (encodings). +Two +.I strings +are equal iff their +.I simple-strings +encode the same byte strings (for both data and +.IR display ). +.PP +.I Canonical +form must be used when exchanging S-expressions between computers, +and when digitally signing an expression. +It is defined by the complete set of rules below: +.IP +.EX +.ft R +.ta \w'\f2simple-stringxxxxx\f1'u +\w'\ ::=\ 'u +\f2sexpr\fP ::= \f2string\fP | \f2list\fP +\f2list\fP ::= '(' \f2sexpr\fP* ')' +\f2string\fP ::= \f2display\fP? \f2simple-string\fP +\f2display\fP ::= '[' \f2simple-string\fP ']' +\f2simple-string\fP ::= \f2raw\fP +\f2raw\fP ::= \f2nbytes\fP ':' \f2byte*\fP +\f2nbytes\fP ::= \f5[1-9][0-9]\fP+ | \f50\fP +.EE +.DT +.PD +.PP +Its +.I simple-string +is a raw byte string. +The primitive +.I byte +represents an 8-bit byte. +The length of every byte string is given explicitly by a preceding decimal value +.I nbytes +(with no leading zeroes). +There is no white space. +It is `canonical' because it is uniquely defined for each S-expression. +It is efficient to parse even on small computers. +.PP +.I Advanced +form is more elaborate, and has two main differences: +not all byte strings need an explicit length, and binary +data can be represented in printable form, either using hexadecimal or base 64 encodings, +or using quoted strings (with escape sequences similar to those of Limbo or C). +Unquoted text is called a +.IR token , +and is restricted by the standard to a specific alphabet: +it must contain only letters, digits, or characters from the set +.LR "-./_:*+=" , +and must not start with a digit. +The latter restriction is imposed to allow byte counts to be distinguished from tokens without +lookahead, but has the consequence that decimal numbers must be quoted, +as must non-ASCII characters in +.IR utf (6) +encoding. +Upper- and lower-case letters are distinct. +The advanced transport syntax is defined by the complete set of rules below: +.IP +.EX +.ft R +.ta \w'\f2simple-stringxxxxx\f1'u +\w'\ ::=\ 'u +\f2sexpr\fP ::= \f2string\fP | \f2list\fP +\f2list\fP ::= '(' ( \f2sexpr\fP | \f2whitespace\fP )* ')' +\f2string\fP ::= \f2display\fP? \f2simple-string\fP +\f2display\fP ::= '[' \f2simple-string\fP ']' +\f2simple-string\fP ::= \f2raw\fP | \f2token\fP | \f2base-64\fP | \f2hexadecimal\fP | \f2quoted-string\fP +\f2raw\fP ::= \f2nbytes\fP ':' \f2byte*\fP +\f2nbytes\fP ::= \f5[1-9][0-9]\fP+ | \f50\fP +\f2token\fP ::= \f2token-start\fP \f2token-char*\fP +\f2base-64\fP ::= \f2decimal\fP? '|' ( \f2base-64-char\fP | \f2whitespace\fP )* '|' +\f2hexadecimal\fP ::= '#' ( \f2hex-digit\fP | \f2whitespace\fP )* '#' +\f2quoted-string\fP ::= \f2nbytes\fP? \f2quoted-string-body\fP +\f2quoted-string-body\fP ::= '"' \f2byte*\fP '"' +\f2token-start\fP ::= \f5[-./_:*+=a-zA-Z]\fP +\f2token-char\fP ::= \f2token-start\fP | \f5[0-9]\fP +\f2hex-digit\fP ::= \f5[0-9a-fA-F]\fP +\f2base-64-char\fP ::= \f5[a-zA-Z0-9+/=]\fP +.EE +.PD +.DT +.PP +.I Whitespace +is any sequence of blank, tab, newline or carriage-return characters; +note that it can appear only at the places shown. +The +.I bytes +in a +.I quoted-string-body +are interpreted according to the quoting rules for Limbo (or C). +That is, the bytes are enclosed in quotes, and may contain the +escape sequences for the following characters: +backspace +.RB ( \eb ), +form-feed +.RB ( \ef ), +newline +.RB ( \en ), +carriage-return +.RB ( \er ), +tab +.RB ( \et ), +and vertical tab +.RB ( \ev ), +octal escape +.BI \e ooo +(all three digits must be given), +hexadecimal escape +.BI \ex hh +(both digits must be given), +.B \e\e +for backslash, +.B \e' +for single quote, and +and \f5\e"\fP to include a quote in a string. +Note that a quoted string can have an optional +.IR nbytes , +but it gives the length of the byte string resulting +.I after +interpreting character escapes. +.PP +Both canonical and advanced forms can contain binary data verbatim. +Sometimes that is troublesome for storage or transport. +At the lexical level any +.I sexpr +can therefore be replaced by the following: +.IP +.EX +.ft R +\&'{' ( \f2base-64-char\fP | \f2whitespace\fP )* '}' +.EE +.PP +where the text between the braces is the base-64 encoding of the +.I sexpr +expressed in canonical or advanced form. +The S-expression parser will replace the sequence by its decoded, and resume +parsing at the start of that byte string. +Note the difference in syntax and interpretation from rule +.IR base-64 +above, which encodes a +.IR simple-string , +not an +.IR sexpr . +.SH EXAMPLES +The following S-expression is in canonical form: +.IP +.EX +(12:hello world!(5:inner0:)) +.EE +.PP +It is a list of two elements: the string +.BR "hello world!" , +and another list also with two elements, +the string +.BR inner +and an empty string. +All the bytes in the example are printable characters, but they could have been arbitrary binary values. +.PP +The following is an S-expression in advanced form: +.IP +.EX +(hello-world + (* "3" "5.6") + (best-of-3 (5:inner0:))) +.EE +.PP +Note that advanced form contains canonical form as a subset; +here it is used for the innermost list. +.SH SEE ALSO +.IR sexprs (2), +.IR json (6), +.IR ubfa (6) +.PP +R. Rivest, ``S-expressions'', Network Working Group Internet Draft +(4 May 1997), +reproduced in +.BR /lib/sexp . diff --git a/static/inferno/man6/translate.6 b/static/inferno/man6/translate.6 new file mode 100644 index 00000000..f0f8895c --- /dev/null +++ b/static/inferno/man6/translate.6 @@ -0,0 +1,55 @@ +.TH TRANSLATE 6 +.SH NAME +translate \- translation dictionary +.SH SYNOPSIS +.BI /locale/dict/ app +.br +.BI /locale/ locale /dict/ app +.SH DESCRIPTION +A dictionary file provides translation text that applications can access using +.IR translate (2). +Each is a Unicode file containing a set of translations, one per line, +each line having the following syntax: +.IP +.EX +"\fIsource-text\fP"\fR [\fP (\fInote-text\fP)\fR ] [ \fP="\fItarget-text\fP" \fR ] \fP +.EE +.PP +which defines +.I target-text +as the translation for +.I source-text . +A missing translation clause defines the identity translation. +The optional +.I note-text +qualifies the context of the +.IR source-text , +when the same phrase in the source language might +translate to different phrases in the target language, +or to distinguish a particular context in the program (eg, particular menus): +For example: +.IP +.EX +"Times"(newspaper) = "La Republicca" +"Times"(timetable) = "L'orario" +"ABC"(keypad) = "abc" +.EE +.PP +Empty lines and lines beginning with +.B # +are ignored. +The quoted strings can contain the Limbo escape sequences +.B "\en" +(newline), +.B "\et" +(tab), +.B "\er" +(carriage return), +and +.B "\e\e" +(backslash). +.PP +The default locale is set by binding one or more specific locales onto +.BR /locale/dict . +.SH FILES +.B /locale/*/dict/* diff --git a/static/inferno/man6/ubfa.6 b/static/inferno/man6/ubfa.6 new file mode 100644 index 00000000..31e9bd1a --- /dev/null +++ b/static/inferno/man6/ubfa.6 @@ -0,0 +1,129 @@ +.TH UBFA 6 +.SH NAME +ubfa \- universal binary format for data transport +.SH DESCRIPTION +.I UBF(A) +is the data transport encoding for Armstrong's +Universal Binary Format. +It provides four primitive types: atoms (symbolic constants), integers, strings, and binary data. +There are two compound types: fixed-length tuples and variable-length lists. +.IR Ubfa (2) +provides basic support in Limbo for reading and writing streams of UBF(A)-encoded data. +.PP +The +.I input +syntax is defined by the following rules: +.IP +.EX +.ft R +.ta \w'\f2simple-xxx\f1'u +\w'\ ::=\ 'u +\f2input\fP ::= \f2item\fP* '$' +\f2item\fP ::= \f2integer\fP | \f2atom\fP | \f2string\fP | \f2binary\fP | \f2tuple\fP | \f2list\fP | \f2store\fP | \f2push\fP | \f2comment\fP | \f2tag\fP + +\f2integer\fP ::= \f5'-'\fP?\f5[0-9]\fP+ +\f2atom\fP ::= "'" (\f5[^\e']\fP | '\e\e' | "\e'")* "'" +\f2string\fP ::= '"' (\f5[^\e"]\fP | '\e\e' | '\e"')* '"' +\f2binary\fP ::= '~' \f2byte\fP* '~' # preceded by \f2integer\fP byte count + +\f2tuple\fP ::= '{' \f2item\fP* '}' +\f2list\fP ::= '#' (\f2item\fP '&')* + +\f2store\fP ::= '>' \f2reg\fP +\f2push\fP ::= \f2reg\fP +\f2reg\fP ::= \f5[^-%"~'`{}#& \en\er\et,0-9]\fP +\f2comment\fP ::= '%' (\f5[^\e%]\fP | '\e\e' | '\e%')* '%' +\f2tag\fP ::= '`' (\f5[^\e`]\fP | '\e\e' | '\e`')* '`' +.EE +.PD +.DT +.PP +White space is any sequence of blank, tab, newline or carriage-return characters, and can appear +before or after any instance of +.I item +in the grammar. +.PP +The +.I input +data is interpreted by a simple virtual machine. +The machine contains a stack of values of primitive and compound types, and a set of registers also containing +values of those types. +White space and comments are ignored. +Primitive +.IR integer , +.I atom +and +.IR string +values are pushed onto the stack as they are recognised. +Certain input bytes outside any value act as operators: +.TP +.B { +Note the current stack depth. +.TP +.B } +Pop stack values to restore the most recently noted stack depth. +Push a single value +representing a tuple of those items; the left-most value in the tuple is the last one popped +(the first in the original input stream). +.TP +.B ~ +Pop an integer value +.I n +from the stack. +Read +.I n +bytes from the input stream and push a value onto the stack that represents them. +The next byte must be the character +.BR ~ , +which is discarded. +.TP +.B # +Push a value representing an empty list onto the stack. +.TP +.B & +Pop a value +.IR v . +Pop another value +.IR l , +which must represent a list. +Push a value that represents +the list +.IB v :: l . +(Note that the items in a +.I list +therefore appear in reverse order in the input stream.) +.TP +.BI > reg +Pop the top value from the stack and store it in a register labelled by the byte +.IR reg . +.TP +.I reg +Push the value of register +.I reg +(which must be non-null) onto the stack. +.TP +.I tag +Associate the tag string with the value on top of the stack. +The +.IR ubfa (2) +implementation does so by replacing it by a special +.B Tag +tuple. +.TP +.B $ +End-of-input: there must be exactly one value on the stack, +which is the result. +.PP +Applications using UBF(A) typically take turns to exchange +.I input +values on a communication channel. +.SH SEE ALSO +.IR ubfa (2), +.IR json (6), +.IR sexprs (6) +.br +J L Armstrong, ``Getting Erlang to talk to the outside world'', +.I "ACM SIGPLAN Erlang workshop 2002" , +Pittsburg, PA USA +.br +UBF web page, +.B "http://www.sics.se/~joe/ubf/" diff --git a/static/inferno/man6/users.6 b/static/inferno/man6/users.6 new file mode 100644 index 00000000..585cf188 --- /dev/null +++ b/static/inferno/man6/users.6 @@ -0,0 +1,73 @@ +.TH USERS 6 +.SH NAME +users \- kfs file server user list format +.SH DESCRIPTION +The permanent file server +.IR kfs (4) +maintains a private list of users +and groups, in +.B /adm/users +by convention. +Each line in the file has the format +.IP +.IB num : name : leader :\fImembers\fP +.PP +where +.I num +is a decimal integer, +.I name +and +.I leader +are printable strings excluding the characters +.LR ? , +.LR = , +.LR + , +.LR - , +.LR / , +and +.LR : , +and +.I members +is a comma-separated list of such strings. +Such a line defines a user and a group with the given +.IR name ; +the group has a group leader given by +.I leader +and group members given by the user names in +.IR members . +The +.I leader +field may be empty, +in which case any group member is a group leader. +The +.I members +field may be empty. +.PP +Lines beginning with +.L # +are ignored. +.PP +The +.I num +in a line is a number used internally by a file server; +there should be no duplicate +.IR num s +in the file. +A negative +.I num +is special: a user with a negative +.I num +cannot attach to the file server. +The file +.B /adm/users +itself is owned by user +.IR adm , +having a negative +.IR num , +and write protected to others, +so it can only be changed via console commands. +.SH "SEE ALSO" +.IR kfs (4), +.IR intro (5), +.IR stat (5), +.IR kfscmd (8) diff --git a/static/inferno/man6/utf.6 b/static/inferno/man6/utf.6 new file mode 100644 index 00000000..12832a16 --- /dev/null +++ b/static/inferno/man6/utf.6 @@ -0,0 +1,108 @@ +.TH UTF 6 +.SH NAME +UTF, Unicode, ASCII, rune \- character set and format +.SH DESCRIPTION +The Inferno character set and representation are +based on the Unicode Standard and on the ISO multibyte +.SM UTF-8 +encoding (Universal Character +Set Transformation Format, 8 bits wide). +The Unicode Standard represents its characters in 21 +bits; +.SM UTF-8 +represents such +values in an 8-bit byte stream. +Throughout this manual, +.SM UTF-8 +is shortened to +.SM UTF. +.PP +Internally, programs store individual Unicode characters as 32-bit integers, +of which only 21 bits are currently used. +Documentation often refers to them as `runes', following Plan 9. +However, any external manifestation of textual information, +in files or at the interface between programs, uses the +machine-independent, byte-stream encoding called +.SM UTF. +.PP +.SM UTF +is designed so the 7-bit +.SM ASCII +set (values hexadecimal 00 to 7F), +appear only as themselves +in the encoding. +Characters with values above 7F appear as sequences of two or more +bytes with values only from 80 to FF. +.PP +The +.SM UTF +encoding of the Unicode Standard is backward compatible with +.SM ASCII\c +: programs presented only with +.SM ASCII +work on Inferno +even if not written to deal with +.SM UTF\c +, +as do +programs that deal with uninterpreted byte streams. +However, programs that perform semantic processing on +characters must convert from +.SM UTF +to runes +in order to work properly with non-\c +.SM ASCII +input. +Normally, all necessary conversions are done by the Limbo compiler +and execution envirnoment, when converting between +.B "array of byte" +and +.B "string" , +but sometimes more is needed, such +as when a program receives +.SM UTF +input one byte at a time; +see +.IR sys-byte2char (2) +for routines to handle such processing. +.PP +Letting numbers be binary, +a rune x is converted to a multibyte +.SM UTF +sequence +as follows: +.PP +01. x in [000000.00000000.0bbbbbbb] → 0bbbbbbb +.br +10. x in [000000.00000bbb.bbbbbbbb] → 110bbbbb, 10bbbbbb +.br +11. x in [000000.bbbbbbbb.bbbbbbbb] → 1110bbbb, 10bbbbbb, 10bbbbbb +.br +100. x in [bbbbbb.bbbbbbbb.bbbbbbbb] → 1110bbbb, 10bbbbbb, 10bbbbbb, 10bbbbbb +.br +.PP +.PP +Conversion 01 provides a one-byte sequence that spans the +.SM ASCII +character set in a compatible way. +Conversions 10, 11 and 100 represent higher-valued characters +as sequences of two, three or four bytes with the high bit set. +Inferno does not support the 5 and 6 byte sequences proposed by X-Open. +When there are multiple ways to encode a value, for example rune 0, +the shortest encoding is used. +.PP +In the inverse mapping, +any sequence except those described above +is incorrect and is converted to the rune hexadecimal FFFD. +.SH FILES +.TF "/lib/unicode " +.TP +.B /lib/unicode +table of characters and descriptions, suitable for +.IR look (1). +.SH "SEE ALSO" +.IR ascii (1), +.IR tcs (1), +.IR sys-byte2char (2), +.IR keyboard (6), +.IR "The Unicode Standard" . diff --git a/static/inferno/man7/0intro.7 b/static/inferno/man7/0intro.7 new file mode 100644 index 00000000..5bea6760 --- /dev/null +++ b/static/inferno/man7/0intro.7 @@ -0,0 +1,6 @@ +.TH INTRO 7 +.SH NAME +intro \- introduction to databases +.SH DESCRIPTION +This manual section describes databases available on Inferno +and the commands and modules that access them. diff --git a/static/inferno/man7/INDEX.7 b/static/inferno/man7/INDEX.7 new file mode 100644 index 00000000..59cedaf0 --- /dev/null +++ b/static/inferno/man7/INDEX.7 @@ -0,0 +1,4 @@ +intro 0intro +cddb cddb +db db +dbsrv dbsrv diff --git a/static/inferno/man7/Makefile b/static/inferno/man7/Makefile new file mode 100644 index 00000000..57ec7ecb --- /dev/null +++ b/static/inferno/man7/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.7) + +include ../../mandoc.mk diff --git a/static/inferno/man7/cddb.7 b/static/inferno/man7/cddb.7 new file mode 100644 index 00000000..34c64f70 --- /dev/null +++ b/static/inferno/man7/cddb.7 @@ -0,0 +1,56 @@ +.TH CDDB 7 +.SH NAME +cddb \- CD database +.SH SYNOPSIS +.B cddb +[ +.B -DTt +] +[ +.B -s +.I server +] +.B query +.I diskid +.I ntracks +.I track0id +.I ... +.SH DESCRIPTION +.I Cddb +queries an Internet database to get a table of +contents and other details for audio CDs. +The CD has +.I ntracks +tracks, and +.I trackNid +is a hash value derived from the +.IR N 'th +track's characteristics; +.I diskid +is a hash of all the track IDs. +.PP +.I Cddb +takes 4 optional arguments. +The +.B -s server +option causes +.I cddb +to use a different server for the query +(default is +.IR freedb.freedb.org ). +The +.B -D +option causes the raw database response from the server to be dumped +to standard output. +The +.I -t +option causes the time of each track to be appended to the normal output. +.I -T +prints track times and +adds a line at the end with the total time. +.SH SOURCE +.B /appl/cmd/cddb.b +.SH SEE ALSO +.I 9660srv +(in +.IR dossrv (4)) diff --git a/static/inferno/man7/db.7 b/static/inferno/man7/db.7 new file mode 100644 index 00000000..99ce1984 --- /dev/null +++ b/static/inferno/man7/db.7 @@ -0,0 +1,187 @@ +.TH DB 7 +.SH NAME +DB \- database support +.SH SYNOPSIS +.EX +include "security.m"; # need Auth for algorithm names +include "db.m"; +db := load DB DB->PATH; + +DB_Handle: adt { + SQLOpen: fn(oldh: self ref DB_Handle): (int, ref DB_Handle); + SQLClose: fn(dbh: self ref DB_Handle): int; + SQL: fn(handle: self ref DB_Handle, command: string): + (int, string); + columns: fn(handle: self ref DB_Handle): int; + nextRow: fn(handle: self ref DB_Handle): int; + read: fn(handle: self ref DB_Handle, column: int): + (int, array of byte); + write: fn(handle: self ref DB_Handle, param: int, + fld: array of byte): int + columnTitle: fn(handle: self ref DB_Handle, + column: int): string; + errmsg: fn(handle: self ref DB_Handle): string; + + datafd: ref Sys->FD; + sqlconn: int; + sqlstream: int; + lock: chan of int; +}; + +connect: fn(addr, alg: string): (ref Sys->FD, string); +dbopen: fn(fd: ref Sys->FD, username, password, dbname: string): + (ref DB_Handle, list of string); +open: fn(addr, username, password, dbname: string): + (ref DB_Handle, list of string); +.EE +.SH DESCRIPTION +.B DB +allows Limbo programs to connect to data base management systems +that support an ODBC interface. +.PP +.IR Dbsrv (7) +must be running (usually in a hosted +.IR emu (1)) +to service database requests. +.PP +If security features will be used in conjunction with +.BR DB , +the +.B Auth +module definitions (see +.IR security-auth (2)) +from +.B security.m +must be included. +.PP +If authentication is in use, +.B DB +will use the certificate in the file +.IP +.BI /usr/ user /keyring/ net ! machine +.PP +if that file exists. Otherwise, +.I db +will attempt to find a certificate in the file +.IP +.BI /usr/ user /keyring/default . +.PP +.B Connect +establishes a connection to the +.I dbsrv +at +.IR addr . +.I Addr +has the form +.IB machine ! service. +.I Machine +is a symbolic or numeric network address, and +.I service +is a service or port on that machine. +.I Dbsrv +starts a corresponding +.I infdb +process. After some negotiation, +.I infdb +will take the appropriate authentication, digesting, and decryption actions, based on the +.I alg +requested by the client. +If successful, +.B connect +will return a file descriptor required by +.BR dbopen . +.PP +.B Dbopen +initiates a session with a database +.IR dbname , +passing +.I username +and +.I password +down the +.I fd +returned by +.BR connect . +.B Dbopen +returns a reference to an instance of +.B DB_Handle +and an error string, which is nil on success. +On error, the reference is nil, but the string contains a diagnostic. +.B Dbopen +implicitly opens an initial SQL stream via +.BR SQLOpen . +.PP +.B Open +returns the result of a +.B connect +followed (if successful) by a +.BR dbopen . +.TP +.IB oh .SQLOpen +Creates a new +.B DB_Handle +and opens a new SQL stream with which requests can be associated. The new handle shares the connection and transaction context with +.IR oh . +Other characteristics such as the current SQL command, the result set, and cursor position are independent, +which allows the manipulation and interaction of many SQL statements within a transaction. +It returns zero on success, non-zero on error. +.TP +.IB h .SQLClose +Closes the SQL stream opened by +.BR SQLOpen . +Closing all SQL streams associated with a connection causes the connection to be closed. +.TP +.IB h .SQL( command ) +Sends the SQL statement +.I command +to the database. If the call fails, the first element of the returned tuple is non-zero and the second is an error message. +.TP +.IB h .columns() +Returns the number of columns in the result set of the previous SQL select command sent to the database. A returned value of 0 indicates there was a problem with the previous command, or there was no previous select command. +.TP +.IB h .nextRow() +Advances the current row, then returns the current row number of the selection results. A return value of 0 indicates there are no more rows; a negative value is returned in case of an error. The initial current row is 0 following a select, so +.B nextRow +must be called before any data is read. +.TP +.IB h .read( c ) +Returns the data of column +.I c +of the current row. If +.I c +is out of range, there is no current row, or some other error occurred, the first element of the returned tuple will be negative, and the byte array (sic) will contain an error message. Otherwise, it will be the number of bytes in the field requested. This could be greater than the length of the returned array, if the DB module could not allocate enough memory to contain the entire field. In this case the returned array contains the initial portion of the field. +.TP +.IB h .write( p , data ) +.B Write +sends data for a binary field to the server, +in anticipation of a subsequent SQL `update request with placeholders'. +.I Data +is an array of bytes containing the data for placeholder +.I p +(counting from 1). +All binary fields should be set by +.B write +before the SQL request is sent to the server +with +.BR SQL . +It returns the number of bytes saved for the field, or -1 on failure. +.TP +.IB h .columnTitle( n ) +.B ColumnTitle +returns the title of column +.IR n . +It returns nil if +.I n +is out of range. +.TP +.IB h .errmsg() +Returns the error message associated with the failure of a previous +.BR columns , +.BR nextRow , +.B columnTitle +or +.BR read . +.SH SOURCE +.B /appl/lib/db.b +.SH "SEE ALSO" +.IR svc (8) diff --git a/static/inferno/man7/dbsrv.7 b/static/inferno/man7/dbsrv.7 new file mode 100644 index 00000000..874a2cf2 --- /dev/null +++ b/static/inferno/man7/dbsrv.7 @@ -0,0 +1,67 @@ +.TH DBSRV 7 emu +.SH NAME +dbsrv \- ODBC database server +.SH SYNOPSIS +.B lib/dbsrv +.I alg +\&... +.SH DESCRIPTION +.I Dbsrv +is normally configured to be run by +.IR svc (8) +on a machine that acts as database server, +for access through the module +.IR db (7). +.PP +The incoming call is authenticated by +.IR security-auth (2). +After successful authorisation, the client can request that a digest and/or encryption +algorithm be applied to protect the data exchanged with the server. +Each +.I alg +names a digest or encryption algorithm that the server will allow +the client to use, +in any form accepted by +.IR ssl (3); +the special name +.B none +means that +.I ssl +need not be used. +.PP +The implementation of +.I dbsrv +relies on a program external to Inferno, +.BR infdb , +which translates between the +.IR db (7) +internal format for requests, and data base access calls on the host. +.I Dbsrv +invokes +.B infdb +using the +.IR cmd (3) +device. +Currently +.B infdb +is implemented only under Windows/NT, giving +access via ODBC to a Microsoft Access data base. +.SH FILES +.TF /usr/user/keyring/default +.TP +.B /cmd +host command execution +.TP +.B /Nt/386/bin/infdb.exe +Windows executable for ODBC interface +.TP +.BI /usr/ user /keyring/default +server's authentication data when +.IR svc (8) +run as +.I user +.SH SOURCE +.B /appl/lib/dbsrv.b +.SH SEE ALSO +.IR db (7), +.IR svc (8) diff --git a/static/inferno/man8/0intro.8 b/static/inferno/man8/0intro.8 new file mode 100644 index 00000000..7ab31322 --- /dev/null +++ b/static/inferno/man8/0intro.8 @@ -0,0 +1,13 @@ +.TH INTRO 8 +.SH NAME +intro \- introduction to system configuration and administration, and system utilities +.SH DESCRIPTION +This section of the manual describes commands that provide +system configuration and support system administration. +There are commands to start and shut down native and hosted environments, +administer authentication, +build file system images, +initialise disks and flash memory, and +configure devices. +It also documents the commands and interfaces to service +programs, including those providing services on the network. diff --git a/static/inferno/man8/INDEX.8 b/static/inferno/man8/INDEX.8 new file mode 100644 index 00000000..d5c1d7db --- /dev/null +++ b/static/inferno/man8/INDEX.8 @@ -0,0 +1,60 @@ +intro 0intro +ai2key ai2key +dsagen ai2key +rsagen ai2key +applylog applylog +updatelog applylog +bootpd bootpd +tftpd bootpd +changelogin changelogin +convpasswd changelogin +collabsrv collabsrv +create create +info create +inst create +createsignerkey createsignerkey +cs cs +csquery cs +dhcp dhcp +dns dns +dnsquery dns +fpgaload fpgaload +ftl ftl +getauthinfo getauthinfo +echo httpd +httpd httpd +stats httpd +emuinit init +init init +osinit init +kfscmd kfscmd +logind logind +mangaload mangaload +manufacture manufacture +mkext mkfs +mkfs mkfs +ping ping +plumber plumber +fdisk prep +format prep +mbr prep +prep prep +rdbgsrv rdbgsrv +register register +rip rip +rstyxd rstyxd +shutdown shutdown +countersigner signer +signer signer +verify signer +sntp sntp +styxchat styxchat +styxmon styxmon +auth svc +net svc +registry svc +rstyx svc +styx svc +svc svc +touchcal touchcal +virgild virgild diff --git a/static/inferno/man8/Makefile b/static/inferno/man8/Makefile new file mode 100644 index 00000000..a2af6bc6 --- /dev/null +++ b/static/inferno/man8/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.8) + +include ../../mandoc.mk diff --git a/static/inferno/man8/ai2key.8 b/static/inferno/man8/ai2key.8 new file mode 100644 index 00000000..aa47180d --- /dev/null +++ b/static/inferno/man8/ai2key.8 @@ -0,0 +1,262 @@ +.TH AI2KEY 8 +.SH NAME +ai2key, dsagen, rsagen \- generate and reformat public keys +.SH SYNOPSIS +.B ai2key +[ +.BI -t " tag" +] +.I keyfile +\&... +.PP +.B dsagen +[ +.BI -t " tag" +] +.PP +.B rsagen +[ +.BI -b " nbits" +] [ +.BI -t " tag" +] +.SH DESCRIPTION +.IR Factotum (4) +represents public keys as lists of attribute-value pairs, each key on a single line prefixed with the string +.BR key . +.PP +.I Ai2key +converts the original Inferno representation of authentication data, +in the format defined for +.B authinfo +by +.IR keytext (6), +to an attribute-value format accepted by +.IR factotum (4) +for the +.B infauth +authentication protocol. +For each +.I keyfile +it writes a single line on standard output, containing +the following fields: +.IP +.EX +.fi +.ti -3n +key proto=infauth +[ +.I tag +] +.BI "sigalg=" pkalg - hashalg +[ +.BI dom= host +] +.BI server= host +[ +.BI service= svc +] +.BI "user=" name +.BI "signer=" name +.BI "pk=" pk +.BI "!sk=" sk +.BI spk= pk +.BI cert= cert +.BI dh-alpha= hex +.BI dh-p= hex +.EE +.PP +where +.RS +.TP 15n +.I pkalg +is +.BR dsa , +.B elgamal +or +.BR rsa +.PD 0 +.ns +.TP +.I hashalg +is +.B md5 +or +.BR sha1 +.br +.ns +.TP +.B user +is the user name associated with the key, as vouched for by the supporting +certificate +.BR cert +.br +.ns +.TP +.B signer +is the user name associated with the key that signed the certificate +.br +.ns +.TP +.B pk +is the user's public key +.br +.ns +.TP +.B !sk +is the user's private (secret) key +.br +.ns +.TP +.B spk +is the signer's public key +.br +.ns +.TP +.B cert +is the +.I certificate +.br +.ns +.TP +.BR dh-alpha ,\ dh-p +are the Diffie-Hellman parameters shared by the user and file servers. +.RE +.PD +.PP +The key is tagged by one or more of +.BR dom , +.B server +and +.BR service , +derived from the file name +.IR keyfile . +The server is +.RB ` * ' +if +.I keyfile +is +.BR default . +Otherwise +.I keyfile +has the form +.IP +[ +.IB net ! +] +.I host +[ +.BI ! srv +] +.PP +and +.B server +and +.B service +are set accordingly; +.B dom +is set if +.I host +looks like a domain name. +Key and certificate values have the form defined in +.IR keytext (6); +.I hex +is a large number in hexadecimal. +.PP +.I Dsagen +prints a randomly-generated DSA private key using the NIST-recommended algorithm. +If +.I tag +text is specified, it is printed after the +.B proto +attribute-value pair. +Typically, +.I tag +is a sequence of attribute-value comments describing the key. +A DSA key has the following attributes +.RS +.TP 8n +.B p +prime public modulus +.PD 0 +.TP +.B q +prime group order; divides +.BR p -1 +.TP +.B alpha +group generator +.TP +.B key +.BR alpha ^ !secret +mod +.B p +.TP +.B !secret +the secret exponent +.RE +.PD +.PP +.I Rsagen +prints a randomly generated RSA private key +whose +.B n +has exactly +.I nbits +(default 1024) +significant bits. +The key has the following attributes: +.RS +.TP +.B size +the number of significant bits in +.B n +.PD 0 +.TP +.B ek +the encryption exponent +.TP +.B n +the product of +.B !p +and +.B !q +.TP +.B !dk +the decryption exponent +.TP +.B !p +a large prime +.TP +.B !q +another large prime +.TP +.B "!kp\fR, \fL!kq\fR, \fL!c2 +parameters derived from the other attributes, cached to speed decryption +.RE +.PD +.PP +All the numbers in +.I dsagen +and +.I rsagen +output are in hexadecimal except RSA's +.BR size , +which is decimal. +A public key omits the attributes beginning with +.L ! . +A key may have other attributes as well, for example a +.B service +attribute identifying how this key is typically used, +but to these utilities such attributes are merely comments. +They can be provided in a +.I tag +argument. +.SH SOURCE +.B /appl/cmd/auth/ai2key.b +.br +.B /appl/cmd/auth/dsagen.b +.br +.B /appl/cmd/auth/rsagen.b +.SH "SEE ALSO" +.IR factotum (4) diff --git a/static/inferno/man8/applylog.8 b/static/inferno/man8/applylog.8 new file mode 100644 index 00000000..19f9c6fe --- /dev/null +++ b/static/inferno/man8/applylog.8 @@ -0,0 +1,237 @@ +.TH APPLYLOG 8 +.SH NAME +applylog, updatelog \- log-based updates +.SH SYNOPSIS +.B install/applylog +[ +.B -c +] [ +.B -e +] [ +.B -n +] [ +.B -s +] [ +.B -u +] [ +.B -g +] [ +.B -v +] [ +.BI -T " timefile" +] +.I clientlog +.I clientroot +.I serverroot +[ +.I path +\&... +] +.PP +.B install/updatelog +[ +.BI -p " proto" +] [ +.BI -r " root" +] [ +.BI -t " now gen" +] [ +.B -c +] [ +.BI -x " path" +] +.I log +[ +.I path +\&... +] +.SH DESCRIPTION +These two commands allow distribution of updates (eg, to the Inferno tree) +based on a log of changes since a previous update. +Notionally, one +.I server +system is the primary for a set of files, and one or more +.I client +systems maintain replicas of that set, +although in some applications server and client might be the same machine. +.PP +.I Applylog +is run on a client, to update the file tree rooted at +.IR clientroot . +The server's version of the tree is rooted at +.I serverroot +on the client, +typically by being mounted there (see +.IR bind (1)). +.I Applylog +takes the current state of the replica from the entries in +.IR clientlog , +and applies a set of changes represented by log entries read from its standard input. +Those entries are provided by the server. +Each change is examined to see whether the file to which it applies is in the expected state. +If so, the change is applied without comment; otherwise, there is a conflict caused by +a local change to the replica tree independently from the primary. +By default, +.I applylog +diagnoses the conflict and does not apply the change. +It accepts the following options: +.TP +.B -c +Resolve inconsistencies in favour of the client: leave the replica as is. +.TP +.B -e +Exit with an error status on any error, including inconsistency between client and server. +.TP +.B -n +Print on standard output a list of changes that would be made, and list any conflicts, +but do not change the tree or update the log. +.TP +.B -s +Resolve inconsistencies in favour of the server: make the replica match the server's state. +.TP +.B -u +Make file ownership in the replica match that on the server. +.TP +.B -g +Make group ownership in the replica match that on the server. +.TP +.B -v +Print a summary of each log entry as it is examined. +.TP +.BI -T " timefile" +Read a time and sequence number from +.I timefile +and apply only log entries with stamps greater than that. +On successful completion, if the +.B -n +option is not given, update the +.I timefile +with the stamp of the last log entry processed successfully. +.PP +The scope of an update in a tree can be restricted to a particular set of +.I paths +listed on the command line. +They should all be relative path names. +.PP +.I Updatelog +is run on a server to produce a sequence of log entries representing changes +to the primary tree since a previous log was produced. +It can also be run on a client to see how its replica state differs from that recorded in a log. +It accepts the following options: +.TP +.BI -p " proto" +Use +.I proto +as the prototype for the file system, as described by +.IR proto (6) +(default: +.BR /lib/proto/all ). +.TP +.BI -r " root" +The replica is rooted at +.I root +(default: +the current directory, +.BR . ). +.TP +.BI -t " now gen" +Make log entries use time +.I now +and initial sequence number +.IR gen . +The defaults are the current time and 0. +.TP +.B -c +Produce output only for content and metadata changes, not additions or deletions. +.TP +.BI -x " path" +Exclude +.I path +and its subtrees from consideration. +.PP +By default, +.I updatelog +produces log entries describing changes, additions and deletions to all files in +.I root +but the scope can be limited by giving a different +.IR proto , +explicitly listing trees to consider as +.I paths +on the command line, and +by giving one or more +.B -x +options to exclude particular paths, +in any desired combination. +.SS Log file format +.PP +A log file is a text file with one line representing each change to the tree. +Each line has the form: +.IP +.I "time gen verb path serverpath mode uid gid mtime length" +[ +.I sum +\&... +] +.PP +where: +.RS +.TP +.I "time, gen" +are decimal numbers that order the sequence of requests: +.I time +is typically the time in seconds of the epoch at which the entry was made; +.I gen +is a monotonically increasing sequence number +.PD +.TP +.I verb +is an action: +.RS +.PD0 +.TP +.B a +add file +.I path +.TP +.B c +change the contents of file +.I path +.TP +.B d +delete +.I path +.TP +.B m +change the metadata (permissions, ownership) for +.I path +.RE +.PD +.TP +.I path +the name of the file on the client +.TP +.I serverpath +the name of the file on the server with the contents for +.IR path , +or simply +.L - +when the server and client file names are the same +.TP +.I "mode, uid, gid, length, mtime" +the resulting metadata (except for +.B d +where the metadata is that for the file to be deleted) +.TP +.I sum +is the MD5 checksum of the file's contents +.RE +.SH SOURCE +.B /appl/cmd/install/applylog.b +.br +.B /appl/cmd/install/logs.b +.br +.B /appl/cmd/install/updatelog.b +.SH SEE ALSO +.IR fs (1), +.IR kfs (4), +.IR proto (6) diff --git a/static/inferno/man8/bootpd.8 b/static/inferno/man8/bootpd.8 new file mode 100644 index 00000000..47e74c09 --- /dev/null +++ b/static/inferno/man8/bootpd.8 @@ -0,0 +1,163 @@ +.TH BOOTPD 8 +.SH NAME +bootpd, tftpd \- Internet booting +.SH SYNOPSIS +.B ip/bootpd +[ +.B -dsq +] [ +.BI -f " dbfile" +] [ +.BI -x " network" +] +.PP +.B ip/tftpd +.RB [ -dr ] +[ +.BI -p " port" +] [ +.BI -h " homedir" +] [ +.BI -x " network" +] +.SH DESCRIPTION +.I Bootpd +listens for Internet BOOTP requests and broadcasts a suitable reply +to each request that matches an entry +in the network database +.I dbfile +(default: +.BR /lib/ndb/local ). +The BOOTP protocol is typically used by a remote system as it boots, to obtain its Internet address +and other configuration data such as the addresses of servers +(see for instance the +.B bootp +file in +.IR ip (3)). +.PP +.I Dbfile +is in +.IR ndb (6) +format, as interpreted by +.IR attrdb (2). +.I Bootpd +uses the following attributes: +.TF ipmask +.TP +.B auth +authentication server name or address +.TP +.B bootf +name of the client's boot file +.TP +.B dom +fully-qualified domain name +.TP +.B ether +hardware (MAC) address; only Ethernet is supported +.TP +.B fs +file server name or address +.TP +.B ip +client's Internet address +.TP +.B ipgw +gateway from client's subnet (IP address) +.TP +.B ipmask +subnet mask +.TP +.B ipnet +network name +.TP +.B sys +system name (client identifier) +.PD +.PP +.I Bootpd +replies to an incoming request only if its hardware address matches the value of the +.B ether +attribute of an entry in +.I dbfile . +If found, the reply contains all the other requested data that is contained in the entry; +if an item is missing, it is sought in the entries for successively higher networks (described by +.B ipnet +entries) that contain the requesting system's address. +The `vendor specific' part of the reply conveys the file server and authentication server addresses +to Inferno clients. +Before answering a request, +.I bootpd +rereads +.I dbfile +if it has changed since last read. +.PP +The +.B -s +option causes +.I bootpd +to sniff the network for BOOTP traffic and print it, but not reply. +The +.B -d +option prints debugging information; giving it twice prints even more. +The +.B -x +option tells +.I bootpd +to use a +.I network +other than +.BR /net . +Currently +.I bootpd +prints a message to standard output each time it replies; the +.B -q +option keeps it quiet. +.PP +.I Tftpd +is mainly used to send kernels and configuration files to machines booting from the network. +It listens for incoming TFTP file transfer requests on the given UDP +.I port +(default: 69) and responds by sending or receiving a file as requested. +.I Homedir +is the current directory for transfers, +.B /services/tftpd +by default, +and requests that use a relative path name refer to files in or below that directory. +If the +.B -r +option is given, absolute path names are also restricted to +.IR homedir . +.I Tftpd +runs as +.B none +(the least privileged user) and can send only files with general read permission, or write files +that are generally writable. +Normally +.I tftpd +uses the network directory +.BR /net , +but another can be specified with the +.B -x +option. +The +.B -d +option prints a debugging trace on standard output. +.SH FILES +.TF /services/tftpd/xxxxx +.TP +.B /lib/ndb/local +network configuration file +.TP +.B /services/tftpd +default directory for relative pathnames +.SH SOURCE +.B /appl/cmd/ip/bootpd.b +.br +.B /appl/cmd/ip/tftpd.b +.SH SEE ALSO +.IR attrdb (2), +.IR ip (3), +.IR ndb (6), +.IR cs (8), +.IR dns (8) diff --git a/static/inferno/man8/changelogin.8 b/static/inferno/man8/changelogin.8 new file mode 100644 index 00000000..57e89145 --- /dev/null +++ b/static/inferno/man8/changelogin.8 @@ -0,0 +1,113 @@ +.TH CHANGELOGIN 8 +.SH NAME +changelogin, convpasswd \- create/update the password file +.SH SYNOPSIS +.BI auth/changelogin " name" +.PP +.B auth/convpasswd +[ +.B -f +] [ +.B -v +] [ +.BI -m " keydir" +] +[ +.I pwfile +] +.SH DESCRIPTION +.I Changelogin +helps to administer a password file +.B /keydb/keys +(see +.IR keys (6)), +a requirement of `signer' servers +(see +.IR logind (8), +.IR signer (8), +and +.B svc/auth +in +.IR svc (8)). +.I Changelogin +can only be used on the signing host itself, +after +.IR keyfs (4) +has been started (eg, by +.BR svc/auth ) +to make the entries visible in the name space. +.PP +If a password file entry for +.I name +exists, it is modified; otherwise, a new entry is created. +The user is prompted for the following items: +.TP +password +A string at least 8 characters in length. The SHA-1 digest of the entered string is stored in the password file. See +.IR keyring-sha1 (2). +By default, the password for an existing entry is unchanged. +.TP +expiration date +An expiration time in the format +.IR DDMMYYYY . +The user input is checked for valid day, month, and year; moreover, the new date must be later than the current time. +By default, the current value, if any, is unchanged for an existing entry and one year from the current time for a new entry. +.ig +.TP +free form info +Arbitrary administrative information. +.. +.PP +Note that the +password expiration date is also used as the default expiration date +for any certificate later produced; +see +.IR getauthinfo (8). +.PP +.I Convpasswd +converts a Third Edition +password file +to the +.IR keys (6) +file used by the current Edition of the system. +It reads password entries from +.IR pwfile , +.B /keydb/password +by default, +and writes corresponding entries into +a name space served by +.IR keyfs (4), +mounted at +.IR keydir , +.B /mnt/keys +by default. +It copies passwords and expiry times. +The `free form' administrative data is discarded. +If +.I keydir +already has got an entry for a user, it is left as-is, unless +the +.B -f +option is given to force +.I convpasswd +to copy across the entry in +.I pwfile . +The +.B -v +option causes +.I convpasswd +to print each user name after it successfully installs it. +.SH FILES +.TF /keydb/keys +.TP +.B /keydb/keys +.SH SOURCE +.B /appl/cmd/auth/changelogin.b +.SH "SEE ALSO" +.IR passwd (1), +.IR keyfs (4), +.IR keysrv (4), +.IR keys (6), +.IR logind (8), +.IR signer (8), +.IR svc (8) diff --git a/static/inferno/man8/collabsrv.8 b/static/inferno/man8/collabsrv.8 new file mode 100644 index 00000000..b99e0365 --- /dev/null +++ b/static/inferno/man8/collabsrv.8 @@ -0,0 +1,334 @@ +.TH COLLABSRV 8 +.SH NAME +collabsrv \- multi-user collaboration +.SH SYNOPSIS +.B collab/collabsrv +[ +.BI "-f " keyfile +] [ +.BI "-n " netaddress +] [ +.I dir +] +.PP +.B collab/servers/chatsrv +.PP +.B collab/servers/mpx +.PP +.B collab/servers/wbsrv +.SH DESCRIPTION +.I Collabsrv +listens on network address +.I netaddress +(default: +.BR tcp!*!9999 ) +for incoming requests to attach to services +it offers. +The services are defined by the contents of directory +.IR dir +(default: +.BR /services/collab ). +.I Collabsrv +serves an authenticated 9P connection that exports the contents of +.IB dir /export +(default: +.BR /services/collab/export ). +The exported name space can contain directories from a shared file server, +but it will also contain a directory +.B services +giving access to any collaborative activity services that have been configured. +.PP +The +.B services +directory contains a single +.B ctl +file and a set of subdirectories, numbered +.BR 0 , +.BR 1 +and so on. +The +.B ctl +is used to activate and access services. +Each service instance is identified by a name; +clients connect to a given instance by presenting its name. +Each directory represents one instance of a service. +Each service instance corresponds to a name space; the clients +all share that name space. +The name space is determined by the service. +.PP +A client wishing to make use of the services must first +.IR dial (2) +to connect to +.IR collabsrv, +and authenticate and mount the resulting 9P connection. +It can do so using the +.I mount +command +(see +.IR bind (1)), +or by +using +.IR security-auth (2) +and +.B Sys->mount +(see +.IR sys-bind (2)). +Normally, this is done by +.IR collab (1). +.PP +A new connection to a particular service is requested by opening the +.B ctl +file for reading and writing, +writing a service request to it, and reading back +the number of the directory corresponding to the requested service. +A service request written to +.B ctl +is text of the following form: +.IP +.DS +.I "service id" +.DE +.PP +where +.I service +is a string specifying the type of service (eg, +.BR chat ) +and +.I id +is a string identifying the instance. +The server does not interpret +.IR id ; +it is up to the clients to agree a naming convention (often +using the name of a shared file as an +.IR id ). +.I Collabsrv +will connect to instance +.I id +of the requested +.I service +type +if one is already running, or start one if necessary; +the write request returns an error if the service cannot be started. +Following a successful write to +.BR ctl , +a read will return the number of the service +directory containing the client's private connection to that service instance. +Closing the +.B ctl +file disconnects from the service. +.PP +Available services are defined by a configuration file +.BR /services/collab/services.cfg , +which contains a sequence of configuration +entries of the following form: +.IP +.EX +.I service +.br +\f5 path=\fIdisfile\fP +.EE +.PP +where +.I service +is the name presented in a service request, and +.I disfile +names a Dis file implementing that service; +path names are interpreted relative to +.BR /services/collab , +but usually refer to files in +.BR /dis/collab/servers . +.PP +Each +.I collabsrv +service is represented by a name space peculiar to that service. +The interface to the service is therefore implemented by a service-specific 9P server +.RI ( disfile +in the configuration file). +Current services are described below. +.SS "Chat" +.I Chatsrv +provides a simple service for the exchange of text messages. +It serves a name space containing two files. +The files together represent a single messaging group: +.TF users +.TP +.B users +A read-only file that lists the user names of the current members of the group, one per line. +The version number of the file's Qid +(see +.IR sys-stat (2)) +is incremented each time a client arrives or leaves. +.TP +.B msgs +.RS +A client connects to the messaging group by opening this file. +A message is sent to the group by writing to the file. +Each read returns the next unread message, prefixed by the name of the sender, +or +.B +for a message sent by the current client. +A client sees no messages sent before it connects. +Messages are delivered in the same order to all clients; clients receive their own messages. +Two special messages are generated by the server: +.IP +.EX ++++ \fIname\fP has arrived +--- \fIname\fP has left +.EE +.PP +as clients come and go. +.RE +.SS "Multiplexor" +.I Mpx +offers a general fan-out/fan-in multiplexing service for a tree of processes, +with one controlling or root process at the root of the tree, +and a set of client processes at the leaves of the tree. +It serves three files: +.TF users +.TP +.B root +An exclusive-use file read and written by the root process +to communicate with the leaf processes. +.TP +.B leaf +Client processes read and write this file to communicate with the +root process (each +.B open +of +.B leaf +is independent). +It cannot be opened until a process has opened +.BR root . +After +.B root +has been closed, and any remaining messages on +.B leaf +have been read, +subsequent reads will return zero bytes (end-of-file). +.TP +.B users +A read-only text file that lists the user names of processes that currently have +.B leaf +open. +There is one line per leaf, containing a unique numeric ID for the leaf, a space, and then the users's name. +.PP +A message written to +.B root +is replicated on all instances of +.B leaf +that are currently open. +A message written to any instance of +.B leaf +will be read by the process reading +.BR root . +Data written to both +.B root +and +.B leaf +has a prefix added to identify the sender, causing messages +to have the following format: +.IP +.EX +.I "seq clientid op name data" +.EE +.PP +where +.I seq +is a unique message sequence number; +.I clientid +is a unique number identifying the process amongst currently connected clients, +with 0 identifying the root process; +.I op +is a single character giving the message type (see below); +.I name +is the sending process's user name; and +.I data +is the data written by the process, which can be text or binary (the message header is always text). +.I Mpx +also generates messages as root and leaf processes arrive and leave. +These are identified by +.IR op . +The various +.I op +values and the direction in which they can occur are listed below: +.TP +.B a +New leaf process has arrived (leaf to root) +.TP +.B M +Message from root process (root to leaf) +.TP +.B m +Message from leaf process (leaf to root) +.TP +.B L +Root process has left (root to leaf) +.TP +.B l +Leaf process has left (leaf to root) +.PP +Messages are only ever sent from the root to all leaves, or from a leaf to the root, +never from leaf to leaf; the root process could of course rebroadcast a message from a leaf. +The multiplexor service is used to implement +a real-time poll +(see +.B poll +and +.B poller +in +.IR collab-clients (1)), +but could be used for several other services, such as auctions. +.SS "Whiteboard" +.I Wbsrv +offers a service for sharing a simple line drawing. +It serves two files: +.TP +.B wb.bit +A read-only file containing an uncompressed +.IR image (6) +with the current state of the drawing. +.TP +.B strokes +This file is read and written to exchange strokes with other clients. +A stroke has the following representation: +.RS +.IP +.IR "colour width x0 y0 x1 y1 " ... +.PP +where all values are space-separated decimal numbers: +.I colour +is an index into the +.IR rgbv (6) +colour map; +.I width +is the width of the line in pixels, and +the sequence of coordinate pairs defines the connected line segments to draw. +A stroke is transmitted from one client to all others by writing a stroke description to the file in a single write. +Each read returns a description of a stroke made by another client. +.RE +.PP +A whiteboard client should read the +.B wb.bit +file to obtain its image, then read the +.B strokes +file for instructions to keep it up to date. +.SH FILES +.TF /services/collab/export/services +.TP +.B /services/collab/export/services +active service directory +.TP +.B /services/collab/services.cfg +maps service names to modules +.TP +.B /dis/collab/servers +service implementation modules +.SH SOURCE +.B /appl/collabsrv +.br +.B /appl/collab/servers +.br +.B /appl/collab/lib +.SH SEE ALSO +.IR collab (1), +.IR collab-clients (1) diff --git a/static/inferno/man8/create.8 b/static/inferno/man8/create.8 new file mode 100644 index 00000000..7615d481 --- /dev/null +++ b/static/inferno/man8/create.8 @@ -0,0 +1,204 @@ +.TH CREATE 8 +.SH NAME +create, inst, info \- archive or update a file system +.SH SYNOPSIS +.B install/create +.RB [ -u ] +.RB [ -U ] +.RB [ -v ] +.RB [ -x ] +.RB [ -o ] +.RB [ -p +.IR proto ] +.RB [ -r +.IR root ] +.RB [ -s +.IR source ] +.RB [ -N +.IR uid ] +.RB [ -G +.IR gid ] +.RB [ -d +.IR description ] +.I name +.PP +.B install/inst +.RB [ -c ] +.RB [ -h ] +.RB [ -t ] +.RB [ -u ] +.RB [ -v ] +.RB [ -F ] +.RB [ -r +.IR root ] +.I name +.RI [ prefix +.IR ... ] +.PP +.B install/info +.RB [ -r ] +.I package +.SH DESCRIPTION +.I Create +copies files from the file tree +.I source +(default +.BR / ) +to an output file in archive format appropriate for a software distribution. The name of the output +file is the time that the archive was made. The latter includes wrap headers that describe +the distribution. +.I Name +is typically the name of the product or software package. The +.B -p +option specifies the prototype file +.I proto +to use to build the archive. +.PP +Each line of the +.I proto +file specifies a file to copy. +Indentation is significant, +with each level of indentation corresponding to a level in the file tree. +Fields within a line are separated by white space. +The first field is the last path element in the destination file tree. +The second field specifies the permissions. +The third field is the owner of the file, +and the fourth is the group owning the file. +The fifth field is the name of the file from which to copy; +this file is read from the current name space, +not the source file tree. +All fields except the first are optional. +.PP +Names beginning with a +.L $ +are expanded as environment variables. +If the first file specified in a directory is +.LR * , +all of the files in that directory are copied. +If the first file is +.LR % , +all of the non-directory files in that directory are copied. +If the first file is +.LR + , +all of the files are copied, and all subdirectories +are recursively copied. +.PP +Files in the source tree that are not specified in the +.I proto +file +are not placed in the archive. +.PP +The remaining options to +.I create +are: +.TP 10 +.B -u +Build an update distribution rather than a base distribution. In this case +.I name +should be the name of the previous archive file built for this product. Only files +that are out of date with respect to the latter are included in the archive. Files which +no longer exist will be marked for removal. +.TP +.B -U +Build an update package distribution instead. This is a hybrid of a base +distribution and an update distribution. +.TP +.B -v +Print out the files as they go into the archive. +.TP +.B -x +Print out the files that would go into the archive but do not actually archive them. +.TP +.B -o +Copy the archive file to the standard output rather than putting it in a date stamped output file. +.TP +.B -r root +Specifies the location of any previous archives for this product. +.TP +.B -N uid +Give all the files in the archive the user id specified. +.TP +.B -G gid +Give all the files in the archive the group id specified, +.TP +.B -d description +Give a description of the distribution. This is placed in the wrap header files. +.PD +.PP +.I Inst +installs archive files made by +.I create . +.I Name +is the name of the archive file to install. Any further names after this are treated as path +prefixes and only files in the archive that have one of the given prefixes are actually installed. +The option to +.I inst +are : +.TP 10 +.B -c +Carry on regardless when errors occur. The default behaviour is to exit on encountering an error. +.TP +.B -h +Only print the names of the files in the archive. +.TP +.B -t +Give each installed file the same date stamp as indicated by that file's entry in the archive. +.TP +.B -u +Give each installed file the same date stamp, user id and group id as shown in the archive. +.TP +.B -v +Print out the names of directories as they are installed. +.TP +.B -F +Force the installation of the files in the archive even when the corresponding local file +has apparently been locally updated or already exists. +.TP +.B -r root +Specifies the root of destination tree where the files will be copied to. +.PD +.PP +.I Info +prints information about either a specific file produced by +.I create +or about all files making up a package in the +.B /wrap +tree. In particular base packages, +full updates and partial updates are distinguished. The +.B -r +option +specifies the the root of the tree to look in. This defaults to +.BR / . +.SH EXAMPLES +.PP +Make an archive to establish a new base package for an Inferno distribution: +.IP +.EX +install/create -o -N inferno -G inf -d InfernoOS -p PROTO Inferno.1.0 > inferno.arch +.EE +.PP +Here the name of the product is Inferno.1.0. +.PP +Install that archive on another machine: +.IP +.EX +install/inst -r / inferno.arch +.EE +.PP +Here the product is placed in / with the user and group ids being set to those of the +person doing the installation. +.SH SOURCE +.B /appl/cmd/install/arch.b +.br +.B /appl/cmd/install/create.b +.br +.B /appl/cmd/install/info.b +.br +.B /appl/cmd/install/inst.b +.br +.B /appl/cmd/install/proto.b +.br +.B /appl/cmd/install/wrap.b +.SH "SEE ALSO" +.IR archfs (4) + diff --git a/static/inferno/man8/createsignerkey.8 b/static/inferno/man8/createsignerkey.8 new file mode 100644 index 00000000..b40a0f46 --- /dev/null +++ b/static/inferno/man8/createsignerkey.8 @@ -0,0 +1,67 @@ +.TH CREATESIGNERKEY 8 +.SH NAME +createsignerkey \- create signer key on authentication server +.SH SYNOPSIS +.B auth/createsignerkey +[ +.BI -a " alg" +] [ +.BI -f " keyfile" +] [ +.BI -e " expiry" +] [ +.BI -b " bitsize" +] +.I name +.SH DESCRIPTION +.I Createsignerkey +creates public and private keys that are used by a server acting as `signer' to generate certificates for users. +.I Name +appears as signer in each certificate. +The +.I expiry +date has the form +.IR ddmmyyyy , +is converted to seconds since the epoch +(see +.IR daytime (2)) +and stored in the +.IR keyfile ; +by default the server's certificate never expires. +.PP +The key will be +.I bitsize +long (default: 512 bits) with a minimum of 32 bits and a maximum of 4096 bits. +.I Keyfile +is the file in which the server stores its keys; +the default is +.BR /keydb/signerkey , +and many authentication programs such as +.IR logind (8) +by default expect to find their server key there. +Creating a signer's default key afresh typically invalidates all certificates previously issued by that signer, +because their signatures will not verify. +The mode of the +.I keyfile +should be set to be readable only by the user running +those programs. +.PP +The +.B -a +option specifies the signature algorithm. +Currently +.I alg +can be either +.B elgamal +or +.BR rsa . +RSA keys are now used by default. +.SH FILES +.B /keydb/signerkey +.SH SOURCE +.B /appl/cmd/auth/createsignerkey.b +.SH SEE ALSO +.IR security-auth (2), +.IR keyring-gensk (2), +.IR logind (8), +.IR signer (8) diff --git a/static/inferno/man8/cs.8 b/static/inferno/man8/cs.8 new file mode 100644 index 00000000..4f7e1b4e --- /dev/null +++ b/static/inferno/man8/cs.8 @@ -0,0 +1,248 @@ +.TH CS 8 +.SH NAME +cs, csquery \- connection server +.SH SYNOPSYS +.B ndb/cs +[ +.BI -f " database" +] [ +.B -v +] [ +.BI -x " net" +] +.PP +.B ndb/csquery +[ +.B -x +.I net +] [ +.B -s +.I server +] [ +.I address +\&... ] +.SH DESCRIPTION +.I Cs +spawns a process that +serves a single file +.BR /net/cs , +in the current name space, +answering requests by client processes +to translate symbolic network and service names into +instructions for connecting to the given service. +It is normally accessed indirectly by calls to +.IR dial (2). +.PP +The network data is taken from the network database files, +described in +.IR ndb (6). +By default, it is +.B /lib/ndb/local +but the +.B -f +option can specify a different one. +.PP +Each write to +.B /net/cs +makes a query, expressed in one of two forms. +The first form is a network address of the same form +as the +.I addr +parameter to +.IR dial : +.IB network ! netaddr ! service +where +.I service +and +.I network +are optional for some networks. +The write returns an error if the address cannot be translated. +Otherwise, the file offset should be reset to 0 using +.IR sys-seek (2) +and each subsequent read will return either +end-of-file (if there are no further translations), +or a single line containing a translation of the form: +.IP +.BI /net/ proto /clone " address" ! port +.PP +The first field is the name of the +.I clone +file for a network protocol or interface. +To make a connection or announce a service, open that file, and write the +text in the second field +preceded by +.B connect +or +.B announce +as required. +(All this activity is normally encapsulated in a call to +.IR dial (2).) +.I Cs +produces a translation for each network and for each network address on which a symbolic +.I netaddr +is found. +When announcing a service, +.I netaddr +can be +.B * +to represent any local interface, and the resulting recipes read +from +.B /net/cs +will not include an +.IB address ! +part. +.PP +.I Cs +interprets a +.I netaddr +of the form +.BI $ server +specially: it looks for an attribute +.I server +in the database in the entry for the current host, then in the entry for +each network that contains it (if specified), and finally in a site-wide +entry labelled with the attribute +.BR infernosite . +If found, the value of the attribute replaces the +.I netaddr +before further translation. +.PP +In the second form of query, the text written contains space-separated attribute/value pairs following +an initial +.LR ! : +.IP +.B ! +.IB attr1 = val1 +[ +.IB attr2 = val2 +\& ... +] +.PP +.I Cs +looks for an +.IR ndb (6) +entry that contains attribute/value pairs matching those in the query. +Any value but +.I val1 +may be +.RB ` * ', +to signify that the entry must contain the given attribute but with any value. +As before, the write returns an error if no entry matches. +Otherwise, each subsequent read returns the whole of the next matching entry, in +.IR ndb (6) +form. +.PP +The file +.B /net/cs +persists until it is removed or unmounted from +.BR /net , +or the +.I cs +process is killed +(see +.IR kill (1)). +The +.B \-v +option causes +.I cs +to print each translation request and results (if any) on standard error. +The +.B -x +option gives an alternative mount point for +.IR cs , +when there is more than one network stack +(see +.IR ip (3)). +It causes it +.I cs +to serve +.IB net /cs +instead of +.BR /net/cs . +.PP +.I Cs +is normally started once, +after +.IR dns (8) +if used, but +before most other applications including +the various listeners described in +.IR svc (8). +If another instance of +.IR cs (8) +is started on the same mount point, the file it serves replaces the +earlier one if permissions allow. +(On Plan 9, Plan 9's native connection service will be used by default if Inferno's +.I cs +is not started.) +.PP +.I Csquery +queries the given +.I server +(default: +.BR /net/cs ) +for a translation of each +.I address +and prints the results, one per line. +If no +.I address +is given, +.I csquery +prompts for address(es) to translate which it reads from the standard input, +printing the results of each translation on the standard output. +The +.B -x +option gives an alternative mount point for +.IR cs , +when there is more than one network stack +(see +.IR ip (3)). +.PP +.I Cs +uses +.IR ndb (6) +to map protocol and service names to Internet port numbers. +When running hosted, +if entries are not in +.IR ndb (6), +.I cs +applies the built-in +.IR srv (2), +if available, +to have the host system try the translation. +Consequently, entries in +.IR ndb (6) +take precedence over the host's system-wide configuration. +(This is helpful for adding symbolic names for Inferno services +without requiring administrative privileges on the host system.) +.SH EXAMPLE +Check the translation of the symbolic name +.BR $signer : +.IP +.EX +ndb/csquery +> net!$signer!inflogin +/net/tcp/clone 200.1.1.67!6673 +.EE +.SH FILES +.TF /lib/ndb/inferno +.TP +.B #scs* +service directory +.TP +.B /net/cs +connection service +.TP +.B /net/dns +domain name service +.TP +.B /lib/ndb/local +map from symbolic service names to servers +.SH SOURCE +.B /appl/cmd/ndb/cs.b +.br +.B /appl/cmd/ndb/csquery.b +.SH "SEE ALSO" +.IR dial (2), +.IR ndb (6), +.IR dns (8) diff --git a/static/inferno/man8/dhcp.8 b/static/inferno/man8/dhcp.8 new file mode 100644 index 00000000..ee64935f --- /dev/null +++ b/static/inferno/man8/dhcp.8 @@ -0,0 +1,117 @@ +.TH DHCP 8 +.SH NAME +dhcp \- configure network interface details using DHCP +.SH SYNOPSIS +.B ip/dhcp +[ +.B -bdmpr +] [ +.BI -g " gateway" +] [ +.BI -h " hostname" +] [ +.BI -x " net +] +.I ifcdir +[ +.I localip +[ +.I localmask +]] +.SH DESCRIPTION +.I Dhcp +uses the Dynamic Host Configuration Protocol (DHCP) to configure the +.IR ip (3) +interface represented by +.I ifcdir +(eg, +.BR /net/ipifc/1 ). +The interface must have a device already bound to it. +.I Dhcp +uses the MAC address of that device in its requests. +.PP +.I Dhcp +broadcasts a DHCP request for an address and various network parameters. +It takes the first acceptable offer, sets the interface to that address, and writes the address and +parameter values, in +.IR ndb (6) +format, to +.BR /net/ndb , +where +.IR cs (8), +.IR dns (8) +and others will find them. +If the address is provided with a limited lease, +.I dhcp +itself returns, but it leaves +a process in the background that periodically renews the lease (or requests a new address if the lease is not renewed). +.PP +If +.I localip +is given, +.I dhcp +attempts to reacquire that address. +If successful, it configures the interface with that address (and mask if supplied), +maintaining any lease as before. +If it cannot reacquire the address, it broadcasts a request for a new address, as above. +.PP +The options are: +.TP +.B -b +Use plain BOOTP without the DHCP options +.TP +.B -d +Enable debugging output on standard output +.TP +.BI -g " gateway" +Suggest +.I gateway +as the default gateway (the server might change it) +.TP +.BI -h " hostname" +Use +.I hostname +as the current host's name in DHCP messages +.TP +.B -m +Monitor the DHCP status and print a summary on standard output whenever it changes +.TP +.B -n +Do not configure the interface +.TP +.B -p +Print the resulting configuration on standard output +.TP +.B -r +Retry DHCP periodically until it succeeds +.TP +.BI -x " net" +Use mount point +.I net +to access the network, +and write the results to +.IB net /ndb +(default: +.BR /net ) +.PD +.SH EXAMPLE +Allocate a new interface, bind an ether device to it, and configure it with +.IR dhcp : +.IP +.EX +x=`{cat /net/ipifc/clone} +echo bind ether /net/ether0 >/net/ipifc/$x/ctl && +ip/dhcp /net/ipifc/$x +.EE +.SH SOURCE +.B /appl/cmd/ip/dhcp.b +.SH SEE ALSO +.IR ip (3), +.IR ndb (6), +.IR cs (8), +.IR dns (8) +.SH DIAGNOSTICS +.I Dhcp +returns an error status if it receives no acceptable reply, unless the +.B -r +option is given to force retries. diff --git a/static/inferno/man8/dns.8 b/static/inferno/man8/dns.8 new file mode 100644 index 00000000..4518dce6 --- /dev/null +++ b/static/inferno/man8/dns.8 @@ -0,0 +1,158 @@ +.TH DNS 8 +.SH NAME +dns, dnsquery \- domain name service +.SH SYNOPSIS +.B ndb/dns +[ +.BI -f " dnsfile" +] [ +.B -h +] [ +.B -r +] [ +.BI -x " net" +] +.PP +.B ndb/dnsquery +[ +.BI -x " net" +] [ +.BI -s " server" +] [ +.I "address ..." +] +.SH DESCRIPTION +.I Dns +is an Internet Domain Name Service (DNS) resolver. +By default it serves a file +.BR /net/dns , +that clients such as +.IR cs (8) +write and read to retrieve network data associated with domain names and Internet addresses. +The +.B -f +option specifies the network database that contains the local DNS data (default: +.BR /lib/ndb/local ). +The +.B -x +option specifies an alternative mount point for the network (default: +.BR /net ). +When Inferno is running hosted, +.I dns +normally uses the host's own DNS resolver first (via +.IR srv (2)), +before searching the DNS itself; that way domain names can be +used in Inferno with minimal configuration. +The +.B -h +option stops +.I dns +from using the host data. +In the absence of local data, by default +.I dns +consults the external DNS directly using some bootstrap data, but if +.B -r +is specified and local resolvers are given in the configuration file, +.IR dns (6), +.I dns +will query them first for all addresses, before resorting to external DNS servers. +.PP +.I Dnsquery +queries the given +.I server +(default: +.BR /net/dns ) +for a translation of each +.I address +and prints the results, one per line. +If no +.I address +is given, +.I dnsquery +prompts for something to find in the DNS, one per line on the standard input, +of the form: +.IP +.EX +.IR "name" " [" attribute "]" +.EE +.PP +where +.I name +is the label of something in the DNS, and +.I attribute +is one of its attributes from the list below: +.TF hinfox +.TP +.B all +all data currently known locally for +.I name +.TP +cname +name for which +.I name +is an alias +.TP +hinfo +host and operating system type +.TP +.B ip +for an IP address when +.I name +is a domain name +.TP +.B mx +mail exchanger +.TP +.B ns +for a list of name servers +.TP +.B ptr +for the domain name when +.I name +is an Internet address +.TP +.B soa +statement-of-authority +.PD +.PP +.I Dnsquery +queries the +.I server +for that name/attribute combination and prints the results, one per line. +If an +.I attribute +is not given, +.I dnsquery +uses +.B ip +if +.I name +looks like a domain name, +and +.B ptr +if it looks like an Internet address. +.SH FILES +.TF /lib/ndb/local +.TP +.B #sdns* +service directory +.TP +.B /net/dns +domain name service +.TP +.B /lib/ndb/local +network database +.TP +.B /lib/ndb/dns +DNS bootstrap data +.SH SOURCE +.B /appl/cmd/ndb/dns.b +.br +.B /appl/cmd/ndb/dnsquery.b +.SH "SEE ALSO" +.IR dns (6), +.IR cs (8) +.SH BUGS +.I Dns +does not yet offer an external DNS server, mainly +for lack of a suitable database for local zone data. diff --git a/static/inferno/man8/fpgaload.8 b/static/inferno/man8/fpgaload.8 new file mode 100644 index 00000000..c6cf440a --- /dev/null +++ b/static/inferno/man8/fpgaload.8 @@ -0,0 +1,24 @@ +.TH FPGALOAD 8 +.SH NAME +fpgaload \- configure FPGA +.SH SYNOPSIS +.B auxi/fpgaload +[ +.BI -c " clk" +] +.I file.rbf +.SH DESCRIPTION +.I Fpgaload +configures the directly-attached Altera Flex6000 FPGA on the Bright Star Engineering ip-Engine. +It enables the FPGA and output of the external system clocks, then loads the FPGA with the contents of +.IR file.rbf +which should be in the `raw binary format' produced for example by the Altera tools. +After successful configuration, the BCLK is set to +.I clk +MHz; +.I clk +must be a divisor of the ip-Engine's system clock (currently 48 MHz). +.SH SOURCE +.B /appl/cmd/auxi/fpgaload.b +.SH SEE ALSO +.IR fpga (3) diff --git a/static/inferno/man8/ftl.8 b/static/inferno/man8/ftl.8 new file mode 100644 index 00000000..dad34bc9 --- /dev/null +++ b/static/inferno/man8/ftl.8 @@ -0,0 +1,63 @@ +.TH FTL 8 +.SH NAME +ftl \- Flash Translation Layer formatter +.SH SYNOPSIS +.B disk/ftl +.I flashsize +.I secsize +.I kfsfile +.I output +.SH DESCRIPTION +.I Ftl +reads a file system image in +.IR kfs (3) +format from +.I kfsfile +and adds the data structures needed to make it a valid image for +the Flash Translation Layer driver +.IR ftl (3). +The result is written to the +.I output +file, which can be copied to initialise the +flash memory of a suitable device +(see +.IR flash (3)). +.PP +The other arguments describe the characteristics of the flash memory: +.TF \fIflashsize\fP +.PD +.TP +.I flashsize +The size in bytes of the flash memory to which +.I output +will be copied; exactly +.I flashsize +bytes will be written to +.IR output . +.TP +.I secsize +The effective erase unit (sector) size in bytes of the flash memory, as seen +by the processor, having +allowed for bus width. +For example, a bank of flash +formed from byte-wide flash chips, each with 16kbyte sectors, +wired across a 4 byte bus, might have an effective erase unit size of +64kbytes. +.PP +The +.I kfsfile +must not be larger than the size (length) of the +.B ftldata +file provided by +.IR ftl (3) +for the target flash device or partition. +(That size is invariably less than the size of the raw flash, +owing to the overhead of FTL data structures +and a reserve pool of 5% to reduce the number of erase cycles; see +.IR ftl (3)). +.SH SOURCE +.B /appl/cmd/disk/ftl.b +.SH SEE ALSO +.IR flash (3), +.IR ftl (3), +.IR kfs (3) diff --git a/static/inferno/man8/getauthinfo.8 b/static/inferno/man8/getauthinfo.8 new file mode 100644 index 00000000..3e8bd56f --- /dev/null +++ b/static/inferno/man8/getauthinfo.8 @@ -0,0 +1,127 @@ +.TH GETAUTHINFO 8 +.SH NAME +getauthinfo \- obtain a certificate for authentication +.SH SYNOPSIS +.BI getauthinfo " keyname" +.PP +.B wm/getauthinfo +.SH DESCRIPTION +.I Getauthinfo +makes contact with +.IR logind (8) +on a `signer', or certifying authority, with which the user +has previously been registered using +.IR changelogin (8), +to obtain a certificate that +can later be presented to other Inferno services to authenticate the user. +If +.I keyname +starts with a `/', the certificate is stored there; otherwise, it is stored in the file +.BI /usr/ user /keyring/ keyname, +where +.I user +is the name in +.B /dev/user +(see +.IR cons (3)). +The directory +.BI /usr/ user /keyring +must exist. +.PP +The user is prompted for the following: +.TP +signer +The name of the signing server, for example +.BR signer.froop.com . +The default is the default signer for the site: +the value of +.B SIGNER +in the local network configuration database +(see +.IR ndb (6)). +.TP +remote user name +The name of the user for whom a certificate is to be obtained. The default is the current user name in +.BR /dev/user . +.TP +password +The user's password. The password entered on the client must match the password +previously stored on the server using +.IR changelogin (8), +or a certificate will be refused. +.TP +save in file? +The default is `no'. If the user responds `yes', the certificate is written directly to the file. +Otherwise, +.I getauthinfo +becomes a file server, serving +a secure temporary file bound over +the file name above (because that is where applications look for it). +The temporary will disappear if the name is unmounted, or Inferno is rebooted. +.PP +Note that the certificate will expire at or before expiry of the password entry +on the signer. +.PP +The signer needs its own key to endorse the certificates that it gives to clients. +If a user requests a certificate with +.IR getauthinfo (8) +before the signer's key is created on the signer (eg, +using +.IR createsignerkey (8)), +then the request will be rejected with a suitable diagnostic +by +.IR logind (8). +.SS "File servers" +.PP +Machines that will be file servers must obtain a certificate and save the certificate in a key file named +.BR default , +thus: +.IP +.B "getauthinfo default" +.PP +The user invoking +.I getauthinfo +must be the same user who later runs +.IR svc (8) +to start the machine's services. +.SS "File server clients" +Machines that wish to be authenticated clients of file servers must obtain a certificate and store the certificate in a file named +.IB net ! machine. +The file name must match exactly the +server address given to +.I mount +(see +.IR bind (1)). +To set the key, use +.IP +.BI getauthinfo " net" ! host +.SS Window system interface +.I Getauthinfo +has a visual counterpart +.B wm/getauthinfo +for use under +.IR wm (1). +It takes no arguments. +It displays a window prompting for all the information it needs, +and offering apparently sensible defaults. +Apart from the different interface, its function is otherwise +the same as the command line version. +.SH FILES +.TF /usr/username/keyring/net!machine +.TP +.BI /usr/ user /keyring/ net ! machine +where a certificate is stored on a client machine +.TP +.BI /usr/ user /keyring/default +where a certificate is stored on a file server +.TP +.B /lib/ndb/local +contains the default host name of the signer +.SH SOURCE +.B /appl/cmd/getauthinfo.b +.br +.B /appl/wm/getauthinfo.b +.SH "SEE ALSO" +.IR bind (1), +.IR changelogin (8), +.IR createsignerkey (8) diff --git a/static/inferno/man8/httpd.8 b/static/inferno/man8/httpd.8 new file mode 100644 index 00000000..d00cc31c --- /dev/null +++ b/static/inferno/man8/httpd.8 @@ -0,0 +1,115 @@ +.TH HTTPD 8 +.SH NAME +httpd, echo, stats \- HTTP server +.SH SYNOPSIS +.B svc/httpd/httpd +[ +.BI -a " addr" +] [ +.BI -c " cachesize" +] [ +.B -D +] +.PP +.BI svc/httpd/echo " meth vers uri search" +.PP +.BI svc/httpd/stats " meth vers uri search" +.SH DESCRIPTION +.I Httpd +is a simple HTTP daemon, serving version 1.0 of the HTTP protocol. +It listens for incoming calls on a given +.I address +(default: +.BR tcp!*!80 ). +It serves content rooted at +.L /services/httpd/root +in its name space. +.PP +The +.I httpd +program supports only the +.L GET +and +.L HEAD +methods of the HTTP protocol. The +.L Content-type +(default +.LR application/octet-stream ) +and +.L Content-encoding +(default +.LR binary ) +of a file are determined by looking for suffixes of the file name in +.BR /services/http/http.suff . +.PP +If the requested URI begins with +.BR /magic/ , +.I httpd +loads the module associated with the remaining part of the URI. +Take care to configure the name space sensibly. +Simple servers +.I echo +and +.I stats +are provided (see below). +.PP +.I Httpd +has the following options: +.TP +.BI -a " address" +Listen for calls on the given +.IR address , +expressed using the syntax of +.IR dial (2). +.TP +.BI -c " cachesize" +Set the size of the daemon's cache to +.I cachesize +kilobytes. The default is a five megabyte cache. +.TP +.B -D +Debugging information is written to the file +.BR /services/httpd/httpd.debug . +.PP +.I Echo +is a trivial server that just returns the method, URI, any search, and the headers sent by the client. +.PP +.I Stats +is an equally simple server that queries the cache and returns information to the user about pages stored in the cache. +.PP +More complex services can be written to +.IR httpd 's +private interface. +The file +.B httpd.m +(in +.BR /appl/svc/httpd ) +defines constants and adts used by +.IR httpd . +The file +.B cgi.m +defines the +module +.L Cgi +which is the interface for programs called using the URI +.BR /magic/ . +.SH FILES +.TF "/services/httpd/httpd.rewrite " +.TP +.B /services/httpd/root +Root of the served web content. +.TP +.B /services/httpd/httpd.debug +Logfile for debugging information. +.TP +.B /services/httpd/httpd.log +.I httpd +logfile. +.TP +.B /services/httpd/httpd.rewrite +File to redirect specific URI requests. +.TP +.B /services/httpd/httpd.suff +File of recognizable suffixes and their content type. +.SH SOURCE +.B /appl/svc/httpd diff --git a/static/inferno/man8/init.8 b/static/inferno/man8/init.8 new file mode 100644 index 00000000..d39aa348 --- /dev/null +++ b/static/inferno/man8/init.8 @@ -0,0 +1,99 @@ +.TH INIT 8 +.SH NAME +init: emuinit, osinit \- Inferno initialisation +.SH SYNOPSIS +.EX +Init: module +{ + init: fn(); +}; +.EE +.PP +.B /dis/emuinit.dis +.PP +.B #/./osinit.dis +.SH DESCRIPTION +Both +.IR emu (1) +and the native kernels run a Dis program to initialise the system. +.PP +.I Emuinit +is the default initialisation +program for +.IR emu (1). +.I Emu +sets the environment variable +(see +.IR env (3)) +.B /env/emuargs +to the command line originally given to +.IR emu , +which has the following form: +.IP +.B emu +.RB [ \-d ] +[ +.I command +.RI [ " arg ..." ] +] +.PP +.I Emuinit +uses the value of +.B emuargs +to decide which command to start and its arguments. +The default +.I command +is +.BR /dis/sh.dis , +unless the +.B \-d +option is given, in which case +.B /dis/lib/srv.dis +is used by default instead, to cause +.I emu +to run on the host system as a server (`daemon' mode). +.PP +.I Osinit +is built-in to the +.IR root (3) +of native kernels. +Although the kernel uses the fixed name +.B #/./osinit.dis +the contents are taken from one of the files in +.B /os/init +selected by the +.B init +section of the kernel configuration file. +.IR Osinit 's +action is platform-specific in detail, but might include: +building an initial +.B /dev +by mounting device drivers; +binding the physical network driver (eg, +.IR ether (3)) +into +.B /net +and initialising +.IR ip (3), +usually setting addresses and routes using +.BR bootp ; +attaching to a remote file system; +setting up flash translation using +.IR ftl (3); +starting +.I dossrv +or +.I 9660srv +(see +.IR dossrv (4)), +or +.IR kfs (3) +to serve local files from disk or flash memory. +.SH FILES +.B /env/emuargs +.SH SOURCE +.B /appl/cmd/emuinit.b +.br +.B /os/init/*.b +.SH SEE ALSO +.IR emu (1) diff --git a/static/inferno/man8/kfscmd.8 b/static/inferno/man8/kfscmd.8 new file mode 100644 index 00000000..50756164 --- /dev/null +++ b/static/inferno/man8/kfscmd.8 @@ -0,0 +1,142 @@ +.TH KFSCMD 8 +.SH NAME +kfscmd \- kfs administration +.SH SYNOPSIS +.B disk/kfscmd +.RB [ -n +.IR name ] +.IR cmd " ..." +.SH DESCRIPTION +.I Kfscmd +issues commands to a +.IR kfs (4) +server that was started with the +.B -n +option to create a control file. +.IR Kfscmd 's +own +.B -n +option names the file system to which the +.I cmd +applies; it is +.B main +by default. +.PP +The known commands are described below. +Note that some commands are multiple words (eg, +.B check +and its flags) and +should be quoted to appear as a single argument to +.IR sh (1). +.TP \w'\fLallowoff\ \fIn'u +.B allow +Turn permission checking off (to simplify administration). +Equivalent to the +.B -P +and +.B -W +options to +.IR kfs (4). +.TP +.B allowoff +.PD 0 +.TP +.B disallow +Turn permission checking on (again). +.PD +.ig +.TP +.B halt +write all changed blocks and stop the file system. +.TP +.B help +print the list of commands. +.TP +.BI "rename " "file name" +Change the name of +.I file +to +.IR name . +.TP +.BI "newuser " user +Add +.I user +to +.B /adm/users +and make the standard directories needed for booting. +.TP +.BI "remove " file +Remove +.I file +and place its blocks on the free list. +.TP +.BI "clri " file +Remove +.I file +but do not place the blocks on the free list. +This command can be used to remove files that have duplicated blocks. +The non-duplicate blocks can be retrieved by checking the file system +with option +.B f +(see below). +.TP +.BI create \ file\ owner\ group\ mode\ [adl] +Create the file. Owner and group are users in +.B /adm/users +and mode is an octal number. +If present, +.L a +creates an append only file, +.L d +creates a directory, and +.L l +creates a file that is exclusive-use. +.. +.TP +.B sync +write to disk all of the dirty blocks in the memory cache. +.TP +.B users +Reinitialise authentication information by reading +.BR /adm/users . +.TP +.B check [cdfpPqrtw] +Check the file system and print summary information. +The options are +.PD 0 +.RS +.TP +.B c +fix bad tags and clear the contents of the block. +.TP +.B d +delete redundant references to a block. +.TP +.B f +rebuild the list of free blocks. +.TP +.B p +print the names of directories as they are checked. +.TP +.B P +print the names of all files as they are checked. +.TP +.B q +quiet mode: report errors, but suppress summary information. +.TP +.B r +read all of the data blocks and check the tags. +.TP +.B t +fix bad tags. +.TP +.B w +write all of the blocks that are touched. +.RE +.PD +.SH SOURCE +.B /appl/cmd/disk/kfscmd.b +.SH "SEE ALSO" +.IR sd (3), +.IR kfs (4), +.IR mkfs (8) diff --git a/static/inferno/man8/logind.8 b/static/inferno/man8/logind.8 new file mode 100644 index 00000000..bb914be0 --- /dev/null +++ b/static/inferno/man8/logind.8 @@ -0,0 +1,52 @@ +.TH LOGIND 8 +.SH NAME +logind \- login daemon +.SH SYNOPSIS +.B auth/logind +.SH DESCRIPTION +.I Logind +is normally started by +.IR svc (8) +to service requests on the +.B inflogin +TCP/IP port, +to provide a `signing' service (identity authentication) for a network. +Ultimately, the client receives a certificate that can be used to establish its identity +with any host that is willing to honour certificates from the certificate's signer. +.PP +The signer constructs the certificate from the contents +of the signer's key file +.BR /keydb/signerkey , +typically created by +.IR createsignerkey (8), +and +the ID string and password supplied by the client (which are used to access +.IR keyfs (4) +to check identity). +.PP +The protocol involves an exchange of information between the client and server, +as summarised in +.IR login (6). +The client side of this exchange can be managed by the +.B Login +module; see +.IR security-login (2). +.PP +Client and server communicate over the Secure Socket Layer device +.IR ssl (3). +.SH FILES +.TF /keydb/signerkey +.TP +.B /keydb/keys +.TP +.B /keydb/signerkey +.SH SOURCE +.B /appl/cmd/auth/logind.b +.SH "SEE ALSO" +.IR security-login (2), +.IR ssl (3), +.IR keyfs (4), +.IR keys (6), +.IR changelogin (8), +.IR createsignerkey (8), +.IR svc (8) diff --git a/static/inferno/man8/mangaload.8 b/static/inferno/man8/mangaload.8 new file mode 100644 index 00000000..5a39a876 --- /dev/null +++ b/static/inferno/man8/mangaload.8 @@ -0,0 +1,49 @@ +.TH MANGALOAD 8 +.SH NAME +mangaload \- send new kernel to MANGA bootstrap +.SH SYNOPSIS +.B auxi/mangaload +[ +.B -48dr +] +.I host +.I image +.SH DESCRIPTION +.I Mangaload +uses an ICMP protocol unique to the Peplink MANGAâ„¢ firewall to send a new kernel +.I image +to the MANGA bootstrap monitor to burn into flash, replacing +the existing kernel image. +To start the loading process, connect to the device's console on its serial port +(38400 baud, 8 bits, no parity, 1 stop bit, no flow control), +power the device off then on again, and when the +.B MANGA +prompt appears, quickly type the letter +.BR f . +Then run +.I mangaload +to load the kernel; the device should give status updates as the kernel loads, +and as it burns the image into flash. +When it has finished, power the device off and on again to start the new kernel. +.PP +By default, +.I mangaload +assumes a 4 Mbyte flash on the device; the +.B -8 +option sets it to 8 Mbytes. +The +.B -r +option causes the +.I image +to be loaded into another, larger flash region, used by Linux for its initial root, +which can be used by Inferno for general storage. +The +.B -d +option prints a trace of the protocol, for debugging. +.SH SOURCE +.B /appl/cmd/auxi/mangaload.b +.br +.B /os/manga +.SH SEE ALSO +.IR bootpd (8), +.IR tftpd (8) diff --git a/static/inferno/man8/manufacture.8 b/static/inferno/man8/manufacture.8 new file mode 100644 index 00000000..1684de0c --- /dev/null +++ b/static/inferno/man8/manufacture.8 @@ -0,0 +1,31 @@ +.TH MANUFACTURE 8 mux +.SH NAME +manufacture \- command to emulate set-top-box-id in ROM +.SH SYNOPSIS +.BI manufacture box-id +.SH DESCRIPTION +.I Manufacture +initialises the file +.B /nvfs/ID +with the string +.IR box-id . +The file emulates the serial number that the manufacturer of a real set top box would +normally burn into ROM +(see also +.B rtcid +in +.IR rtc (3)). +The +.I box-id +is used by +.IR register (8). +.SH FILES +.TF /nvfs/ID +.TP +.B /nvfs/ID +.TP +.B /nvfs/default +.SH SOURCE +.B /appl/cmd/manufacture.b +.SH "SEE ALSO" +.IR register (8) diff --git a/static/inferno/man8/mkfs.8 b/static/inferno/man8/mkfs.8 new file mode 100644 index 00000000..77a6fb8e --- /dev/null +++ b/static/inferno/man8/mkfs.8 @@ -0,0 +1,223 @@ +.TH MKFS 8 +.SH NAME +mkfs, mkext \- archive or update a file system +.SH SYNOPSIS +.B disk/mkfs +.RB [ -aprvxS ] +.RB [ -d +.IR dest ] +.RB [ -n +.IR name ] +.RB [ -s +.IR source ] +.RB [ -u +.IR users ] +.RB [ -z +.IR n ] +.RB [ -G +.IR group ] +.RB [ -U +.IR user ] +.I proto ... +.PP +.B disk/mkext +.RB [ -d +.IR name ] +.RB [ -f ] +.RB [ -h ] +.RB [ -T ] +.RB [ -u ] +.RB [ -v ] +[ +.I file ... +] +.SH DESCRIPTION +.I Mkfs +copies files from the file tree +.I source +(default +.BR / ) +to a +.B kfs +file system (see +.IR kfs (4)) +assumed to be mounted on +.I dest +(default: +.BR /n/kfs ). +The +.I proto +files are read, +and any files specified in them that are out of date are copied to +.IR dest . +See +.IR proto (6) +for the description of file system prototype files. +.PP +.I Mkfs +by default copies only those files that are out of date. +Such a file is first copied into a temporary +file in the appropriate destination directory +and then moved to the destination file. +Files in the +.I kfs +file system that are not specified in the +.I proto +file +are not updated and not removed. +.PP +The options to +.I mkfs +are: +.TF "-s source" +.TP +.B -a +Instead of writing to a +.B kfs +file system, write an archive file to standard output, suitable for +.IR mkext . +All files in +.I proto +are archived, +not just those out of date. +.TP +.B -x +For use with +.BR -a , +this option writes a list of file names, dates, and sizes to standard output +rather than producing an archive file. +.TP +.BI -n " name" +Use +.BI kfs. name .cmd +as the name of the command file for the +.IR kfs (4) +assumed to be mounted on +.IR dest . +.TP +.B -p +Update the permissions of a file even if it is up to date. +.TP +.B -r +Copy all files. +.TP +.BI -s " source" +Copy from files rooted at the tree +.IR source . +.TP +.BI -u " users" +Before copying any other file, copy file +.I users +into +.IB dest /adm/users , +and if the +.B -n +option was given, also issue the +.IR kfs (4) +command +.B users +to update +.IR kfs 's +own user list. +.TP +.B -v +Print the names of all of the files as they are copied. +.TP +.BI -z " n" +Copy files assuming +.I kfs +is using a block size of +.I n +bytes +(default 1024). +If a block contains only 0-valued bytes, it is not copied. +.TP +.B -S +For use with the +.B -d +option, +make owner and group of each file copied match the original. +.TP +.BI -G " group" +Force all files copied to have the given +.IR group . +.TP +.BI -U " user" +Force all files copied to be owned by the given +.IR user . +.PD +.PP +.I Mkext +unpacks an archive created by the +.B -a +option of +.IR mkfs , +read from the standard input. +If one or more files are specified on the command line, +only those files are unpacked. +If a +.I file +is a directory, +all files and subdirectories of that directory are also unpacked. +When a file is unpacked, the entire path is created if it +does not exist. +If no files are specified, the entire archive is unpacked; +in this case, missing intermediate directories are not created. +The options are: +.TP +.BI -d " dir" +Treat +.I dir +(default +.LR / ) +as the root directory when unpacking the archive. +.TP +.B -h +Print headers for the files on standard output +instead of unpacking the files. +.TP +.B -T +Restore the modification times of the files. +.TP +.B -u +Set the owners of the files created to correspond to +those in the archive and restore the modification times of the files. +.TP +.B -v +Print the names and sizes of files as they are extracted. +.SH EXAMPLES +.PP +Make an archive to establish a new file system +(assuming that the output file +.B arch +is not referenced by +.BR proto ): +.IP +.EX +bind '#U' /n/local +disk/mkfs -a -s /n/local proto > arch +.EE +.PP +Unpack that archive on another machine: +.IP +.EX +mount tcp!server /n/remote +disk/mkext -u -d /n/remote < arch +.EE +.SH FILES +.TF /lib/proto/portproto +.TP +.B /lib/proto +directory of prototype files. +.TP +.B /lib/proto/all +contains a single + (archive any directory structure) +.SH SOURCE +.B /appl/cmd/disk/mkfs.b +.br +.B /appl/cmd/disk/mkext.b +.SH "SEE ALSO" +.IR fs (1), +.IR kfs (4), +.IR proto (6), +.IR kfscmd (8) diff --git a/static/inferno/man8/ping.8 b/static/inferno/man8/ping.8 new file mode 100644 index 00000000..7991f1d0 --- /dev/null +++ b/static/inferno/man8/ping.8 @@ -0,0 +1,64 @@ +.TH 8 PING +.SH NAME +ping \- probe the Internet +.SH SYNOPSIS +.B ip/ping +.RB [ -alq ] +[ +.BI -i " interval" +] [ +.BI -s " size" +] [ +.BI -n " nping" +] +.I destination +.SH DESCRIPTION +.I Ping +sends ICMP echo requests to a network +.I destination +(which has the syntax accepted by +.IR dial (2)). +The target host, if up, should send a corresponding reply. +By default, one line is printed for each reply, +containing the sequence number (starting at 0) of the message it answers, +the round trip time for that reply, the average round trip time so far, +and the `time to live' value from the reply packet. +.PP +The options are: +.TP +.B -a +include source and destination IP addresses in the output +.TP +.BI -i " interval" +send requests with the given +.I interval +between messages, +in milliseconds (default: 1 second) +.TP +.B -l +list only lost messages +.TP +.BI -n " nping" +send +.I nping +messages in all (default: 32) +.TP +.B -q +suppress per-packet output, giving summary data only +.TP +.BI -s " size" +send request packets of the given +.I size +in bytes +(default: 64, minimum 32) +.SH SOURCE +.B /appl/cmd/ip/ping.b +.SH SEE ALSO +.IR dial (2), +.IR ip (3) +.SH DIAGNOSTICS +.I Ping +yields an error status if any request had no corresponding reply. +.SH BUGS +Works only on native Inferno and when hosted on Plan 9, owing to the lack of +access to ICMP on other hosted systems. diff --git a/static/inferno/man8/plumber.8 b/static/inferno/man8/plumber.8 new file mode 100644 index 00000000..3c691991 --- /dev/null +++ b/static/inferno/man8/plumber.8 @@ -0,0 +1,94 @@ +.TH PLUMBER 8 +.SH NAME +plumber \- plumber for interapplication message routing +.SH SYNOPSIS +.B plumber +[ +.B -v +] [ +.B -w +] [ +.BI -c " wmchan" +] [ +.I rulefile +\&... +] +.SH DESCRIPTION +.I Plumber +provides high-level message-passing between applications. +In a plumbed environment, +applications can receive messages on an input port, which is given a logical name. +Messages are not sent directly between applications but are routed via +the plumber, following user-specified rules. +.PP +.I Plumber +is typically started by +.IR wm (1)'s +startup script. +It reads each +.I rulefile +(default: +.BI /usr/ user /lib/plumbing ) +in turn. +Each file has the form described in +.IR plumbing (6); +the rules direct the routing of each message +.I plumber +receives. +.I Plumber +then lurks in the background with its mate, +awaiting plumbing requests sent by +.IR plumbmsg (2), +by windowing applications in response to events such as button clicks or drag-and-drop, +or by +.IR plumb (1). +.PP +When a message arrives, +.I plumber +applies the rules to decide how to route it. +It forwards the message to the selected application's input port, starting it if necessary. +If no rule applies (or some other error occurs), +.I plumber +returns an error to the message's sender. +The +.B -v +option causes +.I plumber +to log the contents of messages it receives, to help debug plumbing rules and applications. +.PP +.I Plumber +normally starts applications directly. +For use on devices that have specialised +window managers, not +.IR wm (1), +the +.B -w +option causes +.I plumber +to start applications indirectly, by sending a message to +a window manager listening on +.BR /chan/wm , +allowing +the window manager to track every application started. +The +.B -c +option can select an alternative +.I wmchan +to +.BR /chan/wm . + +.SH FILES +.TF /usr/user/lib/plumbing +.TP +.BI /usr/ user /lib/plumbing +default plumbing rules for +.I user +.SH SOURCE +.B /appl/cmd/plumber.b +.br +.B /appl/lib/plumbing.b +.SH SEE ALSO +.IR plumb (1), +.IR wm (1), +.IR plumbmsg (2), +.IR plumbing (6) diff --git a/static/inferno/man8/prep.8 b/static/inferno/man8/prep.8 new file mode 100644 index 00000000..d9775a6f --- /dev/null +++ b/static/inferno/man8/prep.8 @@ -0,0 +1,710 @@ +.TH PREP 8 +.SH NAME +prep, fdisk, format, mbr \- prepare hard and floppy diskettes, flashes +.SH SYNOPSIS +.B disk/prep +[ +.B -bcfnprw +] +[ +.B -a +.I name +]... +[ +.B -s +.I sectorsize +] +.I plan9partition +.PP +.B disk/fdisk +[ +.B -abfprw +] +[ +.B -s +.I sectorsize +] +.I disk +.PP +.B disk/format +[ +.B -dfvx +] +[ +.B -b +.I bootblock +] +[ +.B -c +.I csize +] +[ +.B -l +.I label +] +[ +.B -r +.I nresrv +] +[ +.B -t +.I type +] +.I disk +[ +.IR file ... +] +.PP +.B disk/mbr +[ +.B -9 +] +[ +.B -m +.I mbrfile +] +.SH DESCRIPTION +A partition table is stored on a hard disk to specify the division of +the physical disk into a set of logical units. +On PCs, the partition table is stored at the end of the master boot record +of the disk. +Partitions of type +.B 0x39 +are Plan 9 partitions. +Inferno uses the same type and follows other Plan 9 conventions described here. +The names of PC partitions are chosen by convention from the type: +.BR dos , +.BR plan9 , +etc. +Second and subsequent partitions of the same type on a given disk are given +unique names by appending a number (or a period and a number if the name +already ends in a number). +.PP +Plan 9 partitions (and Plan 9 disks on non-PCs) are +themselves divided, using a textual partition table, called the Plan 9 partition table, in the second +sector of the partition (the first is left for architecture-specific boot data, such as PC boot blocks). +Inferno again uses the same conventions. +The table is a sequence of lines of the format +.BI part " name start end" \fR, +where +.I start +and +.I end +name the starting and ending sector. +Sector 0 is the first sector of the Plan 9 partition or disk, +regardless of its position in a larger disk. +Partition extents do not contain the ending sector, +so a partition from 0 to 5 and a partition from 5 to 10 +do not overlap. +.PP +The Plan 9 partition often contains a number of +conventionally named subpartitions. +Only +.BR 9fat , +.BR fs +and +.BR nvram +are currently used by Inferno, but the others are included for reference. +They include: +.TF arenas +.TP +.B 9fat +A small FAT file system used to hold +configuration information +(such as +.B plan9.ini +and +.BR plan9.nvr ) +and kernels. +This typically begins in the first sector +of the partition, and contains the partition +table as a ``reserved'' sector. +See the discussion of the +.B -r +option to +.IR format . +.TP +.B arenas +A Plan 9 +.IR venti +arenas partition. +.TP +.B cache +A Plan 9 +.IR cfs +file system cache. +.TP +.B fossil +A Plan 9 +.IR fossil +file system. +.TP +.B fs +A +.IR kfs (4) +file system. +.TP +.B fscfg +A one-sector partition used to store a +.IR ds (3) +configuration. +.TP +.B isect +A Plan 9 +.IR venti +index section. +.TP +.B nvram +A one-sector partition used to simulate non-volatile RAM on PCs. +.TP +.B other +A non-archived Plan 9 +.IR fossil +file system. +.TP +.B swap +A Plan 9 +swap partition. +.PD +.PP +.I Fdisk +edits the PC partition table and is usually +invoked with a disk like +.B /dev/sdC0/data +as its argument, while +.I prep +edits the Plan 9 partition table +and is usually invoked with a disk partition +like +.B /dev/sdC0/plan9 +as its argument. +.I Fdisk +works in units of disk ``cylinders'': the cylinder +size in bytes is printed when +.I fdisk +starts. +.I Prep +works in units of disk sectors, which are almost always 512 bytes. +.I Fdisk +and +.I prep +share most of their options: +.TP +.B -a +Automatically partition the disk. +.I Fdisk +will create a Plan 9 +partition in the largest unused area on the disk, +doing nothing if a +Plan 9 partition already exists. +If no other partition on the disk is marked active (i.e. marked as the boot partition), +.I fdisk +will mark the new partition active. +.IR Prep 's +.B -a +flag takes the name of a partition to create. +(See the list above for partition names.) +It can be repeated to specify a list of partitions to create. +If the disk is currently unpartitioned, +.I prep +will create the named partitions on the disk, +attempting to use the entire disk in a sensible manner. +The partition names must be from the list given above. +.TP +.B -b +Start with a blank disk, ignoring any extant partition table. +.TP +.B -p +Print a sequence of commands that when sent to the disk device's +.B ctl +file +will bring the partition +table information kept by +the +.IR sd (3) +driver up to date. +Then exit. +.I Prep +will check to see if it is being called with a disk partition +(rather than an entire disk) as its argument; if so, it +will translate the printed sectors by the partition's offset +within the disk. +Since +.I fdisk +operates on a table of unnamed partitions, +it assigns names based on the partition type +(e.g., +.BR plan9 , +.BR dos , +.BR ntfs , +.BR linux , +.BR linuxswap ) +and resolves collisions by appending a numbered suffix. +(e.g., +.BR dos , +.BR dos1 , +.BR dos2 ). +.TP +.B -r +In the absence of the +.B -p +and +.B -w +flags, +.I prep +and +.I fdisk +enter an interactive partition editor; +the +.B -r +flag runs the editor in read-only mode. +.TP +.BI -s " sectorsize" +Specify the disk's sector size. +In the absence of this flag, +.I prep +and +.I fdisk +look for a disk +.B ctl +file and read it to find the disk's sector size. +If the +.B ctl +file cannot be found, a message is printed and +a sector size of 512 bytes is assumed. +.TP +.B -w +Write the partition table to the disk and exit. +This is useful when used in conjunction with +.B -a +or +.BR -b . +.PP +If neither the +.B -p +flag nor the +.B -w +flag is given, +.I prep +and +.I fdisk +enter an interactive partition editor that +operates on named partitions. +The PC partition table distinguishes between +primary partitions, which can be listed in the boot +sector at the beginning of the disk, +and secondary (or extended) partitions, arbitrarily +many of which may be chained together in place +of a primary partition. +Primary partitions are named +.BR p \fIn\fR, +secondary partitions +.BR s \fIn\fR. +The number of primary partitions plus number of contiguous chains of +secondary partitions cannot exceed four. +.PP +The commands are as follows. +In the descriptions, read ``sector'' as ``cylinder'' when using +.IR fdisk . +.TP +.B "a\fR \fIname\fR [ \fIstart\fR [ \fIend\fR ] ]" +Create a partition named +.I name +starting at sector offset +.I start +and ending at offset +.IR end . +The new partition will not be created if +it overlaps an extant partition. +If +.I start +or +.I end +are omitted, +.I prep +and +.I fdisk +will prompt for them. +In +.IR fdisk , +the newly created partition has type +.RB `` PLAN9 ;'' +to set a different type, use the +.B t +command (q.v.). +.I Start +and +.I end +may be expressions using the operators +.BR + , +.BR - , +.BR * , +and +.BR / , +numeric constants, and the +pseudovariables +.B . +and +.BR $ . +At the start of the program, +.B . +is set to zero; each time a partition is +created, it is set to the end sector +of the new partition. +It can also be explicitly set using the +.B . +command. +When evaluating +.IR start , +.B $ +is set to one past the last disk sector. +When evaluating +.IR end , +.B $ +is set to the maximum value that +.I end +can take on without running off the disk +or into another partition. +Finally, the expression +.IB n % +evaluates to +.RI ( n × disksize )/100. +As an example, +.B a +.B . +.B .+20% +creates a new partition starting at +.B . +that takes up a fifth of the disk, +and +.B a +.B 1000 +.B $ +creates a new partition starting at +sector 1000 and +extending as far as possible. +.TP +.B ".\fR \fInewdot" +Set the value of the variable +.B . +to +.IR newdot , +which is an arithmetic expression as described +in the discussion of the +.B a +command. +.TP +.BI d " name" +Delete the named partition. +.TP +.B h +Print a help message listing command synopses. +.TP +.B p +Print the disk partition table. +Unpartitioned regions are also listed. +The table consists of a number of lines containing +partition name, beginning and ending sectors, +and total size. +A +.B ' +is prefixed to the names of partitions +whose entries have been modified but not written to disk. +.I Fdisk +adds to the end of each line a textual partition type, +and places a +.B * +next to the name of the active partition +(see the +.B A +command below). +.TP +.B P +Print the partition table in the format accepted by the disk's +.B ctl +file, which is also the format of the output of the +.B -p +option. +.TP +.B w +Write the partition table to disk. +.I Prep +will also inform the kernel of the changed +partition table. +The write will fail if any programs have any +of the disk's partitions open. +If the write fails (for this or any other reason), +.I prep +and +.I fdisk +will attempt to restore the partition table to +its former state. +.TP +.B q +Quit the program. +If the partition table has been modified but not written, +a warning is printed. +Typing +.B q +again will quit the program. +.PP +.I Fdisk +also has the following commands. +.TP +.BI A " name +Set the named partition active. +The active partition is the one whose boot block is used +when booting a PC from disk. +.TP +.B e +Print the names of empty slots in the partition table, i.e., the +valid names to use when creating a new partition. +.TP +.BI t " \fR[\fI type \fR] +Set the partition type. If it is not given, +.I fdisk +will display a list of choices and then prompt for it. +.PD +.PP +.I Format +prepares for use the floppy diskette or hard disk partition in the file named +.IR disk , +for example +.B /dev/fd0disk +or +.BR /dev/sdC0/9fat . +The options are: +.TP +.B -f +Do not physically format the disc. Used +to install a FAT file system on a +previously formatted disc. If +.I disk +is not a floppy device, this flag is a no-op. +.TP +.B -t +specify a density and type of disk to be prepared. +The possible +.I types +are: +.RS +.TP +.B 3½DD +3½" double density, 737280 bytes +.TP +.B 3½HD +3½" high density, 1474560 bytes +.TP +.B 5¼DD +5¼" double density, 368640 bytes +.TP +.B 5¼HD +5¼" high density, 1146880 bytes +.TP +.B hard +fixed disk +.PD +.PP +The default when +.I disk +is a floppy drive is the highest possible on the device. +When +.I disk +is a regular file, the default is +.BR 3½HD . +When +.I disk +is an +.IR sd (3) +device, the default is +.BR hard . +.RE +.TP +.B -d +initialize a FAT file system on the +.IR disk . +.TP +.B -b +use the contents of +.I bootblock +as a bootstrap block +to be installed in sector 0. +.PD +.PP +The remaining options have effect only when +.B -d +is specified: +.TP +.B -c +use a FAT cluster size of +.I csize +sectors when creating the FAT. +.TP +.B -l +add a +.I label +when creating the FAT file system. +.TP +.BI -r +mark the first +.I nresrv +sectors of the partition as ``reserved''. +Since the first sector always contains the +FAT parameter block, this really marks +the +.IR nresrv -1 +sectors starting at sector 1 as ``reserved''. +When formatting the +.B 9fat +partition, +.B -r +.B 2 +should be used to jump over the partition table sector. +.PD +.PP +Again under +.BR -d , +any +.I files +listed are added, in order, +to the root +directory of the FAT file system. The files are +contiguously allocated. +If a file is named +.BR 9load , +it will be created with the +.B SYSTEM +attribute set so that +.IR dossrv (4) +keeps it contiguous when modifying it. +.PP +.I Format +checks for a number of common mistakes; in particular, +it will refuse to format a +.B 9fat +partition unless +.B -r +is specified with +.I nresrv +larger than two. +It also refuses to format a raw +.IR sd (3) +partition that begins at offset zero in the disk. +(The beginning of the disk should contain an +.I fdisk +partition table with master boot record, +not a FAT file system or boot block.) +Both checks are disabled by the +.B -x +option. +The +.B -v +option prints debugging information. +.PP +The file +.B /Inferno/386/pbs +is an example of a suitable +.I bfile +to make the disk a boot disk. +It gets loaded by the BIOS at 0x7C00, +reads the root directory into address 0x7E00, and looks at +the first root directory entry. +If that file is called +.BR 9LOAD , +it uses +single sector reads to load the file into address 0x10000 and then +jumps to the loaded file image. +The file +.B /Inferno/386/pbslba +is similar, but because it uses LBA addressing (not supported +by all BIOSes), it can access more than the first 8.5GB of the disk. +.PP +.I Mbr +installs a new boot block in sector 0 (the master boot record) +of a disk such as +.BR /dev/sdC0/data . +This boot block should not be confused with the +boot block used by +.IR format , +which goes in sector 0 of a partition. +Typically, the boot block in the master boot record +scans the PC partition table to find an active +partition and then executes the boot block for +that partition. +The partition boot block then loads a bootstrap +program such as +.IR 9load (10.8), +which then loads the operating system. +If MS-DOS or Windows 9[58] is already installed +on your hard disk, the master boot record +already has a suitable boot block. +Otherwise, +.B /Inferno/386/mbr +is an appropriate +.IR mbrfile . +It detects and uses LBA addressing when available +from the BIOS (the same could not +be done in the case of +.B pbs +due to space considerations). +If the +.I mbrfile +is not specified, a boot block is installed that +prints a message explaining that the disk is not bootable. +The +.B -9 +option initialises the partition table to consist of one +.BR plan9 +partition which spans the entire disc starting at the end of the +first track. +.SH EXAMPLES +Initialize the kernel disk driver with the partition information +from the FAT boot sectors. +If Plan 9 partitions exist, pass that partition information as well. +.IP +.EX +for(disk in /dev/sd??) { + if(ftest -f $disk/data && ftest -f $disk/ctl){ + disk/fdisk -p $disk/data >$disk/ctl + } + for(part in $disk/plan9*){ + if(ftest -f $part){ + disk/prep -p $part >$disk/ctl + } + } +} +.EE +.PP +Create a boot floppy on a previously formatted diskette: +.IP +.EX +disk/format -b /Inferno/386/pbs -df /dev/fd0disk /Inferno/386/9load /tmp/plan9.ini +.EE +.PP +Initialize the blank hard disk +.BR /dev/sdC0/data . +.IP +.EX +disk/mbr -m /Inferno/386/mbr /dev/sdC0/data +disk/fdisk -baw /dev/sdC0/data +disk/prep -bw -a^(9fat fs) /dev/sdC0/plan9 +disk/format -b /Inferno/386/pbslba -d -r 2 /dev/sdC0/9fat 9load 9pcdisk plan9.ini +.EE +.PP +.SH SOURCE +.B /appl/cmd/disk/prep +.br +.B /appl/cmd/disk/format.b +.br +.B /os/boot/pc +.SH SEE ALSO +.IR floppy (3), +.IR sd (3), +.IR 9load (10.8), +.IR plan9.ini (10.8) +.SH BUGS +.I Format +can create FAT12 and FAT16 +file systems, but not FAT32 file systems. +The boot block can only read from +FAT12 and FAT16 file systems. diff --git a/static/inferno/man8/rdbgsrv.8 b/static/inferno/man8/rdbgsrv.8 new file mode 100644 index 00000000..c3d9d0ba --- /dev/null +++ b/static/inferno/man8/rdbgsrv.8 @@ -0,0 +1,58 @@ +.TH RDBGSRV 8 +.SH NAME +rdbgsrv \- remote debug server +.SH SYNOPSIS +.B "bind -b '#t' /dev" +.PP +.B auxi/rdbgsrv +[ +.BI \-d n +] [ +.BI \-s baud +] [ +.BI \-f dev +] +.I mountpoint +.SH DESCRIPTION +.I Rdbgsrv +interposes itself between +.I dev +(default: +.BR /dev/eia0 ) +and +.I mountpoint +to convey 9P messages via the serial port to and from a 9P server program +running on a board running native Inferno. +The +.B \-f +option specifies the serial device; the default is +.BR /dev/eia0 . +The +.B \-s +option sets the line speed; the default is 38400 baud. +The +.B \-d +option selects debugging options by a bit mask: +1, print trace of 9P message types; +2, print actual 9P message contents. +.PP +The monitor program on the board must be started first. +.I Rdbgsrv +writes the two byte message +.BR go , +and keeps reading the device until it sees the reply +.BR ok . +It then attempts to mount the exported name space, and +copies 9P messages to and from the device. +.PP +Once +.I rdbgsrv +is running, any device files provided by the program +will be visible at +.IR mountpoint . +.SH SOURCE +.B /appl/auxi/rdbgsrv.b +.SH SEE ALSO +.IR styxchat (8) +.SH BUGS +No error recovery is applied, let alone error correction. diff --git a/static/inferno/man8/register.8 b/static/inferno/man8/register.8 new file mode 100644 index 00000000..daa0998b --- /dev/null +++ b/static/inferno/man8/register.8 @@ -0,0 +1,85 @@ +.TH REGISTER 8 mux +.SH NAME +register \- command to register set-top-box identity with signer +.SH SYNOPSIS +.B mux/register +[ +.I signer +] +.SH DESCRIPTION +.I Register +is intended for use on a set top box (or similar device). +It connects to +.IR signer , +a machine configured to sign certificates, +and obtains an authenticated certificate based on the contents of +.L /nvfs/ID +(the set top box ID in non-volatile memory). +The certificate is saved in the file +.L /nvfs/default +for later use. +If no +.I signer +is named explicitly, the +.B $SIGNER +named in +.IR db (6) +is used instead. +.PP +There are several phases to obtaining the certificate. +.IP 1. +The register command interacts with +.IR signer (8) +on the signing host +to construct the certificate. This certificate is `blinded' by a random bit mask, sent back to +.I register +which displays it in textual or graphical form to +the user. +.IP 2. +The user running +.I register +must use an independent, +secure mechanism (for example, an untapped telephone call) +to communicate with a human agent at the +site acting as +.IR signer . +That agent runs +.I verify +(see +.IR signer (8)) +to display the same `blinded' certificate that was +shown to +.IR register 's +user at the client. +Once the agent is convinced that the `blinded' certificate has been delivered to the correct party, the agent tells +.I verify +to accept the identity of the caller. +.IP 3. +.I Register +then connects to the +.I countersigner +process (see +.IR signer (8)) +to obtain the bitmask needed to `unblind' the previously received certificate. +This step can only validly be performed after the successful +completion of +.I verify +on the +.I signer. +.SH FILES +.TF /services/cs/db +.TP +.B /nvfs/ID +File emulating set top box-id in ROM. +.TP +.B /nvfs/default +Repository of authenticated certificate. +.TP +.B /services/cs/db +Default definition of `signer' host. +.SH SOURCE +.B /appl/mux/register.b +.SH "SEE ALSO" +.IR db (6), +.IR manufacture (8), +.IR signer (8) diff --git a/static/inferno/man8/rip.8 b/static/inferno/man8/rip.8 new file mode 100644 index 00000000..11937f86 --- /dev/null +++ b/static/inferno/man8/rip.8 @@ -0,0 +1,98 @@ +.TH RIP 8 +.SH NAME +rip \- routing information protocol +.SH SYNOPSIS +.B ip/rip +.RB [ -2 ] +.RB [ -b ] +.RB [ -d ] +.RB [ -n ] +[ +.BI -x " mntpt" +] [ +.I net +\&... +] +.B & +.SH DESCRIPTION +.I Rip +implements the Internet RIP routing protocol +described by RFC1058 and RFC2453. +It watches the network and makes appropriate changes +to the machine's Internet routing table +(see +.B iproute +in +.IR ip (3)), +based on routing packets +broadcast by gateways on the network. +.I Rip +is only used when a single default gateway is inadequate, +typically because a machine sits on a network directly connected to +several others, +having no common gateway or router. +On networks where there is just one gateway, it is usually simpler and more efficient +to configure that statically using +.IR ndb (6) +or dynamically using DHCP/BOOTP, +rather than running +.IR rip . +.PP +.I Rip +serves the network on +.I mntpt +(default: +.BR /net ). +When it starts, +.I rip +learns its own interfaces and directly attached networks by reading +.IB mntpt /ipifc , +and notes any routes currently in +.IB mntpt /iproute . +.PP +By default, +.I rip +neither broadcasts routes nor replies to requests for its route table. +If the +.B \-b +option is given, +.I rip +periodically broadcasts changes to its routing table to each of its interfaces. +If at least one explicit +.I net +address is given, the broadcasts are restricted to just the interfaces listed +(and +.B \-b +is implied). +.PP +The +.B \-d +option causes +.I routed +to record changes it makes to the routing tables. +This can be helpful when locating misleading announcements +from rogue gateways. +A second +.B \-d +will include detailed information about every packet. +The +.B \-n +option tells +.I rip +not to change the local routing table, but only say what changes it would have made. +.PP +.I Rip +understands both version1 and version 2 of the protocol, +and interprets updates from gateways appropriately. +By default, it transmits updates using version 1; if the +.B -2 +option is given, it uses version 2 instead, which is preferable when +the network has subnets. +.\".SH FILES +.\".LR /sys/log/iproute " debugging information" +.SH SOURCE +.B /appl/cmd/ip/rip.b +.SH "SEE ALSO" +.IR ip (3), +.IR ndb (6) +.\" .IR ipconfig (8) diff --git a/static/inferno/man8/rstyxd.8 b/static/inferno/man8/rstyxd.8 new file mode 100644 index 00000000..17e94ba4 --- /dev/null +++ b/static/inferno/man8/rstyxd.8 @@ -0,0 +1,88 @@ +.TH RSTYXD 8 +.SH NAME +rstyxd \- Styx-based remote execution and file service +.SH SYNOPSIS +.B auxi/rstyxd +.I alg +\&... +.SH DESCRIPTION +.PP +.I Rstyxd +provides a remote-execution service. +Having authorised the client and optionally established +.IR ssl , +as described above, +it reads a single line from its standard input. +The line contains a decimal value that is the count of the number +of bytes that follow, +which +.I rstyxd +reads as a +.IR utf (6)-encoded +string. +The string contains a command, which is parsed into arguments, +following the quoting +conventions of +.IR sh (1). +The first argument is the command name. +.I Rstyxd +prepares a modified name space in which +to run the command. +It mounts the connection (standard input) on +.BR /n/client , +binds +.BR /n/client/dev +onto +.BR /dev , +and opens the new +.B /dev/cons +(ie, the remote client's +.BR /dev/cons ) +on file descriptors 0, 1 and 2. +Finally, it executes the command. +.PP +.I Rstyxd +is normally started by +.IR svc (8) +in response to incoming network calls. +It expects the standard input to be connected to the client; +unusually, it is both read and written. +It +first authenticates the incoming call using +.IR keyring-auth (2) +via +.IR security-auth (2). +On successful authorisation, the server sets +its user identity to that of the caller, +and the client can request that a digest and/or encryption +algorithm be applied using +.IR ssl (3) +to protect the data exchanged with the server. +Each +.I alg +names a digest or encryption algorithm that the server will allow +the client to use, +in any form accepted by +.IR ssl ; +the special name +.B none +is usually listed, to allow the client to choose not to use +.IR ssl . +.SH FILES +.TF /usr/user/keyring/default +.TP +.B /n/client +mount point used by +.I rstyxd +.TP +.BI /usr/ user /keyring/default +server's authentication data when +.IR svc (8) +run as given +.I user +.SH SOURCE +.B /appl/cmd/auxi/rstyxd.b +.SH SEE ALSO +.IR keyring-auth (2), +.IR security-auth (2), +.IR getauthinfo (8) diff --git a/static/inferno/man8/shutdown.8 b/static/inferno/man8/shutdown.8 new file mode 100644 index 00000000..130cc14c --- /dev/null +++ b/static/inferno/man8/shutdown.8 @@ -0,0 +1,30 @@ +.TH SHUTDOWN 8 +.SH NAME +shutdown \- shut down system/emulator +.SH SYNOPSIS +.B shutdown +.B -h +.PP +.B shutdown +.B -r +.SH DESCRIPTION +.I Shutdown +halts +.RB ( -h ) +or restarts +.RB ( -r ) +.IR emu (1) +or a native kernel. +If restarted, +.IR emu (1) +will be given the same options as were given it when it started. +.SH FILES +.B /dev/sysctl +.SH SOURCE +.TF /dis/shutdown +.TP +.B /dis/shutdown +.IR sh (1) +script +.SH "SEE ALSO" +.IR cons (3) diff --git a/static/inferno/man8/signer.8 b/static/inferno/man8/signer.8 new file mode 100644 index 00000000..1cb9d8e1 --- /dev/null +++ b/static/inferno/man8/signer.8 @@ -0,0 +1,117 @@ +.TH SIGNER 8 +.SH NAME +signer, verify, countersigner \- set-top box authentication +.SH SYNOPSIS +.B auth/signer +.PP +.BI auth/verify " set-top-box-id" +.PP +.B auth/countersigner +.SH DESCRIPTION +.I Signer +and +.I countersigner +listen for requests on the service ports +.B infsigner +and +.BR infcsigner , +respectively. +They are typically run via +.IR svc (8) +on a machine acting as authentication server for a network. +.I Verify +is invoked on the same server, after +.I signer +but before +.IR countersigner , +following an independent check of a caller's credentials. +.PP +.I Signer +constructs an authentication certificate from the signer's key (in +.BR /keydb/signerkey ) +and information from the requesting client, including +the set top box ID. +The signer's key can be created using +.IR createsignerkey (8), +but if the key does not yet exist, +.I signer +creates and initialises +.B /keydb/signerkey +itself, with an owner name of +.LR * . +.PP +.I Signer +`blinds' +the certificate by XOR-ing it with a random bit mask, then sends the result to the requesting client. +The client machine's user uses that information to establish identity with a human agent on the +signing machine. +.I Signer +also saves the both the `blinded' and `unblinded' result from the input in +.BI /keydb/signed/ set-top-box-id +for +.I verify +(see below). +.PP +.I Verify +is run on the signing server +by the agency running the authentication server, in response to +a call from a remote user who has invoked +.IR register (8) +or an equivalent. +.I Verify +checks a caller's identity using information from the file +.BI /keydb/signed/ set-top-box-id +created by +.IR signer . +The file contains the previously crafted authentication certificate and the `blinded' version of the certificate that was sent to the requesting client. +.PP +.I Verify +displays the `blinded' version textually or graphically, as appropriate, so that it can be compared to that reported by the set-top-box owner over a secure independent mechanism (for example, telephone). If the operator of +.I verify +is convinced of the identity of the caller, the operator should accept when prompted by +.IR verify . +.I Verify +then writes the authentication certificate to +.BI /keydb/countersigned/ set-top-box-id, +as input for +.I countersigner +(see +.IR signer (8)). +.PP +.I Note: +if the operator of +.I verify +accepts the identity, the set-top-box owner should be requested +to answer `yes' to the prompt displayed by +.IR register (8). +The order of +acceptance\-first on the signer, then on the client\-is essential, +to produce the countersigned certificate before invoking +.I countersigner +to read it. +.PP +.I Countersigner +sends the blinding data in +.BI /keydb/countersigned/ set-top-box-id +to the requesting client. +.SH FILES +.TF /keydb/countersigned/set-top-box-id +.TP +.B /keydb/signerkey +Secret key of the `signer' host. +.TP +.BI /keydb/signed/ set-top-box-id +Repository of `blinded' and clear certificates. +.TP +.BI /keydb/countersigned/ set-top-box-id +Repository of `unblinded' certificates. +.SH SOURCE +.B /appl/cmd/auth/signer.b +.br +.B /appl/cmd/auth/verify.b +.br +.B /appl/cmd/auth/countersigner.b +.SH SEE ALSO +.IR createsignerkey (8), +.IR register (8), +.IR svc (8) diff --git a/static/inferno/man8/sntp.8 b/static/inferno/man8/sntp.8 new file mode 100644 index 00000000..be21fab9 --- /dev/null +++ b/static/inferno/man8/sntp.8 @@ -0,0 +1,41 @@ +.TH SNTP 8 +.SH NAME +sntp \- simple network time protocol client +.SH SYNOPSIS +.B ip/sntp +[ +.B -di +] +[ +.I server +] +.SH DESCRIPTION +.I Sntp +is a simple client for the Simple Network Time Protocol (RFC1361). +It requests the time from the SNTP service on +.I server +(default: +.BR udp!$ntp!ntp ), +and if it receives a plausible reply, +sets the local time accordingly, in both +.IR rtc (3) +and +.BR /dev/time . +The +.B -d +option prints debugging text, including the time received; +the +.B -i +option stops +.I sntp +from actually updating the local time. +.SH FILES +.B #r/rtc +.br +.B /dev/time +.SH SOURCE +.B /appl/cmd/ip/sntp.b +.SH SEE ALSO +.IR date (1), +.IR cons (3) + diff --git a/static/inferno/man8/styxchat.8 b/static/inferno/man8/styxchat.8 new file mode 100644 index 00000000..29a04dd8 --- /dev/null +++ b/static/inferno/man8/styxchat.8 @@ -0,0 +1,245 @@ +.TH STYXCHAT 8 +.SH NAME +styxchat \- exchange 9P (Styx) messages with a server or client +.SH SYNOPSIS +.B styxchat +[ +.RI -m " messagesize" +] [ +.B -s +] [ +.B -v +] [ +.B -n +] [ +.I destination +] +.SH DESCRIPTION +.I Styxchat +exchanges messages with a 9P service. +(9P was previously called `Styx' when used by Inferno, hence the command's name.) +See +.IR intro (5) +for the protocol definition. +It makes a connection to a given +.IR destination , +(or waits for a connection on +.IR destination, +if the +.B -s +option is specified), +then reads a textual representation of 9P T-messages from the standard +input and writes them on the connection, with a copy on standard output, +simultaneously reading 9P R-messages from the connection and printing a representation of them +on standard output. +Each message is represented by one line +on the standard output in the form of a literal of either +.B Tmsg +or +.B Rmsg +types defined in +.IR styx (2). +The +.B -v +option causes a second line to be written for +.B Rmsg.Read +and +.B Tmsg.Write +that shows the data transmitted, as text or binary as appropriate; +if +.B -v +appears a second time, a third line is written that +shows the text equivalent of apparently binary data (useful to see text that is surrounded by binary data). +.PP +By default, +.I destination +is the name of a file, typically one end of a named pipe. +The +.B \-n +option causes +.I destination +to be interpreted as a network address, as accepted by +.IR dial (2) +(or +.I listen +with +.BR -s ). +If +.I destination +is not provided, +.B styxchat +reads and writes 9P messages on its standard input, +using +.B /dev/cons +where it would usually use its standard input and output. +.PP +Each line of standard input has the form: +.IP +.br +.BI Tversion " messagesize version" +.br +.BI Tauth " afid uname aname" +.br +.BI Tflush " oldtag" +.br +.BI Tattach " fid afid uname aname" +.br +.BI Twalk " fid newfid \f1[\fP name \f1... ]\fP" +.br +.BI Topen " fid mode" +.br +.BI Tcreate " fid name perm mode" +.br +.BI Tread " fid offset count" +.br +.BI Twrite " fid offset data" +.br +.BI Tclunk " fid" +.br +.BI Tremove " fid" +.br +.BI Tstat " fid" +.br +.BI Twstat " fid name uid gid mode mtime length" +.br +.BI nexttag " \f1[\fP tag \f1]\fP" +.br +.B dump +.PD +.PP +The input is interpreted as space-separated fields +using the quoting conventions of +.IR sh (1), +allowing fields to contain spaces. +Empty lines and lines beginning with +.B # +are ignored. +The first field on each line is normally the name of a T-message. +Subsequent fields provide parameter values for +the corresponding message. +Integers are given in the format accepted for integers +by the Limbo compiler (e.g. +.BR 16rffff ): +a +.I tag +is 16 bits, +.I offset +and +.I length +are 64 bits, and all others are 32-bit integers. +If the an integer parameter field contains +.BR ~0 , +it is taken to be the `all ones' value of appropriate size for that parameter; +this is particularly useful with +.BR Twstat , +where that value represents `no change'. +In the ``mode'' field of a qid, letters can be given, representing +mode bits: +.B d +for +.BR QTDIR , +.B l +for +.BR QTEXCL , +.B a +for +.BR QTAPPEND , +and +.B u +for +.BR QTAUTH . +In an +.B Rstat +message, the qid mode bits are copied into the +.B Rstat +mode field in the appropriate place. +.PP +Following the +.IR sh (1) +quoting rules, +an empty string is represented by a field containing \f5''\f1. +The +.I data +field is sent as its UTF-8 representation as an array of bytes. +The value for +.I fid +can be +.B nofid +(or +.BR NOFID ) +to represent the `no fid' value in the protocol. +The +.I tag +for each message is automatically supplied by +.IR styxchat , +starting from 1, and incremented with each successful message transmission. +The +.B nexttag +command will cause subsequent tags to start from +.IR tag ; +if none is given, it will print the next tag value. +The +.I tag +may be +.B notag +to represent the `no tag' value +.RB ( 16rFFFF ). +.PP +The +.B dump +command has the same effect as a +.B -v +option, allowing data display to be enabled later. +.PP +By default, +.I styxchat +sends a 9P client's T-messages and prints a server's R-messages. +The +.B -s +option causes it to present a server's view: it prints the T-messages from 9P clients, and sends R-messages +as it reads a textual representation of them from standard input: +.IP +.br +.BI Rversion " tag messagesize version" +.br +.BI Rauth " tag aqid" +.br +.BI Rflush " tag" +.br +.BI Rerror " tag ename" +.br +.BI Rattach " tag qid" +.br +.BI Rwalk " tag qid ..." +.br +.BI Ropen " tag qid iounit" +.br +.BI Rcreate " tag qid iounit" +.br +.BI Rread " tag data" +.br +.BI Rwrite " tag count" +.br +.BI Rclunk " tag" +.br +.BI Rremove " tag" +.br +.BI Rstat " tag qid mode atime mtime length name uid gid muid" +.br +.BI Rwstat " tag" +.br +.B dump +.PD +.PP +The input conventions are as above, except that tags +are required. +A +.I qid +is a single field of the form \fIpath\f1\f5.\f1\fIvers\f1[\f5.\f1\fItype\f1], +where the three values are decimal integers. +.SH SOURCE +.B /appl/cmd/styxchat.b +.SH SEE ALSO +.IR styx (2), +.IR intro (5), +.IR styxmon (8) diff --git a/static/inferno/man8/styxmon.8 b/static/inferno/man8/styxmon.8 new file mode 100644 index 00000000..60c194e6 --- /dev/null +++ b/static/inferno/man8/styxmon.8 @@ -0,0 +1,50 @@ +.TH STYXMON 8 +.SH NAME +styxmon \- monitor a 9P (Styx) conversation +.SH SYNOPSIS +.B styxmon +[ +.B -r +] [ +.B -t +] +.I cmd +[ +.IR arg ... +] +.SH DESCRIPTION +.I Styxmon +allows the monitoring of 9P messages sent and received +by +.IR cmd , +which should serve 9P through its standard input. +.I Styxmon +in its turn serves 9P through its standard input, +and writes information on the 9P messages that +it sees to the standard error. +The +.B -r +and +.B -t +options restrict the messages printed to R-messages +and T-messages respectively. +.SH EXAMPLE +Mount an instance of +.IR export (4) +of the current name space through +.I styxmon +on +.B /n/remote +to monitor all access to it through that name: +.IP +.EX +mount {styxmon {export /}} /n/remote +ls /n/remote +cp /n/remote/lib/unicode /n/remote/dev/null +.EE +.SH SOURCE +.B /appl/cmd/styxmon.b +.SH SEE ALSO +.IR styx (2), +.IR intro (5), +.IR styxchat (8) diff --git a/static/inferno/man8/svc.8 b/static/inferno/man8/svc.8 new file mode 100644 index 00000000..ae8701d1 --- /dev/null +++ b/static/inferno/man8/svc.8 @@ -0,0 +1,145 @@ +.TH SVC 8 +.SH NAME +svc: auth, net, registry, rstyx, styx \- start Inferno network services +.SH SYNOPSIS +.B svc/net +.br +.B svc/auth +[ +.B -n +] +.br +.B svc/registry +.br +.B svc/rstyx +.br +.B svc/styx +.SH DESCRIPTION +The directory +.B /dis/svc +contains several +.IR sh (1) +scripts to start network listeners (see +.IR listen (1)) +that give remote hosts access to specific Inferno services on the current host. +The scripts can be edited to suit (or configure themselves to suit) the +requirements of a particular site. +.PP +A host that is not an authentication server and wishes to start the usual network services +can simply invoke +.BR svc/net , +which runs all the others +.I except +authentication. +Authentication servers should normally run +.B svc/auth +instead, to start local name and authentication services, and a listener +for each authentication service but +.I not +file service or remote execution. +.PP +.I Auth +must be run (only) on a host that is to act as an authentication server, +providing signing and other authentication services to itself and the network. +The +.B -n +flag tells it not to start +.IR keyfs (4), +perhaps because it has been started already. +The files +.BR /keydb/signerkey , +created by +.IR createsignerkey (8), +and +.BR /keydb/keys , +managed by +.IR changelogin (8), +must exist. +If so, +.I auth +starts +.IR keyfs (4), +which prompts for the password that protects +.BR /keydb/keys , +the file of secrets shared +with registered users. +If the key file is empty, the confirmed password will be used in future to encrypt and decrypt the file; +otherwise the password must match the one used to encrypt the key file. +If the password is valid, listeners are started for +.IR keysrv (4), +to allow passwords to be changed remotely, +.IR logind (8), +to provide signed certificates, +and +.IR signer (8). +Note that although an authentication server must be present to run +.IR getauthinfo (8) +to obtain credentials to access another service, once those have been +issued, the recipient can subsequently present them (if still valid) to +access that service without further involvement by the service (ie, it +need not then be running). +See +.IR changelogin (8) +for the user registration program, which can be used once +.I auth +has started. +.PP +.I Registry +starts the dynamic service registry (see +.IR registry (4)) +if it is not already running, +putting it at the conventional location for the local registry, +.BR /mnt/registry . +Initial (static) service descriptions are taken from +.B /lib/ndb/registry +if it exists. +It then starts a listener to give other hosts access to the registry as a 9P +service at +.BR tcp!*!registry , +normally port 6675. +.PP +.I Rstyx +listens for incoming calls to the +.B rstyx +service, and invokes +.IR rstyxd (8) +to deal with each one. +.PP +.I Styx +listens for incoming calls to the +.B styx +service, +and for each one, authenticates the caller, then calls +.IR export (4) +to export the current root. +.SH FILES +.TF /keydb/signerkey +.TP +.B /keydb/keys +encrypted file containing user secrets +.TP +.B /keydb/signerkey +private key of authentication server +.SH SOURCE +.B /appl/svc/auth.sh +.br +.B /appl/svc/net.sh +.br +.B /appl/svc/registry.sh +.br +.B /appl/svc/rstyx.sh +.br +.B /appl/svc/styx.sh +.SH SEE ALSO +.IR listen (1), +.IR export (4), +.IR keyfs (4), +.IR keysrv (4), +.IR registry (4), +.IR changelogin (8), +.IR createsignerkey (8), +.IR cs (8), +.IR dns (8), +.IR logind (8), +.IR rstyxd (8), +.IR signer (8) diff --git a/static/inferno/man8/touchcal.8 b/static/inferno/man8/touchcal.8 new file mode 100644 index 00000000..d18bc35e --- /dev/null +++ b/static/inferno/man8/touchcal.8 @@ -0,0 +1,39 @@ +.TH TOUCHCAL 8 +.SH NAME +touchcal \- touch screen calibration +.SH SYNOPSIS +.B touchcal +.SH DESCRIPTION +.I Touchcal +draws a cross-hair in each corner of the screen in turn (clockwise from the lower left hand corner), +and waits each time for the user to touch the centre of the cross-hair with the stylus. +It then prompts with a final cross-hair in the centre of the screen, and waits once +more for the user to touch its centre with the stylus. +The process is repeated until +.I touchcal +can calculate a transformation matrix that consistently maps the touch panel to screen +coordinates. +It then writes corresponding calibration commands for +.IR touch (3) +on its standard output, which +can be saved in a file on the device, perhaps +provided in NVRAM by +.IR tinyfs (3) +or a file system in +.IR ftl (3). +.PP +.I Touchcal +can be used both inside and outside the +.IR wm (1) +environment, +allowing calibration when the system is initialised, and whilst +the window system is running. +.SH FILES +.TF "/dev/touchctl " +.TP +.B /dev/touchctl +reset or read existing settings +.SH SOURCE +.B /appl/cmd/touchcal.b +.SH SEE ALSO +.IR touch (3) diff --git a/static/inferno/man8/virgild.8 b/static/inferno/man8/virgild.8 new file mode 100644 index 00000000..30a61f10 --- /dev/null +++ b/static/inferno/man8/virgild.8 @@ -0,0 +1,55 @@ +.TH VIRGILD 8 +.SH NAME +virgild \- connection service for remote clients +.SH SYNOPSIS +.B ndb/cs +.br +.B ip/virgild +.SH DESCRIPTION +.I Virgild +receives requests for name service on UDP/IP +port +.BR virgil , +defined as +2202 by +.IR services (6), +and hard-coded in +.IR virgil (2). +Each request has the form: +.IP +.IB userid ? machine-name +.PP +.I Virgild +translates the +.I machine-name +using the local connection server +(see +.IR cs (8)), +and sends a response of the following form to the requesting client: +.IP +.IB userid ? machine-name = network-address +.PP +If the +.I machine-name +cannot be translated, +.I virgild +makes no response; +unless another server replies, the client's request will time out. +.PP +.I Virgild +requires that +.IR cs (8) +be running before it is started. +.SH SOURCE +.B /appl/cmd/ip/virgild.b +.SH "SEE ALSO" +.IR rcmd (1), +.IR cs (8) +.SH BUGS +The +.I userid +part is currently unused but must still be included. +.br +.I Virgild +is single threaded: a delay in translating a name for one client will delay response +to any subsequent clients. diff --git a/static/inferno/man9/0intro.9 b/static/inferno/man9/0intro.9 new file mode 100644 index 00000000..4b7cd4fd --- /dev/null +++ b/static/inferno/man9/0intro.9 @@ -0,0 +1,134 @@ +.TH INTRO 9 +.SH NAME +intro \- introduction to Inferno Tk +.SH DESCRIPTION +This section of the manual provides a reference for the Inferno +Tk implementation, +which is accessed by Limbo programs via +.IR tk (2), +and from +.IR sh (1) +via +.IR sh-tk (1). +.PP +The following pages were derived by Vita Nuova from documentation that is +.IP +Copyright © 1990 The Regents of the University of California +.br +Copyright © 1994-1996 Sun Microsystems, Inc. +.br +See +.IR copyright (9) +for the full copyright notice. +.PP +The format of the pages has changed to follow the format of the rest of +this manual, but more important, the content has been changed +(typically in small ways) to reflect the variant of Tk implemented by +Inferno. +.SS Programming Interface +The interface to Inferno Tk is exclusively through the +.IR tk (2) +module; all the Tk commands described in this section of +the manual are excecuted by passing them as strings to the +.B cmd +function in that module. +The Inferno Tk implementation is based on the Tk 4.0 documentation, +but there are many differences, probably the greatest of which is that +there is no associated Tcl implementation, so almost every +Inferno application using Tk will need to have some Limbo code +associated with it (the +.IR sh-tk (1) +shell module can also fulful this rôle). See ``An Overview of Limbo/Tk'' +in Volume 2 for a tutorial-style introduction to the use of Inferno Tk +which summarises the differences from Tk 4.0. +.SS Tk Commands +The command string passed to +.B tk->cmd +may contain one or more Tk commands, separated by semicolons. +A semicolon is not a command separator when it is nested in braces +.RB ( {} ) +or brackets +.RB ( [] ) +or it is escaped by a backslash +.RB ( \e ). +Each command is divided into +.IR words : +sequences of characters separated by one or more +blanks and tabs. +.PP +There is also a `super quote' convention: at any point in the command +string a single quote mark +.RB ( ' ) +means that the entire rest of the string should be treated as one word. +.PP +A word beginning with an opening brace +.RB ( { ) +continues until the balancing closing brace +.RB ( } ) +is reached. The outer brace characters are stripped. A backslash +can be used to escape a brace in this context. Backslash +characters not used to escape braces are left unchanged. +.PP +A word beginning with an opening bracket +.RB ( [ ) +continues until the balancing closing bracket +.RB ( ] ) +is reached. The enclosed string is then evaluated as if it +were a command string, and the resulting value +is used as the contents of the word. +.PP +Single commands are executed in order until they are all done +or an error is encountered. By convention, an error is signaled by a +return value starting with an exclamation mark +.RB ( ! ). +The return value from +.B tk->cmd +is the return value of the first error-producing +command or else the return value of the final single command. +.PP +To execute a single command, the first word is examined. It +must either begin with dot +.RB ( . ) +in which case it must name an existing widget, which will +interpret the rest of the command according to its type, +or one of the following words, each of which is +documented in a manual page of that name in this section: +.EX + +bind focus lower scrollbar +button frame menu see +canvas grab menubutton send +checkbutton grid pack text +cursor image radiobutton update +destroy label raise variable +entry listbox scale +.EE +.SS Widget Options +Each manual page in this section documents the options +that a particular command will accept. A number of options +are common to several of the widgets and are named as +``standard options'' near the beginning of the manual page +for each widget. These options are documented in +.IR options (9). +The types of value required as arguments to options within +Inferno Tk are documented under +.IR types (9). +.SH SEE ALSO +.IR options (9), +.IR types (9), +.IR tk (2), +.IR sh-tk (1), +.IR tkcmd (1), +.IR wmlib (2), +.IR draw-intro (2), +``An Overview of Limbo/Tk'' in Volume 2. +.SH BUGS +The bracket +.RB ( [] ) +command interpretation is not applied consistently throughout +the Inferno Tk commands (notably, the argument to +the +.IR send (9) +command will not interpret this correctly). +Moreover, if the string to be substituted is significantly bigger +than the command it was substituting, then it will be truncated. diff --git a/static/inferno/man9/1copyright.9 b/static/inferno/man9/1copyright.9 new file mode 100644 index 00000000..a4087032 --- /dev/null +++ b/static/inferno/man9/1copyright.9 @@ -0,0 +1,55 @@ +.TH COPYRIGHT 9 +.SH NAME +copyright \- copyright notice for Tk documentation +.SH DESCRIPTION +The following pages were derived by Vita Nuova from documentation that is +.IP +Copyright © 1990 The Regents of the University of California +.br +Copyright © 1994-1996 Sun Microsystems, Inc. +.PP +and was made available on the following terms: +.IP +.ps -1 +.vs -1 +This software is copyrighted by the Regents of the University of +California, Sun Microsystems, Inc., and other parties. The following +terms apply to all files associated with the software unless explicitly +disclaimed in individual files. + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. + +GOVERNMENT USE: If you are acquiring this software on behalf of the +U.S. government, the Government shall have only "Restricted Rights" +in the software and related documentation as defined in the Federal +Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you +are acquiring the software on behalf of the Department of Defense, the +software shall be classified as "Commercial Computer Software" and the +Government shall have only "Restricted Rights" as defined in Clause +252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the +authors grant the U.S. Government and others acting in its behalf +permission to use and distribute the software in accordance with the +terms specified in this license. +.ps +1 +.vs +1 diff --git a/static/inferno/man9/INDEX.9 b/static/inferno/man9/INDEX.9 new file mode 100644 index 00000000..1444c3a8 --- /dev/null +++ b/static/inferno/man9/INDEX.9 @@ -0,0 +1,34 @@ +intro 0intro +1copyright 1copyright +copyright 1copyright +bind bind +button button +canvas canvas +checkbutton checkbutton +choicebutton choicebutton +cursor cursor +destroy destroy +entry entry +focus focus +frame frame +grab grab +grid grid +image image +label label +listbox listbox +lower lower +menu menu +menubutton menubutton +options options +pack pack +panel panel +radiobutton radiobutton +raise raise +scale scale +scrollbar scrollbar +see see +send send +text text +types types +update update +variable variable diff --git a/static/inferno/man9/Makefile b/static/inferno/man9/Makefile new file mode 100644 index 00000000..740d316d --- /dev/null +++ b/static/inferno/man9/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.9) + +include ../../mandoc.mk diff --git a/static/inferno/man9/bind.9 b/static/inferno/man9/bind.9 new file mode 100644 index 00000000..844ebd65 --- /dev/null +++ b/static/inferno/man9/bind.9 @@ -0,0 +1,194 @@ +.TH BIND 9 +.SH NAME +bind \- Arrange for events to invoke Tk scripts +.SH SYNOPSIS +\f5bind\fI tag sequence script\fR +.sp +\f5bind\fI tag sequence \f5+\fIscript\fR +.SH DESCRIPTION +The \f5bind\fR command associates Tk scripts with window events. +If all three arguments are specified, \f5bind\fR will +arrange for \fIscript\fR (a Tk script) to be evaluated whenever +the event(s) given by \fIsequence\fR occur in the window(s) +identified by \fItag\fR. +If \fIscript\fR is prefixed with a ``+'', then it is appended to +any existing binding for \fIsequence\fR; otherwise \fIscript\fR replaces +any existing binding. +If \fIscript\fR is an empty string then the current binding for +\fIsequence\fR is destroyed, leaving \fIsequence\fR unbound. +In all of the cases where a \fIscript\fR argument is provided, +\f5bind\fR returns an empty string. +If \fIscript\fR is prefixed with a ``-'', then any existing binding for +\fIsequence\fR, whose script is exactly the same as \fIscript\fR, is removed. +The \fItag\fR argument gives the pathname of the window +to which \fIsequence\fR is bound. +.SS Event Patterns +The \fIsequence\fR argument specifies a sequence of one or more +event patterns, with optional white space between the patterns. Each +event pattern may +take one of two forms. In the simplest case it is a single +printing ASCII character, such as \f5a\fR or \f5[\fR. The character +may not be a space character or the character \f5<\fR. This form of +pattern matches a \f5KeyPress\fR event for the particular +character. The second form of pattern is longer but more general. +It has the following syntax: +.IP +.EX +\f5<\fIevent\f5-\fIevent\f5-\fR...\f5-\fIevent\f5>\fR +.EE +.PP +The following events are accepted: +.TP +.BR Key \ or\ Keypress +This represents the press of the character in the following +.IR event . +If there is no following event, this represents the press of +any key. The key letter may be escaped with a backslash +.RB ( \e ) +to prevent any character (e.g. +.BR > ) +from being treated specially. +.TP +.B Configure +This event occurs whenever the widget is configured +such that its requested size changes. +.TP +.B Control +This represents the press of the character in the following +.I +event +with the Control key pressed. The character may be quoted +as for +.BR Key . +.TP +.BR ButtonPress \ or\ Button +This represents the pressed state of the mouse button given by +the following event, which should be 1, 2, or 3. If there is no +following event, this represents the press of any button. +If the mouse is moved with a button pressed, the +Button event is delivered in combination with a Motion event +so long as the button remains pressed. +.TP +.B ButtonRelease +Like +.BR ButtonPress , +but represents the release of any button. +.TP +.B Motion +Mouse movement. +.TP +.B Double +Any events in the sequence representing button presses must +be double-clicked for the sequence to match. +.TP +.B Map +The event that a toplevel widget is mapped onto the screen. +.TP +.B Unmap +The event that a toplevel widget is unmapped from the screen. +.TP +.B Enter +The event of the mouse entering the widget from outside. +.TP +.B Leave +The event of the mouse leaving the boundaries of the widget. +.TP +.B FocusIn +The event of the widget getting the keyboard focus. +.TP +.B FocusOut +The event of the widget losing the keyboard focus. +.TP +.B Destroy +The event of the widget being destroyed. +See +.IR destroy (9) +for details of widget destruction. +.RE +.PP +The event sequence can contain any combination of the above +events. They are treated independently, and if any of the +events occur, the sequence matches. You cannot combine +key presses of more than one key. Events will not be combined +on delivery, except that +.B Motion +events may be combined with button presses (possibly doubled). +.SS Binding Scripts and Substitutions +The \fIscript\fR argument to \f5bind\fR is a Tk script, +which will be executed whenever the given event sequence occurs. +If \fIscript\fR contains +any \f5%\fR characters, then the script will not be +executed directly. Instead, a new script will be +generated by replacing each \f5%\fR, and the character following +it, with information from the current event. The replacement +depends on the character following the \f5%\fR, as defined in the +list below. Unless otherwise indicated, the +replacement string is the decimal value of the given field from +the current event. +Some of the substitutions are only valid for +certain types of events; if they are used for other types of events +the value substituted is undefined. +.IP \f5%%\fR 5 +Replaced with a single percent. +.IP \f5%b\fR 5 +The number of the button that was pressed or released. Valid only +for \f5ButtonPress\fR and \f5ButtonRelease\fR events. +.IP \f5%h\fR 5 +For +.B Configure +events, this is +the old requested height of the widget. +.IP \f5%s\fR 5 +For mouse events, this is the logical OR of the mouse buttons; +for keyboard events, it is the decimal value of the pressed character. +.IP \f5%w\fR 5 +For +.B Configure +events, this is the old requested width of the widget. +.IP \f5%x\fR 5 +The x coordinate from the event, relative to the origin +of the toplevel window. Valid only for +.BR Enter , +.BR Leave , +and mouse events. +.IP \f5%y\fR 5 +The y coordinate from the event, relative to the origin +of the toplevel window. Valid only for +.BR Enter , +.BR Leave , +and mouse events. +.IP \f5%A\fR 5 +The ASCII character corresponding to a \f5Key\fP event. +.IP \f5%K\fR 5 +The pressed character for the event, as four hexadecimal digits. +Valid only for \f5Key\fP events. +.IP \f5%W\fR 5 +The path name of the window to which the event was reported (the +\fIwindow\fR field from the event). Valid for all event types. +.IP \f5%X\fR 5 +Same as +.B %x +except that the screen coordinate system is used. +.IP \f5%Y\fR 5 +Same as +.B %y +except that the screen coordinate system is used. +.LP +The replacement string for a %-replacement is formatted as a proper +Tk list element. +This means that it will be surrounded with braces +if it contains spaces, or special characters such as \f5$\fR and +\f5{\fR may be preceded by backslashes. +This guarantees that the string will be passed through the Tk +parser when the binding script is evaluated. +.SH BUGS +The above scheme is not ideal, and will probably be fixed +in the future. +Quoting is a mess - in particular, the quoting provided for the +.B %A +substitution does not work correctly when a quoted character +is re-interpreted by Tk. +.LP +The length of binding scripts is limited to +128 characters. + diff --git a/static/inferno/man9/button.9 b/static/inferno/man9/button.9 new file mode 100644 index 00000000..57ba93c7 --- /dev/null +++ b/static/inferno/man9/button.9 @@ -0,0 +1,133 @@ +.TH BUTTON 9 +.SH NAME +button \- Create and manipulate button widgets +.SH SYNOPSIS +\f5button\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -disabledcolor -justify +-activeforeground -font -relief +-anchor -foreground -takefocus +-background -highlightcolor -text +-bitmap -highlightthickness -underline +-borderwidth -image +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -command \fItkcmd\fP +Specifies a Tk command to associate with the button. This command +is typically invoked when mouse button 1 is released over the button +window. +.TP +.B -height \fIdist\fP +Specifies a desired height for the button. +If this option isn't specified, the button's desired height is computed +from the size of the image or bitmap or text being displayed in it. +.TP +.B -state \fIstate\fP +Specifies one of three states for the button: \f5normal\fR, \f5active\fR, +or \f5disabled\fR. In normal state the button is displayed using the +\f5foreground\fR and \f5background\fR options. The active state is +typically used when the pointer is over the button. In active state +the button is displayed using the \f5activeForeground\fR and +\f5activeBackground\fR options. Disabled state means that the button +should be insensitive: the default bindings will refuse to activate +the widget and will ignore mouse button presses. +In this state the \f5background\fR option determines how the button is +displayed. +.TP +.B -width \fIdist\fP +Specifies a desired width for the button. +If this option isn't specified, the button's desired width is computed +from the size of the image or bitmap or text being displayed in it. +.SH DESCRIPTION +The \f5button\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a button widget. +Additional +options, described above, may be specified on the command line. +to configure aspects of the button such as its colours, font, +text, and initial relief. The \f5button\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A button is a widget that displays a textual string, bitmap or image. +If text is displayed, it must all be in a single font, but it +can occupy multiple lines on the screen (if it contains newlines) and +one of the characters may optionally be underlined using the +\f5underline\fR option. +It can display itself in either of three different ways, according +to +the \f5state\fR option; +it can be made to appear raised, sunken, or flat. When a user invokes the +button (by pressing mouse button 1 with the cursor over the +button), then the Tk command specified in the \f5-command\fR +option is invoked. +.SH "WIDGET COMMAND" +The \f5button\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for button widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5button\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5button\fR +command. +.TP +\fIpathName \f5invoke\fR +Invoke the Tk command associated with the button, if there is one. +The return value is the return value from the Tk command, or an +empty string if there is no command associated with the button. +This command is ignored if the button's state is \f5disabled\fR. + +.SH "DEFAULT BINDINGS" +Tk automatically creates bindings for buttons that give them +the following default behaviour: +.IP [1] +A button activates whenever the mouse passes over it and deactivates +whenever the mouse leaves the button. +.IP [2] +A button's relief is changed to sunken whenever mouse button 1 is +pressed over the button, and the relief is restored to its original +value when button 1 is later released. +.IP [3] +If mouse button 1 is pressed over a button and later released over +the button, the button is invoked. However, if the mouse is not +over the button when button 1 is released, then no invocation occurs. +.IP [4] +If the +.B Enter +or +.B Space +key is pressed when the button has keyboard focus, +the button is invoked. +.PP +If the button's state is \f5disabled\fR then none of the above +actions occur: the button is completely non-responsive. +.PP +The behaviour of buttons can be changed by defining new bindings for +individual widgets. +.SH SEE ALSO +.IR checkbutton (9), +.IR choicebutton (9), +.IR options (9), +.IR radiobutton (9), +.IR types (9) diff --git a/static/inferno/man9/canvas.9 b/static/inferno/man9/canvas.9 new file mode 100644 index 00000000..6299248d --- /dev/null +++ b/static/inferno/man9/canvas.9 @@ -0,0 +1,1359 @@ +.TH CANVAS 9 +.SH NAME +canvas \- Create and manipulate canvas widgets +.SH SYNOPSIS +\f5canvas\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-background -selectbackground -takefocus +-borderwidth -selectborderwidth -xscrollcommand +-relief -selectforeground -yscrollcommand +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -closeenough \fIdist\fP +Specifies a floating-point value indicating how close the mouse cursor +must be to an item before it is considered to be ``inside'' the item. +Defaults to 1.0. +.TP +.B -confine \fIboolean\fP +Specifies a boolean value that indicates whether or not it should be +allowable to set the canvas's view outside the region defined by the +\f5scrollregion\fR option. +Defaults to true, which means that the view will +be constrained within the scroll region. +.TP +.B -height \fIdist\fP +Specifies a desired window height that the canvas widget should request from +its geometry manager. The value may be specified in any +of the forms described in the COORDINATES section below. +.TP +.B -scrollregion \fIlist\fP +Specifies a list with four \fIdist\fP coordinates describing the left, top, right, and +bottom coordinates of a rectangular region. +This region is used for scrolling purposes and is considered to be +the boundary of the information in the canvas. +Each of the coordinates may be specified +in any of the forms given in the COORDINATES section below. +.TP +.B -width \fIdist\fP +Specifies a desired window width that the canvas widget should request from +its geometry manager. The value may be specified in any +of the forms described in the COORDINATES section below. +.br +.TP +.B -xscrollincrement \fIdist\fP +Specifies an increment for horizontal scrolling, in any of the usual forms +permitted for screen distances. If the value of this option is greater +than zero, the horizontal view in the window will be constrained so that +the canvas x coordinate at the left edge of the window is always an even +multiple of \f5xscrollicrement\fR; furthermore, the units for scrolling +(e.g., the change in view when the left and right arrows of a scrollbar +are selected) will also be \f5xscrollicrement\fR. If the value of +this option is less than or equal to zero, then horizontal scrolling +is unconstrained. +.TP +.B -yscrollincrement \fIdist\fP +Specifies an increment for vertical scrolling, in any of the usual forms +permitted for screen distances. If the value of this option is greater +than zero, the vertical view in the window will be constrained so that +the canvas y coordinate at the top edge of the window is always an even +multiple of \f5yscrollicrement\fR; furthermore, the units for scrolling +(e.g., the change in view when the top and bottom arrows of a scrollbar +are selected) will also be \f5yscrollicrement\fR. If the value of +this option is less than or equal to zero, then vertical scrolling +is unconstrained. +.TP +.B -buffer \fIwhat\fP +Specifies how much of the canvas region will be +backed by an offscreen bitmap buffer. +\fIWhat\fP can be one of \f5all\fP (the entire scroll region +will be buffered), \f5visible\fP (only the visible area), \f5none\fP +(no buffering) or \f5auto\fP (equivalent to either \f5none\fP +or \f5visible\fP depending on whether the canvas is packed inside +another canvas or not). + +.SH INTRODUCTION +The \f5canvas\fR command creates a new window (given +by the \fIpathName\fR argument) and makes it into a canvas widget. +Additional options, described above, may be specified on the +command line +to configure aspects of the canvas such as its colours and 3-D relief. +The \f5canvas\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +Canvas widgets implement structured graphics. +A canvas displays any number of \fIitems\fR, which may be things like +rectangles, circles, lines, and text. +Items may be manipulated (e.g. moved or re-coloured) and commands may +be associated with items in much the same way that the \f5bind\fR +command allows commands to be bound to widgets. For example, +a particular command may be associated with the event +so that the command is invoked whenever button 1 is pressed with +the mouse cursor over an item. +This means that items in a canvas can have behaviours defined by +the Tk scripts bound to them. + +.SH "DISPLAY LIST" +The items in a canvas are ordered for purposes of display, +with the first item in the display list being displayed +first, followed by the next item in the list, and so on. +Items later in the display list obscure those that are +earlier in the display list and are sometimes referred to +as being ``on top'' of earlier items. +When a new item is created it is placed at the end of the +display list, on top of everything else. +Widget commands may be used to re-arrange the order of the +display list. + +.SH "ITEM IDS AND TAGS" +Items in a canvas widget may be named in either of two ways: +by id or by tag. +Each item has a unique identifying number which is assigned to +that item when it is created. The id of an item never changes +and id numbers are never re-used within the lifetime of a +canvas widget. +.PP +Each item may also have any number of \fItags\fR associated +with it. A tag is just a string of characters, and it may +take any form except that of an integer. +For example, ``x123'' is OK but ``123'' isn't. +The same tag may be associated with many different items. +This is commonly done to group items in various interesting +ways; for example, all selected items might be given the +tag ``selected''. +.PP +The tag \f5all\fR is implicitly associated with every item +in the canvas; it may be used to invoke operations on +all the items in the canvas. +.PP +The tag \f5current\fR is managed automatically by Tk; +it applies to the \fIcurrent item\fR, which is the +topmost item whose drawn area covers the position of +the mouse cursor. +If the mouse is not in the canvas widget or is not over +an item, then no item has the \f5current\fR tag. +.PP +When specifying items in canvas widget commands, if the +specifier is an integer then it is assumed to refer to +the single item with that id. +If the specifier is not an integer, then it is assumed to +refer to all of the items in the canvas that have a tag +matching the specifier. +The symbol \fItagOrId\fR is used below to indicate that +an argument specifies either an id that selects a single +item or a tag that selects zero or more items. +Some widget commands only operate on a single item at a +time; if \fItagOrId\fR is specified in a way that +names multiple items, then the normal behaviour is for +the command to use the first (lowest) of these items in +the display list that is suitable for the command. +Exceptions are noted in the widget command descriptions +below. +.SH COORDINATES +All coordinates related to canvases are stored as fixed-point +numbers. +Coordinates and distances are specified as documented +in the +.I dist +section of +.IR types (9). +.SH TRANSFORMATIONS +Normally the origin of the canvas coordinate system is at the +upper-left corner of the window containing the canvas. +It is possible to adjust the origin of the canvas +coordinate system relative to the origin of the window using the +\f5xview\fR and \f5yview\fR widget commands; this is typically used +for scrolling. +Canvases do not support scaling or rotation of the canvas coordinate +system relative to the window coordinate system. +.PP +Individual items may be moved or scaled using widget commands +described below, but they may not be rotated. + +.SH INDICES +Text items support the notion of an \fIindex\fR for identifying +particular positions within the item. +Indices are used for commands such as inserting text, deleting +a range of characters, and setting the insertion cursor position. +An index may be specified in any of a number of ways, and +different types of items may support different forms for +specifying indices. +Text items support the following forms for an index. +Note that it is possible to refer to the character just after +the last one in the text item; this is necessary for such +tasks as inserting new text at the end of the item. +.TP 10 +\fInumber\fR +A decimal number giving the position of the desired character +within the text item. +0 refers to the first character, 1 to the next character, and +so on. +A number less than 0 is treated as if it were zero, and a +number greater than the length of the text item is treated +as if it were equal to the length of the text item. +.TP 10 +\f5end\fR +Refers to the character just after the last one in the item +(same as the number of characters in the item). +.TP 10 +\f5insert\fR +Refers to the character just before which the insertion cursor +is drawn in this item. +.TP 10 +\f5sel.first\fR +Refers to the first selected character in the item. +If the selection isn't in this item then this form is illegal. +.TP 10 +\f5sel.last\fR +Refers to the last selected character in the item. +If the selection isn't in this item then this form is illegal. +.TP 10 +\f5@\fIx,y\fR +Refers to the character at the point given by \fIx\fR and +\fIy\fR, where \fIx\fR and \fIy\fR are specified in the coordinate +system of the canvas. +If \fIx\fR and \fIy\fR lie outside the coordinates covered by the +text item, then they refer to the first or last character in the +line that is closest to the given point. + +.SH "WIDGET COMMAND" +The \f5canvas\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. +The following widget commands are possible for canvas widgets: +.TP +\fIpathName \f5addtag \fItag searchSpec \fR?\fIarg arg ...\fR? +For each item that meets the constraints specified by +\fIsearchSpec\fR and the \fIarg\fRs, add +\fItag\fR to the list of tags associated with the item if it +isn't already present on that list. +It is possible that no items will satisfy the constraints +given by \fIsearchSpec and \fIarg\fRs, in which case the +command has no effect. +This command returns an empty string as result. +\fISearchSpec\fR and \fIarg\fR's may take any of the following +forms: +.RS +.TP +\f5above \fItagOrId\fR +Selects the item just after (above) the one given by \fItagOrId\fR +in the display list. +If \fItagOrId\fR denotes more than one item, then the last (topmost) +of these items in the display list is used. +.TP +\f5all\fR +Selects all the items in the canvas. +.TP +\f5below \fItagOrId\fR +Selects the item just before (below) the one given by \fItagOrId\fR +in the display list. +If \fItagOrId\fR denotes more than one item, then the first (lowest) +of these items in the display list is used. +.TP +\f5closest \fIx y \fR?\fIhalo\fR? ?\fIstart\fR? +Selects the item closest to the point given by \fIx\fR and \fIy\fR. +If more than one item is at the same closest distance (e.g. two +items overlap the point), then the top-most of these items (the +last one in the display list) is used. +If \fIhalo\fR is specified, then it must be a non-negative +value. +Any item closer than \fIhalo\fR to the point is considered to +overlap it. +The \fIstart\fR argument may be used to step circularly through +all the closest items. +If \fIstart\fR is specified, it names an item using a tag or id +(if by tag, it selects the first item in the display list with +the given tag). +Instead of selecting the topmost closest item, this form will +select the topmost closest item that is below \fIstart\fR in +the display list; if no such item exists, then the selection +behaves as if the \fIstart\fR argument had not been specified. +.TP +\f5enclosed\fR \fIx1\fR \fIy1\fR \fIx2\fR \fIy2\fR +Selects all the items completely enclosed within the rectangular +region given by \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR. +\fIX1\fR must be no greater then \fIx2\fR and \fIy1\fR must be +no greater than \fIy2\fR. +.TP +\f5overlapping\fR \fIx1\fR \fIy1\fR \fIx2\fR \fIy2\fR +Selects all the items that overlap or are enclosed within the +rectangular region given by \fIx1\fR, \fIy1\fR, \fIx2\fR, +and \fIy2\fR. +\fIX1\fR must be no greater then \fIx2\fR and \fIy1\fR must be +no greater than \fIy2\fR. +.TP +\f5withtag \fItagOrId\fR +Selects all the items given by \fItagOrId\fR. +.RE +.TP +\fIpathName \f5bbox \fItagOrId\fR ?\fItagOrId tagOrId ...\fR? +Returns a list with four elements giving an approximate bounding box +for all the items named by the \fItagOrId\fR arguments. +The list has the form ``\fIx1 y1 x2 y2\fR'' such that the drawn +areas of all the named elements are within the region bounded by +\fIx1\fR on the left, \fIx2\fR on the right, \fIy1\fR on the top, +and \fIy2\fR on the bottom. +The return value may overestimate the actual bounding box by +a few pixels. +If no items match any of the \fItagOrId\fR arguments or if the +matching items have empty bounding boxes (i.e. they have nothing +to display) +then an empty string is returned. +.TP +\fIpathName \f5bind \fItagOrId\fR ?\fIsequence\fR? ?\fIcommand\fR? +This command associates \fIcommand\fR with all the items given by +\fItagOrId\fR such that whenever the event sequence given by +\fIsequence\fR occurs for one of the items the command will +be invoked. +This widget command is similar to the \f5bind\fR command except that +it operates on items in a canvas rather than entire widgets. +See the \f5bind\fR manual entry for complete details +on the syntax of \fIsequence\fR and the substitutions performed +on \fIcommand\fR before invoking it. +If all arguments are specified then a new binding is created, replacing +any existing binding for the same \fIsequence\fR and \fItagOrId\fR +(if the first character of \fIcommand\fR is ``+'' then \fIcommand\fR +augments an existing binding rather than replacing it). +In this case the return value is an empty string. +If \fIcommand\fR is omitted then the command returns the \fIcommand\fR +associated with \fItagOrId\fR and \fIsequence\fR (an error occurs +if there is no such binding). +If both \fIcommand\fR and \fIsequence\fR are omitted then the command +returns a list of all the sequences for which bindings have been +defined for \fItagOrId\fR. +.RS +.PP +The only events for which bindings may be specified are those related +to the mouse and keyboard, such as \f5Enter\fR, \f5Leave\fR, +\f5ButtonPress\fR, \f5Motion\fR, and \f5KeyPress\fR. +The handling of events in canvases uses the current item defined +in ITEM IDS AND TAGS above. +\f5Enter\fR and \f5Leave\fR events trigger for an item when it +becomes the current item or ceases to be the current item; note +that these events are different than \f5Enter\fR and \f5Leave\fR +events for windows. +Mouse-related events are directed to the current item, if any. +Keyboard-related events are directed to the focus item, if any +(see the \f5focus\fR widget command below for more on this). +.PP +It is possible for multiple bindings to match a particular event. +This could occur, for example, if one binding is associated with the +item's id and another is associated with one of the item's tags. +When this occurs, all of the matching bindings are invoked. +A binding associated with the \f5all\fR tag is invoked first, +followed by one binding for each of the item's tags (in order), +followed by a binding associated with the item's id. +If there are multiple matching bindings for a single tag, +then only the most specific binding is invoked. +A \f5continue\fR command in a binding script terminates that +script, and a \f5break\fR command terminates that script +and skips any remaining scripts for the event, just as for the +\f5bind\fR command. +.PP +If bindings have been created for a canvas window using the \f5bind\fR +command, then they are invoked in addition to bindings created for +the canvas's items using the \f5bind\fR widget command. +The bindings for items will be invoked before any of the bindings +for the window as a whole. +.RE +.TP +\fIpathName \f5canvasx \fIscreenx\fR ?\fIgridspacing\fR? +Given a window x-coordinate in the canvas \fIscreenx\fR, this command returns +the canvas x-coordinate that is displayed at that location. +If \fIgridspacing\fR is specified, then the canvas coordinate is +rounded to the nearest multiple of \fIgridspacing\fR units. +.TP +\fIpathName \f5canvasy \fIscreeny\fR ?\fIgridspacing\fR? +Given a window y-coordinate in the canvas \fIscreeny\fR this command returns +the canvas y-coordinate that is displayed at that location. +If \fIgridspacing\fR is specified, then the canvas coordinate is +rounded to the nearest multiple of \fIgridspacing\fR units. +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5canvas\fR +command. +.TP +\fIpathName \f5configure ?\fIoption\fR? ?\fIvalue\fR? ?\fIoption value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5canvas\fR +command. +.TP +\fIpathName\fR \f5coords \fItagOrId \fR?\fIx0 y0 ...\fR? +Query or modify the coordinates that define an item. +If no coordinates are specified, this command returns a list +whose elements are the coordinates of the item named by +\fItagOrId\fR. +If coordinates are specified, then they replace the current +coordinates for the named item. +If \fItagOrId\fR refers to multiple items, then +the first one in the display list is used. +.TP +\fIpathName \f5create \fItype x y \fR?\fIx y ...\fR? ?\fIoption value ...\fR? +Create a new item in \fIpathName\fR of type \fItype\fR. +The exact format of the arguments after \f5type\fR depends +on \f5type\fR, but usually they consist of the coordinates for +one or more points, followed by specifications for zero or +more item options. +See the subsections on individual item types below for more +on the syntax of this command. +This command returns the id for the new item. +.TP +\fIpathName \f5dchars \fItagOrId first \fR?\fIlast\fR? +For each item given by \fItagOrId\fR, delete the characters +in the range given by \fIfirst\fR and \fIlast\fR, +inclusive. +If some of the items given by \fItagOrId\fR don't support +text operations, then they are ignored. +\fIFirst\fR and \fIlast\fR are indices of characters +within the item(s) as described in INDICES above. +If \fIlast\fR is omitted, it defaults to \fIfirst\fR. +This command returns an empty string. +.TP +\fIpathName \f5delete \fR?\fItagOrId tagOrId ...\fR? +Delete each of the items given by each \fItagOrId\fR, and return +an empty string. +.TP +\fIpathName \f5dtag \fItagOrId \fR?\fItagToDelete\fR? +For each of the items given by \fItagOrId\fR, delete the +tag given by \fItagToDelete\fR from the list of those +associated with the item. +If an item doesn't have the tag \fItagToDelete\fR then +the item is unaffected by the command. +If \fItagToDelete\fR is omitted then it defaults to \fItagOrId\fR. +This command returns an empty string. +.TP +\fIpathName \f5find \fIsearchCommand \fR?\fIarg arg ...\fR? +This command returns a list consisting of all the items that +meet the constraints specified by \fIsearchCommand\fR and +\fIarg\fR's. +\fISearchCommand\fR and \fIargs\fR have any of the forms +accepted by the \f5addtag\fR command. +If \fIsearchCommand\fR is \f5enclosed\fR, \f5overlapping\fR, +or \f5all\fR, the items are returned in display-list order, +i.e. bottommost first. +.TP +\fIpathName \f5focus \fR?\fItagOrId\fR? +Set the keyboard focus for the canvas widget to the item given by +\fItagOrId\fR. +If \fItagOrId\fR refers to several items, then the focus is set +to the first such item in the display list that supports the +insertion cursor. +If \fItagOrId\fR doesn't refer to any items, or if none of them +support the insertion cursor, then the focus isn't changed. +If \fItagOrId\fR is an empty +string, then the focus item is reset so that no item has the focus. +If \fItagOrId\fR is not specified then the command returns the +id for the item that currently has the focus, or an empty string +if no item has the focus. +.RS +.PP +Once the focus has been set to an item, the item will display +the insertion cursor and all keyboard events will be directed +to that item. +The focus item within a canvas and the focus window on the +screen (set with the \f5focus\fR command) are totally independent: +a given item doesn't actually have the input focus unless (a) +its canvas is the focus window and (b) the item is the focus item +within the canvas. +In most cases it is advisable to follow the \f5focus\fR widget +command with the \f5focus\fR command to set the focus window to +the canvas (if it wasn't there already). +.RE +.TP +\fIpathName \f5gettags\fR \fItagOrId\fR +Return a list whose elements are the tags associated with the +item given by \fItagOrId\fR. +If \fItagOrId\fR refers to more than one item, then the tags +are returned from the first such item in the display list. +If \fItagOrId\fR doesn't refer to any items, then an error is returned. If the item +contains no tags, then an empty string is returned. +.TP +\fIpathName \f5grab\fR \fIwhat\fR \fItagOrId\fR +Does for canvas widgets what \fIgrab\fR(9) does for +normal tk widgets: mouse events will only be delivered +to \fItagOrId\fR. If \fItagOrId\fR refers to more than one item, +then the first such item in the display list is grabbed. +\fIWhat\fR is as described in +.IR grab (9). +.PP +Note that the canvas grab item, as set by this command, +and the tk grab item, as set by +.IR grab (9) +are totally independent; a canvas item doesn't actually grab +the mouse unless a) the canvas itself has grabbed the mouse +or b) the mouse events are being delivered to the canvas as +a matter of course. +.TP +\fIpathName \f5icursor \fItagOrId index\fR +Set the position of the insertion cursor for the item(s) +given by \fItagOrId\fR +to just before the character whose position is given by \fIindex\fR. +If some or all of the items given by \fItagOrId\fR don't support +an insertion cursor then this command has no effect on them. +See INDICES above for a description of the +legal forms for \fIindex\fR. +Note: the insertion cursor is only displayed in an item if +that item currently has the keyboard focus (see the widget +command \f5focus\fR, below), but the cursor position may +be set even when the item doesn't have the focus. +This command returns an empty string. +.TP +\fIpathName \f5index \fItagOrId index\fR +This command returns a decimal string giving the numerical index +within \fItagOrId\fR corresponding to \fIindex\fR. +\fIIndex\fR gives a textual description of the desired position +as described in INDICES above. +The return value is guaranteed to lie between 0 and the number +of characters within the item, inclusive. +If \fItagOrId\fR refers to multiple items, then the index +is processed in the first of these items that supports indexing +operations (in display list order). +.TP +\fIpathName \f5insert \fItagOrId beforeThis string\fR +For each of the items given by \fItagOrId\fR, if the item supports +text insertion then \fIstring\fR is inserted into the item's +text just before the character whose index is \fIbeforeThis\fR. +See INDICES above for information about the forms allowed +for \fIbeforeThis\fR. +This command returns an empty string. +.TP +\fIpathName \f5itemcget\fR \fItagOrId\fR \fIoption\fR +Returns the current value of the configuration option for the +item given by \fItagOrId\fR whose name is \fIoption\fR. +This command is similar to the \f5cget\fR widget command except that +it applies to a particular item rather than the widget as a whole. +\fIOption\fR may have any of the values accepted by the \f5create\fR +widget command when the item was created. +If \fItagOrId\fR is a tag that refers to more than one item, +the first (lowest) such item is used. +.TP +\fIpathName \f5itemconfigure \fItagOrId\fR ?\fIoption\fR? ?\fIvalue\fR? ?\fIoption value ...\fR? +This command is similar to the \f5configure\fR widget command except +that it modifies item-specific options for the items given by +\fItagOrId\fR instead of modifying options for the overall +canvas widget. +If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s) in +each of the items given by \fItagOrId\fR; in +this case the command returns an empty string. +The \fIoption\fRs and \fIvalue\fRs are the same as those permissible +in the \f5create\fR widget command when the item(s) were created; +see the sections describing individual item types below for details +on the legal options. +.TP +\fIpathName \f5lower \fItagOrId \fR?\fIbelowThis\fR? +Move all of the items given by \fItagOrId\fR to a new position +in the display list just before the item given by \fIbelowThis\fR. +If \fItagOrId\fR refers to more than one item then all are moved +but the relative order of the moved items will not be changed. +\fIBelowThis\fR is a tag or id; if it refers to more than one +item then the first (lowest) of these items in the display list is used +as the destination location for the moved items. +This command returns an empty string. +.TP +\fIpathName \f5move \fItagOrId xAmount yAmount\fR +Move each of the items given by \fItagOrId\fR in the canvas coordinate +space by adding \fIxAmount\fR to the x-coordinate of each point +associated with the item and \fIyAmount\fR to the y-coordinate of +each point associated with the item. +This command returns an empty string. +.TP +\fIpathName \f5raise \fItagOrId \fR?\fIaboveThis\fR? +Move all of the items given by \fItagOrId\fR to a new position +in the display list just after the item given by \fIaboveThis\fR. +If \fItagOrId\fR refers to more than one item then all are moved +but the relative order of the moved items will not be changed. +\fIAboveThis\fR is a tag or id; if it refers to more than one +item then the last (topmost) of these items in the display list is used +as the destination location for the moved items. +This command returns an empty string. +.TP +\fIpathName \f5scale \fItagOrId xOrigin yOrigin xScale yScale\fR +Rescale all of the items given by \fItagOrId\fR in canvas coordinate +space. +\fIXOrigin\fR and \fIyOrigin\fR identify the origin for the scaling +operation and \fIxScale\fR and \fIyScale\fR identify the scale +factors for x- and y-coordinates, respectively (a scale factor of +1.0 implies no change to that coordinate). +For each of the points defining each item, the x-coordinate is +adjusted to change the distance from \fIxOrigin\fR by a factor +of \fIxScale\fR. +Similarly, each y-coordinate is adjusted to change the distance +from \fIyOrigin\fR by a factor of \fIyScale\fR. +This command returns an empty string. +.TP +\fIpathName \f5screenx \fIcanvasx\fR +Given an x-coordinate \fIcanvasx\fR in the canvas, this command returns +the equivalent screen x-coordinate. +.TP +\fIpathName \f5screeny \fIcanvasy\fR +Given an x-coordinate \fIcanvasy\fR in the canvas, this command returns +the equivalent screen y-coordinate. +.TP +\fIpathName \f5see \fIx1 y1\fR ?\fIx2 y2\fR? +Adjusts the view in the window such that, if possible +the point [\fIx1\fR, \fIy1\fR] (and, if given, the point +[\fIx2\fR, \fIy2\fR]) are made visible. +.TP +\fIpathName \f5select \fIoption\fR ?\fItagOrId arg\fR? +Manipulates the selection in one of several ways, depending on +\fIoption\fR. +The command may take any of the forms described below. +In all of the descriptions below, \fItagOrId\fR must refer to +an item that supports indexing and selection; if it refers to +multiple items then the first of +these that supports indexing and the selection is used. +\fIIndex\fR gives a textual description of a position +within \fItagOrId\fR, as described in INDICES above. +.RS +.TP +\fIpathName \f5select adjust \fItagOrId index\fR +Locate the end of the selection in \fItagOrId\fR nearest +to the character given by \fIindex\fR, and adjust that +end of the selection to be at \fIindex\fR (i.e. including +but not going beyond \fIindex\fR). +The other end of the selection is made the anchor point +for future \f5select to\fR commands. +If the selection isn't currently in \fItagOrId\fR then +this command behaves the same as the \f5select to\fR widget +command. +Returns an empty string. +.TP +\fIpathName \f5select clear\fR +Clear the selection if it is in this widget. +If the selection isn't in this widget then the command +has no effect. +Returns an empty string. +.TP +\fIpathName \f5select from \fItagOrId index\fR +Set the selection anchor point for the widget to be just +before the character +given by \fIindex\fR in the item given by \fItagOrId\fR. +This command doesn't change the selection; it just sets +the fixed end of the selection for future \f5select to\fR +commands. +Returns an empty string. +.TP +\fIpathName \f5select item\fR +Returns the id of the selected item, if the selection is in an +item in this canvas. +If the selection is not in this canvas then an empty string +is returned. +.TP +\fIpathName \f5select to \fItagOrId index\fR +Set the selection to consist of those characters of \fItagOrId\fR +between the selection anchor point and +\fIindex\fR. +The new selection will include the character given by \fIindex\fR; +it will include the character given by the anchor point only if +\fIindex\fR is greater than or equal to the anchor point. +The anchor point is determined by the most recent \f5select adjust\fR +or \f5select from\fR command for this widget. +If the selection anchor point for the widget isn't currently in +\fItagOrId\fR, then it is set to the same character given +by \fIindex\fR. +Returns an empty string. +.RE +.TP +\fIpathName \f5type\fI tagOrId\fR +Returns the type of the item given by \fItagOrId\fR, such as +\f5rectangle\fR or \f5text\fR. +If \fItagOrId\fR refers to more than one item, then the type +of the first item in the display list is returned. +If \fItagOrId\fR doesn't refer to any items at all then +an empty string is returned. +.TP +\fIpathName \f5xview \fR?\fIargs\fR? +This command is used to query and change the horizontal position of the +information displayed in the canvas's window. +It can take any of the following forms: +.RS +.TP +\fIpathName \f5xview\fR +Returns a list containing two elements. +Each element is a real fraction between 0 and 1; together they describe +the horizontal span that is visible in the window. +For example, if the first element is .2 and the second element is .6, +20% of the canvas's area (as defined by the \f5-scrollregion\fR option) +is off-screen to the left, the middle 40% is visible +in the window, and 40% of the canvas is off-screen to the right. +These are the same values passed to scrollbars via the \f5-xscrollcommand\fR +option. +.TP +\fIpathName \f5xview moveto\fI fraction\fR +Adjusts the view in the window so that \fIfraction\fR of the +total width of the canvas is off-screen to the left. +\fIFraction\fR must be a fraction between 0 and 1. +.TP +\fIpathName \f5xview scroll \fInumber what\fR +This command shifts the view in the window left or right according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts left or right in units +of the \f5xscrollicrement\fR option, if it is greater than zero, +or in units of one-tenth the window's width otherwise. +If \fIwhat is \f5pages\fR then the view +adjusts in units of nine-tenths the window's width. +If \fInumber\fR is negative then information farther to the left +becomes visible; if it is positive then information farther to the right +becomes visible. +.RE +.TP +\fIpathName \f5yview \fI?args\fR? +This command is used to query and change the vertical position of the +information displayed in the canvas's window. +It can take any of the following forms: +.RS +.TP +\fIpathName \f5yview\fR +Returns a list containing two elements. +Each element is a real fraction between 0 and 1; together they describe +the vertical span that is visible in the window. +For example, if the first element is .6 and the second element is 1.0, +the lowest 40% of the canvas's area (as defined by the \f5-scrollregion\fR +option) is visible in the window. +These are the same values passed to scrollbars via the \f5-yscrollcommand\fR +option. +.TP +\fIpathName \f5yview moveto\fI fraction\fR +Adjusts the view in the window so that \fIfraction\fR of the canvas's +area is off-screen to the top. +\fIFraction\fR is a fraction between 0 and 1. +.TP +\fIpathName \f5yview scroll \fInumber what\fR +This command adjusts the view in the window up or down according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts up or down in units +of the \f5yscrollicrement\fR option, if it is greater than zero, +or in units of one-tenth the window's height otherwise. +If \fIwhat\fR is \f5pages\fR then +the view adjusts in units of nine-tenths the window's height. +If \fInumber\fR is negative then higher information becomes +visible; if it is positive then lower information +becomes visible. +.RE + +.SH "OVERVIEW OF ITEM TYPES" +The sections below describe the various types of items supported +by canvas widgets. Each item type is characterized by two things: +first, the form of the \f5create\fR command used to create +instances of the type; and second, a set of configuration options +for items of that type, which may be used in the +\f5create\fR and \f5itemconfigure\fR widget commands. +Most items don't support indexing or selection or the commands +related to them, such as \f5index\fR and \f5insert\fR. +Where items do support these facilities, it is noted explicitly +in the descriptions below (at present, only text items provide +this support). + +.SH "ARC ITEMS" +Items of type \f5arc\fR appear on the display as arc-shaped regions. +An arc is a section of an oval delimited by two angles (specified +by the \f5-start\fR and \f5-extent\fR options) and displayed in +one of several ways (specified by the \f5-style\fR option). +Arcs are created with widget commands of the following form: +.RS +.EX +\fIpathName \f5create arc \fIx1 y1 x2 y2 \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR give +the coordinates of two diagonally opposite corners of a +rectangular region enclosing the oval that defines the arc. +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for arcs: +.TP +\f5-extent \fIdegrees\fR +Specifies the size of the angular range occupied by the arc. +The arc's range extends for \fIdegrees\fR degrees counter-clockwise +from the starting angle given by the \f5-start\fR option. +\fIDegrees\fR may be negative. +If it is greater than 360 or less than -360, then \fIdegrees\fR +modulo 360 is used as the extent. +.TP +\f5-fill \fIcolour\fR +Fill the region of the arc with \fIcolour\fR. +If \fIcolour\fR is an empty string (the default), then +the arc will not be filled. +.TP +\f5-outline \fIcolour\fR +\fIColour\fR specifies a colour to use for drawing the arc's +outline. +This option defaults to \f5black\fR. If \fIcolour\fR is specified +as an empty string then no outline is drawn for the arc. +.TP +\f5-start \fIdegrees\fR +Specifies the beginning of the angular range occupied by the +arc. +\fIDegrees\fR is given in units of degrees measured counter-clockwise +from the 3-o'clock position; it may be either positive or negative. +.TP +\f5-stipple \fIbitmap\fR +Indicates that the arc should be filled in a stipple pattern; +\fIbitmap\fR specifies the stipple pattern to use. +If the \f5-fill\fR option hasn't been specified then this option +has no effect. +If \fIbitmap\fR is an empty string (the default), then filling is done +in a solid fashion. +The results are undefined if \fIbitmap\fR is not +a 1-bit image. +.TP +\f5-style \fItype\fR +Specifies how to draw the arc. If \fItype\fR is \f5pieslice\fR +(the default) then the arc's region is defined by a section +of the oval's perimeter plus two line segments, one between the center +of the oval and each end of the perimeter section. +If \fItype\fR is \f5chord\fR then the arc's region is defined +by a section of the oval's perimeter plus a single line segment +connecting the two end points of the perimeter section. +This type is not implemented at the moment. It behaves as \f5arc\fR. +If \fItype\fR is \f5arc\fR then the arc's region consists of +a section of the perimeter alone. +In this last case the \f5-fill\fR option is ignored. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-width \fIoutlineWidth\fR +Specifies the width of the outline to be drawn around +the arc's region, in any of the forms described in the COORDINATES +section above. +If the \f5-outline\fR option has been specified as an empty string +then this option has no effect. +Wide outlines will be drawn centered on the edges of the arc's region. +This option defaults to 1.0. + +.SH "BITMAP ITEMS" +Items of type \f5bitmap\fR appear on the display as images with +two colours, foreground and background. +Bitmaps are created with widget commands of the following form: +.RS +.EX +\fIpathName \f5create bitmap \fIx y \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx\fR and \fIy\fR specify the coordinates of a +point used to position the bitmap on the display (see the \f5-anchor\fR +option below for more information on how bitmaps are displayed). +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for bitmaps: +.TP +\f5-anchor \fIanchorPos\fR +\fIAnchorPos\fR tells how to position the bitmap relative to the +positioning point for the item. For example, if \fIanchorPos\fR +is \f5center\fR then the bitmap is centered on the point; if +\fIanchorPos\fR is \f5n\fR then the bitmap will be drawn so that +its top center point is at the positioning point. +This option defaults to \f5center\fR. +.TP +\f5-bitmap \fIbitmap\fR +Specifies the bitmap to display in the item. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. + +.SH "IMAGE ITEMS" +Items of type \f5image\fR are used to display images on a +canvas. +Images are created with widget commands of the following form: +.RS +.EX +\fIpathName \f5create image \fIx y \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx\fR and \fIy\fR specify the coordinates of a +point used to position the image on the display (see the \f5-anchor\fR +option below for more information). +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for images: +.TP +\f5-anchor \fIanchorPos\fR +\fIAnchorPos\fR tells how to position the image relative to the +positioning point for the item. For example, if \fIanchorPos\fR +is \f5center\fR then the image is centered on the point; if +\fIanchorPos\fR is \f5n\fR then the image will be drawn so that +its top center point is at the positioning point. +This option defaults to \f5center\fR. +.TP +\f5-image \fIname\fR +Specifies the name of the image to display in the item. +This image must have been created previously with the +\f5image create\fR command. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item; it may be an empty list. + +.SH "LINE ITEMS" +Items of type \f5line\fR appear on the display as one or more connected +line segments or curves. +Lines are created with widget commands of the following form: +.RS +.EX +\fIpathName \f5create line \fIx1 y1... xn yn \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx1\fR through \fIyn\fR give +the coordinates for a series of two or more points that describe +a series of connected line segments. +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for lines: +.TP +\f5-arrow \fIwhere\fR +Indicates whether or not arrowheads are to be drawn at one or both +ends of the line. +\fIWhere\fR must have one of the values \f5none\fR (for no arrowheads), +\f5first\fR (for an arrowhead at the first point of the line), +\f5last\fR (for an arrowhead at the last point of the line), or +\f5both\fR (for arrowheads at both ends). +This option defaults to \f5none\fR. +.TP +\f5-arrowshape \fIshape\fR +This option indicates how to draw arrowheads. +The \fIshape\fR argument must be a list with three elements, each +specifying a distance in any of the forms described in +the COORDINATES section above. +The first element of the list gives the distance along the line +from the neck of the arrowhead to its tip. +The second element gives the distance along the line from the +trailing points of the arrowhead to the tip, and the third +element gives the distance from the outside edge of the line to the +trailing points. +If this option isn't specified then Tk picks a ``reasonable'' shape. +.TP +\f5-capstyle \fIstyle\fR +Specifies the ways in which caps are to be drawn at the endpoints +of the line. +\fIStyle\fR may one of +\f5butt\fR, \f5projecting\fR, or \f5round\fR. +If this option isn't specified then it defaults to \f5butt\fR. +Where arrowheads are drawn the cap style is ignored. Note that the first two options +currently have the same effect. +.TP +\f5-fill \fIcolour\fR +\fIColour\fR specifies a colour to use for drawing the line. It may also be an +empty string, in which case the line will be transparent. +This option defaults to \f5black\fR. +.TP +\f5-smooth \fIboolean\fR +\fIBoolean\fR indicates whether or not the line should be drawn as a curve. +If so, the line is rendered as a set of Bezier splines: one spline +is drawn for the first and second line segments, one for the second +and third, and so on. Straight-line segments can be generated within +a curve by duplicating the end-points of the desired line segment. +.TP +\f5-stipple \fIbitmap\fR +Indicates that the line should be filled in a stipple pattern; +\fIbitmap\fR specifies the stipple pattern to use. +If \fIbitmap\fR is an empty string (the default), then filling is +done in a solid fashion. +The results are undefined if \fIbitmap\fR is not +a 1-bit image. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-width \fIlineWidth\fR +\fILineWidth\fR specifies the width of the line, in any of the forms +described in the COORDINATES section above. +Wide lines will be drawn centered on the path specified by the +points. +If this option isn't specified then it defaults to 1.0. + +.SH "OVAL ITEMS" +Items of type \f5oval\fR appear as circular or oval regions on +the display. Each oval may have an outline, a fill, or +both. Ovals are created with widget commands of the +following form: +.RS +.EX +\fIpathName \f5create oval \fIx1 y1 x2 y2 \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR give +the coordinates of two diagonally opposite corners of a +rectangular region enclosing the oval. +The oval will include the top and left edges of the rectangle +not the lower or right edges. +If the region is square then the resulting oval is circular; +otherwise it is elongated in shape. +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for ovals: +.TP +\f5-fill \fIcolour\fR +Fill the area of the oval with \fIcolour\fR. +If \fIcolour\fR is an empty string (the default), then +then the oval will not be filled. +.TP +\f5-outline \fIcolour\fR +\fIColour\fR specifies a colour to use for drawing the oval's +outline. +This option defaults to \f5black\fR. +If \fIcolour\fR is an empty string then no outline will be +drawn for the oval. +.TP +\f5-stipple \fIbitmap\fR +Indicates that the oval should be filled in a stipple pattern; +\fIbitmap\fR specifies the stipple pattern to use. +If the \f5-fill\fR option hasn't been specified then this option +has no effect. +If \fIbitmap\fR is an empty string (the default), then filling is done +in a solid fashion. +The results are undefined if \fIbitmap\fR is not +a 1-bit image. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-width \fIoutlineWidth\fR +\fIoutlineWidth\fR specifies the width of the outline to be drawn around +the oval, in any of the forms described in the COORDINATES section above. +If the \f5-outline\fR option hasn't been specified then this option +has no effect. +Wide outlines are drawn centered on the oval path defined by +\fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR. +This option defaults to 1.0. + +.SH "POLYGON ITEMS" +Items of type \f5polygon\fR appear as polygonal or curved filled regions +on the display. +Polygons are created with widget commands of the following form: +.RS +.EX +\fIpathName \f5create polygon \fIx1 y1 ... xn yn \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx1\fR through \fIyn\fR specify the coordinates for +three or more points that define a closed polygon. +The first and last points may be the same; whether they are or not, +Tk will draw the polygon as a closed polygon. +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for polygons: +.TP +\f5-fill \fIcolour\fR +\fIColour\fR specifies a colour to use for filling the area of the +polygon. +If \fIcolour\fR is an empty string then the polygon will be +transparent. +This option defaults to the empty string (transparent). +.TP +\f5-outline \fIcolour\fR +\fIColour\fR specifies a colour to use for drawing the polygon's +outline. +If \fIcolour\fR is an empty string then no outline will be +drawn for the polygon. +This option defaults to black. +.TP +\f5-smooth \fIboolean\fR +\fIBoolean\fP indicates whether or not the polygon should be drawn with a +curved perimeter. +If so, the outline of the polygon becomes a set of Bezier splines, +one spline for the first and second line segments, one for the second +and third, and so on. Straight-line segments can be generated in a +smoothed polygon by duplicating the end-points of the desired line segment. +.TP +\f5-stipple \fIbitmap\fR +Indicates that the polygon should be filled in a stipple pattern; +\fIbitmap\fR specifies the stipple pattern to use. +If \fIbitmap\fR is an empty string (the default), then filling is +done in a solid fashion. +The results are undefined if \fIbitmap\fR is not +a 1-bit image. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-winding \fItype\fR +Specifies the winding rule to use when filling the polygon. +\fIType\fR can be either \f5nonzero\fR (the default) +or \f5odd\fR +See \f5fillpoly\fR in +.IR draw-image(2) +for an explanation. +.TP +\f5-width \fIoutlineWidth\fR +\fIOutlineWidth\fR specifies the width of the outline to be drawn around +the polygon, in any of the forms described in the COORDINATES section above. +If the \f5-outline\fR option hasn't been specified then this option +has no effect. This option defaults to 1.0. +.PP +Polygon items are different from other items such as rectangles, ovals +and arcs in that interior points are considered to be ``inside'' a +polygon (e.g. for purposes of the \f5find closest\fR and +\f5find overlapping\fR widget commands) even if it is not filled. +For most other item types, an +interior point is considered to be inside the item only if the item +is filled or if it has neither a fill nor an outline. If you would +like an unfilled polygon whose interior points are not considered +to be inside the polygon, use a line item instead. + +.SH "RECTANGLE ITEMS" +Items of type \f5rectangle\fR appear as rectangular regions on +the display. Each rectangle may have an outline, a fill, or +both. Rectangles are created with widget commands of the +following form: +.RS +.EX +\fIpathName \f5create rectangle \fIx1 y1 x2 y2 \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR give +the coordinates of two diagonally opposite corners of the rectangle +(the rectangle will include its upper and left edges but not +its lower or right edges). +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for rectangles: +.TP +\f5-fill \fIcolour\fR +Fill the area of the rectangle with \fIcolour\fR. +If \fIcolour\fR is an empty string (the default), +then the rectangle will not be filled. +.TP +\f5-outline \fIcolour\fR +Draw an outline around the edge of the rectangle in \fIcolour\fR. +This option defaults to \f5black\fR. +If \fIcolour\fR is an empty string then no outline will be +drawn for the rectangle. +.TP +\f5-stipple \fIbitmap\fR +Indicates that the rectangle should be filled in a stipple pattern; +\fIbitmap\fR specifies the stipple pattern to use. +If the \f5-fill\fR option hasn't been specified then this option +has no effect. +If \fIbitmap\fR is an empty string (the default), then filling +is done in a solid fashion. +The results are undefined if \fIbitmap\fR is not +a 1-bit image. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-width \fIoutlineWidth\fR +\fIOutlineWidth\fR specifies the width of the outline to be drawn around +the rectangle, in any of the forms described in the COORDINATES section above. +If the \f5-outline\fR option hasn't been specified then this option +has no effect. +Wide outlines are drawn centered on the rectangular path +defined by \fIx1\fR, \fIy1\fR, \fIx2\fR, and \fIy2\fR. +This option defaults to 1.0. + +.SH "TEXT ITEMS" +A text item displays a string of characters on the screen in one +or more lines. +Text items support indexing and selection, along with the +following text-related canvas widget commands: \f5dchars\fR, +\f5focus\fR, \f5icursor\fR, \f5index\fR, \f5insert\fR, +\f5select\fR. +Text items are created with widget commands of the following +form: +.RS +.EX +\fIpathName \f5create text \fIx y \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx\fR and \fIy\fR specify the coordinates of a +point used to position the text on the display (see the options +below for more information on how text is displayed). +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for text items: +.TP +\f5-anchor \fIanchorPos\fR +\fIAnchorPos\fR tells how to position the text relative to the +positioning point for the text. For example, if \fIanchorPos\fR +is \f5center\fR then the text is centered on the point; if +\fIanchorPos\fR is \f5n\fR then the text will be drawn such that +the top center point of the rectangular region occupied by the +text will be at the positioning point. +This option defaults to \f5center\fR. +.TP +\f5-fill \fIcolour\fR +\fIColour\fR specifies a colour to use for filling the text characters. +If this option isn't specified then it defaults to \f5black\fR. +.TP +\f5-font \fIfont\fR +Specifies the font to use for the text item. +If this option isn't specified, it defaults to a system-dependent +font. +.TP +\f5-justify \fIhow\fR +Specifies how to justify the text within its bounding region. +\fIHow\fR must be one of the values \f5left\fR, \f5right\fR, +or \f5center\fR. +This option will only matter if the text is displayed as multiple +lines. +If the option is omitted, it defaults to \f5left\fR. +.TP +\f5-stipple \fIbitmap\fR +Indicates that the text should be drawn in a stippled pattern +rather than solid; +\fIbitmap\fR specifies the stipple pattern to use. +If \fIbitmap\fR is an empty string (the default) then the text +is drawn in a solid fashion. +The results are undefined if \fIbitmap\fR is not +a 1-bit image. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-text \fIstring\fR +\fIString\fR specifies the characters to be displayed in the text item. +Newline characters cause line breaks. +The characters in the item may also be changed with the +\f5insert\fR and \f5delete\fR widget commands. +This option defaults to an empty string. +.TP +\f5-width \fIlineLength\fR +Specifies a maximum line length for the text, in any of the forms +described in the COORDINATES section above. +If this option is zero (the default) the text is broken into +lines only at newline characters. +However, if this option is non-zero then any line that would +be longer than \fIlineLength\fR is broken just before a space +character to make the line shorter than \fIlineLength\fR; the +space character is treated as if it were a newline +character. + +.SH "WINDOW ITEMS" +Items of type \f5window\fR cause a particular window to be displayed +at a given position on the canvas. +Window items are created with widget commands of the following form: +.RS +.EX +\fIpathName \f5create window \fIx y \fR?\fIoption value option value ...\fR? +.EE +.RE +The arguments \fIx\fR and \fIy\fR specify the coordinates of a +point used to position the window on the display (see the \f5-anchor\fR +option below for more information on how bitmaps are displayed). +After the coordinates there may be any number of \fIoption\fR-\fIvalue\fR +pairs, each of which sets one of the configuration options +for the item. These same \fIoption\fR-\fIvalue\fR pairs may be +used in \f5itemconfigure\fR widget commands to change the item's +configuration. +The following options are supported for window items: +.TP +\f5-anchor \fIanchorPos\fR +\fIAnchorPos\fR tells how to position the window relative to the +positioning point for the item. For example, if \fIanchorPos\fR +is \f5center\fR then the window is centered on the point; if +\fIanchorPos\fR is \f5n\fR then the window will be drawn so that +its top center point is at the positioning point. +This option defaults to \f5center\fR. +.TP +\f5-height \fIdist\fR +Specifies the height to assign to the item's window. +\fIDist\fR may have any of the +forms described in the COORDINATES section above. +If this option isn't specified, or if it is specified as an empty +string, then the window is given whatever height it requests internally. +.TP +\f5-tags \fItagList\fR +Specifies a set of tags to apply to the item. +\fITagList\fR consists of a list of tag names, which replace any +existing tags for the item. +\fITagList\fR may be an empty list. +.TP +\f5-width \fIdist\fR +Specifies the width to assign to the item's window. +\fIDist\fR may have any of the +forms described in the COORDINATES section above. +If this option isn't specified, or if it is specified as an empty +string, then the window is given whatever width it requests internally. +.TP +\f5-window \fIpathName\fR +Specifies the window to associate with this item. +The window specified by \fIpathName\fR must either be a child of +the canvas widget or a child of some ancestor of the canvas widget. +\fIPathName\fR may not refer to a top-level window. + +.SH BINDINGS +New canvases are not given any +default behaviour. +Use +.IR bind (2) +commands to give the canvas its behaviour. +.SH CREDITS +Tk's canvas widget is a blatant ripoff of ideas from Joel Bartlett's +\fIezd\fR program. \fIEzd\fR provides structured graphics in a Scheme +environment and preceded canvases by a year or two. Its simple +mechanisms for placing and animating graphical objects inspired the +functions of canvases. + +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/checkbutton.9 b/static/inferno/man9/checkbutton.9 new file mode 100644 index 00000000..32377761 --- /dev/null +++ b/static/inferno/man9/checkbutton.9 @@ -0,0 +1,193 @@ +.TH CHECKBUTTON 9 +.SH NAME +checkbutton \- Create and manipulate checkbutton widgets +.SH SYNOPSIS +\f5checkbutton\fI pathname \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -disabledcolor -justify +-activeforeground -font -relief +-anchor -foreground -takefocus +-background -highlightcolor -text +-bitmap -highlightthickness -underline +-borderwidth -image +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -command \fIcommand\fP +Specifies a Tk command to associate with the button. This command +is typically invoked when mouse button 1 is released over the button +window. The button's global variable (\f5-variable\fR option) will +be updated before the command is invoked. +.TP +.B -height \fIdist\fP +Specifies a desired height for the button. +If this option isn't specified, the button's desired height is computed +from the size of the image or bitmap or text being displayed in it. +.TP +.B -indicatoron \fIboolean\fP +Specifies whether or not the indicator should be drawn. +If false, the \f5relief\fP option is ignored and the widget's +relief is always \f5sunken\fP if the widget is selected +and \f5raised\fP otherwise. +.TP +.B -offvalue \fIstring\fP +Specifies value to store in the button's associated variable whenever +this button is deselected. Defaults to ``0''. +.TP +.B -onvalue \fIstring\fP +Specifies value to store in the button's associated variable whenever +this button is selected. Defaults to ``1''. +.TP +.B -selectcolor \fIcolour\fP +Specifies a background colour to use when the button is selected. +If \f5indicatoron\fR is true then the colour applies to the indicator. +If \f5indicatoron\fR is false, this colour is used as the background +for the entire widget, in place of \f5background\fR or \f5activebackground\fR, +whenever the widget is selected. +If specified as an empty string then no special colour is used for +displaying when the widget is selected. +.ig +.TP +.B -selectimage \fIimage\fP +Specifies an image to display (in place of the \f5image\fR option) +when the checkbutton is selected. +This option is ignored unless the \f5image\fR option has been +specified. +.. +.TP +.B -state \fIstate\fP +Specifies one of three states for the checkbutton: \f5normal\fR, \f5active\fR, +or \f5disabled\fR. In normal state the checkbutton is displayed using the +\f5foreground\fR and \f5background\fR options. The active state is +typically used when the pointer is over the checkbutton. In active state +the checkbutton is displayed using the \f5activeforeground\fR and +\f5activebackground\fR options. Disabled state means that the checkbutton +should be insensitive: the default bindings will refuse to activate +the widget and will ignore mouse button presses. +In this state the \f5disabledcolor\fR and +\f5background\fR options determine how the checkbutton is displayed. +.TP +.B -variable \fIstring\fP +Specifies name of global variable to set whenever this button is +selected. Changes in this variable also cause the button to select +or deselect itself. +.TP +.B -width \fIdist\fP +Specifies a desired width for the button. +If this option isn't specified, the button's desired width is computed +from the size of the image or bitmap or text being displayed in it. +.SH DESCRIPTION +The \f5checkbutton\fR command creates a new window (given by the +\fIpathname\fR argument) and makes it into a checkbutton widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the checkbutton such as its colours, font, +text, and initial relief. The \f5checkbutton\fR command returns its +\fIpathname\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathname\fR. +.PP +A checkbutton is a widget +that displays a textual string, bitmap or image +and a square called an \fIindicator\fR. +If text is displayed, it must all be in a single font, but it +can occupy multiple lines on the screen (if it contains newlines) and +one of the characters may optionally be underlined using the +\f5underline\fR option. +A checkbutton has +all of the behaviour of a simple button, including the +following: it can display itself in either of three different +ways, according to the \f5state\fR option; +it can be made to appear +raised, sunken, or flat; and it invokes +a Tk command whenever mouse button 1 is clicked over the +checkbutton. +.PP +In addition, checkbuttons can be \fIselected\fR. +If a checkbutton is selected then the indicator is normally +drawn with a sunken relief and a tick (check) mark, and +a Tk variable associated with the checkbutton is set to the +.B onvalue +(normally 1). +If the checkbutton is not selected, then the indicator is drawn as an empty box with +raised relief, and the associated variable is +set to the +.B offvalue +(normally 0). +The variable name +may be modified with options on the command line (\f5-variable\fR option). +Configuration options may also be used to modify the way the +indicator is displayed (or whether it is displayed at all). +By default a checkbutton is configured to select and deselect +itself on alternate button clicks. +.SH "WIDGET COMMAND" +The \f5checkbutton\fR command creates a new Tk command whose +name is \fIpathname\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathname option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for checkbutton widgets: +.TP +\fIpathname \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5checkbutton\fR +command. +.TP +\fIpathname \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathname\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5checkbutton\fR +command. +.TP +\fIpathname \f5deselect\fR +Deselects the checkbutton and sets the associated variable to its ``off'' +value. +.TP +\fIpathname \f5invoke\fR +Does just what would have happened if the user invoked the checkbutton +with the mouse: toggle the selection state of the button and invoke +the Tk command associated with the checkbutton, if there is one. +The return value is the return value from the Tk command, or an +empty string if there is no command associated with the checkbutton. +This command is ignored if the checkbutton's state is \f5disabled\fR. +.TP +\fIpathname \f5select\fR +Selects the checkbutton and sets the associated variable to 1. +.TP +\fIpathname \f5toggle\fR +Toggles the selection state of the button, redisplaying it and +modifying its associated variable to reflect the new state. + +.SH BINDINGS +Tk automatically creates bindings for checkbuttons that give them +the following default behaviour: +.IP [1] +A checkbutton activates whenever the mouse passes over it and deactivates +whenever the mouse leaves the checkbutton. +.IP [2] +When mouse button 1 is pressed over a checkbutton it is invoked (its +selection state toggles and the command associated with the button is +invoked, if there is one). +.PP +If the checkbutton's state is \f5disabled\fR then none of the above +actions occur: the checkbutton is completely non-responsive. +.PP +The behaviour of checkbuttons can be changed by defining new bindings for +individual widgets. +.SH SEE ALSO +.IR button (9), +.IR choicebutton (9), +.IR options (9), +.IR radiobutton (9), +.IR types (9) diff --git a/static/inferno/man9/choicebutton.9 b/static/inferno/man9/choicebutton.9 new file mode 100644 index 00000000..b9702d3b --- /dev/null +++ b/static/inferno/man9/choicebutton.9 @@ -0,0 +1,148 @@ +.TH CHOICEBUTTON 9 +.SH NAME +choicebutton \- create and manipulate choicebutton widgets +.SH SYNOPSIS +\f5choicebutton\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -borderwidth -relief +-activeforeground -font -text +-anchor -foreground +-background -image +-bitmap -justify +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -command \fIcommand\fP +Specifies a Tk command to associate with the button. This command +is typically invoked when mouse button 1 is released over the button +window. The button's global variable (\f5-variable\fR option) will +be updated before the command is invoked. +.TP +.B -height \fIdist\fP +Specifies a desired height for the button. +If this option isn't specified, the button's desired height is computed +from the size of the highest item in the +.B -values +list. +.TP +.B -selectcolor \fIcolour\fP +Specifies a background colour to use when the button is selected. +If specified as an empty string, no special colour is used for +displaying when the widget is selected. +.TP +.B -values \fIlist\fP +Specifies a list of all the values the choicebutton can choose from. +.TP +.B -variable \fIstring\fP +Specifies name of global variable to set whenever this button is +selected. The variable will be set to the index of the currently +selected item. Changes in this variable also cause the button to +choose the appropriate item (provided it is an integer and within +range). +.TP +.B -width \fIdist\fP +Specifies a desired width for the button. +If this option isn't specified, the button's desired width is computed +from the size of the widest item in the +.B -values +list. +.SH DESCRIPTION +The \f5choicebutton\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a choicebutton widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the choicebutton such as its colours, font, +text, and initial relief. The \f5choicebutton\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A choicebutton is a widget that displays a textual string, +one of the items given in the +.I list +argument to the +.B -values +option. +When clicked on, the choicebutton displays a menu showing +all the available choices, allowing the user to change +the choice by selecting an item. +In the description below, an +.I index +is a zero-based index into the set of values specified with +the +.B -values +option. +.SH "WIDGET COMMAND" +The \f5choicebutton\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for choicebutton widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5choicebutton\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5choicebutton\fR +command. +.TP +\fIpathName \f5get\fR ?\fIvalue\fR? +Get the index of the first item with +.IR value . +If +.I value +is not given, get the index of the currently selected item. +.TP +\fIpathName \f5set\fR \fIindex\fR +Sets the current item to the +.IR index th +value. +.TP +\fIpathName \f5getvalue\fR ?\fIindex\fR? +Get the value of the +.IR index th +item. If +.I index +is not given, get the value of the currently selected item. +.TP +\fIpathName \f5setvalue\fR \fIvalue\fR +Set the current item to the first item having +.IR value . +If no item has that value, no change is made, +and an error is returned. +.TP +\fIpathName \f5invoke\fR \fIindex\fR +Does just what would have happened if the user invoked the choicebutton +with the mouse and selected the item at +.IR index : +sets the current item to +.I index +and runs +its associated Tk command, if there is one. +The return value is that from invoking the Tk command, or an +empty string if there is no associated command. +.TP +\fIpathName \f5valuecount\fR +Returns the number of values configured in the choicebutton. +.SH SEE ALSO +.IR button (9), +.IR checkbutton (9), +.IR options (9), +.IR radiobutton (9), +.IR types (9) diff --git a/static/inferno/man9/cursor.9 b/static/inferno/man9/cursor.9 new file mode 100644 index 00000000..0f8ae601 --- /dev/null +++ b/static/inferno/man9/cursor.9 @@ -0,0 +1,47 @@ +.TH CURSOR 9 +.SH NAME +cursor \- change the current mouse cursor +.SH SYNOPSIS +.B cursor +?\fIoptions\fP? +.SH INTRODUCTION +.B Cursor +changes the image displayed at the current mouse position. +The following options are supported: +.TP +\f5-image \fIimage\fR +.I Image +gives a name created using the +.IR image (9) +command; the image must conform to the rules +given for +.B Display.cursor +(see +.IR draw-display (2)). +.TP +\f5-bitmap \fIbitmap\fR +Similar to +.B -image +but using the +.I bitmap +syntax (see +.IR types (9)). +.TP +\f5-x \fIdist\fP +The cursor will be drawn +.I dist +to the right of the actual position of the mouse. +.TP +\f5-y \fIdist\fP +The cursor will be drawn +.I dist +below the actual position of the mouse. +.TP +.B -default +Revert the cursor to its default image. +.SH BUGS +A cursor image should have some inherent association with +its hot-spot offset. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/destroy.9 b/static/inferno/man9/destroy.9 new file mode 100644 index 00000000..caaf5f47 --- /dev/null +++ b/static/inferno/man9/destroy.9 @@ -0,0 +1,24 @@ +.TH DESTROY 9 +.SH NAME +destroy \- Destroy one or more windows +.SH SYNOPSIS +\f5destroy \fR?\fIwindow window ...\fR? + +.SH DESCRIPTION +This command deletes the windows given by the +\fIwindow\fR arguments, plus all of their descendants. +The \fIwindow\fRs are destroyed in order, and if an error occurs +in destroying a window the command aborts without destroying the +remaining windows. +.PP +The +.B Destroy +event is fired for each window destroyed, including descendants. +.PP +If the window ``.'' is specified, it is unmapped rather than destroyed +and the +.B Destroy +event is not fired on it. +However, all of its decendants are destroyed as normal. +.SH SEE ALSO +.IR bind (9) diff --git a/static/inferno/man9/entry.9 b/static/inferno/man9/entry.9 new file mode 100644 index 00000000..2913be53 --- /dev/null +++ b/static/inferno/man9/entry.9 @@ -0,0 +1,316 @@ +.TH ENTRY 9 +.SH NAME +entry \- Create and manipulate entry widgets +.SH SYNOPSIS +\f5entry\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-background -highlightcolor -selectbackground +-borderwidth -highlightthickness -selectforeground +-font -justify -takefocus +-foreground -relief -xscrollcommand +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -show \fIstring\fP +If this option is specified, then the true contents of the entry +are not displayed in the window. +Instead, each character in the entry's value will be displayed as +the first character in the value of this option, such as ``*''. +This is useful, for example, if the entry is to be used to enter +a password. +.TP +.B -state \fIstate\fP +Specifies one of two states for the entry: \f5normal\fR or \f5disabled\fR. +If the entry is disabled then the value may not be changed using widget +commands and no insertion cursor will be displayed, even if the input focus is +in the widget. +.TP +.B -width \fIdist\fP +Specifies an integer value indicating the desired width of the entry window. + +.SH DESCRIPTION +The \f5entry\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into an entry widget. +Additional options, described above, may be specified on the +command line +to configure aspects of the entry such as its colours, font, +and relief. The \f5entry\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +An entry is a widget that displays a one-line text string and +allows that string to be edited using widget commands described below, which +are typically bound to keystrokes and mouse actions. +When first created, an entry's string is empty. +A portion of the entry may be selected as described below. +Entries observe the standard Tk rules for dealing with the +input focus. When an entry has the input focus it displays an +\fIinsertion cursor\fR to indicate where new characters will be +inserted. +.PP +Entries are capable of displaying strings that are too long to +fit entirely within the widget's window. In this case, only a +portion of the string will be displayed; commands described below +may be used to change the view in the window. Entries use +the standard \f5xscrollcommand\fR mechanism for interacting with +scrollbars (see the description of the \f5xscrollcommand\fR option +for details). + +.SH "WIDGET COMMAND" +The \f5entry\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. +.PP +Many of the widget commands for entries take one or more indices as +arguments. An index specifies a particular character in the entry's +string, in any of the following ways: +.TP 12 +\fInumber\fR +Specifies the character as a numerical index, where 0 corresponds +to the first character in the string. +.TP 12 +\f5anchor\fR +Indicates the anchor point for the selection, which is set with the +\f5select from\fR and \f5select adjust\fR widget commands. +.TP 12 +\f5end\fR +Indicates the character just after the last one in the entry's string. +This is equivalent to specifying a numerical index equal to the length +of the entry's string. +.TP 12 +\f5insert\fR +Indicates the character adjacent to and immediately following the +insertion cursor. +.TP 12 +\f5sel.first\fR +Indicates the first character in the selection. It is an error to +use this form if the selection isn't in the entry window. +.TP 12 +\f5sel.last\fR +Indicates the character just after the last one in the selection. +It is an error to use this form if the selection isn't in the +entry window. +.TP 12 +\f5@\fInumber\fR +In this form, \fInumber\fR is treated as an x-coordinate in the +entry's window; the character spanning that x-coordinate is used. +For example, ``\f5@0\fR'' indicates the left-most character in the +window. +.PP +The following commands are possible for entry widgets: +.TP +\fIpathName \f5bbox \fIindex\fR +Returns a list of four numbers describing the bounding box of the +character given by \fIindex\fR. +The first two elements of the list give the x and y coordinates of +the upper-left corner of the screen area covered by the character +(in pixels relative to the widget) and the last two elements give +the width and height of the character, in pixels. +The bounding box may refer to a region outside the visible area +of the window. +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5entry\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5entry\fR +command. +.TP +\fIpathName \f5delete \fIfirst \fR?\fIlast\fR? +Delete one or more elements of the entry. +\fIFirst\fR is the index of the first character to delete, and +\fIlast\fR is the index of the character just after the last +one to delete. +If \fIlast\fR isn't specified it defaults to \fIfirst\fR+1, +i.e. a single character is deleted. +This command returns an empty string. +.TP +\fIpathName \f5get\fR +Returns the entry's string. +.TP +\fIpathName \f5icursor \fIindex\fR +Arrange for the insertion cursor to be displayed just before the character +given by \fIindex\fR. Returns an empty string. +.TP +\fIpathName \f5index\fI index\fR +Returns the numerical index corresponding to \fIindex\fR. +.TP +\fIpathName \f5insert \fIindex string\fR +Insert the characters of \fIstring\fR just before the character +indicated by \fIindex\fR. Returns an empty string. +.TP +\fIpathName \f5see \fIindex\fR +Adjusts the view in the window so that the character given by \fIindex\fR +is completely visible. +.TP +\fIpathName \f5selection \fIoption arg\fR +This command is used to adjust the selection within an entry. It +has several forms, depending on \fIoption\fR: +.RS +.TP +\fIpathName \f5selection adjust \fIindex\fR +Locate the end of the selection nearest to the character given by +\fIindex\fR, and adjust that end of the selection to be at \fIindex\fR +(i.e including but not going beyond \fIindex\fR). The other +end of the selection is made the anchor point for future +\f5select to\fR commands. If the selection +isn't currently in the entry, then a new selection is created to +include the characters between \fIindex\fR and the most recent +selection anchor point, inclusive. +Returns an empty string. +.TP +\fIpathName \f5selection clear\fR +Clear the selection if it is currently in this widget. If the +selection isn't in this widget then the command has no effect. +Returns an empty string. +.TP +\fIpathName \f5selection from \fIindex\fR +Set the selection anchor point to just before the character +given by \fIindex\fR. Doesn't change the selection. +Returns an empty string. +.TP +\fIpathName \f5selection present\fR +Returns 1 if there are characters selected in the entry, +0 if nothing is selected. +.TP +\fIpathName \f5selection range \fIstart\fR \fIend\fR +Sets the selection to include the characters starting with +the one indexed by \fIstart\fR and ending with the one just +before \fIend\fR. +If \fIend\fR refers to the same character as \fIstart\fR or an +earlier one, then the entry's selection is cleared. +.TP +\fIpathName \f5selection to \fIindex\fR +If \fIindex\fR is before the anchor point, set the selection +to the characters from \fIindex\fR up to but not including +the anchor point. +If \fIindex\fR is the same as the anchor point, do nothing. +If \fIindex\fR is after the anchor point, set the selection +to the characters from the anchor point up to but not including +\fIindex\fR. +The anchor point is determined by the most recent \f5select from\fR +or \f5select adjust\fR command in this widget. +If the selection isn't in this widget then a new selection is +created using the most recent anchor point specified for the widget. +Returns an empty string. +.RE +.TP +\fIpathName \f5xview \fIargs\fR +This command is used to query and change the horizontal position of the +text in the widget's window. It can take any of the following +forms: +.RS +.TP +\fIpathName \f5xview\fR +Returns a list containing two elements. +Each element is a real fraction between 0 and 1; together they describe +the horizontal span that is visible in the window. +For example, if the first element is .2 and the second element is .6, +20% of the entry's text is off-screen to the left, the middle 40% is visible +in the window, and 40% of the text is off-screen to the right. +These are the same values passed to scrollbars via the \f5-xscrollcommand\fR +option. +.TP +\fIpathName \f5xview\fR \fIindex\fR +Adjusts the view in the window so that the character given by \fIindex\fR +is displayed at the left edge of the window. +.TP +\fIpathName \f5xview moveto\fI fraction\fR +Adjusts the view in the window so that the character \fIfraction\fR of the +way through the text appears at the left edge of the window. +\fIFraction\fR must be a fraction between 0 and 1. +.TP +\fIpathName \f5xview scroll \fInumber what\fR +This command shifts the view in the window left or right according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts left or right by +\fInumber\fR average-width characters on the display; if it is +\f5pages\fR then the view adjusts by \fInumber\fR screenfuls. +If \fInumber\fR is negative then characters farther to the left +become visible; if it is positive then characters farther to the right +become visible. +.RE + +.SH "DEFAULT BINDINGS" +Tk automatically creates bindings for entries that give them +the following default behaviour. +In the descriptions below, ``word'' refers to a contiguous group +of letters, digits, or ``_'' characters, or any single character +other than these. +.IP [1] +Clicking mouse button 1 positions the insertion cursor +just before the character underneath the mouse cursor, sets the +input focus to this widget, and clears any selection in the widget. +Dragging with mouse button 1 strokes out a selection between +the insertion cursor and the character under the mouse. +.IP [2] +Double-clicking with mouse button 1 selects the word under the mouse +and positions the insertion cursor at the beginning of the word. +.IP [3] +If any normal printing characters are typed in an entry, the current +selection is deleted, and they are +inserted at the point of the insertion cursor +.IP [4] +The view in the entry can be adjusted by dragging with mouse button 2. +.IP [5] +The Left and Right keys move the insertion cursor one character to the +left or right; they also clear any selection in the entry and set +the selection anchor. +Control-b and Control-f behave the same as Left and Right, respectively. +.IP [6] +The Home key, or Control-a, will move the insertion cursor to the +beginning of the entry and clear any selection in the entry. +.IP [7] +The End key, or Control-e, will move the insertion cursor to the +end of the entry and clear any selection in the entry. +.IP [8] +Control-/ selects all the text in the entry. +.IP [9] +Control-\e clears any selection in the entry. +.IP [10] +The Delete key deletes the selection, if there is one in the entry. +If there is no selection, it deletes the character to the right of +the insertion cursor. +.IP [11] +The BackSpace key and Control-h delete the selection, if there is one +in the entry. +If there is no selection, it deletes the character to the left of +the insertion cursor. +.IP [12] +Control-d deletes the character to the right of the insertion cursor. +.IP [13] +Control-k deletes all the characters to the right of the insertion +cursor. +.IP [14] +Control-w deletes the word to the left of the insertion cursor. +.PP +If the entry is disabled using the \f5-state\fR option, then the entry's +view can still be adjusted and text in the entry can still be selected, +but no insertion cursor will be displayed and no text modifications will +take place. +.PP +The behaviour of entries can be changed by defining new bindings for +individual widgets. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/focus.9 b/static/inferno/man9/focus.9 new file mode 100644 index 00000000..36284864 --- /dev/null +++ b/static/inferno/man9/focus.9 @@ -0,0 +1,21 @@ +.TH FOCUS 9 +.SH NAME +focus \- change or query keyboard focus +.SH SYNOPSIS +\f5focus \fR?\fIwhat\fR? +.SH DESCRIPTION +With no arguments, \f5focus\fP returns the +name of the widget to which keyboard events +are currently delivered, known as the +.IR "keyboard focus" . +When given an argument, +\f5focus\fP changes the keyboard focus. +If \fIwhat\fP is the name of a widget, that +widget will be made the keyboard focus. +If \fIwhat\fP is \f5next\fP, the keyboard focus +will be changed to the next item in the +focus order for that window. If \fIwhat\fP is +\f5previous\fP, the keyboard focus will be +changed to the previous item in the focus order +for that window. The focus order is determined +automatically by Tk. diff --git a/static/inferno/man9/frame.9 b/static/inferno/man9/frame.9 new file mode 100644 index 00000000..fe38e8ce --- /dev/null +++ b/static/inferno/man9/frame.9 @@ -0,0 +1,79 @@ +.TH FRAME 9 +.SH NAME +frame \- Create and manipulate frame widgets +.SH SYNOPSIS +\f5frame\fI \fIpathName ?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-borderwidth -relief +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -background \fIcolour\fP +This option is the same as the standard \f5background\fR option +except that its value may also be specified as an empty string. +In this case, the widget will display no background or border, and +no colours will be consumed from its colourmap for its background +and border. +.TP +.B -height \fIdist\fP +Specifies the desired height for the window. +If this option is less than or equal to zero then the window will +not request any size at all. +.TP +.B -width \fIdist\fP +Specifies the desired width for the window. +If this option is less than or equal to zero then the window will +not request any size at all. + +.SH DESCRIPTION +The \f5frame\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a frame widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the frame such as its background colour +and relief. The \f5frame\fR command returns the +path name of the new window. +.PP +A frame is a simple widget. Its primary purpose is to act as a +spacer or container for complex window layouts. The only features +of a frame are its background colour and an optional 3-D border to make the +frame appear raised or sunken. + +.SH "WIDGET COMMAND" +The \f5frame\fR command creates a new Tk command whose +name is \fIpathName\fR.. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIPathName\fR is the name of the command, which is the same as +the frame widget's path name. \fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for frame widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5frame\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? \fI?value option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5frame\fR +command. + +.SH BINDINGS +When a new frame is created, it has no default event bindings: +frames are not intended to be interactive. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/grab.9 b/static/inferno/man9/grab.9 new file mode 100644 index 00000000..fab349fc --- /dev/null +++ b/static/inferno/man9/grab.9 @@ -0,0 +1,58 @@ +.TH GRAB 9 +.SH NAME +grab \- Confine pointer and keyboard events to a window sub-tree +.SH SYNOPSIS +\f5grab \fIwhat \fR?\fIarg arg \fR...? +.SH DESCRIPTION +This command implements simple pointer grabbing for Tk. +When a grab is set for a particular window, Tk restricts all pointer +events to the grab window and its descendants in Tk's window hierarchy. +Whenever the pointer is within the grab window's subtree, the pointer +will behave exactly the same as if there had been no grab at all +and all events will be reported in the normal fashion. +When the pointer is outside \fIwindow\fR's tree, button presses and +releases and +mouse motion events are reported to \fIwindow\fR, and window entry +and window exit events are ignored. +The grab subtree ``owns'' the pointer: +windows outside the grab subtree will be visible on the screen +but they will be insensitive until the grab is released. +The tree of windows underneath the grab window can include top-level +windows, in which case all of those top-level windows +and their descendants will continue to receive mouse events +during the grab. +.PP +A grab locks out all applications on the screen, +so that only the given subtree of the grabbing application will be +sensitive to pointer events (mouse button presses, mouse button releases, +pointer motions, window entries, and window exits). +During grabs the window manager will not receive pointer +events either (which means that if the grab is not released +the whole GUI will freeze, so be careful!). +.PP +The \f5grab\fR command can take any of the following forms: +.TP +\f5grab release \fIwindow\fR +Releases the grab on \fIwindow\fR if there is one, otherwise does +nothing. Returns an empty string. +.TP +\f5grab set \fIwindow\fR +If a grab was already in effect for this application on +\fIwindow\fR's display then it is automatically released. +If there is already a grab on \fIwindow\fR then the command +does nothing. Returns an empty string. +.TP +\f5grab ifunset \fIwindow\fR +Same as +.B grab set +except that \fIwindow\fR is only grabbed if there is no +other grab currently in effect. +.TP +\f5grab status \fIwindow\fR +Returns \f5none\fR if no grab is currently set on \fIwindow\fR, +or +\fIwindow\fR if it has the grab. +.SH BUGS +The current application-exclusive nature of +.B grab +is a problem which will be adressed in the future. diff --git a/static/inferno/man9/grid.9 b/static/inferno/man9/grid.9 new file mode 100644 index 00000000..95b84204 --- /dev/null +++ b/static/inferno/man9/grid.9 @@ -0,0 +1,332 @@ +.TH GRID 9 +'\" Note: do not modify the .SH NAME line immediately below! +.SH NAME +grid \- Geometry manager that arranges widgets in a grid +.SH SYNOPSIS +\f5grid \fIoption arg \fR?\fIarg ...\fR? + +.SH DESCRIPTION +.PP +The \f5grid\fR command is used to communicate with the grid +geometry manager that arranges widgets in rows and columns inside +of another window, called the geometry master (or master window). +The \f5grid\fR command can have any of several forms, depending +on the \fIoption\fR argument: +.TP +\f5grid bbox \fImaster\fR ?\fIcolumn row\fR? ?\fIcolumn2 row2\fR? +With no arguments, +the bounding box (in pixels) of the grid is returned. +The return value consists of 4 integers. The first two are the pixel +offset from the master window (x then y) of the top-left corner of the +grid, and the second two integers are the bottom-right corner of the grid, +also in pixels. If a single \fIcolumn\fP and \fIrow\fP is specified on +the command line, then the bounding box for that cell is returned, where the +top left cell is numbered from zero. If both \fIcolumn\fP and \fIrow\fP +arguments are specified, then the bounding box spanning the rows and columns +indicated is returned. +.TP +\f5grid cellinfo \fImaster column row\fR +Returns a list giving information about the slave +currently held in the grid cell specified by +\fIcolumn\fP and \fIrow\fP. +The first element of the list is the name of the slave, +and the rest have the same option-value form that +might be specified to \f5grid configure\fR +(the same form as returned by \f5grid info\fR). +.TP +\f5grid columnconfigure \fImaster index \fR?\fI-option value...\fR? +Set the column properties of the \fIindex\fP column of the +geometry master, \fImaster\fP. +The valid options are \f5-minsize\fP, \f5-weight\fP, \f5-pad\fP and \f5-name\fP. +If one or more options are provided, then \fIindex\fP may be given as +a list of column indices to which the configuration options will operate on. +The \f5-minsize\fP option sets the minimum size, in screen units, +that will be permitted for this column. +The \f5-weight\fP option (an integer value) +sets the relative weight for apportioning +any extra spaces among +columns. +A weight of zero (0) indicates the column will not deviate from its requested +size. A column whose weight is two will grow at twice the rate as a column +of weight one when extra space is allocated to the layout. +The \f5-pad\fP option specifies a pad distance that will be +added either side of the column; adjacent columns merge their padding, +creating a pad sized to the larger of the pads on either column. +The \f5-name\fP option associates a name with the column, which can +then be used as an index to refer to that column. +.TP +\f5grid \fIslave \fR?\fIslave ...\fR? ?\fIoptions\fR? +The arguments consist of the names of one or more slave windows +followed by pairs of arguments that specify how +to manage the slaves. +The characters \f5-\fP, \f5x\fP and \f5^\fP, +can be specified instead of a window name to alter the default +location of a \fIslave\fP, as described in the ``RELATIVE PLACEMENT'' +section, below. +The following options are supported: +.RS +.TP +\f5-column \fIindex\fR +Insert the slave so that it occupies the \fIindex\fPth column in the grid. +Column numbers start with 0. If this option is not supplied, then the +slave is arranged just to the right of previous slave specified on this +call to \fIgrid\fP, or column "0" if it is the first slave. For each +\f5x\fP that immediately precedes the \fIslave\fP, the column position +is incremented by one. Thus the \f5x\fP represents a blank column +for this row in the grid. +.TP +\f5-columnspan \fIn\fR +Insert the slave so that it occupies \fIn\fP columns in the grid. +The default is one column, unless the window name is followed by a +\f5-\fP, in which case the columnspan is incremented once for each immediately +following \f5-\fP. +.TP +\f5-in \fIother\fR +Insert the slave(s) in the master +window given by \fIother\fR. The default is the first slave's +parent window. +.TP +\f5-ipadx \fIamount\fR +The \fIamount\fR specifies how much horizontal internal padding to +leave on each side of the slave(s). This is space is added +inside the slave(s) border. +The \fIamount\fR must be a valid screen distance, such as \f52\fR or \f5.5c\fR. +It defaults to 0. +.TP +\f5-ipady \fIamount\fR +The \fIamount\fR specifies how much vertical internal padding to +leave on on the top and bottom of the slave(s). +This space is added inside the slave(s) border. +The \fIamount\fR defaults to 0. +.TP +\f5-padx \fIamount\fR +The \fIamount\fR specifies how much horizontal external padding to +leave on each side of the slave(s), in screen units. +The \fIamount\fR defaults to 0. +This space is added outside the slave(s) border. +.TP +\f5-pady \fIamount\fR +The \fIamount\fR specifies how much vertical external padding to +leave on the top and bottom of the slave(s), in screen units. +The \fIamount\fR defaults to 0. +This space is added outside the slave(s) border. +.TP +\f5-row \fIindex\fR +Insert the slave so that it occupies the \fIindex\fPth row in the grid. +Row numbers start with 0. If this option is not supplied, then the +slave is arranged on the same row as the previous slave specified on this +call to \f5grid\fP, or the first unoccupied row if this is the first slave. +.TP +\f5-rowspan \fIn\fR +Insert the slave so that it occupies \fIn\fP rows in the grid. +The default is one row. If the next \f5grid\fP command contains +\f5^\fP characters instead of \fIslaves\fP that line up with the columns +of this \fIslave\fP, then the \f5rowspan\fP of this \fIslave\fP is +extended by one. +.TP +\f5-sticky \fIstyle\fR +If a slave's cell is larger than its requested dimensions, this +option may be used to position (or stretch) the slave within its cell. +\fIStyle\fR is a string that contains zero or more of the characters +\f5n\fP, \f5s\fP, \f5e\fP or \f5w\fP. +The string can optionally contains spaces or +commas, but they are ignored. Each letter refers to a side (north, south, +east, or west) that the slave will "stick" to. If both \f5n\fP and \f5s\fP (or +\f5e\fP and \f5w\fP) are specified, the slave will be stretched to fill the entire +height (or width) of its cavity. The \f5sticky\fP option subsumes the +combination of \f5-anchor\fP and \f5-fill\fP that is used by \f5pack\fP. +The default is \f5{}\fP, which causes the slave to be centered in its cavity, +at its requested size. +.LP +If any of the slaves are already managed by the geometry manager +then any unspecified options for them retain their previous values rather +than receiving default values. +.LP +It is an error if any \fIslave\fP covers an area already covered by an +existing slave of the grid. +.RE +.TP +\f5grid columndelete \fImaster index0 \fR?\fIindex1\fR? +Deletes columns from \fIindex0\fP up to but not including \fIindex1\fP, +If \fIindex1\fP is not given, it defaults to \fIindex0\fP+1. +The deleted columns may not contain cells spanned by +slaves outside the deleted columns. +.TP +\f5grid columnindex \fImaster index\fP +Returns \fIindex\fP as a numerical index into the column. +.TP +\f5grid columninsert \fImaster index \fR?\fIcount\fR? +Inserts \fIcount\fP (default 1) new columns just before \fIindex\fP. +The inserted rows may not split a spanning cell. +.TP +\f5grid forget \fIslave \fR?\fIslave ...\fR? +Removes each of the \fIslave\fRs from grid for its +master and unmaps their windows. +The slaves will no longer be managed by the grid geometry manager. +The configuration options for that window are forgotten, so that if the +slave is managed once more by the grid geometry manager, the initial +default settings are used. +.TP +\f5grid info \fIslave\fR +Returns a list whose elements are the current configuration state of +the slave given by \fIslave\fR in the same option-value form that +might be specified to \f5grid configure\fR. +The first two elements of the list are ``\f5-in \fImaster\fR'' where +\fImaster\fR is the slave's master. +.TP +\f5grid location \fImaster x y\fR +Given \fIx\fP and \fIy\fP values in screen units relative to the master window, +the column and row number at that \fIx\fP and \fIy\fP location is returned. +For locations that are above or to the left of the grid, \f5-1\fP is returned. +.TP +\f5grid propagate \fImaster\fR ?\fIboolean\fR? +If \fIboolean\fR has a true boolean value such as \f51\fR or \f5on\fR +then propagation is enabled for \fImaster\fR, which must be a window +name (see ``GEOMETRY PROPAGATION'' below). +If \fIboolean\fR has a false boolean value then propagation is +disabled for \fImaster\fR. +In either of these cases an empty string is returned. +If \fIboolean\fR is omitted then the command returns \f50\fR or +\f51\fR to indicate whether propagation is currently enabled +for \fImaster\fR. +Propagation is enabled by default. +.TP +\f5grid rowconfigure \fImaster index \fR?\fI-option value...\fR? +Set the row properties of the \fIindex\fP row of the +geometry master, \fImaster\fP. +The valid options are \f5-minsize\fP, \f5-weight\fP, \f5-pad\fP and \f5-name\fP. +If one or more options are provided, then \fIindex\fP may be given as +a list of row indices to which the configuration options will operate on. +The \f5-minsize\fP option sets the minimum size, in screen units, +that will be permitted for this row. +The \f5-weight\fP option (an integer value) +sets the relative weight for apportioning +any extra spaces among +rows. +A weight of zero (0) indicates the row will not deviate from its requested +size. A row whose weight is two will grow at twice the rate as a row +of weight one when extra space is allocated to the layout. +The \f5-pad\fP option specifies a pad distance that will be +added either side of the row; adjacent rows merge their padding, +creating a pad sized to the larger of the pads on either row. +The \f5-name\fP option associates a name with the row, which can +then be used as an index to refer to that row. +.TP +\f5grid rowdelete \fImaster index0 \fR?\fIindex1\fR? +Deletes rows from \fIindex0\fP up to but not including \fIindex1\fP, +If \fIindex1\fP is not given, it defaults to \fIindex0\fP+1. +The deleted rows may not contain cells spanned by +slaves outside the deleted columns. +.TP +\f5grid rowindex \fImaster index\fP +Returns \fIindex\fP as a numerical index into the row. +.TP +\f5grid rowinsert \fImaster index \fR?\fIcount\fR? +Inserts \fIcount\fP (default 1) new rows just before \fIindex\fP. +The inserted rows may not split a spanning cell. +.TP +\f5grid size \fImaster\fR +Returns the size of the grid (in columns then rows) for \fImaster\fP. +The size is determined either by the largest row or column that has +been occupied by a slave, or the largest column or row that has been explicitly +configured. +.TP +\f5grid slaves \fImaster\fR ?\fI-option value\fR? +If no options are supplied, a list of all of the slaves in \fImaster\fR +are returned, most recently manages first. +\fIOption\fP can be either \f5-row\fP or \f5-column\fP which +causes only the slaves in the row (or column) specified by \fIvalue\fP +to be returned. +.SS INDICES +.PP +An index is either a non-negative integer value, the string +\f5end\fP, (one beyond the last index in the row or column in question), +or a name identifying a row or column previously named with +the \f5-name\fP option to \f5rowconfigure\fP or \f5columnconfigure\fP. +.SS "RELATIVE PLACEMENT" +.PP +The \f5grid\fP command contains a limited set of capabilities that +permit layouts to be created without specifying the row and column +information for each slave. This permits slaves to be rearranged, +added, or removed without the need to explicitly specify row and +column information. +When no column or row information is specified for a \fIslave\fP, +default values are chosen for +\f5column\fP, \f5row\fP, \f5columnspan\fP and \f5rowspan\fP +at the time the \fIslave\fP is managed. The values are chosen +based upon the current layout of the grid, the position of the \fIslave\fP +relative to other \fIslave\fPs in the same grid command, and the presence +of the characters \f5-\fP, \f5^\fP, and \f5^\fP in \f5grid\fP +command where \fIslave\fP names are normally expected. +.RS +.TP +\f5-\fP +This increases the columnspan of the \fIslave\fP to the left. Several +\f5-\fP's in a row will successively increase the columnspan. A \f5-\fP +may not follow a \f5^\fP or a \f5x\fP. +.TP +\f5x\fP +This leaves an empty column between the \fIslave\fP on the left and +the \fIslave\fP on the right. +.TP +\f5^\fP +This extends the \f5rowspan\fP of the \fIslave\fP above the \f5^\fP's +in the grid. The number of \f5^\fP's in a row must match the number of +columns spanned by the \fIslave\fP above it. +.RE +.SS "THE GRID ALGORITHM" +.PP +The grid geometry manager lays out its slaves in three steps. +In the first step, the minimum size needed to fit all of the slaves +is computed, then (if propagation is turned on), a request is made +of the master window to become that size. +In the second step, the requested size is compared against the actual size +of the master. If the sizes are different, then spaces is added to or taken +away from the layout as needed. +For the final step, each slave is positioned in its row(s) and column(s) +based on the setting of its \fIsticky\fP flag. +.PP +To compute the minimum size of a layout, the grid geometry manager +first looks at all slaves whose columnspan and rowspan values are one, +and computes the nominal size of each row or column to be either the +\fIminsize\fP for that row or column, or the sum of the \fIpad\fPding +plus the size of the largest slave, whichever is greater. Then the +slaves whose rowspans or columnspans are greater than one are +examined. If a group of rows or columns need to be increased in size +in order to accommodate these slaves, then extra space is added to each +row or column in the group according to its \fIweight\fP. For each +group whose weights are all zero, the additional space is apportioned +equally. +.PP +For masters whose size is larger than the requested layout, the additional +space is apportioned according to the row and column weights. If all of +the weights are zero, the layout is centered within its master. +For masters whose size is smaller than the requested layout, space is taken +away from columns and rows according to their weights. However, once a +column or row shrinks to its minsize, its weight is taken to be zero. +If more space needs to be removed from a layout than would be permitted, as +when all the rows or columns are at their minimum sizes, the layout is +clipped on the bottom and right. +.SS "GEOMETRY PROPAGATION" +.PP +The grid geometry manager normally computes how large a master must be to +just exactly meet the needs of its slaves, and it sets the +requested width and height of the master to these dimensions. +This causes geometry information to propagate up through a +window hierarchy to a top-level window so that the entire +sub-tree sizes itself to fit the needs of the leaf windows. +However, the \f5grid propagate\fR command may be used to +turn off propagation for one or more masters. +If propagation is disabled then grid will not set +the requested width and height of the master window. +This may be useful if, for example, you wish for a master +window to have a fixed size that you specify. +.SS CREDITS +.PP +The \f5grid\fP command is based on ideas taken from the \fIGridBag\fP +geometry manager written by Doug. Stein, and the \f5blt_table\fR geometry +manager, written by George Howlett. +.SH "SEE ALSO" +.IR pack (9), +.IR types (9), +.IR options (9) diff --git a/static/inferno/man9/image.9 b/static/inferno/man9/image.9 new file mode 100644 index 00000000..d6603606 --- /dev/null +++ b/static/inferno/man9/image.9 @@ -0,0 +1,75 @@ +.TH IMAGE 9 +.SH NAME +image \- Create and manipulate images +.SH SYNOPSIS +\f5image\fR \fIoption \fR?\fIarg arg ...\fR? +.SH DESCRIPTION +The \f5image\fR command is used to create, delete, and query images. +It can take several different forms, depending on the +\fIoption\fR argument. The legal forms are: +.TP +\f5image create bitmap \fR?\fIname\fR? ?\fIoption value ...\fR? +Creates a new image and returns its name. +\fIname\fR specifies the name for the image; if it is omitted then +Tk picks a name of the form \f5image\fIx\fR, where \fIx\fR is +an integer. +The following options are supported: +.RS +.TP +\f5-file \fIname\fR +\fIname\fR gives the name of a file whose contents define the +source bitmap. +The file must be in +.IR image (6) +format. +.TP +\f5-maskfile \fIname\fR +\fIname\fR gives the name of a file whose contents define the +mask. The file must be in +.IR image (6) +format. +.RE +.PP +If an image already exists by the given name then it is replaced +with the new image. +.PP +Transparency effects can be achieved by either the source image including an alpha channel +or by specifying a mask image. +If a mask is specified then the resultant image is generated by rendering the source +through the mask onto a transparent destination image. +.PP +The following commands are posible for images: +.TP +\f5image delete \fR?\fIname name\fR ...? +Deletes each of the named images and returns an empty string. +Each image name is invalidated. +If there are instances of the images displayed in widgets, +the images won't actually be deleted until all of the instances +are released. +.TP +\f5image height \fIname\fR +Returns a decimal string giving the height of image \fIname\fR +in pixels. +.TP +\f5image names\fR +Returns a list containing the names of all existing images. +.TP +\f5image type \fIname\fR +Returns ``bitmap'' if +.I name +is an existing image, or an error otherwise. +.TP +\f5image width \fIname\fR +Returns a decimal string giving the width of image \fIname\fR +in pixels. +.SH BUGS +When an image is reconfigured the widgets that refer to it +will continue to render the original image until their +.B -image +option is reconfigured. +.SH SEE ALSO +.IR options (9), +.IR types (9), +.B imageput +in +.IR tk (2), diff --git a/static/inferno/man9/label.9 b/static/inferno/man9/label.9 new file mode 100644 index 00000000..f837d8e9 --- /dev/null +++ b/static/inferno/man9/label.9 @@ -0,0 +1,79 @@ +.TH LABEL 9 +.SH NAME +label \- Create and manipulate label widgets +.SH SYNOPSIS +\f5label\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-anchor -font -justify +-background -foreground -relief +-bitmap -highlightcolor -takefocus +-borderwidth -highlightthickness -text +-disabledcolor -image -underline +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -height \fIdist\fP +Specifies a desired height for the label. +If this option isn't specified, the label's desired height is computed +from the size of the image or bitmap or text being displayed in it. +.TP +.B -width \fIdist\fP +Specifies a desired width for the label. +If this option isn't specified, the label's desired width is computed +from the size of the image or bitmap or text being displayed in it. + +.SH DESCRIPTION +The \f5label\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a label widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the label such as its colours, font, +text, and initial relief. The \f5label\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A label is a widget that displays a textual string, bitmap or image. +If text is displayed, it must all be in a single font, but it +can occupy multiple lines on the screen (if it contains newlines) and +one of the characters may optionally be underlined using the +\f5underline\fR option. +The label can be manipulated in a few simple ways, such as +changing its relief or text, using the commands described below. + +.SH "WIDGET COMMAND" +The \f5label\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for label widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5label\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5label\fR +command. + +.SH BINDINGS +When a new label is created, it has no default event bindings: +labels are not intended to be interactive. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/listbox.9 b/static/inferno/man9/listbox.9 new file mode 100644 index 00000000..5c1e1b30 --- /dev/null +++ b/static/inferno/man9/listbox.9 @@ -0,0 +1,304 @@ +.TH LISTBOX 9 +.SH NAME +listbox \- Create and manipulate listbox widgets +.SH SYNOPSIS +\f5listbox\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-background -highlightcolor -selectforeground +-borderwidth -highlightthickness -takefocus +-font -relief -width +-foreground -selectbackground -xscrollcommand +-height -selectborderwidth -yscrollcommand +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -height \fIdist\fP +Specifies the desired height for the window. +.TP +.B -selectmode \fIval\fP +Specifies one of several styles for manipulating the selection. +The value of the option may be arbitrary, but the default bindings +expect it to be either \f5single\fR, \f5browse\fR, \f5multiple\fR, +or \f5extended\fR; the default value is \f5single\fR. +.TP +.B -width \fIdist\fP +Specifies the desired width for the window. +.SH DESCRIPTION +The \f5listbox\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a listbox widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the listbox such as its colours, font, +text, and relief. The \f5listbox\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A listbox is a widget that displays a list of strings, one per line. +When first created, a new listbox has no elements. +Elements may be added or deleted using widget commands described +below. In addition, one or more elements may be selected as described +below. +.PP +It is not necessary for all the elements to be +displayed in the listbox window at once; commands described below +may be used to change the view in the window. Listboxes allow +scrolling in both directions using the standard \f5-xscrollcommand\fR +and \f5-yscrollcommand\fR options. +.SH INDICES +Many of the widget commands for listboxes take one or more indices +as arguments. +An index specifies a particular element of the listbox, in any of +the following ways: +.TP 12 +\fInumber\fR +Specifies the element as a numerical index, where 0 corresponds +to the first element in the listbox. +.TP 12 +\f5active\fR +Indicates the element that has the location cursor. This element +will be displayed with a highlight rectangle when the listbox has the +keyboard focus, and it is specified with the \f5activate\fR +widget command. +.TP 12 +\f5anchor\fR +Indicates the anchor point for the selection, which is set with the +\f5selection anchor\fR widget command. +.TP 12 +\f5end\fR +Indicates the end of the listbox. +For some commands this means just after the last element; +for other commands it means the last element. +.TP 12 +\f5@\fIx\f5,\fIy\fR +Indicates the element that covers the point in the listbox window +specified by \fIx\fR and \fIy\fR (in pixel coordinates). If no +element covers that point, then the closest element to that +point is used. +.LP +In the widget command descriptions below, arguments named \fIindex\fR, +\fIfirst\fR, and \fIlast\fR always contain text indices in one of +the above forms. + +.SH "WIDGET COMMAND" +The \f5listbox\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for listbox widgets: +.TP +\fIpathName \f5activate\fR \fIindex\fR +Sets the active element to the one indicated by \fIindex\fR. +The active element is drawn with an underline when the widget +has the input focus, and its index may be retrieved with the +index \f5active\fR. +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5listbox\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5listbox\fR +command. +.TP +\fIpathName \f5curselection\fR +Returns a list containing the numerical indices of +all of the elements in the listbox that are currently selected. +If there are no elements selected in the listbox then an empty +string is returned. +.TP +\fIpathName \f5delete \fIfirst \fR?\fIlast\fR? +Deletes one or more elements of the listbox. \fIFirst\fR and \fIlast\fR +are indices specifying the first and last elements in the range +to delete. If \fIlast\fR isn't specified it defaults to +\fIfirst\fR, i.e. a single element is deleted. +.TP +\fIpathName \f5get \fIfirst\fR ?\fIlast\fR? +If \fIlast\fR is omitted, returns the contents of the listbox +element indicated by \fIfirst\fR. +If \fIlast\fR is specified, the command returns a list whose elements +are all of the listbox elements between \fIfirst\fR and \fIlast\fR, +inclusive. +Both \fIfirst\fR and \fIlast\fR may have any of the standard +forms for indices. +.TP +\fIpathName \f5index \fIindex\fR +Returns a decimal string giving the integer index value that +corresponds to \fIindex\fR. +.TP +\fIpathName \f5insert \fIindex \fR?\fIelement element ...\fR? +Inserts zero or more new elements in the list just before the +element given by \fIindex\fR. If \fIindex\fR is specified as +\f5end\fR then the new elements are added to the end of the +list. Returns an empty string. +.TP +\fIpathName \f5nearest \fIy\fR +Given a y-coordinate within the listbox window, this command returns +the index of the (visible) listbox element nearest to that y-coordinate. +.TP +\fIpathName \f5see \fIindex\fR +Adjust the view in the listbox so that the element given by \fIindex\fR +is visible. +If the element is already visible then the command has no effect; +if the element is near one edge of the window then the listbox +scrolls to bring the element into view at the edge; otherwise +the listbox scrolls to center the element. +.TP +\fIpathName \f5selection \fIoption arg\fR +This command is used to adjust the selection within a listbox. It +has several forms, depending on \fIoption\fR: +.RS +.TP +\fIpathName \f5selection anchor \fIindex\fR +Sets the selection anchor to the element given by \fIindex\fR. +The selection anchor is the end of the selection that is fixed +while dragging out a selection with the mouse. +The index \f5anchor\fR may be used to refer to the anchor +element. +.TP +\fIpathName \f5selection clear \fIfirst \fR?\fIlast\fR? +If any of the elements between \fIfirst\fR and \fIlast\fR +(inclusive) are selected, they are deselected. +The selection state is not changed for elements outside +this range. +.TP +\fIpathName \f5selection includes \fIindex\fR +Returns 1 if the element indicated by \fIindex\fR is currently +selected, 0 if it isn't. +.TP +\fIpathName \f5selection set \fIfirst \fR?\fIlast\fR? +Selects all of the elements in the range between +\fIfirst\fR and \fIlast\fR, inclusive, without affecting +the selection state of elements outside that range. +.RE +.TP +\fIpathName \f5size\fR +Returns a decimal string indicating the total number of elements +in the listbox. +.TP +\fIpathName \f5xview \fIargs\fR +This command is used to query and change the horizontal position of the +information in the widget's window. It can take any of the following +forms: +.RS +.TP +\fIpathName \f5xview\fR +Returns a list containing two elements. +Each element is a real fraction between 0 and 1; together they describe +the horizontal span that is visible in the window. +For example, if the first element is .2 and the second element is .6, +20% of the listbox's text is off-screen to the left, the middle 40% is visible +in the window, and 40% of the text is off-screen to the right. +These are the same values passed to scrollbars via the \f5-xscrollcommand\fR +option. +.TP +\fIpathName \f5xview\fR \fIindex\fR +Adjusts the view in the window so that the character position given by +\fIindex\fR is displayed at the left edge of the window. +Character positions are defined by the width of the character \f50\fR. +.TP +\fIpathName \f5xview moveto\fI fraction\fR +Adjusts the view in the window so that \fIfraction\fR of the +total width of the listbox text is off-screen to the left. +\fIfraction\fR must be a fraction between 0 and 1. +.TP +\fIpathName \f5xview scroll \fInumber what\fR +This command shifts the view in the window left or right according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts left or right by +\fInumber\fR character units (the width of the \f50\fR character) +on the display; if it is \f5pages\fR then the view adjusts by +\fInumber\fR screenfuls. +If \fInumber\fR is negative then characters farther to the left +become visible; if it is positive then characters farther to the right +become visible. +.RE +.TP +\fIpathName \f5yview \fI?args\fR? +This command is used to query and change the vertical position of the +text in the widget's window. +It can take any of the following forms: +.RS +.TP +\fIpathName \f5yview\fR +Returns a list containing two elements, both of which are real fractions +between 0 and 1. +The first element gives the position of the listbox element at the +top of the window, relative to the listbox as a whole (0.5 means +it is halfway through the listbox, for example). +The second element gives the position of the listbox element just after +the last one in the window, relative to the listbox as a whole. +These are the same values passed to scrollbars via the \f5-yscrollcommand\fR +option. +.TP +\fIpathName \f5yview\fR \fIindex\fR +Adjusts the view in the window so that the element given by +\fIindex\fR is displayed at the top of the window. +.TP +\fIpathName \f5yview moveto\fI fraction\fR +Adjusts the view in the window so that the element given by \fIfraction\fR +appears at the top of the window. +\fIFraction\fR is a fraction between 0 and 1; 0 indicates the first +element in the listbox, 0.33 indicates the element one-third the +way through the listbox, and so on. +.TP +\fIpathName \f5yview scroll \fInumber what\fR +This command adjusts the view in the window up or down according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts up or down by +\fInumber\fR lines; if it is \f5pages\fR then +the view adjusts by \fInumber\fR screenfuls. +If \fInumber\fR is negative then earlier elements +become visible; if it is positive then later elements +become visible. +.RE +.SH "DEFAULT BINDINGS" +If the selection mode is \f5single\fR or \f5browse\fR, at most one +element can be selected in the listbox at once. +In both modes, clicking button 1 on an element selects +it and deselects any other selected item. +In \f5browse\fR mode it is also possible to drag the selection +with button 1. +.PP +If the selection mode is \f5multiple\fR or \f5extended\fR, +any number of elements may be selected at once, including discontiguous +ranges. In \f5multiple\fR mode, clicking button 1 on an element +toggles its selection state without affecting any other elements. +In \f5extended\fR mode, pressing button 1 on an element selects +it, deselects everything else, and sets the anchor to the element +under the mouse; dragging the mouse with button 1 +down extends the selection to include all the elements between +the anchor and the element under the mouse, inclusive. +.PP +Most people will probably want to use \f5browse\fR mode for +single selections and \f5extended\fR mode for multiple selections; +the other modes appear to be useful only in special situations. +.PP +The behaviour of listboxes can be changed by defining new bindings for +individual widgets. The default bindings do a grab set when button 1 is pressed +and a grab release when button 1 is released. Care must be taken when overriding +either or both of these defaults to ensure that grabbing is consistent. +.SH BUGS +At least one entry is required for the widget to indicate that it has keyboard focus. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/lower.9 b/static/inferno/man9/lower.9 new file mode 100644 index 00000000..5c066b3f --- /dev/null +++ b/static/inferno/man9/lower.9 @@ -0,0 +1,12 @@ +.TH LOWER 9 +.SH NAME +lower \- Change a window's position in the stacking order +.SH SYNOPSIS +\f5lower \fIwindow +.SH DESCRIPTION +\f5Lower\fR lowers +\fIwindow\fR so that it is below all of its siblings in the stacking +order (it will be obscured by any siblings that overlap it and +will not obscure any siblings). +.SH "SEE ALSO" +.IR raise (9) diff --git a/static/inferno/man9/menu.9 b/static/inferno/man9/menu.9 new file mode 100644 index 00000000..3a69b85d --- /dev/null +++ b/static/inferno/man9/menu.9 @@ -0,0 +1,461 @@ +.TH MENU 9 +.SH NAME +menu \- Create and manipulate menu widgets +.SH SYNOPSIS +\f5menu\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -borderwidth -foreground +-activeforeground -disabledcolor -relief +-background -font +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -postcommand \fIcommand\fP +If this option is specified then it provides a Tk command to execute +each time the menu is posted. The command is invoked by the \f5post\fR +widget command before posting the menu. +.TP +.B -selectcolor \fIcolour\fP +For menu entries that are check buttons or radio buttons, this option +specifies the colour to display in the indicator when the check button +or radio button is selected. +.SH INTRODUCTION +The \f5menu\fR command creates a new top-level window (given +by the \fIpathName\fR argument) and makes it into a menu widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the menu such as its colours and font. +The \f5menu\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A menu is a widget that displays a collection of one-line entries arranged +in a column. There exist several different types of entries, +each with different properties. Entries of different types may be +combined in a single menu. Menu entries are not the same as +entry widgets. In fact, menu entries are not even distinct widgets; +the entire menu is one widget. +.PP +Menu entries are displayed with up to three separate fields. +The main field is a label in the form of a text string, +a bitmap, or an image, controlled by the \f5-label\fR, +\f5-bitmap\fR, and \f5-image\fR options for the entry. +The second field is a marker for cascade entries, +showing that the entry will post a cascade menu. +It is displayed at the right-hand edge of the entry. +The third field is an \fIindicator\fR. The indicator is present only for +checkbutton or radiobutton entries. It indicates whether the entry +is selected or not, and is displayed to the left of the entry's +string. +.PP +In normal use, an entry becomes active (displays itself differently) +whenever the mouse pointer is over the entry. If a mouse +button is released over the entry then the entry is \fIinvoked\fR. +The effect of invocation is different for each type of entry; +these effects are described below in the sections on individual +entries. +.PP +Entries may be \fIdisabled\fR, which causes their labels +and accelerators to be displayed +with dimmer colours. +The default menu bindings will not allow +a disabled entry to be activated or invoked. +Disabled entries may be re-enabled, at which point it becomes +possible to activate and invoke them again. + +.SH "COMMAND ENTRIES" +The most common kind of menu entry is a command entry, which +behaves much like a button widget. When a command entry is +invoked, a Tk command is executed. The Tk +command is specified with the \f5-command\fR option. + +.SH "SEPARATOR ENTRIES" +A separator is an entry that is displayed as a horizontal dividing +line. A separator may not be activated or invoked, and it has +no behaviour other than its display appearance. + +.SH "CHECKBUTTON ENTRIES" +A checkbutton menu entry behaves much like a checkbutton widget. +When it is invoked it toggles back and forth between the selected +and deselected states. When the entry is selected, the value +``1'' is stored in a particular global variable (as determined by +\f5-variable\fR option for the entry); when +the entry is deselected the value ``0'' is stored in the global variable. +An indicator box is displayed to the left of the label in a checkbutton +entry. If the entry is selected then the indicator's center is displayed +in the colour given by the \f5-selectcolor\fR option for the entry; +otherwise the indicator's center is displayed in the background colour for +the menu. If a \f5-command\fR option is specified for a checkbutton +entry, then its value is evaluated as a Tk command each time the entry +is invoked; this happens after toggling the entry's +selected state. + +.SH "RADIOBUTTON ENTRIES" +A radiobutton menu entry behaves much like a radiobutton widget. +Radiobutton entries are organized in groups of which only one +entry may be selected at a time. Whenever a particular entry +becomes selected it stores a particular value into a particular +global variable (as determined by the \f5-value\fR and +\f5-variable\fR options for the entry). This action +causes any previously-selected entry in the same group +to deselect itself. +Once an entry has become selected, any change to the entry's +associated variable will cause the entry to deselect itself. +Grouping of radiobutton entries is determined by their +associated variables: if two entries have the same associated +variable then they are in the same group. +An indicator diamond is displayed to the left of the label in each +radiobutton entry. If the entry is selected then the indicator's +center is displayed in the colour given by the \f5-selectcolor\fR option +for the entry; +otherwise the indicator's center is displayed in the background colour for +the menu. If a \f5-command\fR option is specified for a radiobutton +entry, then its value is evaluated as a Tk command each time the entry +is invoked; this happens after selecting the entry. + +.SH "CASCADE ENTRIES" +A cascade entry is one with an associated menu (determined +by the \f5-menu\fR option). Cascade entries allow the construction +of cascading menus. +The \f5postcascade\fR widget command can be used to post and unpost +the associated menu just to the right of the cascade entry. +The associated menu must be a child of the menu containing +the cascade entry (this is needed in order for menu traversal to +work correctly). +.PP +A cascade entry posts its associated menu by invoking a +Tk command of the form +.RS +.EX +\fImenu\f5 post \fIx y\fR +.EE +.RE +where \fImenu\fR is the path name of the associated menu, and \fIx\fR +and \fIy\fR are the screen coordinates of the upper-right +corner of the cascade entry. +The lower-level menu is unposted by executing a Tk command with +the form +.RS +.EX +\fImenu\f5 unpost\fR +.EE +.RE +where \fImenu\fR is the name of the associated menu. +.PP +If a \f5-command\fR option is specified for a cascade entry then it is +evaluated as a Tk command whenever the entry is invoked. + +.SH "WIDGET COMMAND" +The \f5menu\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. +.PP +Many of the widget commands for a menu take as one argument an +indicator of which entry of the menu to operate on. These +indicators are called \fIindex\fRes and may be specified in +any of the following forms: +.TP 12 +\fInumber\fR +Specifies the entry numerically, where 0 corresponds +to the top-most entry of the menu, 1 to the entry below it, and +so on. +.TP 12 +\f5active\fR +Indicates the entry that is currently active. If no entry is +active then this form is equivalent to \f5none\fR. This form may +not be abbreviated. +.TP 12 +\f5end\fR +Indicates the bottommost entry in the menu. If there are no +entries in the menu then this form is equivalent to \f5none\fR. +This form may not be abbreviated. +.TP 12 +\f5none\fR +Indicates ``no entry at all''; this is used most commonly with +the \f5activate\fR option to deactivate all the entries in the +menu. In most cases the specification of \f5none\fR causes +nothing to happen in the widget command. +This form may not be abbreviated. +.TP 12 +\f5@\fInumber\fR +In this form, \fInumber\fR is treated as a y-coordinate in the +menu's window; the entry closest to that y-coordinate is used. +For example, ``\f5@0\fR'' indicates the top-most entry in the +window. +.PP +The following widget commands are possible for menu widgets: +.TP +\fIpathName \f5activate \fIindex\fR +Change the state of the entry indicated by \fIindex\fR to \f5active\fR +and redisplay it using its active colours. +Any previously-active entry is deactivated. If \fIindex\fR +is specified as \f5none\fR, or if the specified entry is +disabled, then the menu ends up with no active entry. +Returns an empty string. +.TP +\fIpathName \f5add \fItype \fR?\fIoption value option value ...\fR? +Add a new entry to the bottom of the menu. The new entry's type +is given by \fItype\fR and must be one of \f5cascade\fR, +\f5checkbutton\fR, \f5command\fR, \f5radiobutton\fR, or \f5separator\fR. +If additional arguments +are present, they specify any of the following options: +.RS +.TP +\f5-activebackground \fIvalue\fR +Specifies a background colour to use for displaying this entry when it +is active. +If this option is not specified then the +\f5activebackground\fR option for the overall menu is used. +This option is not available for separator entries. +.TP +\f5-activeforeground \fIvalue\fR +Specifies a foreground colour to use for displaying this entry when it +is active. +If this option is not specified then the +\f5activeforeground\fR option for the overall menu is used. +This option is not available for separator entries. +.TP +\f5-background \fIvalue\fR +Specifies a background colour to use for displaying this entry when it +is in the normal state (neither active nor disabled). +If this option is not specified then the +\f5background\fR option for the overall menu is used. +This option is not available for separator entries. +.TP +\f5-bitmap \fIbitmap\fR +Specifies a bitmap to display in the menu instead of a textual +label. +This option overrides the \f5-label\fR option but may be reset +to an empty string to enable a textual label to be displayed. +If a \f5-image\fR option has been specified, it overrides +\f5-bitmap\fR. +This option is not available for separator entries. +.TP +\f5-command \fIvalue\fR +Specifies a Tk command to execute when the menu entry is invoked. +Not available for separator entries. +.TP +\f5-font \fIvalue\fR +Specifies the font to use when drawing the label or accelerator +string in this entry. +If this option is not specified then +the \f5font\fR option for the overall menu is used. +This option is not available for separator entries. +.TP +\f5-foreground \fIvalue\fR +Specifies a foreground colour to use for displaying this entry when it +is in the normal state (neither active nor disabled). +If this option is not specified then the +\f5foreground\fR option for the overall menu is used. +This option is not available for separator entries. +.TP +\f5-image \fIvalue\fR +Specifies an image to display in the menu instead of a text string +or bitmap +The image must have been created by some previous invocation of +\f5image create\fR. +This option overrides the \f5-label\fR and \f5-bitmap\fR options +but may be reset to an empty string to enable a textual or +bitmap label to be displayed. +This option is not available for separator entries. +.TP +\f5-label \fIvalue\fR +Specifies a string to display as an identifying label in the menu +entry. Not available for separator entries. +.TP +\f5-menu \fIvalue\fR +Available only for cascade entries. Specifies the path name of +the submenu associated with this entry. +The submenu must be a child of the menu. +.TP +\f5-selectcolor \fIvalue\fR +Available only for checkbutton and radiobutton entries. +Specifies the colour to display in the indicator when the entry is +selected. +If this option is not specified then the \f5selectcolor\fR +option for the menu determines the indicator colour. +.TP +\f5-selectimage \fIvalue\fR +Available only for checkbutton and radiobutton entries. +Specifies an image to display in the entry (in place of +the \f5-image\fR option) when it is selected. +\fIValue\fR is the name of an image, which must have been created +by some previous invocation of \f5image create\fR. +This option is ignored unless the \f5-image\fR option has +been specified. +.TP +\f5-state \fIvalue\fR +Specifies one of three states for the entry: \f5normal\fR, \f5active\fR, +or \f5disabled\fR. In normal state the entry is displayed using the +\f5foreground\fR and \f5background\fR +colours. +The active state is typically used when the pointer is over the entry. +In active state the entry is displayed using the \f5activeforeground\fR +and \f5activebackground\fR colours. +Disabled state means that the entry +should be insensitive: the default bindings will refuse to activate +or invoke the entry. +In this state the entry is displayed according to the +\f5disabledcolor\fR and \f5background\fR colours. +This option is not available for separator entries. +.TP +\f5-underline \fIvalue\fR +Specifies the integer index of a character to underline in the entry. +This option is also queried by the default bindings and used to +implement keyboard traversal. +0 corresponds to the first character of the text displayed in the entry, +1 to the next character, and so on. +If a bitmap or image is displayed in the entry then this option is ignored. +This option is not available for separator entries. +.TP +\f5-value \fIvalue\fR +Available only for radiobutton entries. Specifies the value to +store in the entry's associated variable when the entry is selected. +If an empty string is specified, then the \f5-label\fR option +for the entry as the value to store in the variable. +.TP +\f5-variable \fIvalue\fR +Available only for checkbutton and radiobutton entries. Specifies +the name of a global value to set when the entry is selected. +For checkbutton entries the variable is also set when the entry +is deselected. For radiobutton entries, changing the variable +causes the currently-selected entry to deselect itself. +.LP +The \f5add\fR widget command returns an empty string. +.RE +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5menu\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5menu\fR +command. +.TP +\fIpathName \f5delete \fIindex1\fR ?\fIindex2\fR? +Delete all of the menu entries between \fIindex1\fR and +\fIindex2\fR inclusive. +If \fIindex2\fR is omitted then it defaults to \fIindex1\fR. +.TP +\fIpathName \f5entrycget\fR \fIindex option\fR +Returns the current value of a configuration option for +the entry given by \fIindex\fR. +\fIOption\fR may have any of the values accepted by the \f5add\fR +widget command. +.TP +\fIpathName \f5entryconfigure \fIindex \fR?\fIoptions\fR? +This command is similar to the \f5configure\fR command, except that +it applies to the options for an individual entry, whereas \f5configure\fR +applies to the options for the menu as a whole. +\fIOptions\fR may have any of the values accepted by the \f5add\fR +widget command. If \fIoptions\fR are specified, options are modified +as indicated +in the command and the command returns an empty string. +.TP +\fIpathName \f5index \fIindex\fR +Returns the numerical index corresponding to \fIindex\fR, or +\f5none\fR if \fIindex\fR was specified as \f5none\fR. +.TP +\fIpathName \f5insert \fIindex\fR \fItype \fR?\fIoption value option value ...\fR? +Same as the \f5add\fR widget command except that it inserts the new +entry just before the entry given by \fIindex\fR, instead of appending +to the end of the menu. The \fItype\fR, \fIoption\fR, and \fIvalue\fR +arguments have the same interpretation as for the \f5add\fR widget +command. +.TP +\fIpathName \f5invoke \fIindex\fR +Invoke the action of the menu entry. See the sections on the +individual entries above for details on what happens. If the +menu entry is disabled then nothing happens. If the +entry has a command associated with it then the result of that +command is returned as the result of the \f5invoke\fR widget +command. Otherwise the result is an empty string. Note: invoking +a menu entry does not automatically unpost the menu; the default +bindings normally take care of this before invoking the \f5invoke\fR +widget command. +.TP +\fIpathName \f5post \fIx y\fR +Arrange for the menu to be displayed on the screen at the screen +coordinates given by \fIx\fR and \fIy\fR. These coordinates are +adjusted if necessary to guarantee that the entire menu is visible on +the screen. This command normally returns an empty string. +If the \f5postcommand\fR option has been specified, then its value is +executed as a Tk script before posting the menu and the result of +that script is returned as the result of the \f5post\fR widget +command. +If an error returns while executing the command, then the error is +returned without posting the menu. +.TP +\fIpathName \f5postcascade \fIindex\fR +Posts the submenu associated with the cascade entry given by +\fIindex\fR, and unposts any previously posted submenu. +If \fIindex\fR doesn't correspond to a cascade entry, +or if \fIpathName\fR isn't posted, +the command has no effect except to unpost any currently posted +submenu. +.TP +\fIpathName \f5type \fIindex\fR +Returns the type of the menu entry given by \fIindex\fR. +This is the \fItype\fR argument passed to the \f5add\fR widget +command when the entry was created, such as \f5command\fR +or \f5separator\fR. +.TP +\fIpathName \f5unpost\fR +Unmap the window so that it is no longer displayed. If a +lower-level cascaded menu is posted, unpost that menu. Returns an +empty string. +.TP +\fIpathName \f5yposition \fIindex\fR +Returns a decimal string giving the y-coordinate within the menu +window of the topmost pixel in the entry specified by \fIindex\fR. + +.SH "DEFAULT BINDINGS" +Tk automatically creates bindings for menus that give them +the following default behaviour: +.IP [1] +When the mouse enters a menu, the entry underneath the mouse +cursor activates; as the mouse moves around the menu, the active +entry changes to track the mouse. +.IP [2] +When the mouse leaves a menu all of the entries in the menu +deactivate, except in the special case where the mouse moves from +a menu to a cascaded submenu. +.IP [3] +When a button is released over a menu, the active entry (if any) is invoked. +The menu also unposts unless it is a torn-off menu. +.IP [4] +If any of the entries in a menu have letters underlined with +with \f5-underline\fR option, then pressing one of the underlined +letters (or its upper-case or lower-case equivalent) invokes that +entry and unposts the menu. +.PP +Disabled menu entries are non-responsive: they don't activate and +they ignore mouse button presses and releases. +.PP +The behaviour of menus can be changed by defining new bindings for +individual widgets. +.SH BUGS +The first time any colour option of an entry is configured, +all of the menu colour option values are captured and set in the entry. +Any subsequent changes to the menu's colour options +will not be reflected in the entry. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/menubutton.9 b/static/inferno/man9/menubutton.9 new file mode 100644 index 00000000..e3683563 --- /dev/null +++ b/static/inferno/man9/menubutton.9 @@ -0,0 +1,134 @@ +.TH MENUBUTTON 9 +.SH NAME +menubutton \- Create and manipulate menubutton widgets +.SH SYNOPSIS +\f5menubutton\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -disabledcolor -justify +-activeforeground -font -relief +-anchor -foreground -takefocus +-background -highlightcolor -text +-bitmap -highlightthickness -underline +-borderwidth -image +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.BI -height \ state +Specifies a desired height for the menubutton. +If this option is not specified, the menubutton's desired height is computed +from the size of the image or bitmap or text being displayed in it. +.TP +.BI -menu \ widgetname +Specifies the path name of the menu associated with this menubutton. +The menu must be a child of the menubutton. +.TP +.BI -state \ state +Specifies one of three states for the menubutton: \f5normal\fR, \f5active\fR, +or \f5disabled\fR. In normal state the menubutton is displayed using the +\f5foreground\fR and \f5background\fR options. The active state is +typically used when the pointer is over the menubutton. In active state +the menubutton is displayed using the \f5activeforeground\fR and +\f5activebackground\fR options. Disabled state means that the menubutton +should be insensitive: the default bindings will refuse to activate +the widget and will ignore mouse button presses. +In this state the \f5disabledcolor\fR and +\f5background\fR options determine how the button is displayed. +.TP +.BI -width \ dist +Specifies a desired width for the menubutton. +If this option is not specified, the menubutton's desired width is computed +from the size of the image or bitmap or text being displayed in it. +.SH INTRODUCTION +.PP +The \f5menubutton\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a menubutton widget. +Additional +options, described above, may be specified to configure aspects of the +menubutton such as its colors, font, text, and initial relief. +The \f5menubutton\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A menubutton is a widget that displays a textual string, bitmap, or image +and is associated with a menu widget. +If text is displayed, it must all be in a single font, but it +can occupy multiple lines on the screen (if it contains newlines) and +one of the characters may optionally be underlined using the +\f5underline\fR option. +In normal usage, pressing +mouse button 1 over the menubutton causes the associated menu to +be posted just underneath the menubutton. +If the mouse button is released over the menubutton then the menu +remains posted; clicking on the menubutton again unposts the menu. +Releasing the mouse button over a menu entry invokes the entry, while +releasing mouse button elsewhere unposts the menu. +.PP +Menubuttons are typically organized into groups called menu bars +that allow scanning: +if the mouse button is pressed over one menubutton (causing it +to post its menu) and the mouse is moved over another menubutton +without releasing the mouse button, then the +menu of the first menubutton is unposted and the menu of the +new menubutton is posted instead. +.SH "WIDGET COMMAND" +.PP +The \f5menubutton\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for menubutton widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5menubutton\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. +If one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5menubutton\fR +command. +.SH "DEFAULT BINDINGS" +Tk automatically creates class bindings for menubuttons that give them +the following default behaviour: +.IP [1] +A menubutton activates whenever the mouse passes over it and deactivates +whenever the mouse leaves it. +.IP [2] +Pressing mouse button 1 over a menubutton posts the menu specified by the +.B -menu +option. +If the menu is already posted then it is unposted. +.IP [3] +Releasing mouse button 1 over the menubutton leaves the menu posted. +Releasing the button over a menu entry, if the menu is posted, invokes that entry. +Releaseing the button anywhere else unposts the menu. +.IP [4] +When a menubutton is posted, its associated menu claims the input +focus to allow keyboard traversal of the menu and its submenus. +See the +.IR menu (9) +manual entry for details on these bindings. +.PP +If the menubutton's state is \f5disabled\fR then none of the above +actions occur: the menubutton is completely non-responsive. +.PP +The behaviour of menubuttons can be changed by defining new bindings for +individual widgets or by redefining the class bindings. +.SH SEE ALSO +.IR menu (9), +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/options.9 b/static/inferno/man9/options.9 new file mode 100644 index 00000000..47abfb41 --- /dev/null +++ b/static/inferno/man9/options.9 @@ -0,0 +1,244 @@ +.TH OPTIONS 9 +.SH NAME +options \- Standard options supported by widgets +.SH DESCRIPTION +This manual entry describes the common configuration options supported +by widgets in the Tk toolkit. Every widget does not necessarily support +every option (see the manual entries for individual widgets for a list +of the standard options supported by that widget), but if a widget does +support an option with one of the names listed below, then the option +has exactly the effect described below. +For a description of kinds of values that can passed to the various +options, see +.IR types (9). +.PP +In the descriptions below, the name refers to the +switch used in class commands and \f5configure\fR widget commands to +set this value. For example, if an option's command-line switch is set to +\f5-foreground\fR and there exists a widget \f5.a.b.c\fR, then the +command +.RS +.EX +\&.a.b.c configure -foreground black +.EE +.RE +may be used to specify the value \f5black\fR for the option in the +the widget \f5.a.b.c\fR. +.TP +.BI -activebackground " colour" +Specifies background colour to use when drawing active elements. +An element (a widget or portion of a widget) is active if the +mouse cursor is positioned over the element and pressing a mouse button +will cause some action to occur. +.TP +.BI -activeforeground " colour" +Specifies foreground colour to use when drawing active elements. +See above for definition of active elements. +.TP +.BI -actx +Returns the current x position of the widget in screen coordinates. +.TP +.BI -acty +Returns the current y position of the widget in screen coordinates. +.TP +.BI -actwidth +Returns the current allocated width of the widget. +.TP +.BI -actheight +Returns the current allocated height of the widget. +.TP +.BI -anchor " val" +Specifies how the information in a widget (e.g. text or a bitmap) +is to be displayed in the widget. +.I Val +must be one of the values \f5n\fR, \f5ne\fR, \f5e\fR, \f5se\fR, +\f5s\fR, \f5sw\fR, \f5w\fR, \f5nw\fR, or \f5center\fR. +For example, \f5nw\fR means display the information such that its +top-left corner is at the top-left corner of the widget. +.TP +.B -background \fIcolour\fP \fRor\fP -bg \fIcolour\fP +Specifies the normal background colour to use when displaying the +widget. +.TP +.BI -bitmap " bitmap" +Specifies a bitmap to display in the widget. +The exact way in which the bitmap is displayed may be affected by +other options such as \f5anchor\fR or \f5justify\fR. +Typically, if this option is specified then it overrides other +options that specify a textual value to display in the widget; +the \f5bitmap\fR option may be reset to an empty string to re-enable +a text display. +In widgets that support both \f5bitmap\fR and \f5image\fR options, +\f5image\fR will usually override \f5bitmap\fR. +For those widgets that support the \f5foreground\fR option, if the bitmap is +monochrome it is displayed using the foreground colour. +.TP +.B -borderwidth \fIdist\fP \fRor\fP -bd \fIdist\fP +Specifies a non-negative value indicating the width +of the 3-D border to draw around the outside of the widget (if such a +border is being drawn; the \f5relief\fR option typically determines +this). The value may also be used when drawing 3-D effects in the +interior of the widget. +.TP +.B -disabledcolor \fIcolour\fP +Specifies the foreground colour to use when drawing disabled widgets. +Certain widgets can be disabled by use of their +.B -state +option. +.TP +.B -font \fIfont\fP +Specifies the font to use when drawing text inside the widget. +.TP +.B -foreground \fIcolour\fP or -fg \fIcolour\fP +Specifies the normal foreground colour to use when displaying the widget. +.TP +.B -highlightcolor \fIcolour\fP +Specifies the colour to use for the traversal highlight rectangle that is +drawn around the widget when it has the input focus. +.TP +.B -highlightthickness \fIdist\fP +Specifies a non-negative value indicating the width of the highlight +rectangle to draw around the outside of the widget when it has the +input focus. +If the value is zero, no focus highlight is drawn around the widget. +.TP +.B -image \fIimage\fP +Specifies an image to display in the widget, which must have been +created with the \f5image create\fR command. +Typically, if the \f5image\fR option is specified then it overrides other +options that specify a bitmap or textual value to display in the widget; +the \f5image\fR option may be reset to an empty string to re-enable +a bitmap or text display. +For those widgets that support the \f5foreground\fR option, if the image is +monochrome it is displayed using the foreground colour. +.TP +.B -jump \fIboolean\fP +For widgets with a slider that can be dragged to adjust a value, +such as scrollbars, this option determines when +notifications are made about changes in the value. +If the value is false, updates are made continuously as the +slider is dragged. +If the value is true, updates are delayed until the mouse button +is released to end the drag; at that point a single notification +is made (the value ``jumps'' rather than changing smoothly). +.TP +.B -justify \fIval\fP +When there are multiple lines of text displayed in a widget, this +option determines how the lines line up with each other. +.I Val +must be one of \f5left\fR, \f5center\fR, or \f5right\fR. +\f5Left\fR means that the lines' left edges all line up, \f5center\fR +means that the lines' centers are aligned, and \f5right\fR means +that the lines' right edges line up. +.TP +.B -orient \fIorientation\fP +For widgets that can lay themselves out with either a horizontal +or vertical orientation, such as scrollbars, this option specifies +which orientation should be used. +.I Orientation +must be either \f5horizontal\fR +or \f5vertical\fR. +.TP +.B -padx \fIdist\fP +Specifies a non-negative value indicating how much extra space +to request for the widget in the X-direction. +When computing how large a window it needs, the widget will +add this amount to the width it would normally need (as determined +by the width of the things displayed in the widget); if the geometry +manager can satisfy this request, the widget will end up with extra +internal space to the left and/or right of what it displays inside. +Most widgets only use this option for padding text: if they are +displaying a bitmap or image, then they usually ignore padding +options. +.TP +.B -pady \fIdist\fP +Specifies a non-negative value indicating how much extra space +to request for the widget in the Y-direction. +When computing how large a window it needs, the widget will add +this amount to the height it would normally need (as determined by +the height of the things displayed in the widget); if the geometry +manager can satisfy this request, the widget will end up with extra +internal space above and/or below what it displays inside. +Most widgets only use this option for padding text: if they are +displaying a bitmap or image, then they usually ignore padding +options. +.TP +.B -relief \fIval\fP +Specifies the 3-D effect desired for the widget. Acceptable +values for +.I val are \f5raised\fR, \f5sunken\fR, \f5flat\fR, \f5ridge\fR, +and \f5groove\fR. +The value +indicates how the interior of the widget should appear relative +to its exterior; for example, \f5raised\fR means the interior of +the widget should appear to protrude from the screen, relative to +the exterior of the widget. +.TP +.B -selectbackground \fIcolour\fP +Specifies the background colour to use when displaying selected +items. +.TP +.B -selectborderwidth \fIdist\fP +Specifies a non-negative value indicating the width +of the 3-D border to draw around selected items. +.TP +.B -selectforeground \fIcolour\fP +Specifies the foreground colour to use when displaying selected +items. +.TP +.B -takefocus \fIboolean\fP +Determines whether clicking on the widget will automatically +give it the keyboard focus, and also whether the widget +will become part of the keyboard focus list and made accessible +by keyboard navigation. +.TP +.B -text \fIval\fP +Specifies a string, +.IR val , +to be displayed inside the widget. The way in which +the string is displayed depends on the particular widget and may be +determined by other options, such as \f5anchor\fR or \f5justify\fR. +.TP +.B -underline \fIinteger\fP +Specifies the integer index of a character to underline in the widget. +This option is used by the default bindings to implement keyboard +traversal for menu buttons and menu entries. +0 corresponds to the first character of the text displayed in the +widget, 1 to the next character, and so on. +.TP +.B -xscrollcommand \fIcommand\fP +Specifies the prefix for a command used to communicate with horizontal +scrollbars. +When the view in the widget's window changes (or +whenever anything else occurs that could change the display in a +scrollbar, such as a change in the total size of the widget's +contents), the widget will +generate a Tk command by concatenating +.I command +and +two numbers. +Each of the numbers is a fraction between 0 and 1, which indicates +a position in the document. 0 indicates the beginning of the document, +1 indicates the end, .333 indicates a position one third the way through +the document, and so on. +The first fraction indicates the first information in the document +that is visible in the window, and the second fraction indicates +the information just after the last portion that is visible. +The command is +then passed to the Tk interpreter for execution. Typically the +\f5-xscrollcommand\fR option consists of the path name of a scrollbar +widget followed by +.RB `` set '', +e.g. +.RB `` ".x.scrollbar set" '': +this will cause +the scrollbar to be updated whenever the view in the window changes. +If this option is not specified, then no command will be executed. +.TP +.B -yscrollcommand \fIcommand\fP +Specifies the prefix for a command used to communicate with vertical +scrollbars. This option is treated in the same way as the +\f5-xscrollcommand\fR option, except that it is used for vertical +scrollbars and is provided by widgets that support vertical scrolling. +See the description of \f5-xscrollcommand\fR for details +on how this option is used. diff --git a/static/inferno/man9/pack.9 b/static/inferno/man9/pack.9 new file mode 100644 index 00000000..4ac3014e --- /dev/null +++ b/static/inferno/man9/pack.9 @@ -0,0 +1,227 @@ +.TH PACK 9 +.SH NAME +pack \- Geometry manager that packs around edges of cavity +.SH SYNOPSIS +\f5pack \fIoption arg \fR?\fIarg ...\fR? + +.SH DESCRIPTION +The \f5pack\fR command is used to communicate with the packer, +a geometry manager that arranges the children of a parent by +packing them in order around the edges of the parent. +The \f5pack\fR command can have any of several forms, depending +on the \fIoption\fR argument: +.TP +\f5pack \fIslave \fR?\fIslave ...\fR? ?\fIoptions\fR? +If the first argument to \f5pack\fR is a window name (any value +starting with ``.''), then the command is processed in the same +way as \f5pack configure\fR. +.TP +\f5pack configure \fIslave \fR?\fIslave ...\fR? ?\fIoptions\fR? +The arguments consist of the names of one or more slave windows +followed by pairs of arguments that specify how +to manage the slaves. +See ``THE PACKER ALGORITHM'' below for details on how the options +are used by the packer. +The following options are supported: +.RS +.TP +\f5-after \fIother\fR +\fIOther\fR must be the name of another window. +Use its master as the master for the slaves, and insert +the slaves just after \fIother\fR in the packing order. +.TP +\f5-anchor \fIanchor\fR +\fIAnchor\fR must be a valid anchor position such as \f5n\fR +or \f5sw\fR; it specifies where to position each slave in its +parcel. +Defaults to \f5center\fR. +.TP +\f5-before \fIother\fR +\fIOther\fR must be the name of another window. +Use its master as the master for the slaves, and insert +the slaves just before \fIother\fR in the packing order. +.TP +\f5-expand \fIboolean\fR +Specifies whether the slaves should be expanded to consume +extra space in their master. +\fIBoolean\fR may have any proper boolean value, such as \f51\fR +or \f5no\fR. +Defaults to 0. +.TP +\f5-fill \fIstyle\fR +If a slave's parcel is larger than its requested dimensions, this +option may be used to stretch the slave. +\fIStyle\fR must have one of the following values: +.RS +.TP +\f5none\fR +Give the slave its requested dimensions plus any internal padding +requested with \f5-ipadx\fR or \f5-ipady\fR. This is the default. +.TP +\f5x\fR +Stretch the slave horizontally to fill the entire width of its +parcel (except leave external padding as specified by \f5-padx\fR). +.TP +\f5y\fR +Stretch the slave vertically to fill the entire height of its +parcel (except leave external padding as specified by \f5-pady\fR). +.TP +\f5both\fR +Stretch the slave both horizontally and vertically. +.RE +.TP +\f5-in \fIother\fR +Insert the slave(s) at the end of the packing order for the master +window given by \fIother\fR. +.TP +\f5-ipadx \fIdist\fR +\fIDist\fR specifies how much horizontal internal padding to +leave on each side of the slave(s). +\fIDist\fR must be a valid screen distance, such as \f52\fR or \f5.5c\fR. +It defaults to 0. +.TP +\f5-ipady \fIdist\fR +\fIDist\fR specifies how much vertical internal padding to +leave on each side of the slave(s). +\fIDist\fR defaults to 0. +.TP +\f5-padx \fIdist\fR +\fIDist\fR specifies how much horizontal external padding to +leave on each side of the slave(s). +\fIDist\fR defaults to 0. +.TP +\f5-pady \fIdist\fR +\fIDist\fR specifies how much vertical external padding to +leave on each side of the slave(s). +\fIDist\fR defaults to 0. +.TP +\f5-side \fIside\fR +Specifies which side of the master the slave(s) will be packed against. +Must be \f5left\fR, \f5right\fR, \f5top\fR, or \f5bottom\fR. +Defaults to \f5top\fR. +.LP +If no \f5-in\fR, \f5-after\fR or \f5-before\fR option is specified +then each of the slaves will be inserted at the end of the packing list +for its parent unless it is already managed by the packer (in which +case it will be left where it is). +If one of these options is specified then all the slaves will be +inserted at the specified point. +If any of the slaves are already managed by the geometry manager +then any unspecified options for them retain their previous values rather +than receiving default values. +.RE +.TP +\f5pack forget \fIslave \fR?\fIslave ...\fR? +Removes each of the \fIslave\fRs from the packing order for its +master and unmaps their windows. +The slaves will no longer be managed by the packer. +.TP +\f5pack propagate \fImaster\fR ?\fIboolean\fR? +If \fIboolean\fR has a true boolean value such as \f51\fR or \f5on\fR +then propagation is enabled for \fImaster\fR, which must be a window +name (see ``GEOMETRY PROPAGATION'' below). +If \fIboolean\fR has a false boolean value then propagation is +disabled for \fImaster\fR. +In either of these cases an empty string is returned. +If \fIboolean\fR is omitted then the command returns \f50\fR or +\f51\fR to indicate whether propagation is currently enabled +for \fImaster\fR. +Propagation is enabled by default. +.TP +\f5pack slaves \fImaster\fR +Returns a list of all of the slaves in the packing order for \fImaster\fR. +The order of the slaves in the list is the same as their order in +the packing order. +If \fImaster\fR has no slaves then an empty string is returned. + +.SH "THE PACKER ALGORITHM" +For each master the packer maintains an ordered list of slaves +called the \fIpacking list\fR. +The \f5-in\fR, \f5-after\fR, and \f5-before\fR configuration +options are used to specify the master for each slave and the slave's +position in the packing list. +If none of these options is given for a slave then the slave +is added to the end of the packing list for its parent. +.PP +The packer arranges the slaves for a master by scanning the +packing list in order. +At the time it processes each slave, a rectangular area within +the master is still unallocated. +This area is called the \fIcavity\fR; for the first slave it +is the entire area of the master. +.PP +For each slave the packer carries out the following steps: +.IP [1] +The packer allocates a rectangular \fIparcel\fR for the slave +along the side of the cavity given by the slave's \f5-side\fR option. +If the side is top or bottom then the width of the parcel is +the width of the cavity and its height is the requested height +of the slave plus the \f5-ipady\fR and \f5-pady\fR options. +For the left or right side the height of the parcel is +the height of the cavity and the width is the requested width +of the slave plus the \f5-ipadx\fR and \f5-padx\fR options. +The parcel may be enlarged further because of the \f5-expand\fR +option (see ``EXPANSION'' below) +.IP [2] +The packer chooses the dimensions of the slave. +The width will normally be the slave's requested width plus +twice its \f5-ipadx\fR option and the height will normally be +the slave's requested height plus twice its \f5-ipady\fR +option. +However, if the \f5-fill\fR option is \f5x\fR or \f5both\fR +then the width of the slave is expanded to fill the width of the parcel, +minus twice the \f5-padx\fR option. +If the \f5-fill\fR option is \f5y\fR or \f5both\fR +then the height of the slave is expanded to fill the width of the parcel, +minus twice the \f5-pady\fR option. +.IP [3] +The packer positions the slave over its parcel. +If the slave is smaller than the parcel then the \f5-anchor\fR +option determines where in the parcel the slave will be placed. +If \f5-padx\fR or \f5-pady\fR is non-zero, then the given +amount of external padding will always be left between the +slave and the edges of the parcel. +.PP +Once a given slave has been packed, the area of its parcel +is subtracted from the cavity, leaving a smaller rectangular +cavity for the next slave. +If a slave doesn't use all of its parcel, the unused space +in the parcel will not be used by subsequent slaves. +If the cavity should become too small to meet the needs of +a slave then the slave will be given whatever space is +left in the cavity. +If the cavity shrinks to zero size, then all remaining slaves +on the packing list will be unmapped from the screen until +the master window becomes large enough to hold them again. + +.SH EXPANSION +If a master window is so large that there will be extra space +left over after all of its slaves have been packed, then the +extra space is distributed uniformly among all of the slaves +for which the \f5-expand\fR option is set. +Extra horizontal space is distributed among the expandable +slaves whose \f5-side\fR is \f5left\fR or \f5right\fR, +and extra vertical space is distributed among the expandable +slaves whose \f5-side\fR is \f5top\fR or \f5bottom\fR. + +.SH "GEOMETRY PROPAGATION" +The packer normally computes how large a master must be to +just exactly meet the needs of its slaves, and it sets the +requested width and height of the master to these dimensions. +This causes geometry information to propagate up through a +window hierarchy to a top-level window so that the entire +sub-tree sizes itself to fit the needs of the leaf windows. +However, the \f5pack propagate\fR command may be used to +turn off propagation for one or more masters. +If propagation is disabled then the packer will not set +the requested width and height of the packer. +This may be useful if, for example, you wish for a master +window to have a fixed size that you specify. + +.SH "RESTRICTIONS ON MASTER WINDOWS" +The master for each slave must be a frame widget or the top-level window (``.''). +Widgets of other types can be specifed as the master window +but will give rise to unpredictable results. + +.SH SEE ALSO +.IR types (9) diff --git a/static/inferno/man9/panel.9 b/static/inferno/man9/panel.9 new file mode 100644 index 00000000..27552f7b --- /dev/null +++ b/static/inferno/man9/panel.9 @@ -0,0 +1,121 @@ +.TH PANEL 9 +.SH NAME +panel \- embedded graphics +.SH SYNOPSIS +\f5panel\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-anchor -borderwidth -background -relief +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -height \fIdist\fP +Specifies a desired height for the panel. +If this option isn't specified, the panel's desired height is computed +from the image and mask images. If these are replicated, +the default is zero. +.TP +.B -width \fIdist\fP +Specifies a desired width for the panel. +If this option isn't specified, the panel's desired height is computed +from the image and mask images. If these are replicated, +the default is zero. +.SH DESCRIPTION +The \f5panel\fR command creates a new window (given by the \fIpathName\fR +argument) and makes it into a panel widget. +Additional options, described above, may be specified on the +command line +to configure aspects of the panel such as its background colour and 3-D relief. +The \f5panel\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A panel is a widget that displays arbitrary graphics drawn outside +of Tk. An application is free to use any image or mask that it +chooses to create; the panel will display the contents of the image +through the mask (see +.IR draw (2)). +.PP +A panel widget will not display anything until its image has been +set using +.B putimage +(see +.IR tk (2)). + +.SH "WIDGET COMMAND" +The \f5panel\fR command creates a new Tk command whose name +is \fIpathName\fR. This command may be used to invoke various +operations on the widget: It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for panel widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5panel\fR +function. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5panel\fR +function +.TP +\fIpathName \f5dirty\fR ?\fIminx miny maxx maxy\fR? +Mark the area inside the given rectangle +((\fIminx\fP, \fIminy\fP), (\fImaxx\fP, \fImaxy\fP)) +to be flushed to the screen. If the rectangle is not +given, the whole area will be marked. +The coordinates are relative to the image's origin. +.TP +\fIpathName \f5origin\fR ?\fIx y\fR? +Set the point within the image that will be displayed +at the top left of the panel's rectangle. +If the area allocated to the panel is more than +the area drawn by the image, the ``top left'' will +positioned with respect to the value of the +.B -anchor +option. +If the point is not given, the current origin +is returned. +.TP +\fIpathName \f5panelx\fR ?\fIscreenx\fR? +Given a screen x-coordinate, +.IR screenx , +this command returns the image x-coordinate displayed +at that location. +.TP +\fIpathName \f5panely\fR ?\fIscreeny\fR? +Given a screen y-coordinate, +.IR screeny , +this command returns the image y-coordinate displayed +at that location. +.TP +\fIpathName \f5screenx\fR ?\fIpanelx\fR? +Given an image x-coordinate, +.IR panelx , +this command returns the +equivalent screen x-coordinate. +.TP +\fIpathName \f5screeny\fR ?\fIpanely\fR? +Given an image y-coordinate, +.IR panely , +this command returns the +equivalent screen y-coordinate. +.SH BINDINGS +When a new panel is created, it has no default event bindings. +.SH SEE ALSO +.IR draw (2), +.IR tk (2), +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/radiobutton.9 b/static/inferno/man9/radiobutton.9 new file mode 100644 index 00000000..4841adc2 --- /dev/null +++ b/static/inferno/man9/radiobutton.9 @@ -0,0 +1,192 @@ +.TH RADIOBUTTON 9 +.SH NAME +radiobutton \- Create and manipulate radiobutton widgets +.SH SYNOPSIS +\f5radiobutton\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -disabledcolor -justify +-activeforeground -font -relief +-anchor -foreground -takefocus +-background -highlightcolor -text +-bitmap -highlightthickness -underline +-borderwidth -image +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -command \fIcommand\fP +Specifies a Tk command to associate with the button. This command +is typically invoked when mouse button 1 is released over the button +window. The button's global variable (\f5-variable\fR option) will +be updated before the command is invoked. +.TP +.B -height \fIdist\fP +Specifies a desired height for the button. +If this option isn't specified, the button's desired height is computed +from the size of the image or bitmap or text being displayed in it. +.TP +.B -indicatoron \fIboolean\fP +Specifies whether or not the indicator should be drawn. +If false, the \f5relief\fP option is ignored and the widget's +relief is always \f5sunken\fP if the widget is selected +and \f5raised\fP otherwise. +.TP +.B -selectcolor \fIcolour\fP +Specifies a background colour to use when the button is selected. +If \f5indicatoron\fR is true, the colour applies to the indicator. +If \f5indicatoron\fR is false, this colour is used as the background +for the entire widget, in place of \f5background\fR or \f5activebackground\fR, +whenever the widget is selected. +If specified as an empty string, no special colour is used for +displaying when the widget is selected. +.ig +.TP +.B -selectimage \fIimage\fP +Specifies an image to display (in place of the \f5image\fR option) +when the radiobutton is selected. +This option is ignored unless the \f5image\fR option has been +specified. +.. +.TP +.B -state \fIstate\fP +Specifies one of three states for the radiobutton: \f5normal\fR, \f5active\fR, +or \f5disabled\fR. In normal state the radiobutton is displayed using the +\f5foreground\fR and \f5background\fR options. The active state is +typically used when the pointer is over the radiobutton. In active state +the radiobutton is displayed using the \f5activeforeground\fR and +\f5activebackground\fR options. Disabled state means that the radiobutton +should be insensitive: the default bindings will refuse to activate +the widget and will ignore mouse button presses. +In this state the \f5disabledcolor\fR and +\f5background\fR options determine how the radiobutton is displayed. +.TP +.B -value \fIstring\fP +Specifies value to store in the button's associated variable whenever +this button is selected. +.TP +.B -variable \fIstring\fP +Specifies name of global variable to set whenever this button is +selected. Changes in this variable also cause the button to select +or deselect itself. +Defaults to the value \f5selectedButton\fR. +.TP +.B -width \fIdist\fP +Specifies a desired width for the button. +If this option isn't specified, the button's desired width is computed +from the size of the image or bitmap or text being displayed in it. +.SH DESCRIPTION +The \f5radiobutton\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a radiobutton widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the radiobutton such as its colours, font, +text, and initial relief. The \f5radiobutton\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A radiobutton is a widget that displays a textual string, bitmap or image +and a circle called an \fIindicator\fR. +If text is displayed, it must all be in a single font, but it +can occupy multiple lines on the screen (if it contains newlines) and +one of the characters may optionally be underlined using the +\f5underline\fR option. A radiobutton has +all of the behaviour of a simple button: it can display itself in either +of three different ways, according to the \f5state\fR option; +it can be made to appear +raised, sunken, or flat; and it invokes +a Tk command whenever mouse button 1 is clicked over the +check button. +.PP +In addition, radiobuttons can be \fIselected\fR. +If a radiobutton is selected, the indicator is normally +drawn as a circle containing a disc (possibly in a special colour), and +a Tk variable associated with the radiobutton is set to a particular +value. +If the radiobutton is not selected, the indicator is drawn as an +empty circle. +Typically, several radiobuttons share a single variable and the +value of the variable indicates which radiobutton is to be selected. +When a radiobutton is selected it sets the value of the variable to +indicate that fact; each radiobutton also monitors the value of +the variable and automatically selects and deselects itself when the +variable's value changes. +By default the variable \f5selectedButton\fR +is used; its contents give the name of the button that is +selected, or the empty string if no button associated with that +variable is selected. +The name of the variable for a radiobutton, +plus the variable to be stored into it, may be modified with options +on the command line. +Configuration options may also be used to modify the way the +indicator is displayed (or whether it is displayed at all). +By default a radiobutton is configured to select itself on button clicks. +.SH "WIDGET COMMAND" +The \f5radiobutton\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for radiobutton widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5radiobutton\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5radiobutton\fR +command. +.TP +\fIpathName \f5deselect\fR +Deselects the radiobutton and sets the associated variable to an +empty string. +If this radiobutton was not currently selected, the command has +no effect. +.TP +\fIpathName \f5invoke\fR +Does just what would have happened if the user invoked the radiobutton +with the mouse: selects the button and invokes +its associated Tk command, if there is one. +The return value is the return value from the Tk command, or an +empty string if there is no command associated with the radiobutton. +This command is ignored if the radiobutton's state is \f5disabled\fR. +.TP +\fIpathName \f5select\fR +Selects the radiobutton and sets the associated variable to the +value corresponding to this widget. + +.SH BINDINGS +Tk automatically creates bindings for radiobuttons that give them +the following default behaviour: +.IP [1] +The radiobutton activates whenever the mouse passes over it and deactivates +whenever the mouse leaves the radiobutton. +.IP [2] +When mouse button 1 is pressed over a radiobutton it is invoked (it +becomes selected and the command associated with the button is +invoked, if there is one). +.PP +If the radiobutton's state is \f5disabled\fR then none of the above +actions occur: the radiobutton is completely non-responsive. +.PP +The behaviour of radiobuttons can be changed by defining new bindings for +individual widgets. +.SH SEE ALSO +.IR button (9), +.IR checkbutton (9), +.IR choicebutton (9), +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/raise.9 b/static/inferno/man9/raise.9 new file mode 100644 index 00000000..8e9f7951 --- /dev/null +++ b/static/inferno/man9/raise.9 @@ -0,0 +1,13 @@ +.TH RAISE 9 +.SH NAME +raise \- Change a window's position in the stacking order +.SH SYNOPSIS +\f5raise \fIwindow +.SH DESCRIPTION +.B Raise +raises +\fIwindow\fR so that it is above all of its siblings in the stacking +order (it will not be obscured by any siblings and will obscure +any siblings that overlap it). +.SH "SEE ALSO" +.IR lower (9) diff --git a/static/inferno/man9/scale.9 b/static/inferno/man9/scale.9 new file mode 100644 index 00000000..85d2e48d --- /dev/null +++ b/static/inferno/man9/scale.9 @@ -0,0 +1,198 @@ +.TH SCALE 9 +.SH NAME +scale \- Create and manipulate scale widgets +.SH SYNOPSIS +\f5scale\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -font -orient +-background -foreground -relief +-borderwidth -highlightcolor -takefocus +-disabledcolor -highlightthickness +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -bigincrement \fIdist\fR +Some interactions with the scale cause its value to change by +``large'' increments; this option specifies the size of the +large increments. If specified as 0, the large increments default +to 1/10 the range of the scale. +.TP +.B -command \fIcommand\fR +Specifies the prefix of a Tk command to invoke whenever the scale's +value is changed via a widget command. +The actual command consists +of this option followed by a space and a real number indicating the +new value of the scale. +.TP +.B -from \fIfrac\fR +A real value corresponding to the left or top end of the scale. +.TP +.B -height \fIdist\fP +Specifies a desired height for the scale. +If this option isn't specified, the scale is given a default height. +.TP +.B -label \fIstring\fR +A string to display as a label for the scale. If the option is specified +as an empty string, no label is displayed. +.TP +.B -resolution \fIfrac\fR +A real value specifying the resolution for the scale. +If this value is greater than zero then the scale's value will always be +rounded to an even multiple of this value, as will tick marks and +the endpoints of the scale. If the value is less than zero then no +rounding occurs. Defaults to 1 (i.e., the value will be integral). +.TP +.B -showvalue \fIboolean\fR +Specifies a boolean value indicating whether or not the current +value of the scale is to be displayed. +.TP +.B -sliderlength \fIdist\fR +Specfies the size of the slider along the slider's +long dimension.. +.TP +.B -sliderrelief \fIrelief\fI +Specifies the relief to use when drawing the slider. +.TP +.B -state \fIstate\fR +Specifies one of three states for the scale: \f5normal\fR, +\f5active\fR, or \f5disabled\fR. +If the scale is disabled then the value may not be changed and the scale +won't activate. +If the scale is active, the slider is displayed using the colour +specified by the \f5activebackground\fR option. +.TP +.B -tickinterval \fIfrac\fR +Must be a real value. +Determines the spacing between numerical +tick marks displayed below or to the left of the slider. +If 0, no tick marks will be displayed. +.TP +.B -to \fIfrac\fR +Specifies a real value corresponding +to the right or bottom end of the scale. +This value may be either less than or greater than the \f5from\fR option. +.TP +.B -width \fIdist\fP +Specifies a desired width for the scale. +If this option isn't specified, the scale is given a default width. +.SH DESCRIPTION +The \f5scale\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a scale widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the scale such as its colours, orientation, +and relief. The \f5scale\fR command returns its +\fIpathName\fR argument. At the time this command is invoked, +there must not exist a window named \fIpathName\fR. +.PP +A scale is a widget that displays a rectangular \fItrough\fR and a +small \fIslider\fR. The trough corresponds to a range +of real values (determined by the \f5from\fR, \f5to\fR, and +\f5resolution\fR options), +and the position of the slider selects a particular real value. +The slider's position (and hence the scale's value) may be adjusted +with the mouse or keyboard as described in the BINDINGS +section below. Whenever the scale's value is changed, a Tk +command is invoked (using the \f5command\fR option) to notify +other interested widgets of the change. +.PP +Three annotations may be displayed in a scale widget: a label +appearing at the top right of the widget (top left for horizontal +scales), a number displayed just to the left of the slider +(just above the slider for horizontal scales), and a collection +of numerical tick marks just to the right of the trough +(just below the trough for horizontal scales). Each of these three +annotations may be enabled or disabled using the +configuration options. + +.SH "WIDGET COMMAND" +The \f5scale\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for scale widgets: +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5scale\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5scale\fR +command. +.TP +\fIpathName \f5coords \fR?\fIvalue\fR? +Returns a list whose elements are the x and y coordinates of +the point along the centreline of the trough that corresponds +to \fIvalue\fR. +If \fIvalue\fR is omitted then the scale's current value is used. +.TP +\fIpathName \f5get\fR ?\fIx y\fR? +If \fIx\fR and \fIy\fR are omitted, returns the current value +of the scale. If \fIx\fR and \fIy\fR are specified, they give +pixel coordinates within the widget; the command returns +the scale value corresponding to the given pixel. +Only one of \fIx\fR or \fIy\fR is used: for horizontal scales +\fIy\fR is ignored, and for vertical scales \fIx\fR is ignored. +.TP +\fIpathName \f5identify\fR \fIx y\fR +Returns a string indicating what part of the scale lies under +the coordinates given by \fIx\fR and \fIy\fR. +A return value of \f5slider\fR means that the point is over +the slider; \f5trough1\fR means that the point is over the +portion of the slider above or to the left of the slider; +and \f5trough2\fR means that the point is over the portion +of the slider below or to the right of the slider. +If the point isn't over one of these elements, an empty string +is returned. +.TP +\fIpathName \f5set\fR \fIvalue\fR +This command is invoked to change the current value of the scale, +and hence the position at which the slider is displayed. \fIValue\fR +gives the new value for the scale. +The command has no effect if the scale is disabled. +.SH BINDINGS +Tk automatically creates bindings for scales that give them +the following default behaviour. +Where the behaviour is different for vertical and horizontal scales, +the horizontal behaviour is described in parentheses. +.IP [1] +If button 1 is pressed in the trough, the scale's value will +be incremented or decremented by the value of the \f5bigincrement\fR +option so that the slider moves in the direction of the cursor. +If the button is held down, the action auto-repeats. +.IP [2] +If button 1 is pressed over the slider, the slider can be dragged +with the mouse. +.IP [3] +If the widget receives Up-arrow or Left-arrow key events, the scale's value +will be incremented or decremented so as to adjust the value towards the +.BR from value . +.IP [4] +If the widget receives Down-arrow or Right-arrow key events, the scale's value +will be incremented or decremented so as to adjust the value towards the +.BR to value . +.PP +If the scale is disabled using the \f5state\fR option then +none of the above bindings have any effect. +.PP +The behaviour of scales can be changed by defining new bindings for +individual widgets. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/scrollbar.9 b/static/inferno/man9/scrollbar.9 new file mode 100644 index 00000000..d22f3db1 --- /dev/null +++ b/static/inferno/man9/scrollbar.9 @@ -0,0 +1,243 @@ +.TH SCROLLBAR 9 +.SH NAME +scrollbar \- Create and manipulate scrollbar widgets +.SH SYNOPSIS +\f5scrollbar\fI pathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-activebackground -borderwidth -orient +-background -jump -relief +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -activerelief \fIrelief\fP +Specifies the relief to use when displaying the element that is +active, if any. +Elements other than the active element are always displayed with +a raised relief. +.TP +.B -command \fIcommand\fP +Specifies the prefix of a Tk command to invoke to change the view +in the widget associated with the scrollbar. When a user requests +a view change by manipulating the scrollbar, a Tk command is +invoked. The actual command consists of this option followed by +additional information as described later. This option almost always has +a value such as \f5.t xview\fR or \f5.t yview\fR, consisting of the +name of a widget and either \f5xview\fR (if the scrollbar is for +horizontal scrolling) or \f5yview\fR (for vertical scrolling). +All scrollable widgets have \f5xview\fR and \f5yview\fR commands +that take exactly the additional arguments appended by the scrollbar +as described in SCROLLING COMMANDS below. +.TP +.B -height \fIdist\fP +Specifies a desired height for the scrollbar. +If this option isn't specified, a suitable default height is chosen. +.TP +.B -width \fIdist\fP +Specifies a desired width for the scrollbar. +If this option isn't specified, a suitable default width is chosen. +.SH DESCRIPTION +The \f5scrollbar\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a scrollbar widget. +Additional options, described above, may be specified on the command +line to configure aspects of the scrollbar +such as its colours, orientation, and relief. +The \f5scrollbar\fR command returns its \fIpathName\fR argument. +At the time this command is invoked, there must not exist a window +named \fIpathName\fR. +.PP +A scrollbar is a widget that displays two arrows, one at each end of +the scrollbar, and a \fIslider\fR in the middle portion of the +scrollbar. +It provides information about what is visible in an \fIassociated window\fR +that displays a document of some sort (such as a file being edited or +a drawing). +The position and size of the slider indicate which portion of the +document is visible in the associated window. For example, if the +slider in a vertical scrollbar covers the top third of the area +between the two arrows, it means that the associated window displays +the top third of its document. +.PP +Scrollbars can be used to adjust the view in the associated window +by clicking or dragging with the mouse. See the BINDINGS section +below for details. + +.SH ELEMENTS +A scrollbar displays five elements, which are referred to in the +widget commands for the scrollbar: +.TP 12 +\f5arrow1\fR +The top or left arrow in the scrollbar. +.TP 12 +\f5trough1\fR +The region between the slider and \f5arrow1\fR. +.TP 12 +\f5slider\fR +The rectangle that indicates what is visible in the associated widget. +.TP 12 +\f5trough2\fR +The region between the slider and \f5arrow2\fR. +.TP 12 +\f5arrow2\fR +The bottom or right arrow in the scrollbar. + +.SH "WIDGET COMMAND" +The \f5scrollbar\fR command creates a new Tk command whose +name is \fIpathName\fR. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for scrollbar widgets: +.TP +\fIpathName \f5activate \fR?\fIelement\fR? +Marks the element indicated by \fIelement\fR as active, which +causes it to be displayed as specified by the \f5activebackground\fR option. +The only element values understood by this command are \f5arrow1\fR, +\f5slider\fR, or \f5arrow2\fR. +If any other value is specified then no element of the scrollbar +will be active. +If \fIelement\fR is not specified, the command returns +the name of the element that is currently active, or an empty string +if no element is active. +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5scrollbar\fR +command. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? ?\fIvalue option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5scrollbar\fR +command. +.TP +\fIpathName \f5delta \fIdeltaX deltaY\fR +Returns a real number indicating the fractional change in +the scrollbar setting that corresponds to a given change +in slider position. For example, if the scrollbar is horizontal, +the result indicates how much the scrollbar setting must change +to move the slider \fIdeltaX\fR pixels to the right (\fIdeltaY\fR is +ignored in this case). +If the scrollbar is vertical, the result indicates how much the +scrollbar setting must change to move the slider \fIdeltaY\fR pixels +down. The arguments and the result may be zero or negative. +.TP +\fIpathName \f5fraction \fIx y\fR +Returns a real number between 0 and 1 indicating where the point +given by \fIx\fR and \fIy\fR lies in the trough area of the scrollbar. +The value 0 corresponds to the top or left of the trough, the +value 1 corresponds to the bottom or right, 0.5 corresponds to +the middle, and so on. +\fIX\fR and \fIy\fR must be pixel coordinates relative to the scrollbar +widget. +If \fIx\fR and \fIy\fR refer to a point outside the trough, the closest +point in the trough is used. +.TP +\fIpathName \f5get\fR +Returns the scrollbar settings in the form of a list whose +elements are the arguments to the most recent \f5set\fR widget command. +.TP +\fIpathName \f5identify\fR \fIx y\fR +Returns the name of the element under the point given by \fIx\fR and +\fIy\fR (such as \f5arrow1\fR), or an empty string if the point does +not lie in any element of the scrollbar. +\fIX\fR and \fIy\fR must be pixel coordinates relative to the scrollbar +widget. +.TP +\fIpathName \f5set\fR \fIfirst last\fR +This command is invoked by the scrollbar's associated widget to +tell the scrollbar about the current view in the widget. +The command takes two arguments, each of which is a real fraction +between 0 and 1. +The fractions describe the range of the document that is visible in +the associated widget. +For example, if \fIfirst\fR is 0.2 and \fIlast\fR is 0.4, it means +that the first part of the document visible in the window is 20% +of the way through the document, and the last visible part is 40% +of the way through. + +.SH "SCROLLING COMMANDS" +When the user interacts with the scrollbar, for example by dragging +the slider, the scrollbar notifies the associated widget that it +must change its view. +The scrollbar makes the notification by evaluating a Tk command +generated from the scrollbar's \f5-command\fR option. +The command may take any of the following forms. +In each case, \fIprefix\fR is the contents of the +\f5-command\fR option, which usually has a form like \f5.t yview\fR +.TP +\fIprefix \f5moveto \fIfraction\fR +\fIFraction\fR is a real number between 0 and 1. +The widget should adjust its view so that the point given +by \fIfraction\fR appears at the beginning of the widget. +If \fIfraction\fR is 0 it refers to the beginning of the +document. 1.0 refers to the end of the document, 0.333 +refers to a point one-third of the way through the document, +and so on. +.TP +\fIprefix \f5scroll \fInumber \f5unit\fR +The widget should adjust its view by \fInumber\fR units. +The units are defined in whatever way makes sense for the widget, +such as characters or lines in a text widget. +\fINumber\fR is either 1, which means one unit should scroll off +the top or left of the window, or -1, which means that one unit +should scroll off the bottom or right of the window. +.TP +\fIprefix \f5scroll \fInumber \f5page\fR +The widget should adjust its view by \fInumber\fR pages. +It is up to the widget to define the meaning of a page; typically +it is slightly less than what fits in the window, so that there +is a slight overlap between the old and new views. +\fINumber\fR is either 1, which means the next page should +become visible, or -1, which means that the previous page should +become visible. + +.SH BINDINGS +Tk automatically creates bindings for scrollbars that give them +the following default behaviour. +If the behaviour is different for vertical and horizontal scrollbars, +the horizontal behaviour is described in parentheses. + +.IP [1] +Pressing button 1 over \f5arrow1\fR causes the view in the +associated widget to shift up (left) by one unit so that the +document appears to move down (right) one unit. +If the button is held down, the action auto-repeats. +.IP [2] +Pressing button 1 over \f5trough1\fR causes the view in the +associated widget to shift up (left) by one screenful so that the +document appears to move down (right) one screenful. +.IP [3] +Pressing button 1 over the slider and dragging causes the view +to drag with the slider. +If the \f5jump\fR option is true, then the view doesn't drag along +with the slider; it changes only when the mouse button is released. +.IP [4] +Pressing button 1 over \f5trough2\fR causes the view in the +associated widget to shift down (right) by one screenful so that the +document appears to move up (left) one screenful. +.IP [5] +Pressing button 1 over \f5arrow2\fR causes the view in the +associated widget to shift down (right) by one unit so that the +document appears to move up (left) one unit. +If the button is held down, the action auto-repeats. +.IP [6] +If button 2 is pressed over the trough or the slider, it sets +the view to correspond to the mouse position; dragging the +mouse with button 2 down causes the view to drag with the mouse. +If button 2 is pressed over one of the arrows, it causes the +same behaviour as pressing button 1. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/see.9 b/static/inferno/man9/see.9 new file mode 100644 index 00000000..cd849073 --- /dev/null +++ b/static/inferno/man9/see.9 @@ -0,0 +1,37 @@ +.TH SEE 9 +.SH NAME +see \- Make a portion of a widget visible. +.SH SYNOPSIS +\f5see \fIoption\fP ?\fIpathName\fR? +.SH DESCRIPTION +\f5See\fP makes sure that a portion of a widget +is visible in its containing view; for instance, it will +scroll a canvas or text widget to ensure that the +specified portion is in view. The following options +are supported: +.TP +\f5-rectangle\fP \fIlist\fP +Specifies a list with four \fIdist\fP coordinates describing the left, top, +right, and bottom coordinates of the rectangular region, +in coordinates relative to the widget origin, of the area +that should be made visible. +.TP +\f5-point\fP \fIlist\P +Specifies a list with two \fIdist\fP coordinates describing +a point within the widget that should be made visible +by preference if the entirety of the above-specified +rectangle cannot be shown. Defaults to the top left of +the specified rectangle. +.TP +\f5-where\fP +If this option is given, \f5see\fP returns a list containing +the left, top, right and bottom coordinates of +the currently visible portion of +.IR pathName . +.PP +If neither the \f5-rectangle\fP or the \f5-point\fP +options are given, then the entire area of \fIpathName\fP +will be made visible. +.SH SEE ALSO +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/send.9 b/static/inferno/man9/send.9 new file mode 100644 index 00000000..2f1cee9a --- /dev/null +++ b/static/inferno/man9/send.9 @@ -0,0 +1,38 @@ +.TH SEND 9 +.SH NAME +send \- send a value down a Tk channel +.SH SYNOPSIS +\f5send \fIchan\fP \fIstring\fP +.SH DESCRIPTION +.B Send +is the gateway from the Tk world into the Limbo world. +It sends +.I string +down +.IR chan , +which should previously have been named with a call to +.B namechan +(see +.IR tk (2)). +Tk channels are non blocking, so the call will return immediately, +whether the message has been sent or not. If too many messages +have been queued on the +.IR chan , +then the message will be +discarded, and a warning printed on the console. +.I String +is not subject to interpretation by the usual Tk quoting rules. +.SH BUGS +.I String +is not subject to interpretation by the usual Tk quoting rules. +This means, for example that: +.EX + radiobutton .x -text X -variable x -value x + radiobutton .y -text Y -variable y -value y + button .z -text Submit {send chan submit [variable X]} +.EE +will not work as expected. Instead, one must interrogate values +directly in Limbo. +.PP +The specialised queued channels will be replaced by buffered channels in Limbo in +a future edition of Inferno. diff --git a/static/inferno/man9/text.9 b/static/inferno/man9/text.9 new file mode 100644 index 00000000..7ba26dd8 --- /dev/null +++ b/static/inferno/man9/text.9 @@ -0,0 +1,1188 @@ +.TH TEXT 9 +.SH NAME +text \- Create and manipulate text widgets +.SH SYNOPSIS +\f5text\fI \fIpathName \fR?\fIoptions\fR? +.SH STANDARD OPTIONS +.EX +-background -pady -takefocus +-borderwidth -relief -xscrollcommand +-font -selectbackground -yscrollcommand +-foreground -selectborderwidth +-padx -selectforeground +.EE +.SH "WIDGET-SPECIFIC OPTIONS" +.TP +.B -height \fIdist\fP +Specifies the desired height for the window. +.TP +.B -spacing1 \fIdist\fP +Requests additional space above each text line in the widget, +using any of the standard forms for screen distances. +If a line wraps, this option only applies to the first line +on the display. +This option may be overriden with \f5-spacing1\fR options in +tags. +.TP +.B -spacing2 \fIdist\fP +For lines that wrap (so that they cover more than one line on the +display) this option specifies additional space to provide between +the display lines that represent a single line of text. +The value may have any of the standard forms for screen distances. +This option may be overriden with \f5-spacing2\fR options in +tags. +.TP +.B -spacing3 \fIdist\fP +Requests additional space below each text line in the widget, +using any of the standard forms for screen distances. +If a line wraps, this option only applies to the last line +on the display. +This option may be overriden with \f5-spacing3\fR options in +tags. +.TP +.B -state \fPstate\fP +Specifies one of two states for the text: \f5normal\fR or \f5disabled\fR. +If the text is disabled then characters may not be inserted or deleted +and no insertion cursor will be displayed, even if the input focus is +in the widget. +.TP +.B -tabs \fIdist\fP +Specifies a set of tab stops for the window. The option's value consists +of a list of \fIdist\fP values giving the positions of the tab stops. Each +\fIdist\fP may optionally be followed in the next list element +by one of the keywords \f5left\fR, \f5right\fR, \f5center\fR, +or \f5numeric\fR, which specifies how to justify +text relative to the tab stop. \f5Left\fR is the default; it causes +the text following the tab character to be positioned with its left edge +at the tab position. \f5Right\fR means that the right edge of the text +following the tab character is positioned at the tab position, and +\f5center\fR means that the text is centered at the tab position. +\f5Numeric\fR means that the decimal point in the text is positioned +at the tab position; if there is no decimal point then the least +significant digit of the number is positioned just to the left of the +tab position; if there is no number in the text then the text is +right-justified at the tab position. +For example, \f5-tabs {2c left 4c 6c center}\fR creates three +tab stops at two-centimeter intervals; the first two use left +justification and the third uses center justification. +If the list of tab stops does not have enough elements to cover all +of the tabs in a text line, then Tk extrapolates new tab stops using +the spacing and alignment from the last tab stop in the list. +The value of the \f5tabs\fR option may be overridden by \f5-tabs\fR +options in tags. +If no \f5-tabs\fR option is specified, or if it is specified as +an empty list, then Tk uses default tabs spaced every eight +(average size) characters. +.TP +.B -width \fIdist\fP +Specifies the desired width for the window. +.TP +.B -wrap \fIval\fP +Specifies how to handle lines in the text that are too long to be +displayed in a single line of the text's window. +The value must be \f5none\fR or \f5char\fR or \f5word\fR. +A wrap mode of \f5none\fR means that each line of text appears as +exactly one line on the screen; extra characters that don't fit +on the screen are not displayed. +In the other modes each line of text will be broken up into several +screen lines if necessary to keep all the characters visible. +In \f5char\fR mode a screen line break may occur after any character; +in \f5word\fR mode a line break will only be made at word boundaries. + +.SH DESCRIPTION +The \f5text\fR command creates a new window (given by the +\fIpathName\fR argument) and makes it into a text widget. +Additional +options, described above, may be specified on the command line +to configure aspects of the text such as its default background colour +and relief. The \f5text\fR command returns the +path name of the new window. +.PP +A text widget displays one or more lines of text and allows that +text to be edited. +Text widgets support three different kinds of annotations on the +text, called tags, marks, and embedded windows. +Tags allow different portions of the text +to be displayed with different fonts and colours. +In addition, Tk commands can be associated with tags so +that scripts are invoked when particular actions such as keystrokes +and mouse button presses occur in particular ranges of the text. +See TAGS below for more details. +.PP +The second form of annotation consists of marks, which are floating +markers in the text. +Marks are used to keep track of various interesting positions in the +text as it is edited. +See MARKS below for more details. +.PP +The third form of annotation allows arbitrary windows to be +embedded in a text widget. +See EMBEDDED WINDOWS below for more details. + +.SH INDICES +Many of the widget commands for texts take one or more indices +as arguments. +An index is a string used to indicate a particular place within +a text, such as a place to insert characters or one endpoint of a +range of characters to delete. +Indices have the syntax +.RS +.EX +\fIbase modifier modifier modifier ...\fR +.EE +.RE +Where \fIbase\fR gives a starting point and the \fImodifier\fRs +adjust the index from the starting point (e.g. move forward or +backward one character). Every index must contain a \fIbase\fR, +but the \fImodifier\fRs are optional. +.PP +The \fIbase\fR for an index must have one of the following forms: +.TP 12 +\fIline\f5.\fIchar\fR +Indicates \fIchar\fR'th character on line \fIline\fR. +Lines are numbered from 1 for consistency with other UNIX programs +that use this numbering scheme. +Within a line, characters are numbered from 0. +If \fIchar\fR is \f5end\fR then it refers to the newline character +that ends the line. +.TP 12 +\f5@\fIx\f5,\fIy\fR +Indicates the character that covers the pixel whose x and y coordinates +within the text's window are \fIx\fR and \fIy\fR. +.TP 12 +\f5end\fR +Indicates the end of the text (the character just after the last +newline). +.TP 12 +\fImark\fR +Indicates the character just after the mark whose name is \fImark\fR. +.TP 12 +\fItag\f5.first\fR +Indicates the first character in the text that has been tagged with +\fItag\fR. +This form generates an error if no characters are currently tagged +with \fItag\fR. +.TP 12 +\fItag\f5.last\fR +Indicates the character just after the last one in the text that has +been tagged with \fItag\fR. +This form generates an error if no characters are currently tagged +with \fItag\fR. +.TP 12 +\fIpathName\fR +Indicates the position of the embedded window whose name is +\fIpathName\fR. +This form generates an error if there is no embedded window +by the given name. +.PP +If modifiers follow the base index, each one of them must have one +of the forms listed below. +.TP +\f5+ \fIcount\f5 chars\fR +Adjust the index forward by \fIcount\fR characters, moving to later +lines in the text if necessary. If there are fewer than \fIcount\fR +characters in the text after the current index, then set the index +to the last character in the text. +Spaces on either side of \fIcount\fR are optional. +.TP +\f5\- \fIcount\f5 chars\fR +Adjust the index backward by \fIcount\fR characters, moving to earlier +lines in the text if necessary. If there are fewer than \fIcount\fR +characters in the text before the current index, then set the index +to the first character in the text. +Spaces on either side of \fIcount\fR are optional. +.TP +\f5+ \fIcount\f5 lines\fR +Adjust the index forward by \fIcount\fR lines, retaining the same +character position within the line. If there are fewer than \fIcount\fR +lines after the line containing the current index, then set the index +to refer to the same character position on the last line of the text. +Then, if the line is not long enough to contain a character at the indicated +character position, adjust the character position to refer to the last +character of the line (the newline). +Spaces on either side of \fIcount\fR are optional. +.TP +\f5\- \fIcount\f5 lines\fR +Adjust the index backward by \fIcount\fR lines, retaining the same +character position within the line. If there are fewer than \fIcount\fR +lines before the line containing the current index, then set the index +to refer to the same character position on the first line of the text. +Then, if the line is not long enough to contain a character at the indicated +character position, adjust the character position to refer to the last +character of the line (the newline). +Spaces on either side of \fIcount\fR are optional. +.TP +\f5linestart\fR +Adjust the index to refer to the first character on the line. +.TP +\f5lineend\fR +Adjust the index to refer to the last character on the line (the newline). +.TP +\f5wordstart\fR +Adjust the index to refer to the first character of the word containing +the current index. A word consists of any number of adjacent characters +that are letters, digits, or underscores, or a single character that +is not one of these. +.TP +\f5wordend\fR +Adjust the index to refer to the character just after the last one of the +word containing the current index. If the current index refers to the last +character of the text then it is not modified. +.PP +If more than one modifier is present then they are applied in +left-to-right order. For example, the index ``\f5end \- 1 chars\fR'' +refers to the next-to-last character in the text and the index +``\f5insert wordstart \- 1 c\fR'' refers to the character just before +the first one in the word containing the insertion cursor. + +.SH TAGS +The first form of annotation in text widgets is a tag. +A tag is a textual string that is associated with some of the characters +in a text. +Tags may contain arbitrary characters, but it is probably best to +avoid using the the characters `` '' (space), \f5+\fR, or \f5-\fR: +these characters have special meaning in indices, so tags containing +them can't be used as indices. The tag name may not begin with a digit. +There may be any number of tags associated with characters in a +text. +Each tag may refer to a single character, a range of characters, or +several ranges of characters. +An individual character may have any number of tags associated with it. +.PP +A priority order is defined among tags, and this order is used in +implementing some of the tag-related functions described below. +When a tag is defined (by associating it with characters or setting +its display options or binding commands to it), it is given +a priority higher than any existing tag. +The priority order of tags may be redefined using the +``\fIpathName \f5tag raise\fR'' and ``\fIpathName \f5tag lower\fR'' +widget commands. +.PP +Tags serve three purposes in text widgets. +First, they control the way information is displayed on the screen. +By default, characters are displayed as determined by the +\f5background\fR, \f5font\fR, and \f5foreground\fR options for the +text widget. +However, display options may be associated with individual tags +using the ``\fIpathName \f5tag configure\fR'' widget command. +If a character has been tagged, then the display options associated +with the tag override the default display style. +The following options are currently supported for tags: +.TP +\f5-background \fIcolour\fR +\fIColor\fR specifies the background colour to use for characters +associated with the tag. +.TP +\f5-borderwidth \fIdist\fR +\fIDist\fR specifies the width of a 3-D border to draw around +the background. +This option is used in conjunction with the \f5-relief\fR +option to give a 3-D appearance to the background for characters; +it is ignored unless the \f5-background\fR option +has been set for the tag. +.TP +\f5-font \fIfont\fR +\fIFont\fR is the name of a font to use for drawing characters. +.TP +\f5-foreground \fIcolour\fR +\fIColor\fR specifies the colour to use when drawing text and other +foreground information such as underlines. +.TP +\f5-justify \fIjustify\fR +If the first character of a display line has a tag for which this +option has been specified, then \fIjustify\fR determines how to +justify the line. +It must be one of \f5left\fR, \f5right\fR, or \f5center\fR. +If a line wraps, then the justification for each line on the +display is determined by the first character of that display line. +.TP +\f5-lmargin1 \fIdist\fR +If the first character of a text line has a tag for which this +option has been specified, then \fIdist\fR specifies how +much the line should be indented from the left edge of the +window. +\fIDist\fR may have any of the standard forms for screen +distances. +If a line of text wraps, this option only applies to the +first line on the display; the \f5-lmargin2\fR option controls +the indentation for subsequent lines. +.TP +\f5-lmargin2 \fIdist\fR +If the first character of a display line has a tag for which this +option has been specified, and if the display line is not the +first for its text line (i.e., the text line has wrapped), then +\fIdist\fR specifies how much the line should be indented from +the left edge of the window. +\fIDist\fR may have any of the standard forms for screen +distances. +This option is only used when wrapping is enabled, and it only +applies to the second and later display lines for a text line. +.TP +\f5-offset \fIdist\fR +\fIDist\fR specifies an amount by which the text's baseline +should be offset vertically from the baseline of the overall +line, in pixels. +For example, a positive offset can be used for superscripts +and a negative offset can be used for subscripts. +\fIDist\fR may have any of the standard forms for screen +distances. +.TP +\f5-overstrike \fIboolean\fR +Specifies whether or not to draw a horizontal rule through +the middle of characters. +.TP +\f5-relief \fIrelief\fR +\fIRelief\fR specifies the 3-D relief to use for drawing backgrounds. +This option is used in conjunction with the \f5-borderwidth\fR +option to give a 3-D appearance to the background for characters; +it is ignored unless the \f5-background\fR option +has been set for the tag. +.TP +\f5-rmargin \fIdist\fR +If the first character of a display line has a tag for which this +option has been specified, then \fIdist\fR specifies how wide +a margin to leave between the end of the line and the right +edge of the window. +This option is only used when wrapping is enabled. +If a text line wraps, the right margin for each line on the +display is determined by the first character of that display +line. +.TP +\f5-spacing1 \fIdist\fR +\fIDist\fR specifies how much additional space should be +left above each text line, using any of the standard forms for +screen distances. +If a line wraps, this option only applies to the first +line on the display. +.TP +\f5-spacing2 \fIdist\fR +For lines that wrap, this option specifies how much additional +space to leave between the display lines for a single text line. +\fIDist\fR may have any of the standard forms for screen +distances. +.TP +\f5-spacing3 \fIdist\fR +\fIDist\fR specifies how much additional space should be +left below each text line, using any of the standard forms for +screen distances. +If a line wraps, this option only applies to the last +line on the display. +.TP +\f5-tabs \fItabList\fR +\fITabList\fR specifies a set of tab stops in the same form +as for the \f5-tabs\fR option for the text widget. This +option only applies to a display line if it applies to the +first character on that display line. +If this option is specified as an empty string, it cancels +the option, leaving it unspecified for the tag (the default). +If the option is specified as a non-empty string that is +an empty list, such as \f5-tabs\0{\0}\fR, then it requests +default 8-character tabs as described for the \f5tabs\fR +widget option. +.TP +\f5-underline \fIboolean\fR +\fIBoolean\fR specifies whether or not to draw an underline underneath +characters. +.TP +\f5-wrap \fImode\fR +\fIMode\fR specifies how to handle lines that are wider than the +text's window. +It has the same legal values as the \f5-wrap\fR option +for the text widget: \f5none\fR, \f5char\fR, or \f5word\fR. +If this tag option is specified, it overrides the \f5-wrap\fR option +for the text widget. +.PP +If a character has several tags associated with it, and if their +display options conflict, then the options of the highest priority +tag are used. +If a particular display option hasn't been specified for a +particular tag, or if it is specified as an empty string, then +that option will never be used; the next-highest-priority +tag's option will be used instead. +If no tag specifies a particular display option, then the default +style for the widget will be used. +.PP +The second purpose for tags is event bindings. +You can associate bindings with a tag in much the same way you can +associate bindings with a widget class: whenever particular +events occur on characters with the given tag, a given +Tk command will be executed. +Tag bindings can be used to give behaviours to ranges of characters; +among other things, this allows hypertext-like +features to be implemented. +For details, see the description of the \f5tag bind\fR widget +command below. +.PP +The third use for tags is in managing the selection. +See THE SELECTION below. + +.SH MARKS +The second form of annotation in text widgets is a mark. +Marks are used for remembering particular places in a text. +They are something like tags, in that they have names and +they refer to places in the file, but a mark isn't associated +with particular characters. +Instead, a mark is associated with the gap between two characters. +Only a single position may be associated with a mark at any given +time. +If the characters around a mark are deleted the mark will still +remain; it will just have new neighbour characters. +In contrast, if the characters containing a tag are deleted then +the tag will no longer have an association with characters in +the file. +Marks may be manipulated with the ``\fIpathName \f5mark\fR'' widget +command, and their current locations may be determined by using the +mark name as an index in widget commands. +.PP +Each mark also has a \fIgravity\fR, which is either \f5left\fR or +\f5right\fR. +The gravity for a mark specifies what happens to the mark when +text is inserted at the point of the mark. +If a mark has left gravity, then the mark is treated as if it +were attached to the character on its left, so the mark will +remain to the left of any text inserted at the mark position. +If the mark has right gravity, new text inserted at the mark +position will appear to the right of the mark. The gravity +for a mark defaults to \f5right\fR. +.PP +The name space for marks is different from that for tags: the +same name may be used for both a mark and a tag, but they will refer +to different things. +.PP +Two marks have special significance. +First, the mark \f5insert\fR is associated with the insertion cursor, +as described under THE INSERTION CURSOR below. +Second, the mark \f5current\fR is associated with the character +closest to the mouse and is adjusted automatically to track the +mouse position and any changes to the text in the widget (one +exception: \f5current\fR is not updated in response to mouse +motions if a mouse button is down; the update will be deferred +until all mouse buttons have been released). +Neither of these special marks may be deleted. + +.SH EMBEDDED WINDOWS +The third form of annotation in text widgets is an embedded window. +Each embedded window annotation causes a window to be displayed +at a particular point in the text. +There may be any number of embedded windows in a text widget, +and any widget may be used as an embedded window. +The embedded window's position on the screen will be updated as the +text is modified or scrolled. +Each embedded window occupies one character's worth of index space +in the text widget, and it may be referred to either by the name +of its embedded window or by its position in the widget's +index space. +If the range of text containing the embedded window is deleted and the +window is a child of the text widget then the window is destroyed. +.PP +When an embedded window is added to a text widget with the +\f5window create\fR widget command, several configuration +options may be associated with it. +These options may be modified later with the \f5window configure\fR +widget command. +The following options are currently supported: +.TP +\f5-align \fIwhere\fR +If the window is not as tall as the line in which it is displayed, +this option determines where the window is displayed in the line. +\fIWhere\fR must have one of the values \f5top\fR (align the top of the window +with the top of the line), \f5center\fR (center the window +within the range of the line), \f5bottom\fR (align the bottom of the +window with the bottom of the line's area), +or \f5baseline\fR (align the bottom of the window with the baseline +of the line). +.TP +\f5-padx \fIdist\fR +\fIDist\fR specifies the amount of extra space to leave on +each side of the embedded window. +It may have any of the usual forms defined for a screen distance. +.TP +\f5-pady \fIdist\fR +\fIDist\fR specifies the amount of extra space to leave on +the top and on the bottom of the embedded window. +It may have any of the usual forms defined for a screen distance. +.TP +\f5-stretch \fIboolean\fR +If the requested height of the embedded window is less than the +height of the line in which it is displayed, this option can be +used to specify whether the window should be stretched vertically +to fill its line. +If the \f5-pady\fR option has been specified as well, then the +requested padding will be retained even if the window is +stretched. +.TP +\f5-window \fIpathName\fR +Specifies the name of a window to display in the annotation. + +.SH THE SELECTION +Selection support is implemented via tags. +The \f5sel\fR tag is automatically defined when a text widget is +created, and it may not be deleted with the ``\fIpathName \f5tag delete\fR'' +widget command. Furthermore, the \f5selectbackground\fR, +\f5selectborderwidth\fR, and \f5selectforeground\fR options for +the text widget are tied to the \f5background\fR, +\f5borderwidth\fR, and \f5foreground\fR options for the \f5sel\fR +tag: changes in either will automatically be reflected in the +other. + +.SH THE INSERTION CURSOR +The mark named \f5insert\fR has special significance in text widgets. +It is defined automatically when a text widget is created and it +may not be unset with the ``\fIpathName \f5mark unset\fR'' widget +command. +The \f5insert\fR mark represents the position of the insertion +cursor, and the insertion cursor will automatically be drawn at +this point whenever the text widget has the input focus. + +.SH "WIDGET COMMAND" +The \f5text\fR command creates a new Tk command whose +name is the same as the path name of the text's window. This +command may be used to invoke various +operations on the widget. It has the following general form: +.RS +.EX +\fIpathName option \fR?\fIarg arg ...\fR? +.EE +.RE +\fIPathName\fR is the name of the command, which is the same as +the text widget's path name. \fIOption\fR and the \fIarg\fRs +determine the exact behaviour of the command. The following +commands are possible for text widgets: +.TP +\fIpathName \f5bbox \fIindex\fR +Returns a list of four elements describing the screen area +of the character given by \fIindex\fR. +The first two elements of the list give the x and y coordinates +of the upper-left corner of the area occupied by the +character, and the last two elements give the width and height +of the area. +If the character is only partially visible on the screen, then +the return value reflects just the visible part. +If the character is not visible on the screen then the return +value is an empty list. +.TP +\fIpathName \f5cget\fR \fIoption\fR +Returns the current value of the configuration option given +by \fIoption\fR. +\fIOption\fR may have any of the values accepted by the \f5text\fR +command. +.TP +\fIpathName \f5compare\fR \fIindex1 op index2\fR +Compares the indices given by \fIindex1\fR and \fIindex2\fR according +to the relational operator given by \fIop\fR, and returns 1 if +the relationship is satisfied and 0 if it isn't. +\fIOp\fR must be one of the operators <, <=, ==, >=, >, or !=. +If \fIop\fR is == then 1 is returned if the two indices refer to +the same character, if \fIop\fR is < then 1 is returned if \fIindex1\fR +refers to an earlier character in the text than \fIindex2\fR, and +so on. +.TP +\fIpathName \f5configure\fR ?\fIoption\fR? \fI?value option value ...\fR? +Query or modify the configuration options of the widget. +If no \fIoption\fR is specified, returns a list of all of +the available options for \fIpathName\fR. If +one or more \fIoption-value\fR pairs are specified, then the command +modifies the given widget option(s) to have the given value(s); in +this case the command returns an empty string. +\fIOption\fR may have any of the values accepted by the \f5text\fR +command. +.TP +\fIpathName \f5debug \fR?\fIboolean\fR? +If the value is a true one then internal consistency checks will be +turned on in the code associated with text widgets. +If \fIboolean\fR has a false value then the debugging checks will +be turned off. +In either case the command returns an empty string. +If \fIboolean\fR is not specified then the command returns \f5on\fR +or \f5off\fR to indicate whether or not debugging is turned on. +There is a single debugging switch shared by all text widgets: turning +debugging on or off in any widget turns it on or off for all widgets. +For widgets with large amounts of text, the consistency checks may +cause a noticeable slow-down. +.TP +\fIpathName \f5delete \fIindex1 \fR?\fIindex2\fR? +Delete a range of characters from the text. +If both \fIindex1\fR and \fIindex2\fR are specified, then delete +all the characters starting with the one given by \fIindex1\fR +and stopping just before \fIindex2\fR (i.e. the character at +\fIindex2\fR is not deleted). +If \fIindex2\fR doesn't specify a position later in the text +than \fIindex1\fR then no characters are deleted. +If \fIindex2\fR isn't specified then the single character at +\fIindex1\fR is deleted. +It is not allowable to delete characters in a way that would leave +the text without a newline as the last character. +The command returns an empty string. +.TP +\fIpathName \f5dlineinfo \fIindex\fR +Returns a list with five elements describing the area occupied +by the display line containing \fIindex\fR. +The first two elements of the list give the x and y coordinates +of the upper-left corner of the area occupied by the +line, the third and fourth elements give the width and height +of the area, and the fifth element gives the position of the baseline +for the line, measured down from the top of the area. +All of this information is measured in pixels. +If the current wrap mode is \f5none\fR and the line extends beyond +the boundaries of the window, +the area returned reflects the entire area of the line, including the +portions that are out of the window. +If the line is shorter than the full width of the window then the +area returned reflects just the portion of the line that is occupied +by characters and embedded windows. +If the display line containing \fIindex\fR is not visible on +the screen then the return value is an empty list. +.TP +\fIpathName \f5get \fIindex1 \fR?\fIindex2\fR? +Return a range of characters from the text. +The return value will be all the characters in the text starting +with the one whose index is \fIindex1\fR and ending just before +the one whose index is \fIindex2\fR (the character at \fIindex2\fR +will not be returned). +If \fIindex2\fR is omitted then the single character at \fIindex1\fR +is returned. +If there are no characters in the specified range (e.g. \fIindex1\fR +is past the end of the file or \fIindex2\fR is less than or equal +to \fIindex1\fR) then an empty string is returned. +If the specified range contains embedded windows, no information +about them is included in the returned string. +.TP +\fIpathName \f5index \fIindex\fR +Returns the position corresponding to \fIindex\fR in the form +\fIline.char\fR where \fIline\fR is the line number and \fIchar\fR +is the character number. +\fIIndex\fR may have any of the forms described under INDICES above. +.TP +\fIpathName \f5insert \fIindex chars \fR?\fItagList chars tagList ...\fR? +Inserts all of the \fIchars\fR arguments just before the character at +\fIindex\fR. +If \fIindex\fR refers to the end of the text (the character after +the last newline) then the new text is inserted just before the +last newline instead. +If there is a single \fIchars\fR argument and no \fItagList\fR, then +the new text will receive any tags that are present on both the +character before and the character after the insertion point; if a tag +is present on only one of these characters then it will not be +applied to the new text. +If \fItagList\fR is specified then it consists of a list of +tag names; the new characters will receive all of the tags in +this list and no others, regardless of the tags present around +the insertion point. +If multiple \fIchars\fR-\fItagList\fR argument pairs are present, +they produce the same effect as if a separate \f5insert\fR widget +command had been issued for each pair, in order. +The last \fItagList\fR argument may be omitted. +.TP +\fIpathName \f5mark \fIoption \fR?\fIarg arg ...\fR? +This command is used to manipulate marks. The exact behaviour of +the command depends on the \fIoption\fR argument that follows +the \f5mark\fR argument. The following forms of the command +are currently supported: +.RS +.TP +\fIpathName \f5mark gravity \fImarkName\fR ?\fIdirection\fR? +If \fIdirection\fR is not specified, returns \f5left\fR or \f5right\fR +to indicate which of its adjacent characters \fImarkName\fR is attached +to. +If \fIdirection\fR is specified, it must be \f5left\fR or \f5right\fR; +the gravity of \fImarkName\fR is set to the given value. +.TP +\fIpathName \f5mark names\fR +Returns a list whose elements are the names of all the marks that +are currently set. +.TP +\fIpathName \f5mark next \fIindex\fR +Returns the name of the next mark at or after \fIindex\fR. +If \fIindex\fR is specified in numerical form, then the search for +the next mark begins at that index. +If \fIindex\fR is the name of a mark, then the search for +the next mark begins immediately after that mark. +This can still return a mark at the same position if +there are multiple marks at the same index. +If a mark has been set to the special \f5end\fP index, +then it appears to be \fIafter\fP \f5end\fP with respect to the \f5mark next\fP operation. +An empty string is returned if there are no marks after \fIindex\fP. +.TP +\fIpathName \f5mark previous \fIindex\fR +Returns the name of the mark at or before \fIindex\fR. +If \fIindex\fR is specified in numerical form, then the search for +the previous mark begins with the character just before that index. +If \fIindex\fR is the name of a mark, then the search for +the next mark begins immediately before that mark. +This can still return a mark at the same position if +there are multiple marks at the same index. +An empty string is returned if there are no marks before \fIindex\fR. +.TP +\fIpathName \f5mark set \fImarkName index\fR +Sets the mark named \fImarkName\fR to a position just before the +character at \fIindex\fR. +If \fImarkName\fR already exists, it is moved from its old position; +if it doesn't exist, a new mark is created. +This command returns an empty string. +.TP +\fIpathName \f5mark unset \fImarkName \fR?\fImarkName markName ...\fR? +Remove the mark corresponding to each of the \fImarkName\fR arguments. +The removed marks will not be usable in indices and will not be +returned by future calls to ``\fIpathName \f5mark names\fR''. +This command returns an empty string. +.RE +.TP +\fIpathName \f5scan\fR \fIoption args\fR +This command is used to implement scanning on texts. It has +two forms, depending on \fIoption\fR: +.RS +.TP +\fIpathName \f5scan mark \fIx y\fR +Records \fIx\fR and \fIy\fR and the current view in the text window, +for use in conjunction with later \f5scan dragto\fR commands. +Typically this command is associated with a mouse button press in +the widget. It returns an empty string. +.TP +\fIpathName \f5scan dragto \fIx y\fR +This command computes the difference between its \fIx\fR and \fIy\fR +arguments and the \fIx\fR and \fIy\fR arguments to the last +\f5scan mark\fR command for the widget. +It then adjusts the view by 10 times the difference in coordinates. +This command is typically associated +with mouse motion events in the widget, to produce the effect of +dragging the text at high speed through the window. The return +value is an empty string. +.RE +.TP +\fIpathName \f5search \fR?\fIswitches\fR? \fIpattern index \fR?\fIstopIndex\fR? +Searches the text in \fIpathName\fR starting at \fIindex\fR for a range +of characters that matches \fIpattern\fR. +If a match is found, the index of the first character in the match is +returned as result; otherwise an empty string is returned. +One or more of the following switches +may be specified to control the search: +.RS +.TP +\f5-backwards\fR +The search will proceed backward through the text, finding the +matching range closest to \fIindex\fR whose first character +is before \fIindex\fR. +.TP +\f5-nocase\fR +Ignore case differences between the pattern and the text. +.TP +\f5-\|-\fR +This switch has no effect except to terminate the list of switches: +the next argument will be treated as \fIpattern\fR even if it starts +with \f5-\fR. +.LP +The matching range must be entirely within a single line of text. +If \fIstopIndex\fR is specified, the search stops at that index: +for forward searches, no match at or after \fIstopIndex\fR will +be considered; for backward searches, no match earlier in the +text than \fIstopIndex\fR will be considered. +If \fIstopIndex\fR is omitted, the entire text will be searched: +when the beginning or end of the text is reached, the search +continues at the other end until the starting location is reached +again; if \fIstopIndex\fR is specified, no wrap-around will occur. +.RE +.TP +\fIpathName \f5see \fIindex\fR +Adjusts the view in the window so that the character given by \fIindex\fR +is completely visible. +If \fIindex\fR is already visible then the command does nothing. +If \fIindex\fR is a short distance out of view, the command +adjusts the view just enough to make \fIindex\fR visible at the +edge of the window. +If \fIindex\fR is far out of view, then the command centers +\fIindex\fR in the window. +.TP +\fIpathName \f5tag \fIoption \fR?\fIarg arg ...\fR? +This command is used to manipulate tags. The exact behaviour of the +command depends on the \fIoption\fR argument that follows the +\f5tag\fR argument. The following forms of the command are currently +supported: +.RS +.TP +\fIpathName \f5tag add \fItagName index1 \fR?\fIindex2 index1 index2 ...\fR? +Associate the tag \fItagName\fR with all of the characters starting +with \fIindex1\fR and ending just before +\fIindex2\fR (the character at \fIindex2\fR isn't tagged). +A single command may contain any number of \fIindex1\fR-\fIindex2\fR +pairs. +If the last \fIindex2\fR is omitted then the single character at +\fIindex1\fR is tagged. +If there are no characters in the specified range (e.g. \fIindex1\fR +is past the end of the file or \fIindex2\fR is less than or equal +to \fIindex1\fR) then the command has no effect. +.TP +\fIpathName \f5tag bind \fItagName\fR ?\fIsequence\fR? ?\fIscript\fR? +This command associates \fIscript\fR with the tag given by +\fItagName\fR. +Whenever the event sequence given by \fIsequence\fR occurs for a +character that has been tagged with \fItagName\fR, +the script will be invoked. +This widget command is similar to the \f5bind\fR command except that +it operates on characters in a text rather than entire widgets. +See the \f5bind\fR manual entry for complete details +on the syntax of \fIsequence\fR and the substitutions performed +on \fIscript\fR before invoking it. +If all arguments are specified then a new binding is created, replacing +any existing binding for the same \fIsequence\fR and \fItagName\fR +(if the first character of \fIscript\fR is ``+'' then \fIscript\fR +augments an existing binding rather than replacing it). +In this case the return value is an empty string. +.RS +.PP +The only events for which bindings may be specified are those related +to the mouse and keyboard, such as \f5Enter\fR, \f5Leave\fR, +\f5ButtonPress\fR, \f5Motion\fR, and \f5KeyPress\fR. +Event bindings for a text widget use the \f5current\fR mark +described under MARKS above. +An \f5Enter\fR event triggers for a tag when the tag first +becomes present on the current character, and a \f5Leave\fR +event triggers for a tag when it ceases to be present on +the current character. +\f5Enter\fR and \f5Leave\fR events can happen either because the +\f5current\fR mark moved or because the character at that +position changed. +Note that these events are different than \f5Enter\fR and \f5Leave\fR +events for windows. +Mouse and keyboard events are directed to the current character. +.PP +It is possible for the current character to have multiple tags, +and for each of them to have a binding for a particular event +sequence. +When this occurs, one binding is invoked for each tag, in order +from lowest-priority to highest priority. +If there are multiple matching bindings for a single tag, then +the most specific binding is chosen (see the manual entry for +the \f5bind\fR command for details). +.PP +If bindings are created for the widget as a whole using the +\f5bind\fR command, then those bindings will supplement the +tag bindings. +The tag bindings will be invoked first, followed by bindings +for the window as a whole. +.RE +.TP +\fIpathName \f5tag cget\fR \fItagName option\fR +This command returns the current value of the option named \fIoption\fR +associated with the tag given by \fItagName\fR. +\fIOption\fR may have any of the values accepted by the \f5tag configure\fR +widget command. +.TP +\fIpathName \f5tag configure \fItagName\fR ?\fIoption\fR? ?\fIvalue\fR? ?\fIoption value ...\fR? +This command is similar to the \f5configure\fR widget command except +that it modifies options associated with the tag given by \fItagName\fR +instead of modifying options for the overall text widget. +If one or more \fIoption-value\fR pairs are specified, then the command +modifies the given option(s) to have the given value(s) in \fItagName\fR. +See TAGS above for details on the options available for tags. +.TP +\fIpathName \f5tag delete \fItagName \fR?\fItagName ...\fR? +Deletes all tag information for each of the \fItagName\fR +arguments. +The command removes the tags from all characters in the file +and also deletes any other information associated with the tags, +such as bindings and display information. +The command returns an empty string. +.TP +\fIpathName\f5 tag lower \fItagName \fR?\fIbelowThis\fR? +Changes the priority of tag \fItagName\fR so that it is just lower +in priority than the tag whose name is \fIbelowThis\fR. +If \fIbelowThis\fR is omitted, then \fItagName\fR's priority +is changed to make it lowest priority of all tags. +.TP +\fIpathName \f5tag names \fR?\fIindex\fR? +Returns a list whose elements are the names of all the tags that +are active at the character position given by \fIindex\fR. +If \fIindex\fR is omitted, then the return value will describe +all of the tags that exist for the text (this includes all tags +that have been named in a ``\fIpathName \f5tag\fR'' widget +command but haven't been deleted by a ``\fIpathName \f5tag delete\fR'' +widget command, even if no characters are currently marked with +the tag). +The list will be sorted in order from highest priority to lowest +priority. +.TP +\fIpathName \f5tag nextrange \fItagName index1 \fR?\fIindex2\fR? +This command searches the text for a range of characters tagged +with \fItagName\fR where the first character of the range is +no earlier than the character at \fIindex1\fR and no later than +the character just before \fIindex2\fR (a range starting at +\fIindex2\fR will not be considered). +If several matching ranges exist, the first one is chosen. +The command's return value is a list containing +two elements, which are the index of the first character of the +range and the index of the character just after the last one in +the range. +If no matching range is found then the return value is an +empty string. +If \fIindex2\fR is not given then it defaults to the end of the text. +.TP +\fIpathName \f5tag prevrange \fItagName index1 \fR?\fIindex2\fR? +This command searches the text for a range of characters tagged +with \fItagName\fR where the first character of the range is +before the character at \fIindex1\fR and no earlier than +the character at \fIindex2\fR (a range starting at +\fIindex2\fR will be considered). +If several matching ranges exist, the one closest to \fIindex1\fR is chosen. +The command's return value is a list containing +two elements, which are the index of the first character of the +range and the index of the character just after the last one in +the range. +If no matching range is found then the return value is an +empty string. +If \fIindex2\fR is not given then it defaults to the beginning of the text. +.TP +\fIpathName\f5 tag raise \fItagName \fR?\fIaboveThis\fR? +Changes the priority of tag \fItagName\fR so that it is just higher +in priority than the tag whose name is \fIaboveThis\fR. +If \fIaboveThis\fR is omitted, then \fItagName\fR's priority +is changed to make it highest priority of all tags. +.TP +\fIpathName \f5tag ranges \fItagName\fR +Returns a list describing all of the ranges of text that have been +tagged with \fItagName\fR. +The first two elements of the list describe the first tagged range +in the text, the next two elements describe the second range, and +so on. +The first element of each pair contains the index of the first +character of the range, and the second element of the pair contains +the index of the character just after the last one in the +range. +If there are no characters tagged with \fItag\fR then an +empty string is returned. +.TP +\fIpathName \f5tag remove \fItagName index1 \fR?\fIindex2 index1 index2 ...\fR? +Remove the tag \fItagName\fR from all of the characters starting +at \fIindex1\fR and ending just before +\fIindex2\fR (the character at \fIindex2\fR isn't affected). +A single command may contain any number of \fIindex1\fR-\fIindex2\fR +pairs. +If the last \fIindex2\fR is omitted then the single character at +\fIindex1\fR is tagged. +If there are no characters in the specified range (e.g. \fIindex1\fR +is past the end of the file or \fIindex2\fR is less than or equal +to \fIindex1\fR) then the command has no effect. +This command returns an empty string. +.RE +.TP +\fIpathName \f5window \fIoption \fR?\fIarg arg ...\fR? +This command is used to manipulate embedded windows. +The behaviour of the command depends on the \fIoption\fR argument +that follows the \f5window\fR argument. +The following forms of the command are currently supported: +.RS +.TP +\fIpathName \f5window cget\fR \fIindex option\fR +Returns the value of a configuration option for an embedded window. +\fIIndex\fR identifies the embedded window, and \fIoption\fR +specifies a particular configuration option, which must be one of +the ones listed in the section EMBEDDED WINDOWS. +.TP +\fIpathName \f5window configure \fIindex\fR ?\fIoption value ...\fR? +Query or modify the configuration options for an embedded window. +If one or more \fIoption-value\fR pairs are specified, then the command +modifies the given option(s) to have the given value(s). +See EMBEDDED WINDOWS for information on the options that +are supported. +.TP +\fIpathName \f5window create \fIindex\fR ?\fIoption value ...\fR? +This command creates a new window annotation, which will appear +in the text at the position given by \fIindex\fR. +Any number of \fIoption-value\fR pairs may be specified to +configure the annotation. +See EMBEDDED WINDOWS for information on the options that +are supported. +Returns an empty string. +.TP +\fIpathName \f5window names\fR +Returns a list whose elements are the names of all windows currently +embedded in \fIwindow\fR. +.RE +.TP +\fIpathName \f5xview \fIoption args\fR +This command is used to query and change the horizontal position of the +text in the widget's window. It can take any of the following +forms: +.RS +.TP +\fIpathName \f5xview\fR +Returns a list containing two elements. +Each element is a real fraction between 0 and 1; together they describe +the portion of the document's horizontal span that is visible in +the window. +For example, if the first element is .2 and the second element is .6, +20% of the text is off-screen to the left, the middle 40% is visible +in the window, and 40% of the text is off-screen to the right. +The fractions refer only to the lines that are actually visible in the +window: if the lines in the window are all very short, so that they +are entirely visible, the returned fractions will be 0 and 1, +even if there are other lines in the text that are +much wider than the window. +These are the same values passed to scrollbars via the \f5-xscrollcommand\fR +option. +.TP +\fIpathName \f5xview moveto\fI fraction\fR +Adjusts the view in the window so that \fIfraction\fR of the horizontal +span of the text is off-screen to the left. +\fIFraction\fR is a fraction between 0 and 1. +.TP +\fIpathName \f5xview scroll \fInumber what\fR +This command shifts the view in the window left or right according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts left or right by +\fInumber\fR average-width characters on the display; if it is +\f5pages\fR then the view adjusts by \fInumber\fR screenfuls. +If \fInumber\fR is negative then characters farther to the left +become visible; if it is positive then characters farther to the right +become visible. +.RE +.TP +\fIpathName \f5yview \fI?args\fR? +This command is used to query and change the vertical position of the +text in the widget's window. +It can take any of the following forms: +.RS +.TP +\fIpathName \f5yview\fR +Returns a list containing two elements, both of which are real fractions +between 0 and 1. +The first element gives the position of the first character in the +top line in the window, relative to the text as a whole (0.5 means +it is halfway through the text, for example). +The second element gives the position of the character just after +the last one in the bottom line of the window, +relative to the text as a whole. +These are the same values passed to scrollbars via the \f5-yscrollcommand\fR +option. +.TP +\fIpathName \f5yview moveto\fI fraction\fR +Adjusts the view in the window so that the character given by \fIfraction\fR +appears on the top line of the window. +\fIFraction\fR is a fraction between 0 and 1; 0 indicates the first +character in the text, 0.33 indicates the character one-third the +way through the text, and so on. +.TP +\fIpathName \f5yview scroll \fInumber what\fR +This command adjust the view in the window up or down according to +\fInumber\fR and \fIwhat\fR. +\fINumber\fR must be an integer. +\fIWhat\fR must be either \f5units\fR or \f5pages\fR. +If \fIwhat\fR is \f5units\fR, the view adjusts up or down by +\fInumber\fR lines on the display; if it is \f5pages\fR then +the view adjusts by \fInumber\fR screenfuls. +If \fInumber\fR is negative then earlier positions in the text +become visible; if it is positive then later positions in the text +become visible. +.TP +\fIpathName \f5yview \fR?\f5-pickplace\fR? \fIindex\fR +Changes the view in the widget's window to make \fIindex\fR visible. +If the \f5-pickplace\fR option isn't specified then \fIindex\fR will +appear at the top of the window. +If \f5-pickplace\fR is specified then the widget chooses where +\fIindex\fR appears in the window: +.RS +.IP [1] +If \fIindex\fR is already visible somewhere in the window then the +command does nothing. +.IP [2] +If \fIindex\fR is only a few lines off-screen above the window then +it will be positioned at the top of the window. +.IP [3] +If \fIindex\fR is only a few lines off-screen below the window then +it will be positioned at the bottom of the window. +.IP [4] +Otherwise, \fIindex\fR will be centered in the window. +.LP +The \f5-pickplace\fR option has been made obsolete by the \f5see\fR widget +command (\f5see\fR handles both x- and y-motion to make a location +visible, whereas \f5-pickplace\fR only handles motion in y). +.RE +.RE + +.SH BINDINGS +Tk automatically creates bindings for texts that give them +the following default behaviour. +In the descriptions below, ``word'' refers to a contiguous group +of letters, digits, or ``_'' characters, or any single character +other than these. +.IP [1] +Clicking mouse button 1 positions the insertion cursor +just before the character underneath the mouse cursor, sets the +input focus to this widget, and clears any selection in the widget. +Dragging with mouse button 1 strokes out a selection between +the insertion cursor and the character under the mouse. +.IP [2] +Double-clicking with mouse button 1 selects the word under the mouse +and positions the insertion cursor at the beginning of the word. +Dragging after a double click is ignored. +.IP [3] +If any normal printing characters are typed, they are +inserted at the point of the insertion cursor, replacing the +current selection. +.IP [4] +If the mouse is dragged out of the widget +while button 1 is pressed, the entry will automatically scroll to +make more text visible (if there is more text off-screen on the side +where the mouse left the window). +.IP [5] +The Left and Right keys move the insertion cursor one character to the +left or right; they also clear any selection in the text. +Control-b and Control-f behave the same as Left and Right, respectively. +.IP [6] +The Up and Down keys move the insertion cursor one line up or +down and clear any selection in the text. +Control-p and Control-n behave the same as Up and Down, respectively. +.IP [7] +The Page-up and Page-down keys move the view up or down +one screenful without moving the insertion cursor or adjusting the selection. +IControl-v behaves the same as Page-down. +.IP [8] +Home, Control-a and Control-< move the insertion cursor to the +beginning of its line and clear any selection in the widget. +.IP [9] +End, Control-e and Control-> move the insertion cursor to the +end of the line and clear any selection in the widget. +.IP [10] +The Delete key deletes the selection, if there is one in the widget. +If there is no selection, it deletes the character to the right of +the insertion cursor. +.IP [11] +Backspace and Control-h delete the selection, if there is one +in the widget. +If there is no selection, they delete the character to the left of +the insertion cursor. +.IP [12] +Control-d deletes the character to the right of the insertion cursor. +.IP [13] +Control-k deletes from the insertion cursor to the end of its line; +if the insertion cursor is already at the end of a line, then +Control-k deletes all of the next line. +.IP [14] +Control-o opens a new line by inserting a newline character in +front of the insertion cursor without moving the insertion cursor. +.IP [15] +Control-u deletes from the insertion cursor to the start of its line; +if the insertion cursor is already at the start of the line, then +the current line is joined with the previous one. +.IP [16] +Control-w deletes from the insertion cursor to the start of the word +that contains it; +if the insertion cursor is at the start of the line, then +the current line is joined with the previous one. +.PP +If the widget is disabled using the \f5-state\fR option, then its +view can still be adjusted and text can still be selected, +but no insertion cursor will be displayed and no text modifications will +take place. +.PP +The behaviour of texts can be changed by defining new bindings for +individual widgets. +.SH BUGS +Tab alignment doesn't work correctly. +.PP +The \f5-stretch\fR option on embedded windows is not implemented. +.SH SEE ALSO +.IR entry (9), +.IR options (9), +.IR types (9) diff --git a/static/inferno/man9/types.9 b/static/inferno/man9/types.9 new file mode 100644 index 00000000..33346c15 --- /dev/null +++ b/static/inferno/man9/types.9 @@ -0,0 +1,147 @@ +.TH TYPES 9 +.SH NAME +types \- Standard types required by widget options. +.SH DESCRIPTION +This manual entry describes the the standard types +that can be given as arguments to Inferno Tk widget +options. When an option is documented, the type +of argument that it accepts is either documented +there, or the name of the argument refers to one of the +names documented below. +.TP +.I anchorPos +One of the values \f5n\fR, \f5ne\fR, \f5e\fR, \f5se\fR, +\f5s\fR, \f5sw\fR, \f5w\fR, \f5nw\fR, or \f5center\fR. +See +.B -anchor +in +.IR options (9). +.TP +.I boolean +A true or false value, one of the following: +\f50\fP, \f5no\fP, \f5off\fP, +\f5false\fP (false), +\f51\fP, \f5yes\fP, \f5on\fP, +\f5true\fP (true). +.TP +.I bitmap +Identifies an image which can be drawn, or used as a mask +through which something else is drawn. If +.I bitmap +begins with a +.RB ` @ ', +the remaining characters must be the path name of +an Inferno image file. If +.I bitmap +begins with the character +.RB ` < ', +the remaining characters must be a decimal integer +giving the file descriptor number of an open file (see +.IR sys-open (2)) +from which the bitmap can be loaded. Otherwise, +.I bitmap +should be the name of a bitmap file in the directory +.BR /icons/tk . +.TP +.I color +A +.I color +parameter can be a colour name or an RGB (red, green and blue +luminance) value. The colour names recognized are: +.EX + aqua yellow red teal white + fuchsia black blue darkblue transparent + maroon gray green lime + purple navy olive orange +.EE +For RGB values, either +.BI # rgb +or +.BI # rrggbb +can be used, where +.IR r , +.IR rr , +etc. are hexadecimal values for the corresponding colour +components. +The notation +.BI #rrggbbaa +can be used to describe a colour with alpha (transparency) component +.IR aa ; +the +.IR rr , +.IR gg , +and +.IR bb +values should be pre-multiplied appropriately. This is the +canonical form for colour values. Alternatively, transparency +can be applied to any other colour using a suffix +.BI * alpha +where +.I alpha +is either +.BI #aa +(two hex digits representing an alpha value between 0 and 255) +or +.I f +(a decimal fixed point number between 0 and 1). +For example, +.B red*0.5 +gives half transparent red; +.B #007f007f*#7f +gives 0.75 transparent green (canonically +.B #003f003f). +.TP +.I dist +.I Dist +specifies a distance on the screen, in the following form: +an optional minus sign +.RB ( - ), +then one or more decimal digits (with possible +embedded decimal point), then an optional units +specifier. The unit specifiers are the following: +.RS +.TP +.B c +centimetres +.TP +.B m +millimetres +.TP +.B i +inches +.TP +.B p +points (1/72th inch) +.TP +.B h +height of widget's font (only applicable if the widget +has an associated font, and if the font has previously been set). +.TP +.B w +width of the zero +.RB ( 0 ) +character in widget's font. (see above). +.TP +Measurements are converted into pixels assuming 100 dots +per inch on an average CRT display. +.RE +.TP +.I font +A +.I font +parameter gives the full path name of an Inferno font file; +for example, +.BR /fonts/pelm/unicode.9.font . +.TP +.I frac +A numeric, possibly fractional, value. +.TP +.I relief +One of \f5raised\fR, \f5sunken\fR, \f5flat\fR, \f5ridge\fR, +or \f5groove\fR. See +.B -relief +in +.IR options (9). +.SH SEE ALSO +.IR intro (9), +.IR options (9) diff --git a/static/inferno/man9/update.9 b/static/inferno/man9/update.9 new file mode 100644 index 00000000..7428e60c --- /dev/null +++ b/static/inferno/man9/update.9 @@ -0,0 +1,24 @@ +.TH UPDATE 9 +.SH NAME +update \- flush graphics +.SH SYNOPSIS +\f5update\fP ?\fIoptions\fP? +.SH DESCRIPTION +Changes made via Tk commands do not become +visible until a call to +.BR update . +.B Update +flushes any pending changes to the screen. +The following options are supported: +.TP +\f5-disable\fP +If this option is given, all updates are disabled. +This is useful to enable a program to +stop mouse movement causing +automatic updates while it is making changes to the window. +.TP +\f5-enable\fP +This reverses a previous \f5update -enable\fP invocation. +.PP +.SH BUGS +Changes that affect window sizes are visible immediately. diff --git a/static/inferno/man9/variable.9 b/static/inferno/man9/variable.9 new file mode 100644 index 00000000..9b954f22 --- /dev/null +++ b/static/inferno/man9/variable.9 @@ -0,0 +1,25 @@ +.TH VARIABLE 9 +.SH NAME +variable \- interrogate a button variable +.SH SYNOPSIS +\f5variable \fIvar\fR ?\fIvalue\fR? +.SH DESCRIPTION +.B Variable +queries or sets the value of a Tk radiobutton, checkbutton or choicebutton variable. +An error diagnostic will be returned if +the variable is of the wrong type (if for instance +it is the name of a named channel). +.PP +If \fIvalue\fR is given, the value of the variable is set +to that value, and any associated buttons +will subsequently reflect this in their appearance. +Omitting the \fIvalue\fR argument returns the current value of the variable. +.PP +The special variable +.B lasterror +holds the text of the last Tk error encountered. +It resets when queried. +.SH SEE ALSO +.IR checkbutton (9), +.IR choicebutton (9), +.IR radiobutton (9) diff --git a/static/plan9-4e/Makefile b/static/plan9-4e/Makefile new file mode 100644 index 00000000..6c84e472 --- /dev/null +++ b/static/plan9-4e/Makefile @@ -0,0 +1,13 @@ +SUBDIRS = man1 \ + man2 \ + man3 \ + man4 \ + man5 \ + man6 \ + man7 \ + man8 + +export OS="Plan9 4th Edition" + +include ../subdir.mk + diff --git a/static/plan9-4e/man1/0intro.1 b/static/plan9-4e/man1/0intro.1 new file mode 100644 index 00000000..dd69caa4 --- /dev/null +++ b/static/plan9-4e/man1/0intro.1 @@ -0,0 +1,398 @@ +.TH INTRO 1 +.SH NAME +intro \- introduction to Plan 9 +.SH DESCRIPTION +Plan 9 is a distributed computing environment assembled from +separate machines acting as terminals, +CPU servers, and file servers. +A user works at a terminal, running a window system on a raster display. +Some windows are connected to CPU servers; the intent is that heavy computing +should be done in those windows but it is also possible to compute on the terminal. +A separate file server provides file storage for terminals and +CPU servers alike. +.SS Name Spaces +In Plan 9, almost all objects look like files. +The object retrieved by a given name is determined by a mapping called the +.IR name space . +A quick tour of the standard name space is in +.IR namespace (4). +Every program running in Plan 9 belongs to a +.I process group +(see +.I rfork +in +.IR fork (2)), +and the name space for each process group can be independently +customized. +.PP +A name space is hierarchically structured. +A full file name (also called a +.IR "full path name" ) +has the form +.IP +.RI / e1 / e2 /.../ en +.PP +This represents an object in a tree of files: the tree has a root, +represented by the first +.LR / ; +the root has a child file named +.IR e1 , +which in turn has child +.IR e2 , +and so on; the descendent +.I en +is the object represented by the path name. +.PP +There are a number of Plan 9 +.I services +available, each of which provides a tree of files. +A name space is built by +.I binding +services (or subtrees of services) to names in the name-space-so-far. +Typically, a user's home file server is bound to the root of the name space, +and other services are bound to conventionally named subdirectories. +For example, there is a service resident in the operating system for accessing +hardware devices and that is bound to +.B /dev +by convention. +Kernel services have names (outside the name space) that are a +.L # +sign followed by a single letter; +for example, +.B #c +is conventionally bound to +.BR /dev . +.PP +Plan 9 has +.IR "union directories" : +directories made of several directories all bound to the +same name. +The directories making up a union directory are ordered in a list. +When the bindings are made +(see +.IR bind (1)), +flags specify whether a newly bound member goes at the head or the tail of the list +or completely replaces the list. +To look up a name in a union directory, each member directory is searched +in list order until the name is found. +A bind +flag specifies whether file creation is allowed in a member directory: +a file created in the union directory goes in +the first member directory in list order that allows creation, if any. +.PP +The glue that holds Plan 9 together is a network protocol called +.IR 9P , +described in section 5 of this manual. +All Plan 9 servers read and respond to 9P requests to navigate through +a file tree and to perform operations such as reading and writing +files within the tree. +.SS Booting +When a terminal is powered on or reset, +it must be told the name of a file server to boot from, +the operating system kernel to boot, +and a user name and password. +How this dialog proceeds is environment- and machine-dependent. +Once it is complete, +the terminal loads a Plan 9 kernel, +which sets some environment variables (see +.IR env (3)) +and builds an initial name space. +See +.IR namespace (4), +.IR boot (8), +and +.IR init (8) +for details, but some important aspects of the initial name space are: +.IP \(bu +The environment variable +.B $cputype +is set to the name of the kernel's CPU's architecture: one of +.BR alpha , +.BR mips , +.BR sparc , +.B power +(Power PC), +.BR 386 +(386, 486, Pentium, ...) +etc. +The environment variable +.B $objtype +is initially the same as +.BR $cputype . +.IP \(bu +The environment variable +.B $terminal +is set to a description of the machine running the kernel, +such as +.BR "generic pc" . +Sometimes the middle word of +.B $terminal +encodes the file from which the kernel is booted; +e.g. +.B "alpha apc axp +is bootstrapped from +.BR /alpha/bapc . +.IP \(bu +The environment variable +.B $service +is set to +.BR terminal . +(Other ways of accessing Plan 9 may set +.B $service +to one of +.BR cpu , +.BR con , +or +.BR rx .) +.IP \(bu +The environment variable +.B $user +is set to the name of the user who booted the terminal. +The environment variable +.B $home +is set to that user's home directory. +.IP \(bu +.B /$cputype/bin +and +.B /rc/bin +are unioned into +.BR /bin . +.PD +.PP +After booting, the terminal runs the command interpreter, +.IR rc (1), +on +.B /usr/$user/lib/profile +after moving to the user's home directory. +.PP +Here is a typical profile: +.IP +.EX +bind -a $home/bin/rc /bin +bind -a $home/bin/$cputype /bin +bind -c $home/tmp /tmp +font = /lib/font/bit/pelm/euro.9.font +upas/fs +switch($service){ +case terminal + plumber + prompt=('term% ' ' ') + exec rio -f $font +case cpu + bind /mnt/term/dev/cons /dev/cons + bind /mnt/term/dev/consctl /dev/consctl + bind -a /mnt/term/mnt/wsys /dev + prompt=('cpu% ' ' ') + news +case con + prompt=('cpu% ' ' ') + news +} +.EE +.PD +.PP +The first three lines replace +.B /tmp +with a +.B tmp +in the user's home directory +and union personal +.B bin +directories with +.BR /bin , +to be searched after the standard +.B bin +directories. +The next starts the mail file system; see +.IR mail (1). +Then different things happen, depending on the +.B $service +environment variable, +such as running the window system +.IR rio (1) +on a terminal. +.PP +To do heavy work such as compiling, the +.IR cpu (1) +command connects a window to a CPU server; +the same environment variables are set (to different values) +and the same profile is run. +The initial directory is the current directory in the terminal window +where +.I cpu +was typed. +The value of +.B $service +will be +.BR cpu , +so the second arm of the profile switch is executed. +The root of the terminal's name space is accessible through +.BR /mnt/term , +so the +.I bind +is a way of making the window system's graphics interface (see +.IR draw (3)) +available to programs running on the CPU server. +The +.IR news (1) +command reports current Plan 9 affairs. +.PP +The third possible service type, +.BR con , +is set when the CPU server is called from a non-Plan-9 machine, +such as through +.I telnet +(see +.IR con (1)). +.SS Using Plan 9 +The user commands of Plan 9 are reminiscent of those in Research Unix, version 10. +There are a number of differences, however. +.PP +The standard shell is +.IR rc (1), +not the Bourne shell. +The most noticeable differences appear only when programming and macro processing. +.PP +The character-delete character is backspace, and the line-kill character is +control-U; these cannot be changed. +.PP +DEL is the interrupt character: typing it sends an interrupt to processes running in that window. +See +.IR keyboard (6) +for instructions on typing characters like DEL on the various keyboards. +.PP +If a program dies with something like an address error, it enters a `Broken' +state. It lingers, available for debugging with +.IR db (1) +or +.IR acid (1). +.I Broke +(see +.IR kill (1)) +cleans up broken processes. +.PP +The standard editor is one of +.IR acme (1) +or +.IR sam (1). +There is a variant of +.I sam +that permits running the file-manipulating part of +.I sam +on a non-Plan-9 system: +.IP +.EX +sam -r tcp!kremvax +.EE +.PP +For historical reasons, +.I sam +uses a tab stop setting of 8 spaces, while the other editors and window systems use 4 spaces. +These defaults can be overridden by setting the value of the environment variable +.B $tabstop +to the desired number of spaces per tab. +.PP +Machine names may be prefixed by the network name, +here +.BR tcp ; +.B il +for the Plan 9 Internet protocol and +.B net +for the system default. +.PP +Login connections and remote execution on non-Plan-9 machines are usually +done by saying, for example, +.IP +.EX +con kremvax +.EE +.PP +or +.IP +.EX +rx deepthought chess +.EE +.PP +(see +.IR con (1)). +.PP +.I 9fs +connects to file systems of remote systems +(see +.IR srv (4)). +For example, +.IP +.EX +9fs kremvax +.EE +.PP +sets things up so that the root of +.BR kremvax 's +file tree is visible locally in +.BR /n/kremvax . +.PP +.IR Faces (1) +gives graphical notification of arriving mail. +.PP +The Plan 9 file server has an integrated backup facility. +The command +.IP +.EX +9fs dump +.EE +.PP +binds to +.B /n/dump +a tree containing the daily backups on the file server. +The dump tree has years as top level file names, and month-day +as next level file names. +For example, +.B /n/dump/2000/0120 +is the root of the file system as it appeared at dump time on +January 20, 2000. +If more than one dump is taken on the same day, dumps after +the first have an extra digit. +To recover the version of this file as it was on June 15, 1999, +.IP +.EX +cp /n/dump/1999/0615/sys/man/1/0intro . +.EE +.PP +or use +.IR yesterday (1). +.SH SEE ALSO +This section for general publicly accessible commands. +.br +Section (2) for library functions, including system calls. +.br +Section (3) for kernel devices (accessed via +.IR bind (1)). +.br +Section (4) for file services (accessed via +.IR mount ). +.br +Section (5) for the Plan 9 file protocol. +.br +Section (6) for file formats. +.br +Section (7) for databases and database access programs. +.br +Section (8) for things related to administering Plan 9. +.br +.B /sys/doc +for copies of papers referenced in this manual. +.PP +The back of this volume has a permuted index to aid searches. +.SH DIAGNOSTICS +Upon termination each program returns a string called the +.IR "exit status" . +It was either supplied by a call to +.IR exits (2) +or was written to the command's +.BI /proc/ pid /note +file +(see +.IR proc (3)), +causing an abnormal termination. +The empty string is customary for successful execution; +a non-empty string gives a clue to the failure of the command. diff --git a/static/plan9-4e/man1/2a.1 b/static/plan9-4e/man1/2a.1 new file mode 100644 index 00000000..30d3e076 --- /dev/null +++ b/static/plan9-4e/man1/2a.1 @@ -0,0 +1,55 @@ +.TH 2A 1 +.SH NAME +0a, 1a, 2a, 4a, 5a, 6a, 7a, 8a, 9a, ka, qa, va, xa \- assemblers +.SH SYNOPSIS +.B 2a +[ +.I option ... +] +[ +.I name ... +] +.br +etc. +.SH DESCRIPTION +These programs +assemble the named files into object files +for the corresponding architectures; see +.IR 2c (1) +for the correspondence between an architecture and the character +.RB ( 0 , +.RB 1 , +etc.) that specifies it. +The assemblers handle the most common C preprocessor directives and the associated +command-line options +.BR -D +and +.BR -I . +Other options are: +.TP +.BI -o " obj" +Place output in file +.I obj +(allowed only if there is just one input file). +Default is to take the last element of the input path name, +strip any trailing +.BR .s , +and append +.RI . O , +where +.I O +is first letter of the assembler's name. +.SH FILES +The directory +.B /sys/include +is searched for include files after +machine-dependent files in +.BR /$objtype/include . +.SH SOURCE +.BR /sys/src/cmd/2a , +etc. +.SH SEE ALSO +.IR 2c (1), +.IR 2l (1). +.PP +Rob Pike, ``A manual for the Plan 9 assembler'' diff --git a/static/plan9-4e/man1/2c.1 b/static/plan9-4e/man1/2c.1 new file mode 100644 index 00000000..4be23f5e --- /dev/null +++ b/static/plan9-4e/man1/2c.1 @@ -0,0 +1,398 @@ +.TH 2C 1 +.SH NAME +0c, 1c, 2c, 4c, 5c, 6c, 7c, 8c, 9c, kc, qc, vc, xc \- C compilers +.SH SYNOPSIS +.B 2c +[ +.I option ... +] +[ +.I file ... +] +.br +etc. +.SH DESCRIPTION +These commands compile the named C +.I files +into object files for the corresponding architecture. +Associated with each compiler is a string +.IR objtype : +.TP 1.5i +.B "0c spim +little-endian MIPS 4000 family +.TP +.B "1c 68000 +Motorola MC68000 +.TP +.B "2c 68020 +Motorola MC68020 +.TP +.B "4c mips2 +big-endian MIPS 4000 family +.TP +.B "5c arm +ARM 7500 +.TP +.B "6c 960 +Intel i960 +.TP +.B "7c alpha +Digital Alpha APX +.TP +.B "8c 386 +Intel i386, i486, Pentium, etc. +.TP +.B "9c 29000 +AMD 29000 family +.TP +.B "kc sparc +Sun SPARC +.TP +.B "qc power +Power PC, +.TP +.B "vc mips +big-endian MIPS 3000 family +.TP +.B "xc 3210 +AT&T DSP 3210. +.PP +The compilers handle most preprocessing directives themselves; a complete +preprocessor is available in +.IR cpp (1), +which must be run separately. +.PP +Let the first letter of the compiler name be +.IR O = +.BR 0 , +.BR 1 , +.BR 2 , +.BR 4 , +.BR 5 , +.BR 6 , +.BR 7 , +.BR 8 , +.BR 9 , +.BR k , +.BR q , +.BR v , +or +.BR x . +The output object files end in +.RI . O . +The letter is also the prefix of related programs: +.IB O a +is the assembler, +.IB O l +is the loader. +Plan 9 conventionally sets the +.B $objtype +environment variable to the +.I objtype +string appropriate to the current machine's type. +Plan 9 also conventionally has +.RI / objtype +directories, which contain among other things: +.BR include , +for machine-dependent include files; +.BR lib , +for public object code libraries; +.BR bin , +for public programs; +and +.BR mkfile , +for preconditioning +.IR mk (1). +.PP +The compiler options are: +.TP 1i +.BI -o " obj" +Place output in file +.I obj +(allowed only if there is just one input file). +Default is to take the last element of the input file name, +strip any trailing +.BR .c , +and append +.RI . O . +.TP +.B -w +Print warning messages about unused variables, etc. +.TP +.B -B +Accept functions without a new-style +ANSI C function prototype. +By default, the compilers reject functions +used without a defined prototype, +although ANSI C permits them. +.TP +.BI -D\*S name=def +.br +.ns +.TP +.BI -D \*Sname +Define the +.I name +to the preprocessor, +as if by +.LR #define . +If no definition is given, the name is defined as +.LR 1 . +.TP +.BI -F +Enable type-checking of calls to +.IR print (2) +and other formatted print routines. See the discussion +of extensions, below. +.TP +.BI -I \*Sdir +An +.L #include +file whose name does not begin with +slash +or is enclosed in double quotes +is always +sought first in the directory +of the +.I file +argument. If this fails, or the name is enclosed in +.BR <> , +it is then sought +in directories named in +.B -I +options, +then in +.BR /sys/include , +and finally in +.BR /$objtype/include . +.TP +.B -N +Suppress automatic registerization and optimization. +.TP +.B -S +Print an assembly language version of the object code +on standard output as well as generating the +.RI . O +file. +.TP +.B -V +By default, the compilers are non-standardly lax about type equality between +.B void* +values and other pointers; this flag requires ANSI C conformance. +.TP +.B -p +Invoke a standard ANSI C preprocessor before compiling. +.TP +.B -a +Instead of compiling, print on standard output acid functions (see +.IR acid (1)) +for examining structures declared in the source files. +.TP +.B -aa +Like +.B -a +except suppress information about structures +declared in included header files. +.PP +The compilers support several extensions to ANSI C: +.TP +\- +A structure or union may contain unnamed substructures and subunions. +The fields of the substructures or +subunions can then be used as if they were members of the parent +structure or union (the resolution of a name conflict is unspecified). +When a pointer to the outer structure or union is used in a context +that is only legal for the unnamed substructure, the compiler promotes +the type and adjusts the pointer value to point at the substructure. +If the unnamed structure or union is of a type with a tag name specified by a +.B typedef +statement, +the unnamed structure or union can be explicitly referenced +by .. +.TP +\- +A structure value can be formed with an expression such as +.EX + (struct S){v1, v2, v3} +.EE +where the list elements are values for the fields of struct +.BR S . +.TP +\- +Array initializers can specify the indices of the array in square +brackets, as +.EX + int a[] = { [3] 1, [10] 5 }; +.EE +which initializes the third and tenth elements of the eleven-element array +.BR a . +.TP +\- +Structure initializers can specify the structure element by using the name +following a period, as +.EX + int struct { int x; int y; } s = { .y 1, .x 5 }; +.EE +which initializes elements +.B y +and then +.B x +of the structure +.BR s . +These forms also accept the new ANSI C notation, which includes an equal sign: +.EX + int a[] = { [3] = 1, [10] = 5 }; + int struct { int x; int y; } s = { .y = 1, .x = 5 }; +.EE +.TP +\- +A global variable can be dedicated to a register +by declaring it +.B "extern register" +in +.I all +modules and libraries. +.TP +\- +A +.B #pragma +of the form +.EX + #pragma lib "libbio.a" +.EE +records that the program needs to be loaded with file +.BR /$objtype/lib/libbio.a ; +such lines, typically placed in library header files, obviate the +.B -l +option of the loaders. To help identify files in non-standard directories, +within the file names in the +.B #pragmas +the string +.B $M +represents the name of the architecture +(e.g., +.BR mips ) +and +.B $O +represents its identifying character +(e.g., +.BR v ). +.TP +\- +A +.B #pragma +of the form +.EX + #pragma varargck argpos error 2 +.EE +tells the compiler that the second argument to +.B error +is a +.BR print -like +format string (see +.IR print (2)) +that identifies the handling of subsequent arguments. +The +.B #pragma +.EX + #pragma varargck type "s" char* +.EE +says that the format verb +.B s +processes an argument of type +.BR char *. +The +.B #pragma +.EX + #pragma varargck flag 'c' +.EE +says that +.B c +is a flag character. +These +.B #pragmas +are used, if the +.B -F +option is enabled, to type-check calls to +.B print +and other such routines. +.TP +\- +The C++ comment +.RB ( // +to end of line) +is accepted as well as the normal +convention of +.B /* +.BR */ . +.TP +\- +The compilers accept +.B long +.B long +variables as a 64-bit type. +The standard header typedefs this to +.BR vlong . +Arithmetic on +.B vlong +values is usually emulated by a run-time library. +.SH EXAMPLE +For the 68020, produce a program +.B prog +from C files +.BR main.c +and +.BR sub.c : +.IP +.EX +2c -FVw main.c sub.c +2l -o prog main.2 sub.2 +.EE +.SH FILES +.TF /$objtype/include +.TP +.B /sys/include +system area for machine-independent +.B #include +directives. +.TP +.B /$objtype/include +system area for machine-dependent +.B #include +directives. +.SH SOURCE +.TF /sys/src/cmd/2c,\ etc. +.TP +.B /sys/src/cmd/cc +machine-independent part +.TP +.BR /sys/src/cmd/2c ,\ etc. +machine-dependent part +.SH "SEE ALSO" +.IR 2a (1), +.IR 2l (1), +.IR cpp (1), +.IR mk (1), +.IR nm (1), +.IR pcc (1), +.IR db (1), +.IR acid (1), +.PP +Rob Pike, +``How to Use the Plan 9 C Compiler'' +.SH BUGS +The i960 compiler has been used only to program one I/O controller +and is certainly buggy. +.PP +The default preprocessor only handles +.LR #define , +.LR #include , +.LR #undef , +.LR #ifdef , +.LR #line , +and +.LR #ifndef . +For a full ANSI preprocessor, use +the +.B p +option. diff --git a/static/plan9-4e/man1/2l.1 b/static/plan9-4e/man1/2l.1 new file mode 100644 index 00000000..3fb70e74 --- /dev/null +++ b/static/plan9-4e/man1/2l.1 @@ -0,0 +1,193 @@ +.TH 2L 1 +.SH NAME +0l, 1l, 2l, 4l, 5l, 6l, 7l, 8l, 9l, kl, ql, vl, xl \- loaders +.SH SYNOPSIS +.B 2l +[ +.I option ... +] +[ +.I file ... +] +.br +etc. +.SH DESCRIPTION +These commands +load the named +.I files +into executable files for the corresponding architectures; see +.IR 2c (1) +for the correspondence between an architecture and the character +.RB ( 0 , +.RB 1 , +etc.) that specifies it. +The files should be object files or libraries (archives of object files) +for the appropriate architecture. +Also, a name like +.BI -l ext +represents the library +.BI lib ext .a +in +.BR /$objtype/lib , +where +.I objtype +is one of +.BR 68000 , +etc. as listed in +.IR 2c (1). +The libraries must have tables of contents +(see +.IR ar (1)). +.PP +In practice, +.B -l +options are rarely necessary as the header files for +the libraries cause their archives to be included automatically in the load +(see +.IR 2c (1)). +For example, any program that includes header file +.B libc.h +causes the loader +to search the C library +.BR /$objtype/lib/libc.a . +Also, the loader creates an undefined symbol +.B _main +(or +.B _mainp +if profiling is enabled) to force loading of the +startup linkage from the C library. +.PP +The order of search to resolve undefined symbols is to load all files and libraries +mentioned explicitly on the command line, and then to resolve remaining symbols +by searching in topological order +libraries mentioned in header files included by files already loaded. +When scanning such libraries, the algorithm is to scan each library repeatedly until +no new undefined symbols are picked up, then to start on the next library. Thus if library +.I A +needs +.I B +which needs +.I A +again, it may be necessary to mention +.I A +explicitly so it will be read a second time. +.PP +The loader options are: +.TP 1i +.B -l +(As a bare option.) +Suppress the default loading of the startup linkage and libraries +specified by header files. +.TP +.BI -o " out" +Place output in file +.IR out . +Default is +.IB O .out\f1, +where +.I O +is the first letter of the loader name. +.TP +.B -p +Insert profiling code into the executable output; no special action is needed +during compilation or assembly. +.TP +.B -s +Strip the symbol tables from the output file. +.TP +.B -a +Print the object code in assembly language, with addresses. +.TP +.B -v +Print debugging output that annotates the activities of the load. +.TP +.BI -c function +.RI ( Xl +only) Place the +.I function +in the internal RAM of the DSP3210. +.TP +.BI -M +.RI ( Kl +only) Generate instructions rather than calls to emulation routines +for multiply and divide. +.TP +.BI -m size +.RI ( Xl +only) Use +.I size +(default 0, maximum 8192) +bytes of internal RAM of the DSP3210 for functions and small data items. +.TP +.BI -E symbol +The entry point for the binary is +.I symbol +(default +.BR _main ; +.B _mainp +under +.BR -p ). +.TP +.BI -H n +Executable header is type +.IR n . +The meaning of the types is architecture-dependent; typically +type 1 is Plan 9 boot format and type 2 is the +regular Plan 9 format, the default. These are reversed on the MIPS. +The Next boot format is 3. Type 4 in +.I vl +creates a MIPS executable for an SGI Unix system. +.TP +.BI -T t +The text segment starts at address +.IR t . +.TP +.BI -D d +The data segment starts at address +.IR d . +.TP +.BI -R r +The text segment is rounded to a multiple of +.I r +(if +.I r +is nonzero). +.PP +The numbers in the above options can begin with +.L 0x +or +.L 0 +to change the default base from decimal to hexadecimal or octal. +The defaults for the values depend on the compiler and the +header type. +.PP +The loaded image has several symbols inserted by the loader: +.B etext +is the address of the end of the text segment; +.B bdata +is the address of the beginning of the data segment; +.B edata +is the address of the end of the data segment; +and +.B end +is the address of the end of the bss segment, and of the program. +.SH FILES +.TF /$objtype/lib +.TP +.B /$objtype/lib +for +.BI -l lib +arguments. +.SH SOURCE +.B /sys/src/cmd/2l +etc. +.SH "SEE ALSO" +.IR 2c (1), +.IR 2a (1), +.IR ar (1), +.IR nm (1), +.IR db (1), +.IR prof (1) +.PP +Rob Pike, +``How to Use the Plan 9 C Compiler'' diff --git a/static/plan9-4e/man1/INDEX.1 b/static/plan9-4e/man1/INDEX.1 new file mode 100644 index 00000000..eccc8cae --- /dev/null +++ b/static/plan9-4e/man1/INDEX.1 @@ -0,0 +1,291 @@ +0intro 0intro +intro 0intro +0a 2a +1a 2a +2a 2a +4a 2a +5a 2a +6a 2a +7a 2a +8a 2a +9a 2a +ka 2a +qa 2a +va 2a +xa 2a +0c 2c +1c 2c +2c 2c +4c 2c +5c 2c +6c 2c +7c 2c +8c 2c +9c 2c +kc 2c +qc 2c +vc 2c +xc 2c +0l 2l +1l 2l +2l 2l +4l 2l +5l 2l +6l 2l +7l 2l +8l 2l +9l 2l +kl 2l +ql 2l +vl 2l +xl 2l +aan aan +acid acid +trump acid +truss acid +acme acme +awd acme +win acme +ar ar +ascii ascii +unicode ascii +awk awk +basename basename +bc bc +bind bind +mount bind +unmount bind +bitsyload bitsyload +keyboard bitsyload +light bitsyload +params bitsyload +pencal bitsyload +prompter bitsyload +bundle bundle +cal cal +calendar calendar +cat cat +read cat +chgrp chgrp +chmod chmod +cleanname cleanname +cmp cmp +colors colors +getmap colors +comm comm +con con +rx con +telnet con +xmr con +xms con +cp cp +mv cp +cpp cpp +cpu cpu +crop crop +iconv crop +clock date +date date +db db +dc dc +dd dd +delatex deroff +deroff deroff +diff diff +doc2txt doc2txt +mswordstrings doc2txt +olefs doc2txt +doctype doctype +du du +echo echo +ed ed +emacs emacs +eqn eqn +faces faces +seemail faces +vwhois faces +factor factor +primes factor +file file +fmt fmt +htmlfmt fmt +fortune fortune +freq freq +grap grap +graph graph +grep grep +gs gs + +bunzip2 gzip +bzip2 gzip +gunzip gzip +gzip gzip +unzip gzip +zip gzip +hget hget +history history +hoc hoc +idiff idiff +join join +gif jpg +jpg jpg +png jpg +ppm jpg +togif jpg +topng jpg +toppm jpg +broke kill +kill kill +slay kill +ktrace ktrace +leak leak +lens lens +lex lex +look look +lp lp +lc ls +ls ls +aliasmail mail +biff mail +deliver mail +filter mail +fs mail +list mail +mail mail +marshal mail +ml mail +mlmgr mail +mlowner mail +nedmail mail +pop3 mail +send mail +smtp mail +smtpd mail +token mail +vf mail +vwhois mail +lookman man +man man +mc mc +membername mk +mk mk +mkdir mkdir +html2ms ms2html +ms2html ms2html +netstat netstat +news news +nm nm +ns ns +p p +page page +iam passwd +netkey passwd +passwd passwd +pcc pcc +pic pic +tpic pic +pipefile pipefile +plot plot +plumb plumb +pr pr +kprof prof +prof prof +tprof prof +proof proof +ps ps +psu ps +pbd pwd +pwd pwd +. rc +cd rc +eval rc +exec rc +exit rc +flag rc +rc rc +rfork rc +shift rc +wait rc +whatis rc +~ rc +changes replica +pull replica +push replica +replica replica +scan replica +resample resample +label rio +rio rio +window rio +wloc rio +rm rm +rtstats rtstats +B sam +sam sam +sam.save sam +aescbc secstore +secstore secstore +sed sed +seq seq +size size +sleep sleep +sort sort +spell spell +sprog spell +spin spin +split split +src src +scp ssh +ssh ssh +ssh_genkey ssh +sshnet ssh +sshserve ssh +start stop +stop stop +strings strings +strip strip +md5sum sum +sha1sum sum +sum sum +syscall syscall +tail tail +32vfs tapefs +cpiofs tapefs +tapefs tapefs +tapfs tapefs +tarfs tapefs +tpfs tapefs +v10fs tapefs +v6fs tapefs +tar tar +tbl tbl +tcs tcs +tee tee +iwhois tel +ppq tel +tel tel +test test +time time +touch touch +tr tr +nroff troff +troff troff +troff2html troff2html +tweak tweak +uniq uniq +units units +vac vac +0i vi +5i vi +ki vi +vi vi +vnc vnc +vncs vnc +vncv vnc +vt vt +wc wc +who who +whois who +xd xd +yacc yacc +yesterday yesterday diff --git a/static/plan9-4e/man1/INDEX.html.1 b/static/plan9-4e/man1/INDEX.html.1 new file mode 100644 index 00000000..dad882ad --- /dev/null +++ b/static/plan9-4e/man1/INDEX.html.1 @@ -0,0 +1,561 @@ + +plan 9 man section 1 + + +[manual index] +

Plan 9 from Bell Labs - Section 1 - Commands

+
+
+
0intro +- introduction to Plan 9 +
intro + +
2a +- assemblers +
0a, 1a, 2a, 4a, 5a, 6a, 7a, 8a, 9a, ka, qa, va, xa + +
2c +- C compilers +
0c, 1c, 2c, 4c, 5c, 6c, 7c, 8c, 9c, kc, qc, vc, xc + +
2l +- loaders +
0l, 1l, 2l, 4l, 5l, 6l, 7l, 8l, 9l, kl, ql, vl, xl + +
aan +- always available network +
aan + +
acid +- debugger +
acid, truss, trump + +
acme +- interactive text windows +
acme, win, awd + +
ar +- archive and library maintainer +
ar + +
ascii +- interpret ASCII, Unicode characters +
ascii, unicode + +
awk +- pattern-directed scanning and processing language +
awk + +
basename +- strip file name affixes +
basename + +
bc +- arbitrary-precision arithmetic language +
bc + +
bind +- change name space +
bind, mount, unmount + +
bitsyload +- bitsy-specific utilities +
bitsyload, light, pencal, keyboard, params, prompter + +
bundle +- collect files for distribution +
bundle + +
cal +- print calendar +
cal + +
calendar +- print upcoming events +
calendar + +
cat +- catenate files +
cat, read + +
chgrp +- change file group +
chgrp + +
chmod +- change mode +
chmod + +
cleanname +- clean a path name +
cleanname + +
cmp +- compare two files +
cmp + +
colors +- display color map +
getmap, colors + +
comm +- select or reject lines common to two sorted files +
comm + +
con +- remote login, execution, and XMODEM file transfer +
con, telnet, rx, xms, xmr + +
cp +- copy, move files +
cp, mv + +
cpp +- C language preprocessor +
cpp + +
cpu +- connection to cpu server +
cpu + +
crop +- frame, crop, and convert image +
crop, iconv + +
date +- date and time +
date, clock + +
db +- debugger +
db + +
dc +- desk calculator +
dc + +
dd +- convert and copy a file +
dd + +
deroff +- remove formatting requests +
deroff, delatex + +
diff +- differential file comparator +
diff + +
doc2txt +- extract printable strings from Microsoft Word documents +
doc2txt, olefs, mswordstrings + +
doctype +- intuit command line for formatting a document +
doctype + +
du +- disk usage +
du + +
echo +- print arguments +
echo + +
ed +- text editor +
ed + +
emacs +- editor macros +
emacs + +
eqn +- typeset mathematics +
eqn + +
faces +- mailbox interface +
faces, seemail, vwhois + +
factor +- factor a number, generate large primes +
factor, primes + +
file +- determine file type +
file + +
fmt +- simple text formatters +
fmt, htmlfmt + +
fortune +- sample lines from a file +
fortune + +
freq +- print histogram of character frequencies +
freq + +
grap +- pic preprocessor for drawing graphs +
grap + +
graph +- draw a graph +
graph + +
grep +- search a file for a pattern +
grep + +
gs +- Aladdin Ghostscript (PostScript and PDF language interpreter) +
gs + +
gzip +- compress and expand data +
gzip, gunzip, bzip2, bunzip2, zip, unzip, + +
hget +- retrieve a web page corresponding to a url +
hget + +
history +- print file names from the dump +
history + +
hoc +- interactive floating point language +
hoc + +
idiff +- interactive diff +
idiff + +
join +- relational database operator +
join + +
jpg +- view and convert pictures +
jpg, gif, png, ppm, togif, toppm, topng + +
kill +- print commands to kill processes +
kill, slay, broke + +
ktrace +- interpret kernel stack dumps +
ktrace + +
leak +- examine family of processes for memory leaks +
leak + +
lens +- interactive screen magnifier +
lens + +
lex +- generator of lexical analysis programs +
lex + +
look +- find lines in a sorted list +
look + +
lp +- printer output +
lp + +
ls +- list contents of directory +
ls, lc + +
mail +- mail commands +
mail, marshal, nedmail, send, aliasmail, smtp, smtpd, vwhois, filter, fs, biff, pop3, ml, mlmgr, mlowner, list, deliver, token, vf + +
man +- print or find pages of this manual +
man, lookman + +
mc +- multicolumn print +
mc + +
mk +- maintain (make) related files +
mk, membername + +
mkdir +- make a directory +
mkdir + +
ms2html +- convert between troff's ms macros and html +
ms2html, html2ms + +
netstat +- summarize network connections +
netstat + +
news +- print news items +
news + +
nm +- name list (symbol table) +
nm + +
ns +- display name space +
ns + +
p +- paginate +
p + +
page +- view FAX, image, graphic, PostScript, PDF, and typesetter output files +
page + +
passwd +- change user password +
passwd, netkey, iam + +
pcc +- APE C compiler driver +
pcc + +
pic +- troff and tex preprocessors for drawing pictures +
pic, tpic + +
pipefile +- attach filter to file in name space +
pipefile + +
plot +- graphics filter +
plot + +
plumb +- send message to plumber +
plumb + +
pr +- print file +
pr + +
prof +- display profiling data +
prof, tprof, kprof + +
proof +- troff output interpreter +
proof + +
ps +- process status +
ps, psu + +
pwd +- working directory +
pwd, pbd + +
rc +- command language +
rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis, ., ~ + +
replica +- client-server replica management +
changes, pull, push, scan + +
resample +- resample a picture +
resample + +
rio +- window system +
rio, label, window, wloc + +
rm +- remove files +
rm + +
rtstats +- show real-time process behavior +
rtstats + +
sam +- screen editor with structural regular expressions +
sam, B, sam.save + +
secstore +- secstore commands +
aescbc, secstore + +
sed +- stream editor +
sed + +
seq +- print sequences of numbers +
seq + +
size +- print size of executable files +
size + +
sleep +- suspend execution for an interval +
sleep + +
sort +- sort and/or merge files +
sort + +
spell +- find spelling errors +
spell, sprog + +
spin +- verification tool for concurrent systems +
spin + +
split +- split a file into pieces +
split + +
src +- find source code for executable +
src + +
ssh +- secure login and file copy from/to Unix or Plan 9 +
ssh, sshnet, scp, sshserve, ssh_genkey + +
stop +- print commands to stop and start processes +
stop, start + +
strings +- extract printable strings +
strings + +
strip +- remove symbols from binary files +
strip + +
sum +- sum and count blocks in a file +
sum, md5sum, sha1sum + +
syscall +- test a system call +
syscall + +
tail +- deliver the last part of a file +
tail + +
tapefs +- mount archival file systems +
32vfs, cpiofs, tapfs, tarfs, tpfs, v6fs, v10fs + +
tar +- archiver +
tar + +
tbl +- format tables for nroff or troff +
tbl + +
tcs +- translate character sets +
tcs + +
tee +- pipe fitting +
tee + +
tel +- look in phone book +
tel, ppq, iwhois + +
test +- set status according to condition +
test + +
time +- time a command +
time + +
touch +- set modification date of a file +
touch + +
tr +- translate characters +
tr + +
troff +- text formatting and typesetting +
troff, nroff + +
troff2html +- convert troff output into HTML +
troff2html + +
tweak +- edit image files, subfont files, face files, etc. +
tweak + +
uniq +- report repeated lines in a file +
uniq + +
units +- conversion program +
units + +
vac +- create a vac archive on Venti +
vac + +
vi +- instruction simulators +
0i, 5i, ki, vi + +
vnc +- remote frame buffer server and viewer for Virtual Network Computing (VNC) +
vncs, vncv + +
vt +- emulate a VT-100 or VT-220 terminal +
vt + +
wc +- word count +
wc + +
who +- who is using the machine +
who, whois + +
xd +- hex, octal, decimal, or ASCII dump +
xd + +
yacc +- yet another compiler-compiler +
yacc + +
yesterday +- print file names from the dump +
yesterday + +
diff --git a/static/plan9-4e/man1/Makefile b/static/plan9-4e/man1/Makefile new file mode 100644 index 00000000..31e80e19 --- /dev/null +++ b/static/plan9-4e/man1/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.1) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man1/aan.1 b/static/plan9-4e/man1/aan.1 new file mode 100644 index 00000000..a55bfd4e --- /dev/null +++ b/static/plan9-4e/man1/aan.1 @@ -0,0 +1,88 @@ +.TH AAN 1 +.SH NAME +aan \- always available network +.SH SYNOPSIS +.B aan +[ +.B -d +] +[ +.B -c +] +[ +.B -m maxto +] +.I dialstring +| +handle +.SH DESCRIPTION +.I Aan +tunnels traffic between a client and a server through a persistent +network connection. If the connection breaks (voluntarily or +due to networking problems), the aan client re-establishes the +connection by redialing the server. +.PP +.I Aan +uses a unique protocol to make sure no data is ever lost even +when the connection breaks. +After a reconnection, +.I aan +retransmits all unacknowledged data between client and server. +.PP +A connection can be broken voluntarily (e.g. by roaming over IP networks), +or a connection can break when the IP service is unreliable. +In either case +.I aan +re-establishes the client's connection automatically. +.PP +When the server part has not heard from the client in +.I maxto +seconds, the server part of +.I aan +exits. The default +.I maxto +is one day. +The client side (option +.BR -c ) +calls the server by its +.IR dialstring , +while +the server side listens on +.IR handle . +.PP +.I Aan +is usually run automatically through the +.B -p +option of +.IR import (4). +.SH EXAMPLE +Assume the server part of aan is encapsulated in exportfs on the +machine +.B sob +and started through +.B aux/listen +as follows: +.IP +.EX +netdir=`{echo $3 | sed 's;/[0-9]+$;!*!0;'} +exec exportfs -a -A $netdir +.EE +.PP +Then machine +.BR astro6 's +name space can be imported through +.I aan +using this command: +.IP +.EX +import -p /net/tcp!astro6 / /mnt/term +.EE +.SH FILES +.TP +.B /sys/log/aan +Log file +.SH SOURCE +.B /sys/src/cmd/aan.c +.SH SEE ALSO +.IR import (4), +.IR exportfs (4) diff --git a/static/plan9-4e/man1/acid.1 b/static/plan9-4e/man1/acid.1 new file mode 100644 index 00000000..624c0140 --- /dev/null +++ b/static/plan9-4e/man1/acid.1 @@ -0,0 +1,472 @@ +.TH ACID 1 +.SH NAME +acid, truss, trump \- debugger +.SH SYNOPSIS +.B acid +[ +.BI -l " libfile +] +[ +.B -wq +] [ +.B -m +.I machine +] [ +.I pid +] +[ +.I textfile +] +.PP +.B acid +.B -l +.B truss +.I textfile +.PP +.B acid +.B -l +.B trump +[ +.I pid +] +[ +.I textfile +] +.SH DESCRIPTION +.I Acid +is a programmable symbolic debugger. +It can inspect one or more processes that share an address space. +A program to be debugged may be specified by the process id of +a running or defunct process, +or by the name of the program's text file +.RB ( 8.out +by default). +At the prompt, +.I acid +will store function definitions or print the value of expressions. +Options are +.TP .9i +.B -w +Allow the textfile to be modified. +.TP +.B -q +Don't print variable renamings at startup. +.TP +.BI -l " library +Load from +.I library +at startup; see below. +.TP +.BI -m " machine +Assume instructions are for the given CPU type +(one of +.BR 3210 , +.BR 386 , +etc., as listed in +.IR 2c (1), +or +.B sunsparc +or +.B mipsco +for the manufacturer-defined instruction notation for those processors) +instead of using the magic number to select +the CPU type. +.TP +.BI -k +Debug the kernel state for the process, rather than the user state. +.PP +At startup, +.I acid +obtains standard function definitions from the library file +.BR /sys/lib/acid/port , +architecture-dependent functions from +.BR /sys/lib/acid/$objtype , +user-specified functions from +.BR $home/lib/acid , +and further functions from +.B -l +files. +Definitions in any file may override previously defined functions. +If the function +.IR acidinit () +is defined, it will be invoked after all modules have been loaded. +See +.IR 2c (1) +for information about creating +.I acid +functions for examining data structures. +.SS Language +Symbols of the program being debugged become integer +variables whose values are addresses. +Contents of addresses are obtained by indirection. +Local variables are qualified by +function name, for example +.BR main:argv . +When program symbols conflict with +.I acid +words, distinguishing +.B $ +signs are prefixed. +Such renamings are reported at startup; option +.B -q +suppresses them. +.PP +Variable types +.RI ( "integer, float, list, string" ) +and formats are inferred from assignments. +Truth values false/true are attributed to zero/nonzero +integers or floats and to empty/nonempty lists or strings. +Lists are sequences of expressions surrounded by +.BR {\^} +and separated by commas. +.PP +Expressions are much as in C, +but yield both a value and a format. +Casts to complex types are allowed. +Lists admit the following operators, with +subscripts counted from 0. +.IP +.BI head " list +.br +.BI tail " list +.br +.BI append " list", " element +.br +.BI delete " list", " subscript +.PP +Format codes are the same as in +.IR db (1). +Formats may be attached to (unary) expressions with +.BR \e , +e.g. +.BR (32*7)\eD . +There are two indirection operators, +.B * +to address a core image, +.B @ +to address a text file. +The type and format of the result are determined by the format of the operand, +whose type must be integer. +.PP +Statements are +.IP +.BI if " expr " then " statement " "\fR[ \fPelse\fI statement \fR] +.br +.BI while " expr " do " statement +.br +.BI loop " expr" , " expr " do " statement +.br +.BI defn " name" ( args ") {" " statement \fP} +.br +.BI local " name +.br +.BI return " expr +.br +.BR whatis " [ \fI name \fP] +.PP +Here is a partial list of functions; see the manual for a complete list. +.TF asm(address) +.TP +.B stk() +Print a stack trace for current process. +.TP +.B lstk() +Print a stack trace with values of local variables. +.TP +.B gpr() +Print general registers. +Registers can also be accessed by name, for example +.BR *R0 . +.TP +.B spr() +Print special registers such as program counter and stack pointer. +.TP +.B fpr() +Print floating-point registers. +.TP +.B regs() +Same as +.BR spr();gpr() . +.TP +.BI fmt( expr , format ) +Expression +.I expr +with format given by the character value of expression +.IR format . +.TP +.BI src( address ) +Print 10 lines of source around the program address. +.TP +.BI Bsrc( address ) +Get the source line for the program address +into a window of a running +.IR sam (1) +and select it. +.TP +.BI line( address ) +Print source line nearest to the program address. +.TP +.B source() +List current source directories. +.TP +.BI addsrcdir( string ) +Add a source directory to the list. +.TP +.BI filepc( where ) +Convert a string of the form +.IB sourcefile : linenumber +to a machine address. +.TP +.BI pcfile( address ) +Convert a machine address to a source file name. +.TP +.BI pcline( address ) +Convert a machine address to a source line number. +.TP +.BI bptab() +List breakpoints set in the current process. +.TP +.BI bpset( address ) +Set a breakpoint in the current process at the given address. +.TP +.BI bpdel( address ) +Delete a breakpoint from the current process. +.TP +.B cont() +Continue execution of current process and wait for it to stop. +.TP +.B step() +Execute a single machine instruction in the current process. +.TP +.B func() +Step repeatedly until after a function return. +.TP +.BI stopped( pid ) +This replaceable function is called automatically when the given process +stops. +It normally prints the program counter and returns to the prompt. +.TP +.BI asm( address ) +Disassemble 30 machine instructions beginning at the given address. +.TP +.BI mem( address , string ) +Print a block of memory +interpreted according to a string of format codes. +.TP +.BI dump( address , n , string\fP) +Like +.BR mem (), +repeated for +.I n +consecutive blocks. +.TP +.BI print( expr , ... ) +Print the values of the expressions. +.TP +.BI newproc( arguments ) +Start a new process with arguments given as a string +and halt at the first instruction. +.TP +.B new() +Like +.IR newproc (), +but take arguments (except +.BR argv[0] ) +from string variable +.BR progargs . +.TP +.B win() +Like +.IR new (), +but run the process in a separate window. +.TP +.BI start( pid ) +Start a stopped process. +.TP +.BI kill( pid ) +Kill the given process. +.TP +.BI setproc( pid ) +Make the given process current. +.TP +.BI rc( string ) +Escape to the shell, +.IR rc (1), +to execute the command string. +.SS Libraries +There are a number of +.I acid +`libraries' that provide higher-level debugging facilities. Two notable +examples are +.I truss +and +.IR trump , +which use +.I acid +to trace system calls +.RI ( truss ) +and memory allocation +.RI ( trump ). +Both require starting +.I acid +on the program, either by attaching to a running process or by +executing +.B new() +on a binary (perhaps after setting +.BR progargs ), +stopping the process, and then running +.B truss() +or +.B trump() +to execute the program under the scaffolding. +The output will be a trace of the system calls +.RI ( truss ) +or memory allocation and free calls +.RI ( trump ) +executed by the program. +When finished tracing, stop the process and execute +.B untruss() +or +.B untrump() +followed by +.B cont() +to resume execution. +.SH EXAMPLES +Start to debug +.BR /bin/ls ; +set some breakpoints; run up to the first one: +.IP +.EX +% acid /bin/ls +/bin/ls: mips plan 9 executable +/sys/lib/acid/port +/sys/lib/acid/mips +acid: new() +70094: system call _main ADD $-0x14,R29 +70094: breakpoint main+0x4 MOVW R31,0x0(R29) +acid: pid +70094 +acid: argv0 = **main:argv\es +acid: whatis argv0 +integer variable format s +acid: *argv0 +/bin/ls +acid: bpset(ls) +acid: cont() +70094: breakpoint ls ADD $-0x16c8,R29 +acid: +.EE +.PP +Display elements of a linked list of structures: +.IP +.EX +complex Str { 'D' 0 val; 'X' 4 next; }; +complex Str s; +s = *headstr; +while s != 0 do{ + print(s.val, "\en"); + s = s.next; +} +.EE +.PP +Note the use of the +.B . +operator instead of +.BR -> . +.PP +Display an array of bytes declared in C as +.BR "char array[]" . +.IP +.EX +*(array\es) +.EE +.PP +This example gives +.B array +string format, then prints the string beginning at the address (in +.I acid +notation) +.BR *array . +.PP +Trace the system calls executed by +.IR ls (1): +.IP +.EX +% acid -l truss /bin/ls +/bin/ls:386 plan 9 executable + +/sys/lib/acid/port +/sys/lib/acid/kernel +/sys/lib/acid/truss +/sys/lib/acid/386 +acid: progargs = "-l lib/profile" +acid: new() +acid: truss() +open("#c/pid", 0) + return value: 3 +pread(3, 0x7fffeeac, 20, -1) + return value: 12 + data: " 166 " +\&... +stat("lib/profile", 0x0000f8cc, 113) + return value: 65 +open("/env/timezone", 0) + return value: 3 +pread(3, 0x7fffd7c4, 1680, -1) + return value: 1518 + data: "EST -18000 EDT -14400 + 9943200 25664400 41392800 57718800 73447200 89168400 + 104896800 ..." +close(3) + return value: 0 +pwrite(1, "--rw-rw-r-- M 9 rob rob 2519 Mar 22 10:29 lib/profile +", 54, -1) +--rw-rw-r-- M 9 rob rob 2519 Mar 22 10:29 lib/profile + return value: 54 +\&... +166: breakpoint _exits+0x5 INTB $0x40 +acid: cont() +.EE +.SH FILES +.B /proc/*/text +.br +.B /proc/*/mem +.br +.B /proc/*/ctl +.br +.B /proc/*/note +.br +.B /sys/lib/acid/$objtype +.br +.B /sys/lib/acid/port +.br +.B /sys/lib/acid/kernel +.br +.B /sys/lib/acid/trump +.br +.B /sys/lib/acid/truss +.br +.B $home/lib/acid +.SH SOURCE +.B /sys/src/cmd/acid +.SH "SEE ALSO" +.IR 2a (1), +.IR 2c (1), +.IR 2l (1), +.IR mk (1), +.IR db (1) +.br +Phil Winterbottom, +``Acid Manual''. +.SH DIAGNOSTICS +At termination, kill commands are proposed +for processes that are still active. +.SH BUGS +There is no way to redirect the standard input and standard output +of a new process. +.br +Source line selection near the beginning of a file may pick +an adjacent file. +.br +With the extant stepping commands, one cannot step through instructions +outside the text segment and it is hard to debug across process forks. diff --git a/static/plan9-4e/man1/acme.1 b/static/plan9-4e/man1/acme.1 new file mode 100644 index 00000000..5cae0036 --- /dev/null +++ b/static/plan9-4e/man1/acme.1 @@ -0,0 +1,683 @@ +.TH ACME 1 +.SH NAME +acme, win, awd \- interactive text windows +.SH SYNOPSIS +.B acme +[ +.B -f +.I varfont +] +[ +.B -F +.I fixfont +] +[ +.B -c +.I ncol +] +[ +.B -b +] +[ +.B -l +.I file +| +.I file +\&... ] +.LP +.B win +[ +.I command +] +.LP +.B awd +[ +.I label +] +.SH DESCRIPTION +.I Acme +manages windows of text that may be edited interactively or by external programs. +The interactive interface uses the keyboard and mouse; external programs +use a set of files served by +.IR acme ; +these are discussed in +.IR acme (4). +.PP +Any named +.I files +are read into +.I acme +windows before +.I acme +accepts input. +With the +.B -l +option, the state of the entire system is loaded +from +.IR file , +which should have been created by a +.B Dump +command (q.v.), +and subsequent +.I file +names are ignored. +Plain files display as text; directories display as columnated lists of the +names of their components, as in +.B "ls -p directory|mc +except that the names of subdirectories have a slash appended. +.PP +The +.B -f +.RB ( -F ) +option sets the main font, usually variable-pitch (alternate, usually fixed-pitch); +the default is +.B /lib/font/bit/lucidasans/euro.8.font +.RB ( \&.../lucm/unicode.9.font ). +Tab intervals are set to the width of 4 (or the value of +.BR $tabstop ) +numeral zeros in the appropriate font. +.PP +.SS Windows +.I Acme +windows are in two parts: a one-line +.I tag +above a multi-line +.IR body . +The body typically contains an image of a file, as in +.IR sam (1), +or the output of a +program, as in an +.IR rio (1) +window. +The tag contains a number of +blank-separated words, followed by a vertical bar character, followed by anything. +The first word is the name of the window, typically the name of the associated +file or directory, and the other words are commands available in that window. +Any text may be added after the bar; examples are strings to search for or +commands to execute in that window. +Changes to the text left of the bar will be ignored, +unless the result is to change the name of the +window. +.PP +If a window holds a directory, the name (first word of the tag) will end with +a slash. +.SS Scrolling +Each window has a scroll bar to the left of the body. +The scroll bar behaves much as in +.IR sam (1) +or +.IR rio (1) +except that scrolling occurs when the button is pressed, rather than released, +and continues +as long as the mouse button is held down in the scroll bar. +For example, to scroll slowly through a file, +hold button 3 down near the top of the scroll bar. Moving the mouse +down the scroll bar speeds up the rate of scrolling. +.SS Layout +.I Acme +windows are arranged in columns. By default, it creates two columns when starting; +this can be overridden with the +.B -c +option. +Placement is automatic but may be adjusted +using the +.I layout box +in the upper left corner of each window and column. +Pressing and holding any mouse button in the box drags +the associated window or column. +For windows, just +clicking in the layout box grows the window in place: button 1 +grows it a little, button 2 grows it as much as it can, still leaving all other +tags in that column visible, and button 3 takes over the column completely, +temporarily hiding other windows in the column. +(They will return +.I en masse +if any of them needs attention.) +The layout box in a window is normally white; when it is black in the center, +it records that the file is `dirty': +.I Acme +believes it is modified from its original +contents. +.PP +Tags exist at the top of each column and across the whole display. +.I Acme +pre-loads them with useful commands. +Also, the tag across the top maintains a list of executing long-running commands. +.SS Typing +The behavior of typed text is similar to that in +.IR rio (1) +except that the characters are delivered to the tag or body under the mouse; there is no +`click to type'. +(The experimental option +.B -b +causes typing to go to the most recently clicked-at or made window.) +The usual backspacing conventions apply. +As in +.IR sam (1) +but not +.IR rio , +the ESC key selects the text typed since the last mouse action, +a feature particularly useful when executing commands. +A side effect is that typing ESC with text already selected is identical +to a +.B Cut +command +.RI ( q.v. ). +.PP +Most text, including the names of windows, may be edited uniformly. +The only exception is that the command names to the +left of the bar in a tag are maintained automatically; changes to them are repaired +by +.IR acme . +.SS "Directory context +Each window's tag names a directory: explicitly if the window +holds a directory; implicitly if it holds a regular file +(e.g. the directory +.B /adm +if the window holds +.BR /adm/users ). +This directory provides a +.I context +for interpreting file names in that window. +For example, the string +.B users +in a window labeled +.B /adm/ +or +.B /adm/keys +will be interpreted as the file name +.BR /adm/users . +The directory is defined purely textually, so it can be a non-existent +directory or a real directory associated with a non-existent file +(e.g. +.BR /adm/not-a-file ). +File names beginning with a slash +are assumed to be absolute file names. +.SS Errors +Windows whose names begin with +.B - +or +.B + +conventionally hold diagnostics and other data +not directly associated with files. +A window labeled +.B +Errors +receives all diagnostics produced by +.I acme +itself. +Diagnostics from commands run by +.I acme +appear in a window named +.IB directory /+Errors +where +.I directory +is identified by the context of the command. +These error windows are created when needed. +.SS "Mouse button 1 +Mouse button 1 selects text just as in +.IR sam (1) +or +.IR rio (1) , +including the usual double-clicking conventions. +.SS "Mouse button 2 +By an +action similar to selecting text with button 1, +button 2 indicates text to execute as a command. +If the indicated text has multiple white-space-separated words, +the first is the command name and the second and subsequent +are its arguments. +If button 2 is `clicked'\(emindicates a null string\(em\c +.I acme +.I expands +the indicated text to find a command to run: +if the click is within button-1-selected text, +.I acme +takes that selection as the command; +otherwise it takes the largest string of valid file name characters containing the click. +Valid file name characters are alphanumerics and +.B _ +.B . +.B - +.B + +.BR / . +This behavior is similar to double-clicking with button 1 but, +because a null command is meaningless, only a single click is required. +.PP +Some commands, all by convention starting with a capital letter, are +.I built-ins +that are executed directly by +.IR acme : +.TP +.B Cut +Delete most recently selected text and place in snarf buffer. +.TP +.B Del +Delete window. If window is dirty, instead print a warning; a second +.B Del +will succeed. +.TP +.B Delcol +Delete column and all its windows, after checking that windows are not dirty. +.TP +.B Delete +Delete window without checking for dirtiness. +.TP +.B Dump +Write the state of +.I acme +to the file name, if specified, or +.B $home/acme.dump +by default. +.TP +.B Edit +Treat the argument as a text editing command in the style of +.IR sam (1). +The full +.B Sam +language is implemented except for the commands +.BR k , +.BR n , +.BR q , +and +.BR ! . +The +.B = +command is slightly different: it includes the file name and +gives only the line address unless the command is explicitly +.BR =# . +The `current window' for the command is the body of the window in which the +.B Edit +command is executed. +Usually the +.B Edit +command would be typed in a tag; longer commands may be prepared in a +scratch window and executed, with +.B Edit +itself in the current window, using the 2-1 chord described below. +.TP +.B Exit +Exit +.I acme +after checking that windows are not dirty. +.TP +.B Font +With no arguments, change the font of the associated window from fixed-spaced to +proportional-spaced or +.I vice +.IR versa . +Given a file name argument, change the font of the window to that stored in the named file. +If the file name argument is prefixed by +.B var +.RB ( fix ), +also set the default proportional-spaced (fixed-spaced) font for future use to that font. +Other existing windows are unaffected. +.TP +.B Get +Load file into window, replacing previous contents (after checking for dirtiness as in +.BR Del ). +With no argument, use the existing file name of the window. +Given an argument, use that file but do not change the window's file name. +.TP +.B ID +Print window ID number +.RI ( q.v. ). +.TP +.B Incl +When opening `include' files +(those enclosed in +.BR <> ) +with button 3, +.I acme +searches in directories +.B /$objtype/include +and +.BR /sys/include . +.B Incl +adds its arguments to a supplementary list of include directories, analogous to +the +.B -I +option to the compilers. +This list is per-window and is inherited when windows are created by actions in that window, so +.I Incl +is most usefully applied to a directory containing relevant source. +With no arguments, +.I Incl +prints the supplementary list. +This command is largely superseded by plumbing +(see +.IR plumb (6)). +.TP +.B Kill +Send a +.B kill +note to +.IR acme -initiated +commands named as arguments. +.TP +.B Local +When prefixed to a command +run the +command in the same file name space and environment variable group as +.IR acme . +The environment of the command +is restricted but is sufficient to run +.IR bind (1), +.IR 9fs +(see +.IR srv (4)), +.IR import (4), +etc., +and to set environment variables such as +.BR $objtype . +.TP +.B Load +Restore the state of +.I acme +from a file (default +.BR $home/acme.dump ) +created by the +.B Dump +command. +.TP +.B Look +Search in body for occurrence of literal text indicated by the argument or, +if none is given, by the selected text in the body. +.TP +.B New +Make new window. With arguments, load the named files into windows. +.TP +.B Newcol +Make new column. +.TP +.B Paste +Replace most recently selected text with contents of snarf buffer. +.TP +.B Put +Write window to the named file. +With no argument, write to the file named in the tag of the window. +.TP +.B Putall +Write all dirty windows whose names indicate existing regular files. +.TP +.B Redo +Complement of +.BR Undo . +.TP +.B Send +Append selected text or snarf buffer to end of body; used mainly with +.IR win . +.TP +.B Snarf +Place selected text in snarf buffer. +.TP +.B Sort +Arrange the windows in the column from top to bottom in lexicographical +order based on their names. +.TP +.B Tab +Set the width of tab stops for this window to the value of the argument, in units of widths of the zero +character. +With no arguments, it prints the current value. +.TP +.B Undo +Undo last textual change or set of changes. +.TP +.B Zerox +Create a copy of the window containing most recently selected text. +.PP +A common place to store text for commands is in the tag; in fact +.I acme +maintains a set of commands appropriate to the state of the window +to the left of the bar in the tag. +.PP +If the text indicated with button 2 is not a recognized built-in, it is executed as +a shell command. For example, indicating +.B date +with button 2 runs +.IR date (1). +The standard +and error outputs of commands are sent to the error window associated with +the directory from which the command was run, which will be created if +necessary. +For example, in a window +.B /adm/users +executing +.B pwd +will produce the output +.B /adm +in a (possibly newly-created) window labeled +.BR /adm/+Errors ; +in a window containing +.B /sys/src/cmd/sam/sam.c +executing +.B mk +will run +.IR mk (1) +in +.BR /sys/src/cmd/sam , +producing output in a window labeled +.BR /sys/src/cmd/sam/+Errors . +The environment of such commands contains the variable +.B $% +with value set to the filename of the window in which the command is run. +.SS "Mouse button 3 +Pointing at text with button 3 instructs +.I acme +to locate or acquire the file, string, etc. described by the indicated text and +its context. +This description follows the actions taken when +button 3 is released after sweeping out some text. +In the description, +.I text +refers to the text of the original sweep or, if it was null, the result of +applying the same expansion rules that apply to button 2 actions. +.PP +If the text names an existing window, +.I acme +moves the mouse cursor to the selected text in the body of that window. +If the text names an existing file with no associated window, +.I acme +loads the file into a new window and moves the mouse there. +If the text is a file name contained in angle brackets, +.I acme +loads the indicated include file from the directory appropriate to the +suffix of the file name of the window holding the text. +(The +.B Incl +command adds directories to the standard list.) +.PP +If the text begins with a colon, it is taken to be an address, in +the style of +.IR sam (1), +within the body of the window containing the text. +The address is evaluated, the resulting text highlighted, and the mouse moved to it. +Thus, in +.IR acme , +one must type +.B :/regexp +or +.B :127 +not just +.B /regexp +or +.BR 127 . +(There is an easier way to locate literal text; see below.) +.PP +If the text is a file name followed by a colon and an address, +.I acme +loads the file and evaluates the address. For example, clicking button 3 anywhere +in the text +.B file.c:27 +will open +.BR file.c , +select line +27, and put the mouse at the beginning of the line. The rules about Error +files, directories, and so on all combine to make this an efficient way to +investigate errors from compilers, etc. +.PP +If the text is not an address or file, it is taken to +be literal text, which is then searched for in the body of the window +in which button 3 was clicked. If a match is found, it is selected and the mouse is +moved there. Thus, to search for occurrences of a word in a file, +just click button 3 on the word. Because of the rule of using the +selection as the button 3 action, subsequent clicks will find subsequent +occurrences without moving the mouse. +.PP +In all these actions, the mouse motion is not done if the text is a null string +within a non-null selected string in the tag, so that (for example) complex regular expressions +may be selected and applied repeatedly to the +body by just clicking button 3 over them. +.SS "Chords of mouse buttons +Several operations are bound to multiple-button actions. +After selecting text, with button 1 still down, pressing button 2 +executes +.B Cut +and button 3 executes +.BR Paste . +After clicking one button, the other undoes +the first; thus (while holding down button 1) 2 followed by 3 is a +.B Snarf +that leaves the file undirtied; +3 followed by 2 is a no-op. +These actions also apply to text selected by double-clicking because +the double-click expansion is made when the second +click starts, not when it ends. +.PP +Commands may be given extra arguments by a mouse chord with buttons 2 and 1. +While holding down button 2 on text to be executed as a command, clicking button 1 +appends the text last pointed to by button 1 as a distinct final argument. +For example, to search for literal +.B text +one may execute +.B Look text +with button 2 or instead point at +.B text +with button 1 in any window, release button 1, +then execute +.BR Look , +clicking button 1 while 2 is held down. +.PP +When an external command (e.g. +.IR echo (1)) +is executed this way, the extra argument is passed as expected and an +environment variable +.B $acmeaddr +is created that holds, in the form interpreted by button 3, +the fully-qualified address of the extra argument. +.SS "Support programs +.I Win +creates a new +.I acme +window and runs a +.I command +(default +.BR /bin/rc ) +in it, turning the window into something analogous to an +.IR rio (1) +window. +Executing text in a +.I win +window with button +2 is similar to using +.BR Send . +.PP +.I Awd +loads the tag line of its window with the directory in which it's running, suffixed +.BI - label +(default +.BR rc ); +it is +intended to be executed by a +.B cd +function for use in +.I win +windows. An example definition is +.EX + fn cd { builtin cd $1 && awd $sysname } +.EE +.SS "Applications and guide files +In the directory +.B /acme +live several subdirectories, each corresponding to a program or +set of related programs that employ +.I acme's +user interface. +Each subdirectory includes source, binaries, and a +.B readme +file for further information. +It also includes a +.BR guide , +a text file holding sample commands to invoke the programs. +The idea is to find an example in the guide that best matches +the job at hand, edit it to suit, and execute it. +.PP +Whenever a command is executed by +.IR acme , +the default search path includes the directory of the window containing +the command and its subdirectory +.BR $cputype . +The program directories in +.B /acme +contain appropriately labeled subdirectories of binaries, +so commands named +in the guide files will be found automatically when run. +Also, +.I acme +binds the directories +.B /acme/bin +and +.B /acme/bin/$cputype +to the end of +.B /bin +when it starts; this is where +.IR acme -specific +programs such as +.I win +and +.I awd +reside. +.SH FILES +.TF $home/acme.dump +.TP +.B $home/acme.dump +default file for +.B Dump +and +.BR Load ; +also where state is written if +.I acme +dies or is killed unexpectedly, e.g. by deleting its window. +.TP +.B /acme/*/guide +template files for applications +.TP +.B /acme/*/readme +informal documentation for applications +.TP +.B /acme/*/src +source for applications +.TP +.B /acme/*/mips +MIPS-specific binaries for applications +.SH SOURCE +.B /sys/src/cmd/acme +.br +.B /acme/bin/source/win +.br +.B /sys/src/cmd/awd.c +.SH SEE ALSO +.IR acme (4) +.br +Rob Pike, +.I +Acme: A User Interface for Programmers. +.SH BUGS +With the +.B -l +option or +.B Load +command, +the recreation of windows under control of external programs +such as +.I win +is just to rerun the command; information may be lost. diff --git a/static/plan9-4e/man1/ar.1 b/static/plan9-4e/man1/ar.1 new file mode 100644 index 00000000..a01604db --- /dev/null +++ b/static/plan9-4e/man1/ar.1 @@ -0,0 +1,183 @@ +.TH AR 1 +.SH NAME +ar \- archive and library maintainer +.SH SYNOPSIS +.B ar +.I key +[ +.I posname +] +.I afile +[ +.I file ... +] +.SH DESCRIPTION +.I Ar +maintains groups of files +combined into a single archive file, +.IR afile . +try this out +The main use of +.I ar +is to create and update library files for the loaders +.IR 2l (1), +etc. +It can be used, though, for any similar purpose. +.PP +.I Key +is one character from the set +.BR drqtpmx , +optionally concatenated with +one or more of +.BR vuaibclo . +The +.I files +are constituents of the archive +.IR afile . +The meanings of the +.I key +characters are: +.TP +.B d +Delete +.I files +from the archive file. +.TP +.B r +Replace +.I files +in the archive file, or add them if missing. +Optional modifiers are +.RS +.PD0 +.TP +.B u +Replace only files with +modified dates later than that of +the archive. +.TP +.B a +Place new files after +.I posname +in the archive rather than at the end. +.TP +.BR b " or " i +Place new files before +.I posname +in the archive. +.RE +.PD +.TP +.B q +Quick. Append +.I files +to the end of the archive without checking for duplicates. +Avoids quadratic behavior in +.LR "for (i in *.v) ar r lib.a $i" . +.TP +.B t +List a table of contents of the archive. +If names are given, only those files are listed. +.TP +.B p +Print the named files in the archive. +.TP +.B m +Move the named files to the end or elsewhere, +specified as with +.LR r . +.TP +.B o +Preserve the access and modification times of files +extracted with the +.B x +command. +.TP +.B x +Extract the named files. +If no names are given, all files in the archive are +extracted. +In neither case does +.B x +alter the archive file. +.TP +.B v +Verbose. +Give a file-by-file +description of the making of a +new archive file from the old archive and the constituent files. +With +.BR p , +precede each file with a name. +With +.BR t , +give a long listing of all information about the files, +somewhat like a listing by +.IR ls (1), +showing +.br +.ns +.IP +.B + mode uid/gid size date name +.TP +.B c +Create. +Normally +.I ar +will create a new archive when +.I afile +does not exist, and give a warning. +Option +.B c +discards any old contents and suppresses the warning. +.TP +.B l +Local. +Normally +.I ar +places its temporary files in the directory +.BR /tmp . +This option causes them to be placed in the local directory. +.PP +When a +.BR d , +.BR r , +or +.BR m +.I key +is specified and all members of the archive are valid object files for +the same architecture, +.I ar +inserts a table of contents, required by the loaders, at +the front of the library. +The table of contents is +rebuilt whenever the archive is modified, except +when the +.B q +.I key +is specified or when the table of contents is +explicitly moved or deleted. +.SH EXAMPLE +.TP +.L +ar cr lib.a *.v +Replace the contents of library +.L lib.a +with the object files in the current directory. +.SH FILES +.TF /tmp/vxxxx +.TP +.B /tmp/v* +temporaries +.SH SOURCE +.B /sys/src/cmd/ar.c +.SH "SEE ALSO" +.IR 2l (1), +.IR ar (6) +.SH BUGS +If the same file is mentioned twice in an argument list, +it may be put in the archive twice. +.br +This command predates Plan 9 and makes some invalid assumptions, +for instance that user id's are numeric. diff --git a/static/plan9-4e/man1/ascii.1 b/static/plan9-4e/man1/ascii.1 new file mode 100644 index 00000000..47fd3550 --- /dev/null +++ b/static/plan9-4e/man1/ascii.1 @@ -0,0 +1,161 @@ +.TH ASCII 1 +.SH NAME +ascii, unicode \- interpret ASCII, Unicode characters +.SH SYNOPSIS +.B ascii +[ +.B -8 +] +[ +.BI -oxdb n +] +[ +.B -nct +] +[ +.I text +] +.PP +.B unicode +[ +.B -nt +] +.IB hexmin - hexmax +.PP +.B unicode +[ +.B -t +] +.I hex +[ +\&... +] +.PP +.B unicode +[ +.B -n +] +.I characters +.PP +.B look +.I hex +.B /lib/unicode +.SH DESCRIPTION +.I Ascii +prints the +.SM ASCII +values corresponding to characters and +.I vice +.IR versa ; +under the +.B -8 +option, the +.SM ISO +Latin-1 extensions (codes 0200-0377) are included. +The values are interpreted in a settable numeric base; +.B -o +specifies octal, +.B -d +decimal, +.B -x +hexadecimal (the default), and +.BI -b n +base +.IR n . +.PP +With no arguments, +.I ascii +prints a table of the character set in the specified base. +Characters of +.I text +are converted to their +.SM ASCII +values, one per line. If, however, the first +.I text +argument is a valid number in the specified base, conversion +goes the opposite way. +Control characters are printed as two- or three-character mnemonics. +Other options are: +.TP +.B -n +Force numeric output. +.TP +.B -c +Force character output. +.TP +.B -t +Convert from numbers to running text; do not interpret +control characters or insert newlines. +.PP +.I Unicode +is similar; it converts between +.SM UTF +and character values from the Unicode Standard (see +.IR utf (6)). +If given a range of hexadecimal numbers, +.I unicode +prints a table of the specified Unicode characters \(em their values and +.SM UTF +representations. +Otherwise it translates from +.SM UTF +to numeric value or vice versa, +depending on the appearance of the supplied text; +the +.B -n +option forces numeric output to avoid ambiguity with numeric characters. +If converting to +.SM UTF , +the characters are printed one per line unless the +.B -t +flag is set, in which case the output is a single string +containing only the specified characters. +Unlike +.IR ascii , +.I unicode +treats no characters specially. +.PP +The output of +.I ascii +and +.I unicode +may be unhelpful if the characters printed are not available in the current font. +.PP +The file +.B /lib/unicode +contains a +table of characters and descriptions, sorted in hexadecimal order, +suitable for +.IR look (1) +on the lower case +.I hex +values of characters. +.SH EXAMPLES +.TP +.B "ascii -d" +Print the +.SM ASCII +table base 10. +.TP +.B "unicode p" +Print the hex value of `p'. +.TP +.B "unicode 2200-22f1" +Print a table of miscellaneous mathematical symbols. +.TP +.B "look 039 /lib/unicode" +See the start of the Greek alphabet's encoding in the Unicode Standard. +.SH FILES +.TF /lib/unicode +.TP +.B /lib/unicode +table of characters and descriptions. +.SH SOURCE +.B /sys/src/cmd/ascii.c +.br +.B /sys/src/cmd/unicode.c +.SH "SEE ALSO" +.IR look (1) +.IR tcs (1), +.IR utf (6), +.IR font (6) diff --git a/static/plan9-4e/man1/awk.1 b/static/plan9-4e/man1/awk.1 new file mode 100644 index 00000000..a0ea5e41 --- /dev/null +++ b/static/plan9-4e/man1/awk.1 @@ -0,0 +1,527 @@ +.TH AWK 1 +.SH NAME +awk \- pattern-directed scanning and processing language +.SH SYNOPSIS +.B awk +[ +.BI -F fs +] +[ +.BI -v +.I var=value +] +[ +.BI -mr n +] +[ +.BI -mf n +] +[ +.B -f +.I prog +[ +.I prog +] +[ +.I file ... +] +.SH DESCRIPTION +.I Awk +scans each input +.I file +for lines that match any of a set of patterns specified literally in +.IR prog +or in one or more files +specified as +.B -f +.IR file . +With each pattern +there can be an associated action that will be performed +when a line of a +.I file +matches the pattern. +Each line is matched against the +pattern portion of every pattern-action statement; +the associated action is performed for each matched pattern. +The file name +.L - +means the standard input. +Any +.IR file +of the form +.I var=value +is treated as an assignment, not a file name, +and is executed at the time it would have been opened if it were a file name. +The option +.B -v +followed by +.I var=value +is an assignment to be done before +.I prog +is executed; +any number of +.B -v +options may be present. +.B \-F +.IR fs +option defines the input field separator to be the regular expression +.IR fs . +.PP +An input line is normally made up of fields separated by white space, +or by regular expression +.BR FS . +The fields are denoted +.BR $1 , +.BR $2 , +\&..., while +.B $0 +refers to the entire line. +If +.BR FS +is null, the input line is split into one field per character. +.PP +To compensate for inadequate implementation of storage management, +the +.B \-mr +option can be used to set the maximum size of the input record, +and the +.B \-mf +option to set the maximum number of fields. +.PP +A pattern-action statement has the form +.IP +.IB pattern " { " action " } +.PP +A missing +.BI { " action " } +means print the line; +a missing pattern always matches. +Pattern-action statements are separated by newlines or semicolons. +.PP +An action is a sequence of statements. +A statement can be one of the following: +.PP +.EX +.ta \w'\fLdelete array[expression]'u +if(\fI expression \fP)\fI statement \fP\fR[ \fPelse\fI statement \fP\fR]\fP +while(\fI expression \fP)\fI statement\fP +for(\fI expression \fP;\fI expression \fP;\fI expression \fP)\fI statement\fP +for(\fI var \fPin\fI array \fP)\fI statement\fP +do\fI statement \fPwhile(\fI expression \fP) +break +continue +{\fR [\fP\fI statement ... \fP\fR] \fP} +\fIexpression\fP #\fR commonly\fP\fI var = expression\fP +print\fR [ \fP\fIexpression-list \fP\fR] \fP\fR[ \fP>\fI expression \fP\fR]\fP +printf\fI format \fP\fR[ \fP,\fI expression-list \fP\fR] \fP\fR[ \fP>\fI expression \fP\fR]\fP +return\fR [ \fP\fIexpression \fP\fR]\fP +next #\fR skip remaining patterns on this input line\fP +nextfile #\fR skip rest of this file, open next, start at top\fP +delete\fI array\fP[\fI expression \fP] #\fR delete an array element\fP +delete\fI array\fP #\fR delete all elements of array\fP +exit\fR [ \fP\fIexpression \fP\fR]\fP #\fR exit immediately; status is \fP\fIexpression\fP +.EE +.DT +.PP +Statements are terminated by +semicolons, newlines or right braces. +An empty +.I expression-list +stands for +.BR $0 . +String constants are quoted \&\fL"\ "\fR, +with the usual C escapes recognized within. +Expressions take on string or numeric values as appropriate, +and are built using the operators +.B + \- * / % ^ +(exponentiation), and concatenation (indicated by white space). +The operators +.B +! ++ \-\- += \-= *= /= %= ^= > >= < <= == != ?: +are also available in expressions. +Variables may be scalars, array elements +(denoted +.IB x [ i ] ) +or fields. +Variables are initialized to the null string. +Array subscripts may be any string, +not necessarily numeric; +this allows for a form of associative memory. +Multiple subscripts such as +.B [i,j,k] +are permitted; the constituents are concatenated, +separated by the value of +.BR SUBSEP . +.PP +The +.B print +statement prints its arguments on the standard output +(or on a file if +.BI > file +or +.BI >> file +is present or on a pipe if +.BI | cmd +is present), separated by the current output field separator, +and terminated by the output record separator. +.I file +and +.I cmd +may be literal names or parenthesized expressions; +identical string values in different statements denote +the same open file. +The +.B printf +statement formats its expression list according to the format +(see +.IR fprintf (2)) . +The built-in function +.BI close( expr ) +closes the file or pipe +.IR expr . +The built-in function +.BI fflush( expr ) +flushes any buffered output for the file or pipe +.IR expr . +.PP +The mathematical functions +.BR exp , +.BR log , +.BR sqrt , +.BR sin , +.BR cos , +and +.BR atan2 +are built in. +Other built-in functions: +.TF length +.TP +.B length +the length of its argument +taken as a string, +or of +.B $0 +if no argument. +.TP +.B rand +random number on (0,1) +.TP +.B srand +sets seed for +.B rand +and returns the previous seed. +.TP +.B int +truncates to an integer value +.TP +.B utf +converts its numerical argument, a character number, to a +.SM UTF +string +.TP +.BI substr( s , " m" , " n\fL) +the +.IR n -character +substring of +.I s +that begins at position +.IR m +counted from 1. +.TP +.BI index( s , " t" ) +the position in +.I s +where the string +.I t +occurs, or 0 if it does not. +.TP +.BI match( s , " r" ) +the position in +.I s +where the regular expression +.I r +occurs, or 0 if it does not. +The variables +.B RSTART +and +.B RLENGTH +are set to the position and length of the matched string. +.TP +.BI split( s , " a" , " fs\fL) +splits the string +.I s +into array elements +.IB a [1]\f1, +.IB a [2]\f1, +\&..., +.IB a [ n ]\f1, +and returns +.IR n . +The separation is done with the regular expression +.I fs +or with the field separator +.B FS +if +.I fs +is not given. +An empty string as field separator splits the string +into one array element per character. +.TP +.BI sub( r , " t" , " s\fL) +substitutes +.I t +for the first occurrence of the regular expression +.I r +in the string +.IR s . +If +.I s +is not given, +.B $0 +is used. +.TP +.B gsub +same as +.B sub +except that all occurrences of the regular expression +are replaced; +.B sub +and +.B gsub +return the number of replacements. +.TP +.BI sprintf( fmt , " expr" , " ...\fL) +the string resulting from formatting +.I expr ... +according to the +.I printf +format +.I fmt +.TP +.BI system( cmd ) +executes +.I cmd +and returns its exit status +.TP +.BI tolower( str ) +returns a copy of +.I str +with all upper-case characters translated to their +corresponding lower-case equivalents. +.TP +.BI toupper( str ) +returns a copy of +.I str +with all lower-case characters translated to their +corresponding upper-case equivalents. +.PD +.PP +The ``function'' +.B getline +sets +.B $0 +to the next input record from the current input file; +.B getline +.BI < file +sets +.B $0 +to the next record from +.IR file . +.B getline +.I x +sets variable +.I x +instead. +Finally, +.IB cmd " | getline +pipes the output of +.I cmd +into +.BR getline ; +each call of +.B getline +returns the next line of output from +.IR cmd . +In all cases, +.B getline +returns 1 for a successful input, +0 for end of file, and \-1 for an error. +.PP +Patterns are arbitrary Boolean combinations +(with +.BR "! || &&" ) +of regular expressions and +relational expressions. +Regular expressions are as in +.IR regexp (6). +Isolated regular expressions +in a pattern apply to the entire line. +Regular expressions may also occur in +relational expressions, using the operators +.BR ~ +and +.BR !~ . +.BI / re / +is a constant regular expression; +any string (constant or variable) may be used +as a regular expression, except in the position of an isolated regular expression +in a pattern. +.PP +A pattern may consist of two patterns separated by a comma; +in this case, the action is performed for all lines +from an occurrence of the first pattern +though an occurrence of the second. +.PP +A relational expression is one of the following: +.IP +.I expression matchop regular-expression +.br +.I expression relop expression +.br +.IB expression " in " array-name +.br +.BI ( expr , expr,... ") in " array-name +.PP +where a +.I relop +is any of the six relational operators in C, +and a +.I matchop +is either +.B ~ +(matches) +or +.B !~ +(does not match). +A conditional is an arithmetic expression, +a relational expression, +or a Boolean combination +of these. +.PP +The special patterns +.B BEGIN +and +.B END +may be used to capture control before the first input line is read +and after the last. +.B BEGIN +and +.B END +do not combine with other patterns. +.PP +Variable names with special meanings: +.TF FILENAME +.TP +.B CONVFMT +conversion format used when converting numbers +(default +.BR "%.6g" ) +.TP +.B FS +regular expression used to separate fields; also settable +by option +.BI \-F fs\f1. +.TP +.BR NF +number of fields in the current record +.TP +.B NR +ordinal number of the current record +.TP +.B FNR +ordinal number of the current record in the current file +.TP +.B FILENAME +the name of the current input file +.TP +.B RS +input record separator (default newline) +.TP +.B OFS +output field separator (default blank) +.TP +.B ORS +output record separator (default newline) +.TP +.B OFMT +output format for numbers (default +.BR "%.6g" ) +.TP +.B SUBSEP +separates multiple subscripts (default 034) +.TP +.B ARGC +argument count, assignable +.TP +.B ARGV +argument array, assignable; +non-null members are taken as file names +.TP +.B ENVIRON +array of environment variables; subscripts are names. +.PD +.PP +Functions may be defined (at the position of a pattern-action statement) thus: +.IP +.L +function foo(a, b, c) { ...; return x } +.PP +Parameters are passed by value if scalar and by reference if array name; +functions may be called recursively. +Parameters are local to the function; all other variables are global. +Thus local variables may be created by providing excess parameters in +the function definition. +.SH EXAMPLES +.TP +.L +length($0) > 72 +Print lines longer than 72 characters. +.TP +.L +{ print $2, $1 } +Print first two fields in opposite order. +.PP +.EX +BEGIN { FS = ",[ \et]*|[ \et]+" } + { print $2, $1 } +.EE +.ns +.IP +Same, with input fields separated by comma and/or blanks and tabs. +.PP +.EX + { s += $1 } +END { print "sum is", s, " average is", s/NR } +.EE +.ns +.IP +Add up first column, print sum and average. +.TP +.L +/start/, /stop/ +Print all lines between start/stop pairs. +.PP +.EX +BEGIN { # Simulate echo(1) + for (i = 1; i < ARGC; i++) printf "%s ", ARGV[i] + printf "\en" + exit } +.EE +.SH SOURCE +.B /sys/src/cmd/awk +.SH SEE ALSO +.IR sed (1), +.IR regexp (6), +.br +A. V. Aho, B. W. Kernighan, P. J. Weinberger, +.I +The AWK Programming Language, +Addison-Wesley, 1988. ISBN 0-201-07981-X +.SH BUGS +There are no explicit conversions between numbers and strings. +To force an expression to be treated as a number add 0 to it; +to force it to be treated as a string concatenate +\&\fL""\fP to it. +.br +The scope rules for variables in functions are a botch; +the syntax is worse. diff --git a/static/plan9-4e/man1/basename.1 b/static/plan9-4e/man1/basename.1 new file mode 100644 index 00000000..c72638f1 --- /dev/null +++ b/static/plan9-4e/man1/basename.1 @@ -0,0 +1,35 @@ +.TH BASENAME 1 +.SH NAME +basename \- strip file name affixes +.SH SYNOPSIS +.B basename +[ +.B -d +] +.I string +[ +.I suffix +] +.SH DESCRIPTION +.PP +.I Basename +deletes any prefix ending in slash +.RB ( / ) +and the +.IR suffix , +if present in +.IR string , +from +.IR string , +and prints the result on the standard output. +.PP +The +.B -d +option instead prints the directory component, +that is, +.I string +up to but not including the final slash. +If the string contains no slash, +a period and newline are printed. +.SH SOURCE +.B /sys/src/cmd/basename.c diff --git a/static/plan9-4e/man1/bc.1 b/static/plan9-4e/man1/bc.1 new file mode 100644 index 00000000..0797c54c --- /dev/null +++ b/static/plan9-4e/man1/bc.1 @@ -0,0 +1,292 @@ +.TH BC 1 +.SH NAME +bc \- arbitrary-precision arithmetic language +.SH SYNOPSIS +.B bc +[ +.B -c +] +[ +.B -l +] +[ +.B -s +] +[ +.I file ... +] +.SH DESCRIPTION +.I Bc +is an interactive processor for a language that resembles +C but provides arithmetic on numbers of arbitrary length with up +to 100 digits right of the decimal point. +It takes input from any files given, then reads +the standard input. +The +.B -l +argument stands for the name +of an arbitrary precision math library. +The +.B -s +argument suppresses the automatic display +of calculation results; all output is via the +.B print +command. +.PP +The following syntax for +.I bc +programs is like that of C; +.I L +means letter +.BR a - z , +.I E +means expression, +.I S +means statement. +.TF length(E) +.TP +Lexical +.RS +.HP +comments are enclosed in +.B /* */ +.HP +newlines end statements +.RE +.TP +Names +.IP +simple variables: +.I L +.br +array elements: +.IB L [ E ] +.br +The words +.BR ibase , +.BR obase , +and +.B scale +.TP +Other operands +.IP +arbitrarily long numbers with optional sign and decimal point. +.RS +.TP +.BI ( E ) +.TP +.BI sqrt( E ) +.TP +.BI length( E ) +number of significant decimal digits +.TP +.BI scale( E ) +number of digits right of decimal point +.TP +.IB L ( E , ... ,\fIE\fP) +function call +.RE +.TP +Operators +.RS +.HP +.B "+ - * / % ^\ " +.RB ( % +is remainder; +.B ^ +is power) +.HP +.B "++ --\ " +.TP +.B "== <= >= != < >" +.TP +.B "= += -= *= /= %= ^=" +.RE +.TP +Statements +.RS +.br +.I E +.br +.B { +.I S +.B ; +\&... +.B ; +.I S +.B } +.br +.B "print" +.I E +.br +.B "if (" +.I E +.B ) +.I S +.br +.B "while (" +.I E +.B ) +.I S +.br +.B "for (" +.I E +.B ; +.I E +.B ; +.I E +.B ")" +.I S +.br +null statement +.br +.B break +.br +.B quit +.br +\fL"\fRtext\fL"\fR +.RE +.TP +Function definitions +.RS +.br +.B define +.I L +.B ( +.I L +.B , +\&... +.B , +.I L +.B ){ +.PD0 +.br +.B auto +.I L +.B , +\&... +.B , +.I L +.br +.I S +.B ; +\&... +.B ; +.I S +.br +.B return +.I E +.LP +.B } +.RE +.TP +Functions in +.B -l +math library +.RS +.TP +.BI s( x ) +sine +.TP +.BI c( x ) +cosine +.TP +.BI e( x ) +exponential +.TP +.BI l( x ) +log +.TP +.BI a( x ) +arctangent +.TP +.BI j( "n, x" ) +Bessel function +.RE +.PP +.DT +All function arguments are passed by value. +.PD +.PP +The value of an expression at the top level is printed +unless the main operator is an assignment or the +.B -s +command line argument is given. +Text in quotes, which may include newlines, is always printed. +Either semicolons or newlines may separate statements. +Assignment to +.B scale +influences the number of digits to be retained on arithmetic +operations in the manner of +.IR dc (1). +Assignments to +.B ibase +or +.B obase +set the input and output number radix respectively. +.PP +The same letter may be used as an array, a function, +and a simple variable simultaneously. +All variables are global to the program. +Automatic variables are pushed down during function calls. +In a declaration of an array as a function argument +or automatic variable +empty square brackets must follow the array name. +.PP +.I Bc +is actually a preprocessor for +.IR dc (1), +which it invokes automatically, unless the +.B -c +(compile only) +option is present. +In this case the +.I dc +input is sent to the standard output instead. +.SH EXAMPLE +Define a function to compute an approximate value of +the exponential. +Use it to print 10 values. +(The exponential function in the library gives better answers.) +.PP +.EX +scale = 20 +define e(x) { + auto a, b, c, i, s + a = 1 + b = 1 + s = 1 + for(i=1; 1; i++) { + a *= x + b *= i + c = a/b + if(c == 0) return s + s += c + } +} +for(i=1; i<=10; i++) print e(i) +.EE +.SH FILES +.B /sys/lib/bclib +mathematical library +.SH SOURCE +.B /sys/src/cmd/bc.y +.SH "SEE ALSO" +.IR dc (1), +.IR hoc (1) +.SH BUGS +No +.LR && , +.LR || , +or +.L ! +operators. +.br +A +.L for +statement must have all three +.LR E s. +.br +A +.L quit +is interpreted when read, not when executed. diff --git a/static/plan9-4e/man1/bind.1 b/static/plan9-4e/man1/bind.1 new file mode 100644 index 00000000..a430ba5d --- /dev/null +++ b/static/plan9-4e/man1/bind.1 @@ -0,0 +1,201 @@ +.TH BIND 1 +.SH NAME +bind, mount, unmount \- change name space +.SH SYNOPSIS +.B bind +[ +.I option ... +] +.I new old +.PP +.B mount +[ +.I option ... +] +.I servename old +[ +.I spec +] +.PP +.B unmount +[ +.I new +] +.I old +.SH DESCRIPTION +.I Bind +and +.I mount +modify the file name space of the current process +and other processes in the same name space group +(see +.IR fork (2)). +For both calls, +.I old +is the name of an existing file or directory in the +current name space where the modification is to be made. +.PP +For +.IR bind , +.I new +is the name of another (or possibly the same) +existing file or directory in +the current name space. +After a successful +.IR bind , +the file name +.I old +is an alias for the object originally named by +.IR new ; +if the modification doesn't hide it, +.I new +will also still refer to its original file. +The evaluation of +.I new +(see +.IR intro (2)) +happens at the time of the +.IR bind , +not when the binding is later used. +.PP +The +.I servename +argument to +.I mount +is the name of a file that, when opened, yields an +existing connection to a file server. +Almost always, +.I servename +will be a file in +.B /srv +(see +.IR srv (3)). +In the discussion below, +.I new +refers to the file named by the +.I new +argument to +.I bind +or the root directory of the service +available in +.I servename +after a +.IR mount . +Either both +.I old +and +.I new +files must be directories, +or both must not be directories. +.PP +Options control aspects of the modification to the name space: +.TP 10 +(none) +Replace the +.I old +file by the new one. +Henceforth, an evaluation of +.I old +will be translated to the new file. +If they are directories (for +.IR mount , +this condition is true by definition), +.I old +becomes a +.I "union directory" +consisting of one directory (the new file). +.TP +.B -b +Both files must be directories. +Add the new directory to the beginning +of the union directory represented by the old file. +.TP +.B -a +Both files must be directories. +Add the new directory to the end +of the union directory represented by the old file. +.TP +.B -c +This can be used in addition to any of the above to permit +creation in a union directory. +When a new file is created in a union directory, +it is placed in the first element of the union that has been bound or mounted with the +.B -c +flag. +If that directory does not have write permission, the create fails. +.TP +.B -C +(Only in +.IR mount .) +By default, file contents are always retrieved from the server. +With this option, the kernel may instead use a local cache to satisfy +.IR read (5) +requests for files accessible through this mount point. +The currency of cached data for a file is verified at each +.IR open (5) +of the file from this client machine. +.TP +.B -q +Exit silently if the +.B bind +or +.B mount +operation fails. +.PD +.PP +The +.I spec +argument to +.I mount +is passed in the +.IR attach (5) +message to the server, and selects among different +file trees served by the server. +.PP +The +.IR srv (3) +service registry device, normally bound to +.BR /srv , +is a convenient rendezvous point for services that can be mounted. +After bootstrap, the file +.B /srv/boot +contains the communications port to the file system from which +the system was loaded. +.PP +The effects of +.I bind +and +.I mount +can be undone with the +.I unmount +command. +If two arguments are given to +.IR unmount , +the effect is to undo a +.I bind +or +.I mount +with the same arguments. +If only one argument is given, +everything bound to or mounted upon +.I old +is unmounted. +.SH EXAMPLES +To compile a program with the C library from July 16, 1992: +.IP +.EX +mount /srv/boot /n/dump dump +bind /n/dump/1992/0716/mips/lib/libc.a /mips/lib/libc.a +mk +.EE +.SH SOURCE +.B /sys/src/cmd/bind.c +.br +.B /sys/src/cmd/mount.c +.br +.B /sys/src/cmd/unmount.c +.SH SEE ALSO +.IR bind (2), +.IR open (2), +.IR srv (3), +.IR srv (4) diff --git a/static/plan9-4e/man1/bitsyload.1 b/static/plan9-4e/man1/bitsyload.1 new file mode 100644 index 00000000..e9c46461 --- /dev/null +++ b/static/plan9-4e/man1/bitsyload.1 @@ -0,0 +1,146 @@ +.TH BITSYLOAD 1 +.SH NAME +bitsyload, light, pencal, keyboard, params, prompter \- bitsy-specific utilities +.SH SYNOPSIS +.PP +.B bitsy/bitsyload +.B k|r +[ +.I file +] +.PP +.B bitsy/light +[ +.I intensity +] +.PP +.B bitsy/params +[ +.B \-f +] +.PP +.B bitsy/pencal +.PP +.B bitsy/keyboard +[ +.B \-n +] +.PP +.B bitsy/prompter +[ +.B \-n +] +.I file +.SH DESCRIPTION +.PP +.I Bitsyload +erases a section of flash memory on the Bitsy (iPAQ 3650 or 3830) +and copies new +information into it, using the format required by the Compaq +boot loader. The required first argument is the destination, either +.B k +for +.B /dev/flash/kernel +or +.B r +for +.BR /dev/flash/ramdisk . +The optional second argument is the name of the file +to load. The default kernel file is +.B /sys/src/9/bitsy/9bitsy +and the default ramdisk file is +.BR /sys/src/9/bitsy/ramdisk . +.PP +.I Light +sets the intensity of the display backlight. +The +values for +.I intensity +are: +.IP on +set intensity to maximum, the default +.IP off +turn off backlight +.IP \fIn\fP +sets the intensity to +.IR n , +where +.I n +is a value between 0 and 128. Intensity 0 doesn't +turn off the backlight, it just sets it to the dimmest +value. +.PP +.I Pencal +calibrates the display with the touch screen on a Bitsy. +It loops prompting the user with crosses whose center that the user +must touch with the stylus. After a consistent set of touches, +it writes the calibration both to the kernel and to standard out. +It is normally called by the bitsy's +.BR /bin/cpurc . +.PP +.I Params +copies the contents of the file +.BR /dev/tmpparams , +into the flash partition, +.BR /dev/flash/params , +or if the +.B -f +flag it set copies in the opposite direction. +.PP +.I Keyboard +creates a virtual on-screen keyboard and, unless the +.B -n +option is specified, a scribble area. +A user inputs characters by tapping the keys or +by drawing characters in the +scribble area (see +.IR scribble (2)). +It is usually run as the keyboard command for +.IR rio (1) +using +.BR rio 's +.B -k +option. +.PP +.I Prompter +is a small editor used to configure parameters when a Bitsy boots. +It displays the file and starts up a keyboard and scribble pad for +input. +Clicking with the stylus in the text selects where input characters will go. +Pressing Button 5 (top left side of the Bitsy) or typing the +.B Esc +key on the keyboard causes +.I prompter +to write back the updated file and exit; +.B Del +causes +.I prompter +to exit without writing the file. +The +.B -n +flag suppresses the scribble area. +.SH EXAMPLE +.PP +.IR Prompter , +.IR params , +and +.I calibrate +are used in only one place, the Bitsy's +.BR /rc/bin/cpurc : +.sp +.EX +# set variables +ramfs +bitsy/params -f +if(! grep -s '^calibrate=' /tmp/tmpparams) + bitsy/pencal >>/tmp/tmpparams +if not { + eval `{grep '^calibrate=' /tmp/tmpparams} + echo calibrate $calibrate > '#m/mousectl' +} +bitsy/prompter /tmp/tmpparams +bitsy/params +. /tmp/tmpparams +.EE +.SH SOURCE +.B /sys/src/cmd/bitsy diff --git a/static/plan9-4e/man1/bundle.1 b/static/plan9-4e/man1/bundle.1 new file mode 100644 index 00000000..d7b9f9f4 --- /dev/null +++ b/static/plan9-4e/man1/bundle.1 @@ -0,0 +1,53 @@ +.TH BUNDLE 1 +.SH NAME +bundle \- collect files for distribution +.SH SYNOPSIS +.B bundle +.I file ... +.SH DESCRIPTION +.I Bundle +writes on its standard output a shell script for +.IR rc (1) +or a Bourne shell +which, when executed, +will recreate the original +.IR files . +Its main use is for distributing small numbers of text files by +.IR mail (1). +.PP +Although less refined than standard archives from +.IR ar (1) +or +.IR tar (1), +a +.IR bundle +file +is self-documenting and complete; little preparation is required on +the receiving machine. +.SH EXAMPLES +.TP +.L +bundle mkfile *.[ch] | mail kremvax!boris +Send a makefile to Boris together with related +.L .c +and +.L .h +files. +Upon receiving the mail, Boris may save the file sans postmark, +say in +.BR gift/horse , +then do +.TP +.L +cd gift; rc horse; mk +.SH SOURCE +.B /rc/bin/bundle +.SH SEE ALSO +.IR ar (1), +.IR tar (1), +.IR mail (1) +.SH BUGS +.I Bundle +will not create directories and is unsatisfactory for non-text files. +.br +Beware of gift horses. diff --git a/static/plan9-4e/man1/cal.1 b/static/plan9-4e/man1/cal.1 new file mode 100644 index 00000000..7ac5b996 --- /dev/null +++ b/static/plan9-4e/man1/cal.1 @@ -0,0 +1,46 @@ +.TH CAL 1 +.SH NAME +cal \- print calendar +.SH SYNOPSIS +.B cal +[ +.I month +] +[ +.I year +] +.SH DESCRIPTION +.I Cal +prints a calendar. +.I Month +is either a number from 1 to 12, +a lower case month name, +or a lower case three-letter prefix of a month name. +.I Year +can be between 1 +and 9999. +If either +.I month +or +.I year +is omitted, the current month or year is used. +If only one argument is given, and it is a number larger than 12, +a calendar for all twelve months of the given year is produced; +otherwise a calendar for just one month is printed. +The calendar +produced is that for England and her colonies. +.PP +Try +.EX + cal sep 1752 +.EE +.SH SOURCE +.B /sys/src/cmd/cal.c +.SH BUGS +The year is always considered to start in January even though this +is historically naive. +.br +Beware that +.L "cal 90" +refers to the early Christian era, +not the 20th century. diff --git a/static/plan9-4e/man1/calendar.1 b/static/plan9-4e/man1/calendar.1 new file mode 100644 index 00000000..32293752 --- /dev/null +++ b/static/plan9-4e/man1/calendar.1 @@ -0,0 +1,44 @@ +.TH CALENDAR 1 +.SH NAME +calendar \- print upcoming events +.SH SYNOPSIS +.B calendar +[ +.B \-y +] +[ +.I file ... +] +.SH DESCRIPTION +.I Calendar +reads the named files, default +.BR /usr/$user/lib/calendar , +and writes to standard output any lines +containing today's or tomorrow's date. +Examples of recognized date formats are +"4/11", +"April 11", +"Apr 11", +"11 April", +and +"11 Apr". +All comparisons are case insensitive. +.PP +If the +.B \-y +flag is given, an attempt is made to match on year too. In this case, +dates of the forms listed above will be accepted if they are followed +by the current year (or last two digits thereof) or not a year — +digits not followed by white space or non-digits. +.PP +On Friday and Saturday, events through Monday are printed. +.PP +To have your calendar mailed to you every day, use +.IR cron (8). +.SH FILES +.TF /usr/$user/lib/calendar +.TP +.B /usr/$user/lib/calendar +personal calendar +.SH SOURCE +.B /sys/src/cmd/calendar.c diff --git a/static/plan9-4e/man1/cat.1 b/static/plan9-4e/man1/cat.1 new file mode 100644 index 00000000..445844da --- /dev/null +++ b/static/plan9-4e/man1/cat.1 @@ -0,0 +1,82 @@ +.TH CAT 1 +.SH NAME +cat, read \- catenate files +.SH SYNOPSIS +.B cat +[ +.I file ... +] +.br +.B read +[ +.B -m +] [ +.B -n +.I nline +] [ +.I file ... +] +.SH DESCRIPTION +.I Cat +reads each +.I file +in sequence and writes it on the standard output. +Thus +.IP +.L +cat file +.LP +prints a file and +.IP +.L +cat file1 file2 >file3 +.LP +concatenates the first two files and places the result +on the third. +.PP +If no +.I file +is given, +.I cat +reads from the standard input. +Output is buffered in blocks matching the input. +.PP +.I Read +copies to standard output exactly one line from the named +.IR file , +default standard input. +It is useful in interactive +.IR rc (1) +scripts. +.PP +The +.B -m +flag causes it to continue reading and writing multiple lines until end of file; +.B -n +causes it to read no more than +.I nline +lines. +.PP +Read always executes a single +.B write +for each line of input, which can be helpful when +preparing input to programs that expect line-at-a-time data. +It never reads any more data from the input than it prints to the output. +.SH SOURCE +.B /sys/src/cmd/cat.c +.br +.B /sys/src/cmd/read.c +.SH SEE ALSO +.IR cp (1) +.SH DIAGNOSTICS +.I Read +exits with status +.B eof +on end of file. +.SH BUGS +Beware of +.L "cat a b >a" +and +.LR "cat a b >b" , +which +destroy input files before reading them. diff --git a/static/plan9-4e/man1/chgrp.1 b/static/plan9-4e/man1/chgrp.1 new file mode 100644 index 00000000..f1924773 --- /dev/null +++ b/static/plan9-4e/man1/chgrp.1 @@ -0,0 +1,36 @@ +.TH CHGRP 1 +.SH NAME +chgrp \- change file group +.SH SYNOPSIS +.B chgrp +[ +.B -ou +] +.I group file ... +.SH DESCRIPTION +The group of +each named file +is changed to +.IR group , +which should be a name known to the server holding the file. +.PP +A file's group can be changed by the file's owner, if the +owner is a member of the new group, +or by the leader of both +the file's current group and the new group. +.PP +The +.B -o +and +.B -u +option are synonyms; they specify that the +.I owner +is to be set, rather than the group. +They are ineffectual unless the file server is in the bootstrap +state that permits changing file ownership. +.SH SOURCE +.B /sys/src/cmd/chgrp.c +.SH "SEE ALSO" +.IR ls (1), +.IR chmod (1), +.IR stat (2) diff --git a/static/plan9-4e/man1/chmod.1 b/static/plan9-4e/man1/chmod.1 new file mode 100644 index 00000000..8b843005 --- /dev/null +++ b/static/plan9-4e/man1/chmod.1 @@ -0,0 +1,104 @@ +.TH CHMOD 1 +.SH NAME +chmod \- change mode +.SH SYNOPSIS +.B chmod +.I mode file ... +.SH DESCRIPTION +The mode of +each named file +is changed +according to +.IR mode, +which may be an octal number or a symbolic change to the existing mode. +A +.I mode +is an octal +number constructed +from the OR of the +following modes. +.TF 0000 +.TP +0400 +read by owner +.TP +0200 +write by owner +.TP +0100 +execute (search in directory) by owner +.TP +0070 +read, write, execute (search) by group +.TP +0007 +read, write, execute (search) by others +.PD +.PP +A symbolic +.I mode +has the form: +.IP +.RI [who] +.I op permission +.PP +The +.I who +part is a combination +of the letters +.B u +(for user's permissions), +.B g +(group) +and +.B o +(other). +The letter +.B a +stands for +.BR ugo . +If +.I who +is omitted, +the default is +.BR a . +.PP +.I Op +can be +.B + +to add +.I permission +to the file's mode, +.B - +to take away +.IR permission , +and +.B = +to assign +.I permission +absolutely +(all other bits will +be reset). +.PP +.I Permission +is any combination of the letters +.B r +(read), +.B w +(write), +.B x +(execute), +.B a +(append only), +and +.B l +(exclusive access). +.PP +Only the owner of a file or the group leader of its group +may change the file's mode. +.SH SOURCE +.B /sys/src/cmd/chmod.c +.SH "SEE ALSO" +.IR ls (1), +.IR stat (2), +.IR stat (5) diff --git a/static/plan9-4e/man1/cleanname.1 b/static/plan9-4e/man1/cleanname.1 new file mode 100644 index 00000000..41c06c00 --- /dev/null +++ b/static/plan9-4e/man1/cleanname.1 @@ -0,0 +1,32 @@ +.TH CLEANNAME 1 +.SH NAME +cleanname \- clean a path name +.SH SYNOPSIS +.B cleanname +[ +.B -d +.I pwd +] +.I names ... +.SH DESCRIPTION +For each file name argument, +.IR cleanname , +by lexical processing only, +prints the shortest equivalent string that names the same +(possibly hypothetical) file. +It eliminates multiple and trailing slashes, and it lexically +interprets +.B . +and +.B .. +directory components in the name. +If the +.B -d +option is present, +unrooted names are prefixed with +.IB pwd / +before processing. +.SH SOURCE +.B /sys/src/cmd/cleanname.c +.SH SEE ALSO +.IR cleanname (2). diff --git a/static/plan9-4e/man1/cmp.1 b/static/plan9-4e/man1/cmp.1 new file mode 100644 index 00000000..e48d0766 --- /dev/null +++ b/static/plan9-4e/man1/cmp.1 @@ -0,0 +1,57 @@ +.TH CMP 1 +.SH NAME +cmp \- compare two files +.SH SYNOPSIS +.B cmp +[ +.B -lsL +] +.I file1 file2 +[ +.I offset1 +[ +.I offset2 +] +] +.SH DESCRIPTION +The two files are +compared. +A diagnostic results if the contents differ, otherwise +there is no output. +.PP +The options are: +.TP +.B l +Print the byte number (decimal) and the +differing bytes (hexadecimal) for each difference. +.TP +.B s +Print nothing for differing files, +but set the exit status. +.TP +.B L +Print the line number of the first differing byte. +.PP +If offsets are given, +comparison starts at the designated byte position +of the corresponding file. +Offsets that begin with +.B 0x +are hexadecimal; +with +.BR 0 , +octal; with anything else, decimal. +.SH SOURCE +.B /sys/src/cmd/cmp.c +.SH "SEE ALSO" +.IR diff (1) +.SH DIAGNOSTICS +If a file is inaccessible or missing, the exit status is +.LR open . +If the files are the same, the exit status is empty (true). +If they are the same except that one is longer than the other, the exit status is +.LR EOF . +Otherwise +.I cmp +reports the position of the first disagreeing byte and the exit status is +.LR differ . diff --git a/static/plan9-4e/man1/colors.1 b/static/plan9-4e/man1/colors.1 new file mode 100644 index 00000000..506dd37c --- /dev/null +++ b/static/plan9-4e/man1/colors.1 @@ -0,0 +1,73 @@ +.TH COLORS 1 +.SH NAME +getmap, colors \- display color map +.SH SYNOPSIS +.PP +.B colors +[ +.B -r +.B -x +] +.PP +.B getmap +[ +.I colormap +] +.SH DESCRIPTION +.I Colors +presents a grid showing the colors in the current color map. +If the display is true color, +.I colors +shows a grid of the RGBV color map +(see +.IR color (6)). +.PP +Clicking mouse button 1 over a color in the grid will display the map index for that color, +its +red, green, and blue components, +and the 32-bit hexadecimal color value as defined in +.IR allocimage (2). +If the +.B -x +option is specified, the components will also be listed in hexadecimal. +.PP +The +.B -r +option instead shows, in the same form, a grey-scale ramp. +.PP +A menu on mouse button 3 contains a single entry, to exit the program. +.PP +On 8-bit color-mapped displays, +.I getmap +loads the display's color map (default +.BR rgbv ). +The named +.I colormap +can be a file in the current directory or in the standard repository +.BR /lib/cmap . +It can also be a string of the form +.B gamma +or +.BI gamma N\f1 , +where +.I N +is a floating point value for the gamma, defining the contrast for a monochrome map. +Similarly, +.B rgamma +and +.BI rgamma N +define a reverse-video monochrome map. +Finally, the names +.B screen +or +.B display +or +.B vga +are taken as synonyms for the current color map stored in the display hardware. +.SH FILES +.B /lib/cmap +directory of color map files +.SH SOURCE +.B /sys/src/cmd/colors.c +.SH SEE ALSO +.IR color (6) diff --git a/static/plan9-4e/man1/comm.1 b/static/plan9-4e/man1/comm.1 new file mode 100644 index 00000000..2fd883c0 --- /dev/null +++ b/static/plan9-4e/man1/comm.1 @@ -0,0 +1,47 @@ +.TH COMM 1 +.CT 1 files +.SH NAME +comm \- select or reject lines common to two sorted files +.SH SYNOPSIS +.B comm +[ +.B -123 +] +.I file1 file2 +.SH DESCRIPTION +.I Comm +reads +.I file1 +and +.IR file2 , +which are in lexicographical order, +and produces a three column output: lines only in +.IR file1 ; +lines only in +.IR file2 ; +and lines in both files. +The file name +.L - +means the standard input. +.PP +Flag +.LR 1 , +.LR 2 , +or +.LR 3 +suppresses printing of the corresponding +column. +.SH EXAMPLE +.TP +.EX +comm -12 file1 file2 +.EE +.IP +Print lines common to two sorted files. +.SH SOURCE +.B /sys/src/cmd/comm.c +.SH "SEE ALSO" +.IR sort (1), +.IR cmp (1), +.IR diff (1), +.IR uniq (1) diff --git a/static/plan9-4e/man1/con.1 b/static/plan9-4e/man1/con.1 new file mode 100644 index 00000000..293b0315 --- /dev/null +++ b/static/plan9-4e/man1/con.1 @@ -0,0 +1,238 @@ +.TH CON 1 +.SH NAME +con, telnet, rx, xms, xmr \- remote login, execution, and XMODEM file transfer +.SH SYNOPSIS +.B con +[ +.B -CdnrRvs +] +[ +.B -b +.I baud +] +[ +.B -l +[ +.I remuser +] +] +[ +.B -c +.I cmd +] +.RI [ net !] machine +.PP +.B telnet +[ +.B -dCrn +] +.RI [ net !] machine +.PP +.B cu +.I number +.PP +.B rx +[ +.B -e +] +[ +.B -l +.I remuser +] +.RI [ net !] machine +[ +.I command-word ... +] +.PP +.B xms +.I file +.PP +.B xmr +.I file +.SH DESCRIPTION +.I Con +connects to the computer whose network address is +.IR net ! machine +and logs in if possible. +With no options, the account name used on the remote system is the same +as that on the local system. +Standard input and output go to the local machine. +.PP +Options are: +.TP +.B -b +sets the baud rate of a dial-up connection to +.IR baud . +.TP +.B -n +if the input is a file or pipe, do not hang up the connection when EOF is received, +but instead wait for the remote end to hang up. +.TP +.B -l +with an argument causes +.I remuser +to be used as the account name on the remote system. +Without an argument this option disables automatic login +and a normal login session ensues. +.TP +.B -C +forces cooked mode, that is, local echo. +.TP +.B -c +runs +.I cmd +as if it had been typed as a command from the escape mode. +This is used by +.IR cu . +.TP +.B -v +(verbose mode) causes information about connection attempts +to be output to standard error. This can be useful when +trying to debug network connectivity. +.TP +.B -d +causes debugging information to be output to standard error. +.TP +.B -r +suppresses printing of any carriage return followed by a new line. +This is useful since carriage return is a printable character in +Plan 9. +.TP +.B -R +translates newlines to carriage returns and +.IR vice versa . +.TP +.B -s +strips received characters to 7 bits to forestall +misinterpretation of +.SM ASCII +with parity as +.SM UTF\c +\&. +.PP +The +.RB control\- \e +character is a local escape. +It prompts with +.BR >>> . +Legitimate responses to the prompt are +.TP +.B i +Send a quit [sic] signal to the remote machine. +.PD0 +.TP +.B q +Exit. +.TP +.B b +Send a break. +.TP +.B . +Return from the escape. +.TP +.B !cmd +Run the command with the network connection as its +standard input and standard output. +Standard error will go to the screen. +This is useful for transmitting and receiving files +over the connections using programs such as +.IR xms . +.TP +.B r +Toggle printing of carriage returns. +.PD +.PP +.I Telnet +is similar to con, but uses the +.I telnet +protocol to communicate with the remote machine. +It shares +.I con's +.BR -C , +.BR -d , +.BR -n , +and +.BR -r +options. +.PP +.I Rx +executes one shell command +on the remote machine as if logged in there, +but with local standard input and output. +A rudimentary shell environment is provided. +If the target is a Plan 9 machine, +.B $service +there will be +.BR rx . +The +.B \-e +option causes a zero length message to be written to the +connection when standard input is closed. +The +.B \-l +option causes +.I remuser +to be used on the remote machine if the remote +is a BSD machine. +.PP +Network addresses for both +.I con +and +.I rx +have the form +.IB network ! machine\f1. +Supported networks are those listed in +.BR /net . +.PP +The commands +.I xms +and +.I xmr +respectively send and receive a single file using the +XMODEM protocol. +They use standard input and standard output for communication +and are intended for use with +.IR con . +.SH EXAMPLES +.TP +.L +rx kremvax cat file1 >file2 +Copy remote +.I file1 +to local +.IR file2 . +.TP +.L +rx kremvax cat file1 '>file2' +Copy remote +.I file1 +to remote +.IR file2. +.TP +.L +eqn paper | rx kremvax troff -ms | rx deepthought lp +Parallel processing: +do each stage of a pipeline on a different machine. +.SH SOURCE +.TF /sys/src/cmd/con +.TP +.B /sys/src/cmd/con +for +.IR con , +.IR xms , +and +.IR xmr . +.TP +.B /sys/src/cmd/ip +for +.IR telnet . +.SH BUGS +Under +.IR rx , +a program +that should behave specially towards terminals may not: e.g., +remote shells will not prompt. +Also under +.IR rx , +the remote standard error and standard output are combined +and go inseparably to the local standard output. diff --git a/static/plan9-4e/man1/cp.1 b/static/plan9-4e/man1/cp.1 new file mode 100644 index 00000000..dc1d50ce --- /dev/null +++ b/static/plan9-4e/man1/cp.1 @@ -0,0 +1,92 @@ +.TH CP 1 +.SH NAME +cp, mv \- copy, move files +.SH SYNOPSIS +.B cp +[ +.B -gux +] +.I file1 file2 +.br +.B cp +[ +.B -gux +] +.I file ... directory +.PP +.B mv +.I file1 file2 +.br +.B mv +.I file ... directory +.SH DESCRIPTION +In the first form +.I file1 +is any name and +.I file2 +is any name except an existing directory. +In the second form the commands +copy or move one or more +.I files +into a +.I directory +under their original file names, as if by a sequence of +commands in the first form. +Thus +.L "cp f1 f2 dir +is equivalent to +.LR "cp f1 dir/f1; cp f2 dir/f2" . +.PP +.I Cp +copies the contents of plain +.I file1 +to +.IR file2 . +The mode and owner of +.I file2 +are preserved if it already +exists; the mode of +.I file1 +is used otherwise. +The +.B -x +option sets the mode and modified time of +.I file2 +from +.IR file1 ; +.B -g +sets the group id; and +.B -u +sets the group id and user id (which is usually only possible if the file server is in an administrative mode). +.PP +.I Mv +moves +.I file1 +to +.IR file2 . +If the files are in the same directory, +.I file1 +is just renamed; +otherwise +.I mv +behaves like +.I cp +.B -x +followed by +.B rm +.IR file1 . +.I Mv +will rename directories, +but it refuses to move a directory into another directory. +.SH SOURCE +.B /sys/src/cmd/cp.c +.br +.B /sys/src/cmd/mv.c +.SH "SEE ALSO" +.IR cat (1), +.IR stat (2) +.SH DIAGNOSTICS +.I Cp +and +.I mv +refuse to copy or move files onto themselves. diff --git a/static/plan9-4e/man1/cpp.1 b/static/plan9-4e/man1/cpp.1 new file mode 100644 index 00000000..7ff3a352 --- /dev/null +++ b/static/plan9-4e/man1/cpp.1 @@ -0,0 +1,116 @@ +.TH CPP 1 +.SH NAME +cpp \- C language preprocessor +.SH SYNOPSIS +.B cpp +[ +.I option ... +] +[ +.I ifile +[ +.I ofile +] +] +.SH DESCRIPTION +.I Cpp\^ +interprets ANSI C preprocessor directives +and does macro substitution. +The input +.I ifile +and output +.I ofile +default to standard input and standard output respectively. +.PP +The options are: +.TP +.BI -D name\^ +.PD 0 +.TP +.BI -D name=def\^ +.TP +.BI -I dir\^ +Same as in +.IR 2c "(1): add +.I dir +to the search for +.CW search +directives. +.PD +.TP +.B -M +Generate no output except a list of include files +in a form suitable for specifying dependencies to +.IR mk (1). +Use twice to list files in angle brackets. +.TP +.B -N +Turn off default include directories. All must be +specified with +.BR -I , +or in the environment variable +.BR include . +Without this option, +.B /$objtype/include +and +.B /sys/include +are used as the last two searched directories for include directives, +where +.B $objtype +is read from the environment. +.TP +.B -V +Print extra debugging information. +.TP +.B -P +Do not insert +.RB `` #line '' +directives into the output. +.TP +.B -+ +Understand C++ comments. +.TP +.B -i +Print the list of directories searched when +.I #include +is found. +Last listed are searched first. +.PD +.PP +In the absence of the +.B -P +option, the processed text output is sprinkled +with lines that show the original input line numbering: +.IP +.B #line +.I linenumber +.L +"\fIifile\fP" +.PP +The command reads the environment variable +.IR include +and adds its (blank-separated) list of directories to +the standard search path for +.CW #include +directives. They are looked at before any directories specified with +.BR -I , +which are looked at before the default directories. +.PP +The input language is as described in the ANSI C standard. +The standard Plan 9 C compilers do not use +.IR cpp ; +they contain their own simple but adequate preprocessor, so +.I cpp +is usually superfluous. +.SH FILES +.TF /objtype/include +.TP +.B /sys/include +directory for machine-independent include files +.TP +.B /$objtype/include +directory for machine-dependent include files +.SH SOURCE +.B /sys/src/cmd/cpp +.SH SEE ALSO +.IR 2c (1) diff --git a/static/plan9-4e/man1/cpu.1 b/static/plan9-4e/man1/cpu.1 new file mode 100644 index 00000000..33f321db --- /dev/null +++ b/static/plan9-4e/man1/cpu.1 @@ -0,0 +1,162 @@ +.TH CPU 1 +.SH NAME +cpu \- connection to cpu server +.SH SYNOPSIS +.B cpu +[ +.B -h +.I server +] [ +.B -f +] [ +.B -a +.I auth-method +] [ +.B -e +.I encryption-hash-algs +] [ +.B -c +.I cmd args ... +] +.SH DESCRIPTION +.I Cpu +starts an +.IR rc (1) +running on the +.I server +machine, or the machine named in the +.B $cpu +environment variable if there is no +.B -h +option. +.IR Rc 's +standard input, output, and error files will be +.B /dev/cons +in the name space where the +.I cpu +command was invoked. +Normally, +.I cpu +is run in an +.IR rio (1) +window on a terminal, so +.IR rc +output goes to that window, and input comes from the keyboard +when that window is current. +.IR Rc 's +current directory is +the working directory of the +.I cpu +command itself. +.PP +The name space for the new +.I rc +is an analogue of the name space where the +.I cpu +command was invoked: +it is the same except for architecture-dependent bindings such as +.B /bin +and the use of fast paths to file servers, if available. +.PP +If a +.B -c +argument is present, the remainder of the command line is executed by +.I rc +on the server, and then +.I cpu +exits. +.PP +The +.B -a +command allows the user to specify the authentication mechanism used +when connecting to the remote system. The two possibilities for +.I auth-method +are: +.TF netkey +.TP +.B p9 +This is the default. Authentication is done using the standard Plan 9 +mechanisms, (see +.IR authsrv (6)). +No user interaction is required. +.TP +.B netkey +Authentication is done using challenge/response and a hand held +authenticator or the +.I netkey +program +(see +.IR passwd (1)). +The user must encrypt the challenge and type the encryption +back to +.IR cpu . +This is used if the local host is in a different protection domain than +the server or if the user wants to log into the server as a different +user. +.PD +.PP +The +.B -e +option specifies an encryption and/or hash algorithm to +use for the connection. If both are specified, they must +be space separated and comprise a single argument, so they +must be quoted if in a shell command. The default is +.L rc4_256 +encryption and +.L sha1 +hashing. See +.IR ssl (3) +for details on possible algorithms. The argument +.L clear +specifies no encryption algorithm and can be used to talk +to older versions of the +.B cpu +service. +.PP +The +.B -f +flag inserts a filter in the data stream to coalesce +9P packet fragments into full packets. +It is used on TCP connections, and is set automatically by +the TCP receive script for incoming CPU calls +(see +.IR listen (8)). +.PP +The name space is built by running +.B /usr/$user/lib/profile +with the root of the invoking name space bound to +.BR /mnt/term . +The +.B service +environment variable is set to +.BR cpu ; +the +.B cputype +and +.B objtype +environment variables reflect the server's architecture. +.SH FILES +The name space of the terminal side of the +.B cpu +command is mounted, via +.IR exportfs (4), +on the CPU side on directory +.BR /mnt/term . +The files such as +.B /dev/cons +are bound to their standard locations from there. +.SH SOURCE +.B /sys/src/cmd/cpu.c +.SH SEE ALSO +.IR rc (1) , +.IR rio (1) +.SH BUGS +Binds and mounts done after the terminal +.B lib/profile +is run are not reflected in the new name space. +.PP +When using the +.B -a +option to `log in' as another user, be aware that +resources in the local name space will be made +available to that user. diff --git a/static/plan9-4e/man1/crop.1 b/static/plan9-4e/man1/crop.1 new file mode 100644 index 00000000..ec0e952c --- /dev/null +++ b/static/plan9-4e/man1/crop.1 @@ -0,0 +1,147 @@ +.TH CROP 1 +.SH NAME +crop, iconv \- frame, crop, and convert image +.SH SYNOPSIS +.B crop +[ +.BI -c +.I red +.I green +.I blue +] +[ +.B -i +.I n +| +.B -x +.I dx +| +.B -y +.I dy +| +.B -r +.I minx +.I miny +.I maxx +.I maxy +] +[ +.B -t +.I tx +.I ty +] +[ +.B -b +.I red +.I green +.I blue +] +[ +.I file +] +.PP +.B iconv +[ +.B -u +] [ +.B -c +.I chandesc +] +[ +.I file +] +.SH DESCRIPTION +.I Crop +reads an +.IR image (6) +file (default standard input), crops it, and writes it as a compressed +.IR image (6) +file to standard output. +There are two ways to specify a crop, by color value or by geometry. +They may be combined in a single run of +.IR crop , +in which case the color value crop will be done first. +.PP +The +.B -c +option takes a red-green-blue triplet as described in +.IR color (2). +(For example, white +is +.B 255 +.B 255 +.BR 255 .) +The corresponding color is used as a value to be cut from the outer +edge of the picture; that is, the image is cropped to remove the maximal +outside rectangular strip in which every pixel has the specified color. +.PP +The +.B -i +option insets the image rectangle by a constant amount, +.IR n , +which may be negative to generate extra space around the image. +The +.B -x +and +.B -y +options are similar, but apply only to the +.I x +or +.I y +coordinates of the image. +.PP +The +.B -r +option specifies an exact rectangle. +.PP +The +.B -t +option specifies that the image's coordinate system should +be translated by +.IR tx , +.IR ty +as the last step of processing. +.PP +The +.B -b +option specifies a background color to be used to fill around the image +if the cropped image is larger than the original, such as if the +.B -i +option is given a negative argument. +This can be used to draw a monochrome frame around the image. +The default color is black. +.PP +.I Iconv +changes the format of pixels in the image +.I file +(default standard input) and writes the resulting image to standard output. +Pixels in the image are converted according to the channel descriptor +.IR chandesc , +(see +.IR image (6)). +For example, to convert a 4-bit-per-pixel grey-scale image to an 8-bit-per-pixel +color-mapped image, +.I chandesc +should be +.BR m8 . +If +.I chandesc +is not given, the format is unchanged. +The output image is by default compressed; the +.B -u +option turns off the compression. +.SH EXAMPLE +To crop white edges off the picture and add a ten-pixel pink border, +.IP +.EX +crop -c 255 255 255 -i -10 -b 255 150 150 imagefile > cropped +.EE +.SH SOURCE +.B /sys/src/cmd/crop.c +.SH SEE ALSO +.IR image (6), +.IR color (2) +.SH BUGS +.I Iconv +should be able to do Floyd-Steinberg error diffusion or dithering +when converting to small image depths. diff --git a/static/plan9-4e/man1/date.1 b/static/plan9-4e/man1/date.1 new file mode 100644 index 00000000..3d232baa --- /dev/null +++ b/static/plan9-4e/man1/date.1 @@ -0,0 +1,58 @@ +.TH DATE 1 +.SH NAME +date, clock \- date and time +.SH SYNOPSIS +.B date +[ +.I option +] [ +.I seconds +] +.br +.B clock +.SH DESCRIPTION +Print the date, in the format +.PP +.B + Tue Aug 16 17:03:52 CDT 1977 +.PP +The options are +.TP +.B -u +Report Greenwich Mean Time (GMT) rather than local time. +.TP +.B -n +Report the date as the number of seconds since the +epoch, 00:00:00 GMT, January 1, 1970. +.PP +The conversion from Greenwich Mean Time to local time depends on the +.B $timezone +environment variable; see +.IR ctime (2). +.PP +If the optional argument +.I seconds +is present, it is used as the time to convert rather than +the real time. +.SH FILES +.TF /adm/timezone/local +.TP +.B /env/timezone +Current timezone name and adjustments. +.TP +.B /adm/timezone +A directory containing timezone tables. +.TP +.B /adm/timezone/local +Default timezone file, copied by +.IR init (8) +into +.BR /env/timezone . +.PD +.PP +.I Clock +draws a simple analog clock in its window. +.SH SOURCE +.B /sys/src/cmd/date.c +.br +.B /sys/src/cmd/clock.c diff --git a/static/plan9-4e/man1/db.1 b/static/plan9-4e/man1/db.1 new file mode 100644 index 00000000..34f1f423 --- /dev/null +++ b/static/plan9-4e/man1/db.1 @@ -0,0 +1,1018 @@ +.TH DB 1 +.SH NAME +db \- debugger +.SH SYNOPSIS +.B db +[ +.I option ... +] +[ +.I textfile +] +[ +.I pid +] +.SH DESCRIPTION +.I Db +is a general purpose debugging program. +It may be used to examine files and to provide +a controlled environment for the execution +of Plan 9 programs. +.PP +A +.I textfile +is a file containing the text and initialized +data of an executable program. +A +.I memfile +is the memory image of an executing process. It is +usually accessed via the process id +.RI ( pid ) +of the process in +.BI /proc/ pid /mem\f1. +A +.I memfile +contains the text, data, and saved registers and +process state. A +.I map +associated with each +.I textfile +or +.I memfile +supports accesses to instructions and data in the file; +see `Addresses'. +.PP +An argument consisting entirely of digits is assumed +to be a process id; otherwise, it is the name of a +.IR textfile . +When a +.I textfile +is given, the textfile map +is associated with it. +If only a +.I pid +is given, the textfile map is +associated with +.BI /proc/ pid /text\f1. +When a +.I pid +is given, the memfile map is associated with +.BI /proc/ pid /mem\f1; +otherwise it is undefined and accesses to the +.I memfile +are not permitted. +.PP +Commands to +.I db +are read from the standard input and +responses are to the standard output. +The options are +.TP +.BI -k +Use the kernel stack of process +.IR pid +to debug the executing kernel process. +If +.I textfile +is not specified, file +.BI / $cputype /9 type +is used, where +.I type +is the second word in +.BR $terminal . +.TP +.B -w +Create +.I textfile +and +.I memfile +if they don't exist; open them for writing +as well as reading. +.TP +.BI -I path +Directory in which to look for relative path names in +.B $< +and +.B $<< +commands. +.TP +.BI -m machine +Assume instructions are for the given CPU type +(any standard architecture name, such as +.B alpha +or +.BR 386 , +plus +.B mipsco +and +.BR sunsparc , +which cause disassembly to the manufacturer's syntax) +instead of using the magic number to select +the CPU type. +.PP +Most +.I db +commands have the following form: +.IP +.RI [ address ] +.RB [ , +.IR count ] +.RI [ command ] +.PP +If +.I address +is present then the current position, called `dot', +is set to +.IR address . +Initially dot +is set to 0. +Most commands are repeated +.I count +times with +dot advancing between repetitions. +The default +.I count +is 1. +.I Address +and +.I count +are expressions. +Multiple commands on one line must be separated by +.LR ; . +.SS Expressions +Expressions are evaluated as long +.IR ints . +.TP 7.2n +.B . +The value of dot. +.TP 7.2n +.B + +The value of dot +incremented by the current increment. +.TP 7.2n +.B ^ +The value of dot +decremented by the current increment. +.TP 7.2n +.B \&" +The last +.I address +typed. +.TP 7.2n +.I integer +A number, in decimal radix by default. +The prefixes +.L 0 +and +.L 0o +and +.L 0O +(zero oh) force interpretation +in octal radix; the prefixes +.L 0t +and +.L 0T +force interpretation in +decimal radix; the prefixes +.LR 0x , +.LR 0X , +and +.L # +force interpretation in +hexadecimal radix. +Thus +.LR 020 , +.LR 0o20 , +.LR 0t16 , +and +.L #10 +all represent sixteen. +.TP 7.2n +.IB integer . fraction +A single-precision floating point number. +.TP 7.2n +.BI \' c\| \' +The +16-bit +value of a character. +.L \e +may be used to escape a +.LR \' . +.TP 7.2n +.BI < name +The value of +.IR name , +which is a register name. +The register names are +those printed by the +.B $r +command. +.TP 7.2n +.I symbol +A +.I symbol +is a sequence +of upper or lower case letters, underscores or +digits, not starting with a digit. +.L \e +may be used to escape other characters. +The location of the +.I symbol +is calculated from the symbol table +in +.IR textfile . +.TP 7.2n +.IB routine . name +The address of the variable +.I name +in the specified +C routine. +Both +.I routine +and +.I name +are +.IR symbols . +If +.I name +is omitted the value is the address of the +most recently activated stack frame +corresponding to +.IR routine ; +if +.I routine +is omitted, +the active procedure +is assumed. +.TP 7.2n +.IB file : integer +The address of the instruction corresponding +to the source statement at the indicated +line number of the file. If the source line contains +no executable statement, the address of the +instruction associated with the nearest +executable source line is returned. Files +begin at line 1. If multiple files of the same +name are loaded, an expression of this form resolves +to the first file encountered in the symbol table. +.TP 7.2n +.BI ( exp ) +The value of the expression +.IR exp . +.LP +.I Monadic operators +.RS +.TP 7.2n +.BI * exp +The contents of the location addressed +by +.I exp +in +.IR memfile . +.TP 7.2n +.BI @ exp +The contents of the location addressed by +.I exp +in +.IR textfile . +.TP 7.2n +.BI - exp +Integer negation. +.TP 7.2n +.BI ~ exp +Bitwise complement. +.TP 7.2n +.BI % exp +When used as an +.IR address , +.I exp +is an offset into the segment named +.IR ublock ; +see `Addresses'. +.RE +.LP +.I "Dyadic\ operators" +are left-associative +and are less binding than monadic operators. +.RS +.TP 7.2n +.IB e1 + e2 +Integer addition. +.TP 7.2n +.IB e1 - e2 +Integer subtraction. +.TP 7.2n +.IB e1 * e2 +Integer multiplication. +.TP 7.2n +.IB e1 % e2 +Integer division. +.TP 7.2n +.IB e1 & e2 +Bitwise conjunction. +.TP 7.2n +.IB e1 | e2 +Bitwise disjunction. +.TP 7.2n +.IB e1 # e2 +.I E1 +rounded up to the next multiple of +.IR e2 . +.RE +.DT +.SS Commands +Most commands have the following syntax: +.TP .5i +.BI ? f +Locations starting at +.I address +in +.I textfile +are printed according to the format +.IR f . +.TP +.BI / f +Locations starting at +.I address +in +.I memfile +are printed according to the format +.IR f . +.TP +.BI = f +The value of +.I address +itself is printed according to the format +.IR f . +.PP +A +.I format +consists of one or more characters that specify a style +of printing. +Each format character may be preceded by a decimal integer +that is a repeat count for the format character. +If no format is given then the last format is used. +.PP +Most format letters fetch some data, +print it, +and advance (a local copy of) dot +by the number of bytes fetched. +The total number of bytes in a format becomes the +.IR current increment . +.ta 2.5n .5i +.RS +.TP +.PD 0 +.B o +Print two-byte integer in octal. +.TP +.B O +Print four-byte integer in octal. +.TP +.B q +Print two-byte integer in signed octal. +.TP +.B Q +Print four-byte integer in signed octal. +.TP +.B d +Print two-byte integer in decimal. +.TP +.B D +Print four-byte integer in decimal. +.TP +.B V +Print eight-byte integer in decimal. +.TP +.B Z +Print eight-byte integer in unsigned decimal. +.TP +.B x +Print two-byte integer in hexadecimal. +.TP +.B X +Print four-byte integer in hexadecimal. +.TP +.B Y +Print eight-byte integer in hexadecimal. +.TP +.B u +Print two-byte integer in unsigned decimal. +.TP +.B U +Print four-byte integer in unsigned decimal. +.TP +.B f +Print +as a single-precision floating point number. +.TP +.B F +Print double-precision floating point. +.TP +.B b +Print the addressed byte in hexadecimal. +.TP +.B c +Print the addressed byte as an +.SM ASCII +character. +.TP +.B C +Print the addressed byte as a character. +Printable +.SM ASCII +characters +are represented normally; others +are printed in the form +.BR \exnn . +.TP +.B s +Print the addressed characters, as a +.SM UTF +string, until a zero byte +is reached. +Advance dot +by the length of the string, +including the zero terminator. +.TP +.B S +Print a string using +the escape convention (see +.B C +above). +.TP +.B r +Print as +.SM UTF +the addressed two-byte integer (rune). +.TP +.B R +Print as +.SM UTF +the addressed two-byte integers as runes +until a zero rune is reached. +Advance dot +by the length of the string, +including the zero terminator. +.TP +.B i +Print as machine instructions. Dot is +incremented by the size of the instruction. +.TP +.B I +As +.B i +above, but print the machine instructions in +an alternate form if possible: +.B sunsparc +and +.B mipsco +reproduce the manufacturers' syntax. +.TP +.B M +Print the addressed machine instruction in a +machine-dependent hexadecimal form. +.TP +.B a +Print the value of dot +in symbolic form. +Dot is unaffected. +.TP +.B A +Print the value of dot +in hexadecimal. +Dot is unaffected. +.TP +.B z +Print the function name, source file, and line number +corresponding to dot (textfile only). Dot is unaffected. +.TP +.B p +Print the addressed value in symbolic form. +Dot is advanced by the size of a machine address. +.TP +.B t +When preceded by an integer, tabs to the next +appropriate tab stop. +For example, +.B 8t +moves to the next 8-space tab stop. +Dot is unaffected. +.TP +.B n +Print a newline. +Dot is unaffected. +.tr '" +.TP +.BR ' ... ' +Print the enclosed string. +Dot is unaffected. +.br +.tr '' +.TP +.B ^ +Dot is decremented by the current increment. +Nothing is printed. +.TP +.B + +Dot is incremented by 1. +Nothing is printed. +.TP +.B - +Dot is decremented by 1. +Nothing is printed. +.RE +.PD +.LP +Other commands include: +.TP +newline +Update dot by the current increment. +Repeat the previous command with a +.I count +of 1. +.TP +.RB [ ?/ ] l "\fI value mask\fR" +Words starting at dot +are masked with +.I mask +and compared with +.I value +until +a match is found. +If +.B l +is used, +the match is for a two-byte integer; +.B L +matches four bytes. +If no match is found then dot +is unchanged; otherwise dot +is set to the matched location. +If +.I mask +is omitted then ~0 is used. +.TP +.RB [ ?/ ] w "\fI value ...\fR" +Write the two-byte +.I value +into the addressed +location. +If the command is +.BR W , +write four bytes. +.TP +.RB [ ?/ ] "m\fI s b e f \fP" [ ?\fR] +.br +New values for +.RI ( b,\ e,\ f ) +in the segment named +.I s +are recorded. Valid segment names are +.IR text , +.IR data , +or +.IR ublock . +If less than three address expressions are given, +the remaining parameters are left unchanged. +If the list is terminated by +.L ? +or +.L / +then the file +.RI ( textfile +or +.I memfile +respectively) is used +for subsequent requests. +For example, +.L /m? +causes +.L / +to refer to +.IR textfile . +.TP +.BI > name +Dot is assigned to the variable or register named. +.TP +.B ! +The rest of the line is passed to +.IR rc (1) +for execution. +.TP +.BI $ modifier +Miscellaneous commands. +The available +.I modifiers +are: +.RS +.TP +.PD 0 +.BI < f +Read commands from the file +.IR f . +If this command is executed in a file, further commands +in the file are not seen. +If +.I f +is omitted, the current input stream is terminated. +If a +.I count +is given, and is zero, the command is ignored. +.TP +.BI << f +Similar to +.B < +except it can be used in a file of commands without +causing the file to be closed. +There is a (small) limit to the number of +.B << +files that can be open at once. +.br +.ns +.TP +.BI > f +Append output to the file +.IR f , +which is created if it does not exist. +If +.I f +is omitted, output is returned to the terminal. +.TP +.B ? +Print process id, the condition which caused stopping or termination, +the registers and the instruction addressed by +.BR pc . +This is the default if +.I modifier +is omitted. +.TP +.B r +Print the general registers and +the instruction addressed by +.BR pc . +Dot is set to +.BR pc . +.TP +.B R +Like +.BR $r , +but include miscellaneous processor control registers +and floating point registers. +.TP +.B f +Print floating-point register values as +single-precision floating point numbers. +.TP +.B F +Print floating-point register values as +double-precision floating point numbers. +.TP +.B b +Print all breakpoints +and their associated counts and commands. `B' produces the same results. +.TP +.B c +Stack backtrace. +If +.I address +is given, it specifies the address of a pair of 32-bit +values containing the +.B sp +and +.B pc +of an active process. This allows selecting +among various contexts of a multi-threaded +process. +If +.B C +is used, the names and (long) values of all +parameters, +automatic +and static variables are printed for each active function. +If +.I count +is given, only the first +.I count +frames are printed. +.TP +.B a +Attach to the running process whose pid +is contained in +.IR address . +.TP +.B e +The names and values of all +external variables are printed. +.TP +.B w +Set the page width for output to +.I address +(default 80). +.TP +.B q +Exit from +.IR db . +.TP +.B m +Print the address maps. +.TP +.B k +Simulate kernel memory management. +.TP +.BI M machine +Set the +.I machine +type used for disassembling instructions. +.PD +.RE +.TP +.BI : modifier +Manage a subprocess. +Available modifiers are: +.RS +.TP +.PD 0 +.BI h +Halt +an asynchronously running process to allow breakpointing. +Unnecessary for processes created under +.IR db , +e.g. by +.BR :r . +.TP +.BI b c +Set breakpoint at +.IR address . +The breakpoint is executed +.IR count \-1 +times before +causing a stop. +Also, if a command +.I c +is given it is executed at each +breakpoint and if it sets dot to zero +the breakpoint causes a stop. +.TP +.B d +Delete breakpoint at +.IR address . +.TP +.B r +Run +.I textfile +as a subprocess. +If +.I address +is given the +program is entered at that point; otherwise +the standard entry point is used. +.I Count +specifies how many breakpoints are to be +ignored before stopping. +Arguments to the subprocess may be supplied on the +same line as the command. +An argument starting with < or > causes the standard +input or output to be established for the command. +.TP +.BI c s +The subprocess is continued. +If +.I s +is omitted +or nonzero, +the subprocess +is sent the note that caused it to stop. +If 0 +is specified, +no note is sent. +(If the stop was due to a breakpoint or single-step, +the corresponding note is elided before continuing.) +Breakpoint skipping is the same +as for +.BR r . +.TP +.BI s s +As for +.B c +except that +the subprocess is single stepped for +.I count +machine instructions. +If a note is pending, +it is received +before the first instruction is executed. +If there is no current subprocess then +.I textfile +is run +as a subprocess as for +.BR r . +In this case no note can be sent; the remainder of the line +is treated as arguments to the subprocess. +.TP +.BI S s +Identical to +.B s +except the subprocess is single stepped for +.I count +lines of C source. In optimized code, the correspondence +between C source and the machine instructions is +approximate at best. +.TP +.BI x +The current subprocess, if any, is released by +.I db +and allowed to continue executing normally. +.TP +.B k +The current subprocess, if any, is terminated. +.TP +.BI n c +Display the pending notes for the process. +If +.I c +is specified, first delete +.I c'th +pending note. +.PD +.RE +.SS Addresses +The location in a file or memory image associated with +an address is calculated from a map +associated with the file. +Each map contains one or more quadruples +.RI ( "t, b, e, f" ), +defining a segment named +.I t +(usually, +.IR text , +.IR data , +or +.IR ublock ) +mapping addresses in the range +.I b +through +.I e +to the part of the file +beginning at +offset +.IR f . +The memory model of a Plan 9 process assumes +that segments are disjoint. There +can be more than one segment of a given type (e.g., a process +may have more than one text segment) but segments +may not overlap. +An address +.I a +is translated +to a file address +by finding a segment +for which +.IR b ≤ a < e ; +the location in the file +is then +.IR address + f \- b . +.PP +Usually, +the text and initialized data of a program +are mapped by segments called +.I text +and +.IR data . +Since a program file does not contain bss, stack or ublock data, +these data are +not mapped by the data segment. +The text segment is mapped similarly in +a normal (i.e., non-kernel) +.IR memfile . +However, the segment called +.I data +maps memory from the beginning of the program's data space to +the base of the ublock. +This region contains the program's static data, the bss, the +heap and the stack. A segment +called +.I ublock +maps the page containing its registers and process state. +.PP +Sometimes it is useful to define a map with a single segment +mapping the region from 0 to 0xFFFFFFFF; a map of this type +allows the entire file to be examined +without address translation. +.PP +Registers are saved at a machine-dependent offset in the ublock. +It is usually not necessary to know this offset; the +.BR $r , +.BR $R , +.BR $f , +and +.BR $F +commands calculate it and display the register contents. +.PP +The +.B $m +command dumps the currently active maps. The +.B ?m +and +.B /m +commands modify the segment parameters in the +.I textfile +and +.I memfile +maps, respectively. +.SH EXAMPLES +To set a breakpoint at the beginning of +.B write() +in extant process 27: +.IP +.EX +% db 27 +:h +write:b +:c +.EE +.PP +To examine the Plan 9 kernel stack for process 27: +.IP +.EX +% db -k 27 +$C +.EE +.PP +Similar, but using a kernel named +.BR test : +.IP +.EX +% db -k test 27 +$C +.EE +.PP +To set a breakpoint at the entry of function +.B parse +when the local variable +.B argc +in +.B main +is equal to 1: +.IP +.EX +parse:b *main.argc-1=X +.EE +.PP +This prints the value of +.B argc-1 +which as a side effect sets dot; when +.B argc +is one the breakpoint will fire. +Beware that local variables may be stored in registers; see the +BUGS section. +.PP +Debug process 127 on remote machine +.BR kremvax : +.IP +.EX +% import kremvax /proc +% db 127 +$C +.EE +.SH FILES +.B /proc/*/text +.br +.B /proc/*/mem +.br +.B /proc/*/ctl +.br +.B /proc/*/note +.SH "SEE ALSO" +.IR acid (1), +.IR nm (1), +.IR proc (3) +.SH SOURCE +.B /sys/src/cmd/db +.SH DIAGNOSTICS +Exit status is null, unless the last command failed or +returned non-null status. +.SH BUGS +Examining a local variable with +.I routine.name +returns the contents of the memory allocated for the variable, but +with optimization (suppressed by the +.B -N +compiler flag) variables often reside in registers. +Also, on some architectures, the first argument is always +passed in a register. +.PP +Variables and parameters that have been +optimized away do not appear in the +symbol table, returning the error +.IR "bad local variable" +when accessed by +.IR db . +.PP +Because of alignment incompatibilities, Motorola 68000 +series machines can not be debugged remotely from a +processor of a different type. +.PP +Breakpoints should not be set on instructions scheduled +in delay slots. When a program stops on such a breakpoint, +it is usually impossible to continue its execution. diff --git a/static/plan9-4e/man1/dc.1 b/static/plan9-4e/man1/dc.1 new file mode 100644 index 00000000..0f2c13a5 --- /dev/null +++ b/static/plan9-4e/man1/dc.1 @@ -0,0 +1,257 @@ +.TH DC 1 +.SH NAME +dc \- desk calculator +.SH SYNOPSIS +.B dc +[ +.I file +] +.SH DESCRIPTION +.I Dc +is an arbitrary precision desk calculator. +Ordinarily it operates on decimal integers, +but one may specify an input base, output base, +and a number of fractional digits to be maintained. +The overall structure of +.I dc +is +a stacking (reverse Polish) calculator. +If an argument is given, +input is taken from that file until its end, +then from the standard input. +The following constructions are recognized: +.TP +number +The value of the number is pushed on the stack. +A number is an unbroken string of the digits +.B 0-9A-F +or +.BR 0-9a-f . +A hexadecimal number beginning with a lower case +letter must be preceded by a zero to distinguish it +from the command associated with the letter. +It may be preceded by an underscore +.B _ +to input a +negative number. +Numbers may contain decimal points. +.TP +.L ++ - / * % ^ +Add +.LR + , +subtract +.LR - , +multiply +.LR * , +divide +.LR / , +remainder +.LR % , +or exponentiate +.L ^ +the top two values on the stack. +The two entries are popped off the stack; +the result is pushed on the stack in their place. +Any fractional part of an exponent is ignored. +.TP +.BI s x +.br +.ns +.TP +.BI S x +Pop the top of the stack and store into +a register named +.IR x , +where +.I x +may be any character. +Under operation +.B S +register +.I x +is treated as a stack and the value is pushed on it. +.TP +.BI l x +.br +.ns +.TP +.BI L x +Push the value in register +.I x +onto the stack. +The register +.I x +is not altered. +All registers start with zero value. +Under operation +.B L +register +.I x +is treated as a stack and its top value is popped onto the main stack. +.TP +.B d +Duplicate the +top value on the stack. +.TP +.B p +Print the top value on the stack. +The top value remains unchanged. +.B P +interprets the top of the stack as an +text +string, +removes it, and prints it. +.TP +.B f +Print the values on the stack. +.TP +.B q +.br +.ns +.TP +.B Q +Exit the program. +If executing a string, the recursion level is +popped by two. +Under operation +.B Q +the top value on the stack is popped and the string execution level is popped +by that value. +.TP +.B x +Treat the top element of the stack as a character string +and execute it as a string of +.I dc +commands. +.TP +.B X +Replace the number on the top of the stack with its scale factor. +.TP +.B "[ ... ]" +Put the bracketed +text +string on the top of the stack. +.TP +.PD0 +.BI < x +.TP +.BI > x +.TP +.BI = x +.PD +Pop and compare the +top two elements of the stack. +Register +.I x +is executed if they obey the stated +relation. +.TP +.B v +Replace the top element on the stack by its square root. +Any existing fractional part of the argument is taken +into account, but otherwise the scale factor is ignored. +.TP +.B ! +Interpret the rest of the line as a shell command. +.TP +.B c +Clear the stack. +.TP +.B i +The top value on the stack is popped and used as the +number base for further input. +.TP +.B I +Push the input base on the top of the stack. +.TP +.B o +The top value on the stack is popped and used as the +number base for further output. +In bases larger than 10, each `digit' prints as a group of decimal digits. +.TP +.B O +Push the output base on the top of the stack. +.TP +.B k +Pop the top of the stack, and use that value as +a non-negative scale factor: +the appropriate number of places +are printed on output, +and maintained during multiplication, division, and exponentiation. +The interaction of scale factor, +input base, and output base will be reasonable if all are changed +together. +.TP +.B z +Push the stack level onto the stack. +.TP +.B Z +Replace the number on the top of the stack with its length. +.TP +.B ? +A line of input is taken from the input source (usually the terminal) +and executed. +.TP +.B "; :" +Used by +.I bc +for array operations. +.PP +The scale factor set by +.B k +determines how many digits are kept to the right of +the decimal point. +If +.I s +is the current scale factor, +.I sa +is the scale of the first operand, +.I sb +is the scale of the second, +and +.I b +is the (integer) second operand, +results are truncated to the following scales. +.IP +.nf +\fL+\fR,\fL-\fR max(\fIsa,sb\fR) +\fL*\fR min(\fIsa\fR+\fIsb \fR, max\fR(\fIs,sa,sb\fR)) +\fL/\fI s +\fL%\fR so that dividend = divisor*quotient + remainder; remainder has sign of dividend +\fL^\fR min(\fIsa\fR\(mu|\fIb\fR|, max(\fIs,sa\fR)) +\fLv\fR max(\fIs,sa\fR) +.fi +.SH EXAMPLES +.EX +[la1+dsa*pla10>y]sy +0sa1 +lyx +.EE +.ns +.IP +Print the first ten values of +.IR n ! +.SH SOURCE +.B /sys/src/cmd/dc.c +.SH "SEE ALSO" +.IR bc (1), +.IR hoc (1) +.SH DIAGNOSTICS +.I x +.LR "is unimplemented" , +where +.I x +is an octal number: an internal error. +.br +`Out of headers' +for too many numbers being kept around. +.br +`Nesting depth' +for too many levels of nested execution. +.SH BUGS +When the input base exceeds 16, +there is no notation for digits greater than +.BR F . +.PP +Past its time. diff --git a/static/plan9-4e/man1/dd.1 b/static/plan9-4e/man1/dd.1 new file mode 100644 index 00000000..fbbfe61e --- /dev/null +++ b/static/plan9-4e/man1/dd.1 @@ -0,0 +1,187 @@ +.TH DD 1 +.SH NAME +dd \- convert and copy a file +.SH SYNOPSIS +.B dd +[ +.I option value +] +\&... +.SH DESCRIPTION +.I Dd\^ +copies the specified input file +to the specified output with +possible conversions. +The standard input and output are used by default. +The input and output block size may be +specified to take advantage of raw physical I/O. +The options are +.TP \w'\fLoseek\ \ \fIn'u +.BI -if\ f +Open file +.I f +for input. +.TP +.BI -of\ f +Open file +.I f +for output. +.TP +.BI -ibs\ n\^ +Set input block size to +.I n\^ +bytes (default 512). +.TP +.BI -obs\ n\^ +Set output block size (default 512). +.TP +.BI -bs\ n\^ +Set both input and output block size, +superseding +.I ibs\^ +and +.IR obs . +If no conversion is specified, +preserve the input block size instead of packing short blocks +into the output buffer. +This is particularly efficient since no in-core copy need be done. +.TP +.BI -cbs\ n\^ +Set conversion buffer size. +.TP +.BI -skip\ n\^ +Skip +.I n +input records before copying. +.TP +.BI -iseek\ n\^ +Seek +.I n +records forward on input file +before copying. +.TP +.BI -files\ n\^ +Catenate +.I n +input files (useful only for magnetic tape or similar input device). +.TP +.BI -oseek\ n\^ +Seek +.I n\^ +records from beginning of output file before copying. +.TP +.BI -count\ n\^ +Copy only +.I n +input records. +.TP +.BI -trunc\ n\^ +By default, +.I dd +truncates the output file when it opens it; +.B -trunc +.B 0 +opens it without truncation. +.HP +\fL-conv\ ascii\ \ \ \ \fRConvert +.SM EBCDIC +to +.SM ASCII. +.PD0 +.RS "\w'\fLconv\ \fP'u" +.TP "\w'\fLunblock\ \ \fP'u" +.B ebcdic +Convert +.SM ASCII +to +.SM EBCDIC. +.TP +.B ibm +Like +.B ebcdic +but with a slightly different character map. +.TP +.B block +Convert variable length +.SM ASCII +records to fixed length. +.TP +.B unblock +Convert fixed length +.SM ASCII +records to variable length. +.TP +.B lcase +Map alphabetics to lower case. +.TP +.B ucase +Map alphabetics to upper case. +.TP +.B swab +Swap every pair of bytes. +.TP +.B noerror +Do not stop processing on an error. +.TP +.B sync +Pad every input record to +.I ibs\^ +bytes. +.RE +.PD +.PP +.fi +Where sizes are specified, +a number of bytes is expected. +A number may end with +.L k +or +.LR b +to specify multiplication by +1024 or 512 respectively; +a pair of numbers may be separated by +.L x +to indicate a product. +Multiple conversions may be specified in the style: +.LR "-conv ebcdic,ucase" . +.PP +.L Cbs\^ +is used only if +.LR ascii\^ , +.LR unblock\^ , +.LR ebcdic\^ , +.LR ibm\^ , +or +.L block\^ +conversion is specified. +In the first two cases, +.I n +characters are copied into the conversion buffer, any specified +character mapping is done, +trailing blanks are trimmed and new-line is added +before sending the line to the output. +In the latter three cases, characters are read into the +conversion buffer and blanks are added to make up an +output record of size +.IR n . +If +.L cbs\^ +is unspecified or zero, the +.LR ascii\^ , +.LR ebcdic\^ , +and +.L ibm\^ +options convert the character set without changing the block +structure of the input file; the +.L unblock\^ +and +.L block\^ +options become a simple file copy. +.SH SOURCE +.B /sys/src/cmd/dd.c +.SH "SEE ALSO" +.IR cp (1) +.SH DIAGNOSTICS +.I Dd +reports the number of full + partial input and output +blocks handled. diff --git a/static/plan9-4e/man1/deroff.1 b/static/plan9-4e/man1/deroff.1 new file mode 100644 index 00000000..f62b174d --- /dev/null +++ b/static/plan9-4e/man1/deroff.1 @@ -0,0 +1,117 @@ +.TH DEROFF 1 +.SH NAME +deroff, delatex \- remove formatting requests +.SH SYNOPSIS +.B deroff +[ +.I option ... +] +.I file ... +.PP +.B delatex +.I file +.SH DESCRIPTION +.I Deroff +reads each file in sequence +and removes all +.I nroff +and +.IR troff (1) +requests and non-text arguments, backslash constructions, +and constructs of preprocessors such as +.IR eqn (1), +.IR pic (1), +and +.IR tbl (1). +Remaining text is written on the standard output. +.I Deroff +follows files included by +.L .so +and +.L .nx +commands; +if a file has already been included, a +.L .so +for that file is ignored and a +.L .nx +terminates execution. +If no input file is given, +.I deroff +reads from standard input. +.PP +The options are +.TP +.B -w +Output a word list, one `word' (string of letters, digits, and +properly embedded ampersands and apostrophes, +beginning with a letter) per line. +Other characters are skipped. +Otherwise, the output follows the original, with the deletions mentioned above. +.TP +.B -_ +Like +.BR -w , +but consider underscores to be alphanumeric rather than punctuation. +.TP +.B -i +Ignore +.L .so +and +.L .nx +requests. +.TP +.BR -ms +.PD0 +.TP +.B -mm +Remove titles, attachments, etc., as well as ordinary +.IR troff +constructs, from +.IR ms (6) +or +.I mm +documents. +.PD +.TP +.B -ml +Same as +.BR -mm , +but remove lists as well. +.PP +.I Delatex +does for +.I tex +and +.I latex +(see +.IR tex (1)) +files what +.B deroff -wi +does for +.I troff +files. +.SH SOURCE +.B /sys/src/cmd/deroff.c +.br +.B /sys/src/cmd/tex/local/delatex.c +.SH "SEE ALSO" +.IR troff (1), +.IR tex (1), +.IR spell (1) +.SH BUGS +These filters are not complete interpreters of +.I troff +or +.IR tex . +For example, macro definitions containing +.L \e$ +cause chaos in +.IR deroff +when the popular +.L $$ +delimiters for +.I eqn +are in effect. +.br +Text inside macros is emitted at place of +definition, not place of call. diff --git a/static/plan9-4e/man1/diff.1 b/static/plan9-4e/man1/diff.1 new file mode 100644 index 00000000..404c74f0 --- /dev/null +++ b/static/plan9-4e/man1/diff.1 @@ -0,0 +1,155 @@ +.TH DIFF 1 +.SH NAME +diff \- differential file comparator +.SH SYNOPSIS +.B diff +[ +.B -efmnbwr +] file1 ... file2 +.SH DESCRIPTION +.I Diff +tells what lines must be changed in two files to bring them +into agreement. +If one file +is a directory, +then a file in that directory with basename the same as that of +the other file is used. +If both files are directories, similarly named files in the +two directories are compared by the method of +.I diff +for text +files and +.IR cmp (1) +otherwise. +If more than two file names are given, then each argument is compared +to the last argument as above. +The +.B -r +option causes +.I diff +to process similarly named subdirectories recursively. +When processing more than one file, +.I diff +prefixes file differences with a single line +listing the two differing files, in the form of +a +.I diff +command line. +The +.B -m +flag causes this behavior even when processing single files. +.PP +The normal output contains lines of these forms: +.IP "" 5 +.I n1 +.B a +.I n3,n4 +.br +.I n1,n2 +.B d +.I n3 +.br +.I n1,n2 +.B c +.I n3,n4 +.PP +These lines resemble +.I ed +commands to convert +.I file1 +into +.IR file2 . +The numbers after the letters pertain to +.IR file2 . +In fact, by exchanging `a' for `d' and reading backward +one may ascertain equally how to convert +.I file2 +into +.IR file1 . +As in +.IR ed , +identical pairs where +.I n1 += +.I n2 +or +.I n3 += +.I n4 +are abbreviated as a single number. +.PP +Following each of these lines come all the lines that are +affected in the first file flagged by `<', +then all the lines that are affected in the second file +flagged by `>'. +.PP +The +.B -b +option causes +trailing blanks (spaces and tabs) to be ignored +and other strings of blanks to compare equal. +The +.B -w +option causes all white-space to be removed from input lines +before applying the difference algorithm. +.PP +The +.B -n +option prefixes each range with +.IB file : \fR +and inserts a space around the +.BR a , +.BR c , +and +.B d +verbs. +The +.B -e +option produces a script of +.I "a, c" +and +.I d +commands for the editor +.IR ed , +which will recreate +.I file2 +from +.IR file1 . +The +.B -f +option produces a similar script, +not useful with +.IR ed , +in the opposite order. It may, however, be +useful as input to a stream-oriented post-processor. +.PP +Except in rare circumstances, +.I diff +finds a smallest sufficient set of file +differences. +.SH FILES +.B /tmp/diff[12] +.SH SOURCE +.B /sys/src/cmd/diff +.SH "SEE ALSO" +.IR cmp (1), +.IR comm (1), +.IR ed (1) +.SH DIAGNOSTICS +Exit status is the empty string +for no differences, +.L some +for some, +and +.L error +for trouble. +.SH BUGS +Editing scripts produced under the +.BR -e " or" +.BR -f " option are naive about" +creating lines consisting of a single `\fB.\fR'. +.br +When running +.I diff +on directories, the notion of what is a text +file is open to debate. diff --git a/static/plan9-4e/man1/doc2txt.1 b/static/plan9-4e/man1/doc2txt.1 new file mode 100644 index 00000000..db7beb78 --- /dev/null +++ b/static/plan9-4e/man1/doc2txt.1 @@ -0,0 +1,53 @@ +.TH DOC2TXT 1 +.SH NAME +doc2txt, olefs, mswordstrings \- extract printable strings from Microsoft Word documents +.SH SYNOPSIS +.B doc2txt +[ +.I file.doc +] +.br +.B aux/olefs +[ +.B -m +.I mtpt +] +.I file.doc +.br +.B aux/mswordstrings +.I /mnt/doc/WordDocument +.SH DESCRIPTION +.I Doc2txt +is a shell script that uses +.I olefs +and +.I mswordstrings +to extract the printable text from the body of a Microsoft Word document. +.PP +Microsoft Office documents are stored in OLE (Object Linking and Embedding) +format, which is a scaled down version of Microsoft's FAT file system. +.I Olefs +presents the contents of an Office document as a file system +on +.IR mtpt , +which defaults to +.BR /mnt/doc . +.I Mswordstrings +parses the +.I WordDocument +file inside an Office document, extracting +the text stream. +.SH SOURCE +.B /sys/src/cmd/aux/mswordstrings.c +.br +.B /sys/src/cmd/aux/olefs.c +.br +.B /rc/bin/doc2txt +.SH SEE ALSO +.IR strings (1) +.br +``Microsoft Word 97 Binary File Format'', +available on line at Microsoft's developer home page. +.br +``LAOLA Binary Structures'', +.IR snake.cs.tu-berlin.de:8081/~schwartz/pmh . diff --git a/static/plan9-4e/man1/doctype.1 b/static/plan9-4e/man1/doctype.1 new file mode 100644 index 00000000..14d314d9 --- /dev/null +++ b/static/plan9-4e/man1/doctype.1 @@ -0,0 +1,56 @@ +.TH DOCTYPE 1 +.SH NAME +doctype \- intuit command line for formatting a document +.SH SYNOPSIS +.B doctype +[ +.I option ... +] [ +.I file +] +\&... +.SH DESCRIPTION +.I Doctype +examines a +.IR troff (1) +input file to deduce the appropriate text formatting command +and prints it on standard output. +.I Doctype +recognizes input for +.IR troff (1), +related preprocessors like +.IR eqn (1), +and the +.IR ms (6) +and +.I mm +macro packages. +.PP +Option +.B -n +invokes +.I nroff +instead of +.IR troff . +Other options are passed to +.IR troff . +.SH EXAMPLES +.TP +.L +eval `{doctype chapter.?} | lp +Typeset files named +.BR chapter.0 , +.BR chapter.1 , +\&... +.SH SOURCE +.B /rc/bin/doctype +.SH SEE ALSO +.IR troff (1), +.IR eqn (1), +.IR tbl (1), +.IR pic (1), +.IR grap (1), +.IR ms (6), +.IR man (6) +.SH BUGS +In true A.I. style, its best guesses are inspired rather than accurate. diff --git a/static/plan9-4e/man1/du.1 b/static/plan9-4e/man1/du.1 new file mode 100644 index 00000000..e7dafbbe --- /dev/null +++ b/static/plan9-4e/man1/du.1 @@ -0,0 +1,97 @@ +.TH DU 1 +.SH NAME +du \- disk usage +.SH SYNOPSIS +.B du +[ +.B -a +] +[ +.B -f +] +[ +.B -n +] +[ +.B -q +] +[ +.B -s +] +[ +.B -t +] +[ +.B -u +] +[ +.BI -b size +] +[ +.I file ... +] +.SH DESCRIPTION +.I Du +gives the number of Kbytes allocated to data blocks +of named +.I files +and, recursively, of files in named directories. +It assumes storage is quantized in units of 1024 bytes (Kbytes) by default. +Other values can be set by the +.B -b +option; +.I size +is the number of bytes, optionally suffixed +.B k +to specify multiplication by 1024. +If +.I file +is missing, +the current directory is used. +The count for a directory includes the counts of the +contained files and directories. +.PP +The +.B -a +option prints the number of blocks +for every file in a directory. +Normally counts are printed only for contained directories. +.PP +The +.B -f +option ignores errors, +otherwise it stops on the first error. +.PP +The +.B -n +option prints the size in bytes and the name of each file; it sets +.BR -a . +.PP +The +.B -t +option prints, in the format of +.B du +.BR -n , +the modified time of +each file rather than the size. +If the options +.B -tu +are specified then the accessed time is printed. +.PP +The +.B -q +option prints, in the format of +.B du +.BR -n , +the QID of +each file rather than the size. +.PP +Finally, the +.B -s +option causes +.I du +to descend the hierarchy as always, but to print only a summary line +for each +.IR file . +.SH SOURCE +.B /sys/src/cmd/du.c diff --git a/static/plan9-4e/man1/echo.1 b/static/plan9-4e/man1/echo.1 new file mode 100644 index 00000000..3500b412 --- /dev/null +++ b/static/plan9-4e/man1/echo.1 @@ -0,0 +1,20 @@ +.TH ECHO 1 +.SH NAME +echo \- print arguments +.SH SYNOPSIS +.B echo +[ +.B -n +] +[ +.I arg ... +] +.SH DESCRIPTION +.I Echo +writes its arguments separated by blanks and terminated by +a newline on the standard output. +Option +.B -n +suppresses the newline. +.SH SOURCE +.B /sys/src/cmd/echo.c diff --git a/static/plan9-4e/man1/ed.1 b/static/plan9-4e/man1/ed.1 new file mode 100644 index 00000000..adb79fb7 --- /dev/null +++ b/static/plan9-4e/man1/ed.1 @@ -0,0 +1,683 @@ +.TH ED 1 +.SH NAME +ed \- text editor +.SH SYNOPSIS +.B ed +[ +.B - +] +[ +.B -o +] +[ +.I file +] +.SH DESCRIPTION +.I Ed +is a venerable text editor. +.PP +If a +.I file +argument is given, +.I ed +simulates an +.L e +command (see below) on that file: +it is read into +.I ed's +buffer so that it can be edited. +The options are +.TP +.B - +Suppress the printing +of character counts by +.LR e , +.LR r , +and +.L w +commands and of the confirming +.L ! +by +.L ! +commands. +.TP +.B -o +(for output piping) +Write all output to the standard error file except writing by +.L w +commands. +If no +.I file +is given, make +.B /fd/1 +the remembered file; see the +.L e +command below. +.PP +.I Ed +operates on a `buffer', a copy of the file it is editing; +changes made +in the buffer have no effect on the file until a +.L w +(write) +command is given. +The copy of the text being edited resides +in a temporary file called the +.IR buffer . +.PP +Commands to +.I ed +have a simple and regular structure: zero, one, or +two +.I addresses +followed by a single character +.IR command , +possibly +followed by parameters to the command. +These addresses specify one or more lines in the buffer. +Missing addresses are supplied by default. +.PP +In general, only one command may appear on a line. +Certain commands allow the +addition of text to the buffer. +While +.I ed +is accepting text, it is said +to be in +.I "input mode." +In this mode, no commands are recognized; +all input is merely collected. +Input mode is left by typing a period +.L . +alone at the +beginning of a line. +.PP +.I Ed +supports the +.I "regular expression" +notation described in +.IR regexp (6). +Regular expressions are used in addresses to specify +lines and in one command +(see +.I s +below) +to specify a portion of a line which is to be replaced. +If it is desired to use one of +the regular expression metacharacters as an ordinary +character, that character may be preceded by +.RB ` \e '. +This also applies to the character bounding the regular +expression (often +.LR / ) +and to +.L \e +itself. +.PP +To understand addressing in +.I ed +it is necessary to know that at any time there is a +.I "current line." +Generally, the current line is +the last line affected by a command; however, +the exact effect on the current line +is discussed under the description of +each command. +Addresses are constructed as follows. +.TP +1. +The character +.LR . , +customarily called `dot', +addresses the current line. +.TP +2. +The character +.L $ +addresses the last line of the buffer. +.TP +3. +A decimal number +.I n +addresses the +.IR n -th +line of the buffer. +.TP +4. +.BI \'x +addresses the line marked with the name +.IR x , +which must be a lower-case letter. +Lines are marked with the +.L k +command. +.TP +5. +A regular expression enclosed in slashes ( +.LR / ) +addresses +the line found by searching forward from the current line +and stopping at the first line containing a +string that matches the regular expression. +If necessary the search wraps around to the beginning of the +buffer. +.TP +6. +A regular expression enclosed in queries +.L ? +addresses +the line found by searching backward from the current line +and stopping at the first line containing +a string that matches the regular expression. +If necessary +the search wraps around to the end of the buffer. +.TP +7. +An address followed by a plus sign +.L + +or a minus sign +.L - +followed by a decimal number specifies that address plus +(resp. minus) the indicated number of lines. +The plus sign may be omitted. +.TP +8. +An address followed by +.L + +(or +.LR - ) +followed by a +regular expression enclosed in slashes specifies the first +matching line following (or preceding) that address. +The search wraps around if necessary. +The +.L + +may be omitted, so +.L 0/x/ +addresses the +.I first +line in the buffer with an +.LR x . +Enclosing the regular expression in +.L ? +reverses the search direction. +.TP +9. +If an address begins with +.L + +or +.L - +the addition or subtraction is taken with respect to the current line; +e.g.\& +.L -5 +is understood to mean +.LR .-5 . +.TP +10. +If an address ends with +.L + +or +.LR - , +then 1 is added (resp. subtracted). +As a consequence of this rule and rule 9, +the address +.L - +refers to the line before the current line. +Moreover, +trailing +.L + +and +.L - +characters +have cumulative effect, so +.L -- +refers to the current +line less 2. +.TP +11. +To maintain compatibility with earlier versions of the editor, +the character +.L ^ +in addresses is +equivalent to +.LR - . +.PP +Commands may require zero, one, or two addresses. +Commands which require no addresses regard the presence +of an address as an error. +Commands which accept one or two addresses +assume default addresses when insufficient are given. +If more addresses are given than a command requires, +the last one or two (depending on what is accepted) are used. +.PP +Addresses are separated from each other typically by a comma +.LR , . +They may also be separated by a semicolon +.LR ; . +In this case the current line +is set to +the previous address before the next address is interpreted. +If no address precedes a comma or semicolon, line 1 is assumed; +if no address follows, the last line of the buffer is assumed. +The second address of any two-address sequence +must correspond to a line following the line corresponding to the first address. +.PP +In the following list of +.I ed +commands, the default addresses +are shown in parentheses. +The parentheses are not part of +the address, but are used to show that the given addresses are +the default. +`Dot' means the current line. +.TP +.RB (\|\fL.\fP\|) \|a +.br +.ns +.TP + +.br +.ns +.TP +.B . +Read the given text +and append it after the addressed line. +Dot is left +on the last line input, if there +were any, otherwise at the addressed line. +Address +.L 0 +is legal for this command; text is placed +at the beginning of the buffer. +.TP +.RB (\|\fL.,.\fP\|) \|b [ +- ][\fIpagesize\fP][ pln\fR] +Browse. +Print a `page', normally 20 lines. +The optional +.L + +(default) or +.L - +specifies whether the next or previous +page is to be printed. +The optional +.I pagesize +is the number of lines in a page. +The optional +.LR p , +.LR n , +or +.L l +causes printing in the specified format, initially +.LR p . +Pagesize and format are remembered between +.L b +commands. +Dot is left at the last line displayed. +.TP +.RB (\|\fL.,.\fP\|) \|c +.br +.ns +.TP + +.br +.ns +.TP +.B . +Change. +Delete the addressed lines, then accept input +text to replace these lines. +Dot is left at the last line input; if there were none, +it is left at the line preceding the deleted lines. +.TP +.RB (\|\fL.,.\fP\|) \|d +Delete the addressed lines from the buffer. +Dot is set to the line following the last line deleted, or to +the last line of the buffer if the deleted lines had no successor. +.TP +.BI e " filename" +Edit. +Delete the entire contents of the buffer; +then read the named file into the buffer. +Dot is set to the last line of the buffer. +The number of characters read is typed. +The file name is remembered for possible use in later +.LR e , +.LR r , +or +.L w +commands. +If +.I filename +is missing, the remembered name is used. +.TP +.BI E " filename" +Unconditional +.LR e ; +see +.RL ` q ' +below. +.TP +.BI f " filename" +Print the currently remembered file name. +If +.I filename +is given, +the currently remembered file name is first changed to +.IR filename . +.TP +.RB (\|\fL1,$\fP\|) \|g/\fIregular\ expression\fP/\fIcommand\ list\fP +.PD 0 +.TP +.RB (\|\fL1,$\fP\|) \|g/\fIregular\ expression\fP/ +.TP +.RB (\|\fL1,$\fP\|) \|g/\fIregular\ expression\fP +.PD +Global. +First mark every line which matches +the given +.IR regular expression . +Then for every such line, execute the +.I command list +with dot initially set to that line. +A single command or the first of multiple commands +appears on the same line with the global command. +All lines of a multi-line list except the last line must end with +.LR \e . +The +.RB \&` \&. \&' +terminating input mode for an +.LR a , +.LR i , +.L c +command may be omitted if it would be on the +last line of the command list. +The commands +.L g +and +.L v +are not permitted in the command list. +Any character other than space or newline may +be used instead of +.L / +to delimit the regular expression. +The second and third forms mean +.BI g/ regular\ expression /p \f1. +.TP +.RB (\| .\| ) \|i +.PD 0 +.TP + +.TP +.B . +Insert the given text before the addressed line. +Dot is left at the last line input, or, if there were none, +at the line before the addressed line. +This command differs from the +.I a +command only in the placement of the +text. +.PD +.TP +.RB (\| .,.+1 \|) \|j +Join the addressed lines into a single line; +intermediate newlines are deleted. +Dot is left at the resulting line. +.TP +.RB (\|\fL.\fP\|) \|k\fIx\fP +Mark the addressed line with name +.IR x , +which must be a lower-case letter. +The address form +.BI \' x +then addresses this line. +.ne 2.5 +.TP +.RB (\|\fL.,.\fP\|) \|l +List. +Print the addressed lines in an unambiguous way: +a tab is printed as +.LR \et , +a backspace as +.LR \eb , +backslashes as +.LR \e\e , +and non-printing characters as +a backslash, an +.LR x , +and four hexadecimal digits. +Long lines are folded, +with the second and subsequent sub-lines indented one tab stop. +If the last character in the line is a blank, +it is followed by +.LR \en . +An +.L l +may be appended, like +.LR p , +to any non-I/O command. +.TP +.RB (\|\fL.,.\fP\|) \|m\fIa +Move. +Reposition the addressed lines after the line +addressed by +.IR a . +Dot is left at the last moved line. +.TP +.RB (\|\fL.,.\fP\|) \|n +Number. +Perform +.LR p , +prefixing each line with its line number and a tab. +An +.L n +may be appended, like +.LR p , +to any non-I/O command. +.TP +.RB (\|\fL.,.\fP\|) \|p +Print the addressed lines. +Dot is left at the last line printed. +A +.L p +appended to any non-I/O command causes the then current line +to be printed after the command is executed. +.TP +.RB (\|\fL.,.\fP\|) \|P +This command is a synonym for +.LR p . +.TP +.B q +Quit the editor. +No automatic write +of a file is done. +A +.L q +or +.L e +command is considered to be in error if the buffer has +been modified since the last +.LR w , +.LR q , +or +.L e +command. +.TP +.B Q +Quit unconditionally. +.TP +.RB ( $ )\|r\ \fIfilename\fP +Read in the given file after the addressed line. +If no +.I filename +is given, the remembered file name is used. +The file name is remembered if there were no +remembered file name already. +If the read is successful, the number of characters +read is printed. +Dot is left at the last line read from the file. +.TP +.RB (\|\fL.,.\fP\|) \|s\fIn\fP/\fIregular\ expression\fP/\fIreplacement\fP/ +.PD 0 +.TP +.RB (\|\fL.,.\fP\|) \|s\fIn\fP/\fIregular\ expression\fP/\fIreplacement\fP/g +.TP +.RB (\|\fL.,.\fP\|) \|s\fIn\fP/\fIregular\ expression\fP/\fIreplacement\fP +.PD +Substitute. +Search each addressed +line for an occurrence of the specified regular expression. +On each line in which +.I n +matches are found +.RI ( n +defaults to 1 if missing), +the +.IR n th +matched string is replaced by the replacement specified. +If the global replacement indicator +.L g +appears after the command, +all subsequent matches on the line are also replaced. +It is an error for the substitution to fail on all addressed lines. +Any character other than space or newline +may be used instead of +.L / +to delimit the regular expression +and the replacement. +Dot is left at the last line substituted. +The third form means +.BI s n / regular\ expression / replacement\fP/p\f1. +The second +.L / +may be omitted if the replacement is +empty. +.IP +An ampersand +.L & +appearing in the replacement +is replaced by the string matching the regular expression. +The characters +.BI \e n\f1, +where +.I n +is a digit, +are replaced by the text matched by the +.IR n -th +regular subexpression +enclosed between +.L ( +and +.LR ) . +When +nested parenthesized subexpressions +are present, +.I n +is determined by counting occurrences of +.L ( +starting from the left. +.IP +A literal +.LR & , +.LR / , +.L \e +or newline may be included in a replacement +by prefixing it with +.LR \e . +.TP +.RB (\|\fL.,.\fP\|) \|t\|\fIa +Transfer. +Copy the addressed lines +after the line addressed by +.IR a . +Dot is left at the last line of the copy. +.TP +.RB (\|\fL.,.\fP\|) \|u +Undo. +Restore the preceding contents +of the first addressed line (sic), which must be the last line +in which a substitution was made (double sic). +.TP +.RB (\|\fL1,$\fP\|) \|v/\fIregular\ expression\fP/\fIcommand\ list\fP +This command is the same as the global command +.L g +except that the command list is executed with +dot initially set to every line +.I except +those +matching the regular expression. +.TP +.RB (\|\fL1,$\fP\|) \|w " \fIfilename\fP" +Write the addressed lines to +the given file. +If the file does not exist, +it is created with mode 666 (readable and writable by everyone). +If no +.I filename +is given, the remembered file name, if any, is used. +The file name is remembered if there were no +remembered file name already. +Dot is unchanged. +If the write is successful, the number of characters written is +printed. +.TP +.RB (\|\fL1,$\fP\|) \|W " \fIfilename\fP" +Perform +.LR w , +but append to, instead of overwriting, any existing file contents. +.TP +.RB ( $ ) \|= +Print the line number of the addressed line. +Dot is unchanged. +.TP +.BI ! shell\ command +Send the remainder of the line after the +.L ! +to +.IR rc (1) +to be interpreted as a command. +Dot is unchanged. +.TP +.RB (\| .+1 )\| +An address without a command is taken as a +.L p +command. +A terminal +.L / +may be omitted from the address. +A blank line alone is equivalent to +.LR .+1p ; +it is useful +for stepping through text. +.PP +If an interrupt signal +.SM (DEL) +is sent, +.I ed +prints a +.L ? +and returns to its command level. +.PP +When reading a file, +.I ed +discards +.SM NUL +characters +and all characters after the last newline. +.SH FILES +.B /tmp/e* +.br +.B ed.hup +\ \ work is saved here if terminal hangs up +.SH SOURCE +.B /sys/src/cmd/ed.c +.SH "SEE ALSO" +.IR sam (1), +.IR sed (1), +.IR regexp (6) +.SH DIAGNOSTICS +.BI ? name +for inaccessible file; +.L ?TMP +for temporary file overflow; +.L ? +for errors in commands or other overflows. diff --git a/static/plan9-4e/man1/emacs.1 b/static/plan9-4e/man1/emacs.1 new file mode 100644 index 00000000..3854c528 --- /dev/null +++ b/static/plan9-4e/man1/emacs.1 @@ -0,0 +1,17 @@ +.TH EMACS 1 +.SH NAME +emacs \- editor macros +.SH SYNOPSIS +.B emacs +[ +.I options +] +.SH DESCRIPTION +This page intentionally left blank. +.SH SOURCE +MIT +.SH SEE ALSO +.IR sam (1), +.IR vi (1) +.SH BUGS +Yes. diff --git a/static/plan9-4e/man1/eqn.1 b/static/plan9-4e/man1/eqn.1 new file mode 100644 index 00000000..7c917cdb --- /dev/null +++ b/static/plan9-4e/man1/eqn.1 @@ -0,0 +1,339 @@ +.TH EQN 1 +.EQ +delim $$ +.EN +.SH NAME +eqn \- typeset mathematics +.SH SYNOPSIS +.B eqn +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Eqn +is a +.IR troff (1) +preprocessor +for typesetting mathematics +on a typesetter. +Usage is almost always +.IP +.L +eqn file ... | troff +.PP +If no files are specified, +.I eqn +reads from the standard input. +.I Eqn +prepares output for the typesetter +named in the +.BI -T dest +option (default +.BR -Tutf ; +see +.IR troff (1)). +When run with other preprocessor filters, +.I eqn +usually comes last. +.PP +A line beginning with +.B .EQ +marks the start of an equation; +the end of an equation +is marked by a line beginning with +.BR .EN . +Neither of these lines is altered, +so they may be defined in macro packages +to get +centering, numbering, etc. +It is also possible to set two characters +as `delimiters'; +text between delimiters is also +.I eqn +input. +Delimiters may be set to characters +.I x +and +.I y +with the option +.BI -d xy +or (more commonly) with +.B delim +.I xy +between +.B .EQ +and +.BR .EN . +Left and right delimiters may be identical. +(They are customarily taken to be +$font L "$$" )$. +Delimiters are turned off by +.LR "delim off" . +All text that is neither between delimiters nor between +.B .EQ +and +.B .EN +is passed through untouched. +.PP +Tokens within +.I eqn +are separated by +spaces, tabs, newlines, braces, double quotes, +tildes or circumflexes. +Braces {} are used for grouping; +generally speaking, +anywhere a single character like +.L x +could appear, a complicated construction +enclosed in braces may be used instead. +Tilde +.L ~ +represents a full space in the output, +circumflex +.L ^ +half as much. +.PP +.vs 13p +Subscripts and superscripts are produced with the keywords +.B sub +and +.BR sup . +Thus +.L "x sub i" +makes +$x sub i$, +.L "a sub i sup 2" +produces +$a sub i sup 2$, +and +.L "e sup {x sup 2 + y sup 2}" +gives +$e sup {x sup 2 + y sup 2}$. +.PP +.B Over +makes fractions: +.L "a over b" +yields $a over b$. +.PP +.B Sqrt +produces square roots: +.L "1 over sqrt {ax sup 2 +bx+c}" +results in +$1 over sqrt {ax sup 2 +bx+c}$ . +.PP +The keywords +.B from +and +.B to +introduce lower and upper +limits on arbitrary things: +$lim from {n -> inf} sum from 0 to n x sub i$ +is made with +.LR "lim from {n -> inf} sum from 0 to n x sub i" . +.PP +Left and right brackets, braces, etc., of the right height are made with +.B left +and +.BR right : +.L "left [ x sup 2 + y sup 2 over alpha right ] ~=~1" +produces +$left [ x sup 2 + y sup 2 over alpha right ] ~=~1$. +The +.B right +clause is optional. +Legal characters after +.B left +and +.B right +are braces, brackets, bars, +.B c +and +.B f +for ceiling and floor, +and +.B +"" +for nothing at all (useful for a right-side-only bracket). +.PP +Vertical piles of things are made with +.BR pile , +.BR lpile , +.BR cpile , +and +.BR rpile : +.L "pile {a above b above c}" +produces +$pile {a above b above c}$. +There can be an arbitrary number of elements in a pile. +.B lpile +left-justifies, +.B pile +and +.B cpile +center, with different vertical spacing, +and +.B rpile +right justifies. +.PP +Matrices are made with +.BR matrix : +.L "matrix { lcol { x sub i above y sub 2 } ccol { 1 above 2 } }" +produces +$matrix { lcol { x sub i above y sub 2 } ccol { 1 above 2 } }$. +In addition, there is +.B rcol +for a right-justified column. +.PP +.vs 12p +Diacritical marks are made with +.BR prime , +.BR dot , +.BR dotdot , +.BR hat , +.BR tilde , +.BR bar , +.BR under , +.BR vec , +.BR dyad , +and +.BR under : +.L "x sub 0 sup prime = f(t) bar + g(t) under" +is +$x sub 0 sup prime = f(t) bar + g(t) under$, +and +.L "x vec = y dyad" +is +$x vec = y dyad$. +.PP +Sizes and fonts can be changed with prefix operators +.B size +.IR n , +.B size +.BI ± n \f1, +.BR fat , +.BR roman , +.BR italic , +.BR bold , +or +.BR font +.IR n . +Size and fonts can be changed globally in a document by +.B gsize +.I n +and +.B gfont +.IR n , +or by the command-line arguments +.BI -s n +and +.BI -f n\f1. +.PP +Normally subscripts and superscripts are reduced by +3 point sizes from the previous size; +this may be changed by the command-line argument +.BI -p n\f1. +.PP +Successive display arguments can be lined up. +Place +.B mark +before the desired lineup point in the first equation; +place +.B lineup +at the place that is to line up vertically in subsequent equations. +.PP +Shorthands may be defined +or existing keywords redefined with +.BR define : +.L define +.I thing +.L % +.I replacement +.L % +defines a new token called +.I thing +which will be replaced by +.I replacement +whenever it appears thereafter. +The +.L % +may be any character that does not occur in +.LR replacement . +.PP +Keywords like +.L sum +.EQ +( sum ), +.EN +.L int +.EQ +( int ), +.EN +.L inf +.EQ +( inf ), +.EN +and shorthands like +.L >= +.EQ +(>=), +.EN +.L -> +.EQ +(->), +.EN +and +.L != +.EQ +( != ) +.EN +are recognized. +Greek letters are spelled out in the desired case, as in +.L alpha +or +.LR GAMMA . +Mathematical words like +.LR sin , +.LR cos , +.L log +are made Roman automatically. +.IR Troff (1) +four-character escapes like +.L \e(lh +(\(lh) can be used anywhere. +Strings enclosed in double quotes " " +are passed through untouched; +this permits keywords to be entered as text, +and can be used to communicate +with +.I troff +when all else fails. +.SH FILES +.TF /sys/lib/troff/font/devutf +.TP +.B /sys/lib/troff/font/devutf +font descriptions for PostScript +.SH SOURCE +.B /sys/src/cmd/eqn +.SH "SEE ALSO" +.IR troff (1), +.IR tbl (1) +.br +J. F. Ossanna and B. W. Kernighan, +``Troff User's Manual''. +.br +B. W. Kernighan and L. L. Cherry, +``Typesetting Mathematics\(emUser's Guide'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2. +.SH BUGS +To embolden digits, parens, etc., +it is necessary to quote them, +as in +.LR bold\ "12.3" . +.EQ +delim off +.EN diff --git a/static/plan9-4e/man1/faces.1 b/static/plan9-4e/man1/faces.1 new file mode 100644 index 00000000..74c693da --- /dev/null +++ b/static/plan9-4e/man1/faces.1 @@ -0,0 +1,93 @@ +.TH FACES 1 +.SH NAME +faces, seemail, vwhois \- mailbox interface +.SH SYNOPSIS +.B faces +[ +.B -ih +] +.br +.B seemail +.br +.B vwhois +.I person +\&... +.SH DESCRIPTION +The +.I faces +command monitors incoming mail and +displays in its window a representation of the user's mail box +using a small image for each message. +The image is typically a portrait of the sender. +.PP +If the user is running +.IR plumber (4), +.I faces +reacts to plumb messages to the +.B seemail +port, +typically from +.BR upas/fs , +and is thus notified of message additions and deletions. +.PP +Right-clicking on a message icon causes that message to be `plumbed' to +.BR showmail . +A typical plumb action will be to display the message, such as by +the rule +.EX + plumb start window mail -s $0 +.EE +The +.IR acme (1) +mail reader listens to the +.B showmail +port automatically. +.PP +If the user is not running +.IR plumber , +.I faces +reads the log file +.F /sys/log/mail +and right-clicking has no effect. +.PP +If arrows are visible, clicking on them will scroll the display. +Middle-clicking on the arrows scrolls to the end. +.PP +Starting +.B faces +with the +.B -i +flag causes +.B faces +to read the messages in +.B /mail/fs/mbox +or in the named mail directory upon startup. +.PP +The +.B -h +flag causes a different, venerable behavior in which +the window displays the history of messages received +rather than the current state of the mail box. +In particular, faces are not removed from the screen when messages are deleted. +Also, in this mode clicking button 1 in the display will clear the window. +.PP +.I Seemail +is an +.IR rc (1) +script that invokes +.B faces +.BR -h . +.PP +.I Vwhois +tells +.I faces +to display the icons of the named +.IR persons , +without sending a message. +.SH FILES +.BR /mail/fs/mbox " mail directory. +.SH "SEE ALSO" +.IR mail (1), +.IR plumber (4), +.IR face (6), +.IR plumb (6) diff --git a/static/plan9-4e/man1/factor.1 b/static/plan9-4e/man1/factor.1 new file mode 100644 index 00000000..2d9b5a09 --- /dev/null +++ b/static/plan9-4e/man1/factor.1 @@ -0,0 +1,66 @@ +.TH FACTOR 1 +.CT 1 numbers +.SH NAME +factor, primes \- factor a number, generate large primes +.SH SYNOPSIS +.B factor +[ +.I number +] +.PP +.B primes +[ +.I start +[ +.I finish +] +] +.SH DESCRIPTION +.I Factor +prints +.I number +and its prime factors, +each repeated the proper number of times. +The number must be positive and less than +.if n 2**54 +.if t 2\u\s754\s0\d +(about +.if n 1.8e16) +.if t 1.8\(mu10\u\s716\s0\d\|). +.PP +If no +.I number +is given, +.I factor +reads a stream of numbers from the standard input and factors them. +It exits on any input not a positive integer. +Maximum running time is proportional to +.if n sqrt(n). +.if t .I \(sr\o'n\(rn'\f1. +.PP +.PP +.I Primes +prints the prime numbers ranging from +.I start +to +.IR finish , +where +.I start +and +.I finish +are positive numbers less than +.if n 2**56. +.if t 2\u\s756\s0\d. +If +.I finish +is missing, +.I primes +prints without end; +if +.I start +is missing, it reads the starting number from the +standard input. +.SH SOURCE +.B /sys/src/cmd/factor.c +.br +.B /sys/src/cmd/primes.c diff --git a/static/plan9-4e/man1/file.1 b/static/plan9-4e/man1/file.1 new file mode 100644 index 00000000..3bf19fc6 --- /dev/null +++ b/static/plan9-4e/man1/file.1 @@ -0,0 +1,117 @@ +.TH FILE 1 +.SH NAME +file \- determine file type +.SH SYNOPSIS +.B file +[ +.B -m +] +[ +.I file +\&... +] +.SH DESCRIPTION +.I File +performs a series of tests on its argument +.I files +in an attempt to classify their contents by language or purpose. +If no arguments are given, the classification is performed +on standard input. +.PP +If the +.B -m +flag is given, +.I file +outputs an +appropriate MIME +.B Content-Type +specification describing the +.B type +and +.B subtype +of each file. +.PP +The file types it looks for include +directory, +device file, +zero-filled file, +empty file, +Plan 9 executable, +PAC audio file, +.B cpio +archive, +.B tex +.B dvi +file, +archive symbol table, +archive, +.B rc +script, +.B sh +script, +PostScript, +.B troff +output file for various devices, +mail box, +GIF, +FAX, +object code, +C and Alef source, +assembler source, +compressed files, +encrypted file, +English text, +compressed image, +image, +subfont, +and +font. +.PP +If a file has no apparent format, +.I file +looks at the character set it uses to classify it according to +.SM ASCII\c +, +extended +.SM ASCII\c +, Latin +.SM ASCII\c +, or +.SM UTF +holding one or more of the following blocks of the Unicode Standard: +Extended Latin, +Greek, +Cyrillic, +Armenian, +Hebrew, +Arabic, +Devanagari, +Bengali, +Gurmukhi, +Gujarati, +Oriya, +Tamil, +Telugu, +Kannada, +Malayalam, +Thai, +Lao, +Tibetan, +Georgian, +Japanese, +Chinese, +or Korean. +.PP +If all else fails, +.I file +decides its input is +binary. +.SH SOURCE +.B /sys/src/cmd/file.c +.SH BUGS +It can make mistakes, for example classifying a file of decimal data, +.LR .01 , +.LR .02 , +etc. as +.IR troff (1) +input. diff --git a/static/plan9-4e/man1/fmt.1 b/static/plan9-4e/man1/fmt.1 new file mode 100644 index 00000000..d71b70d2 --- /dev/null +++ b/static/plan9-4e/man1/fmt.1 @@ -0,0 +1,79 @@ +.TH FMT 1 +.SH NAME +fmt, htmlfmt \- simple text formatters +.SH SYNOPSIS +.B fmt +[ +.I option ... +] +[ +.I file ... +] +.PP +.B htmlfmt +[ +.B -a +] [ +.B -u +.I url +] [ +.I file ... +] +.SH DESCRIPTION +.I Fmt +copies the given +.I files +(standard input by default) +to its standard output, filling and indenting lines. +The options are +.TP +.BI -l " n +Output line length is +.IR n , +including indent (default 70). +.TP +.BI -w " n +A synonym for +.BR -l . +.TP +.BI -i " n +Indent +.I n +spaces (default 0). +.TP +.BI -j +Don't join input lines, simply split them where necessary. +.PP +Empty lines and initial white space in input lines are preserved. +Empty lines are inserted between input files. +.PP +.I Fmt +is idempotent: it leaves already formatted text unchanged. +.PP +.I Htmlfmt +performs a similar service, but accepts as input text formatted with +HTML tags. +It accepts +.IR fmt 's +.B -l +and +.B -w +flags and also: +.TP +.BI -a +Normally +.I htmlfmt +suppresses the contents of form fields and anchors (URLs and image files); this flag +causes it to print them, in square brackets. +.TP +.BI -u " url +Use +.I url +as the base URL for the document when displaying anchors; sets +.BI -a . +.SH SOURCE +.B /sys/src/cmd/fmt.c +.SH BUGS +.I Htmlfmt +makes no attempt to render the two-dimensional geometry of tables; +it just treats the table entries as plain, to-be-formatted text. diff --git a/static/plan9-4e/man1/fortune.1 b/static/plan9-4e/man1/fortune.1 new file mode 100644 index 00000000..dfae7186 --- /dev/null +++ b/static/plan9-4e/man1/fortune.1 @@ -0,0 +1,23 @@ +.TH FORTUNE 1 +.SH NAME +fortune \- sample lines from a file +.SH SYNOPSIS +.B fortune +[ +.I file +] +.SH DESCRIPTION +.I Fortune +prints a one-line aphorism chosen at random. +If a +.I file +is specified, the saying is taken from that file; +otherwise it is selected from +.BR /sys/games/lib/fortunes . +.SH FILES +.B /sys/games/lib/fortunes +.br +.B /sys/games/lib/fortunes.index +\ \ fast lookup table, maintained automatically +.SH SOURCE +.B /sys/src/cmd/fortune.c diff --git a/static/plan9-4e/man1/freq.1 b/static/plan9-4e/man1/freq.1 new file mode 100644 index 00000000..eee4e295 --- /dev/null +++ b/static/plan9-4e/man1/freq.1 @@ -0,0 +1,40 @@ +.TH FREQ 1 +.SH NAME +freq \- print histogram of character frequencies +.SH SYNOPSIS +.B freq +[ +.B -dxocr +] +[ +.I file ... +] +.SH DESCRIPTION +.I Freq +reads the given files (default standard input) +and prints histograms of the character frequencies. +By default, +.I freq +counts each byte as a character; +under the +.B -r +option it instead counts +.SM UTF +sequences, that is, runes. +.PP +Each non-zero entry of the table is printed preceded by the byte value, +in decimal, octal, hex, and +Unicode +character (if printable). +If any options are given, the +.BR -d , +.BR -x , +.BR -o , +.B -c +flags specify a subset of value formats: decimal, hex, octal, and +character, respectively. +.SH SOURCE +.B /sys/src/cmd/freq.c +.SH SEE ALSO +.IR utf (6), +.IR wc (1) diff --git a/static/plan9-4e/man1/grap.1 b/static/plan9-4e/man1/grap.1 new file mode 100644 index 00000000..b098f822 --- /dev/null +++ b/static/plan9-4e/man1/grap.1 @@ -0,0 +1,416 @@ +.TH GRAP 1 +.SH NAME +grap \- pic preprocessor for drawing graphs +.SH SYNOPSIS +.B grap +[ +.I file ... +] +.SH DESCRIPTION +.I Grap +is a +.IR pic (1) +preprocessor for drawing graphs on a typesetter. +Graphs are surrounded by the +.I troff +`commands' +.B \&.G1 +and +.BR \&.G2 . +Data are scaled and plotted, +with tick marks supplied automatically. +Commands exist to modify the frame, +add labels, override the default ticks, +change the plotting style, +define coordinate ranges and transformations, +and include data from files. +In addition, +.I grap +provides the same loops, conditionals, and macro processing that +.I pic +does. +.PP +.BI frame +.B ht +.I e +.B wid +.I e +.B top +.B dotted +.IR ... : +Set the frame around the graph to specified +.B ht +and +.BR wid ; +default is 2 by 3 (inches). +The line +.I styles +.RB ( dotted , +.BR dashed , +.BR invis , +.BR solid +(default)) +of the +.I sides +.RB ( top , +.BR bot , +.BR left , +.BR right ) +of the frame can be set +independently. +.PP +.B label +.I side +.B \&"a label" +.B \&"as a set of strings" +.IR adjust : +Place label on specified side; default side is bottom. +.I adjust +is +.B up +(or +.B down +.B left +.BR right ) +.I expr +to shift default position; +.B width +.I expr +sets the width explicitly. +.PP +.BI ticks +.I side +.B in +.B at +.IR "optname expr, expr, ..." : +Put ticks on +.I side +at +.I "expr, ..., +and label with +.I \&"expr"\f1. +If any +.I expr +is followed by "...", label tick with "...", +and turn off all automatic labels. +If "..." contains +.BR %f 's, +they will be interpreted as +.B printf +formatting instructions for the tick value. +Ticks point +.B in +or +.B out +(default out). +Tick iterator: instead of +.B at +.IR \&... , +use +.BI from +.I expr +.B to +.I expr +.B by +.I "op expr +where +.I op +is optionally +.B +-*/ +for additive or multiplicative steps. +.B by +can be omitted, to give steps of size 1. +If no ticks are requested, they are supplied automatically; +suppress this with +.B ticks +.BR off . +Automatic ticks normally +leave a margin of 7% on each side; set this to anything by +.B margin +.B = +.IR expr . +.PP +.B grid +.I "side linedesc" +.B at +.IR "optname expr, expr, ..." : +Draw grids perpendicular to +.I side +in style +.I linedesc +at +.I "expr, ....\& +Iterators and labels work as with ticks. +.PP +.B coord +.I optname +.B x +.I "min, max" +.B y +.I "min, max" +.B "log x +.BR " log y" : +Set range of coords and optional log scaling on either or both. +This overrides computation of data range. +Default value of +.I optname +is current coordinate system +(each +.B coord +defines a new coordinate system). +.PP +.B plot +.I \&"str" +.B at +.IR point ; +.B +.I \&"str" +.B at +.IR point : +Put +.I str +at +.IR point . +Text position can be qualified with +.BR rjust , +.BR ljust , +.BR above , +.BR below +after "...". +.PP +.B line +.B from +.I point +.B to +.IR "point linedesc" : +Draw line from here to there. +.B arrow +works in place of +.BR line . +.PP +.B next +.I optname +.B at +.IR "point linedesc" : +Continue plot of data in +.I optname to +.IR point ; +default is current. +.PP +.BI draw +.IR "optname linedesc ..." : +Set mode for +.BR next : +use this style from now on, +and plot "..." at each point (if given). +.PP +.BI new +.IR "optname linedesc ..." : +Set mode for +.BR next , +but disconnect from previous. +.PP +A list of numbers +.I "x y1 y2 y3 ... +is treated as +.B plot +.B bullet +.B at +.IR x,y1 ; +.B plot +.B bullet +.B at +.IR x,y2 ; +etc., or as +.B next +.B at +.I x,y1 +etc., if +.B draw +is specified. +Abscissae of 1,2,3,... are provided if there is only one input number per line. +.PP +A +point +.I "optname expr, expr +maps the point to the named coordinate system. +A +.I linedesc +is one of +.B dot +.B dash +.B invis +.B solid +optionally followed by an expression. +.PP +.BI define +.I name +.BI { whatever } \f1: +Define a macro. +There are macros already defined for standard plotting +symbols like +.BR bullet , +.BR circle , +.BR star , +.BR plus , +etc., in +.BR /sys/lib/grap.defines , +which is included if it exists. +.PP +.I var +.B = +.IR expr : +Evaluate an expression. +Operators are +.B= +.B + +.B - +.B * +and +.BR / . +Functions are +.B log +and +.B exp +(both base 10), +.BR sin , +.BR cos , +.BR sqrt ; +.B rand +returns random number on [0,1); +.BI max( e , e )\f1, +.BI min( e , e )\f1, +.BI int( e )\f1. +.PP +.B print +.IR expr ; +.B print +\fL"\f2...\fL"\f1: +As a debugging aid, print +.I expr +or +.I string +on the standard error. +.PP +.B copy +\fL"\fIfile name\fL"\fR: +Include this file right here. +.PP +.B copy +.B thru +.IR macro : +Pass rest of input (until +.BR \&.G2 ) +through +.IR macro , +treating each field (non-blank, or "...") as an argument. +.I macro +can be the name of a macro previously defined, +or the body of one in place, like +.BR "/plot $1 at $2,$3/" . +.PP +.B copy +.B thru +.I macro +.B until +\fL"\fIstring\fL"\fR: +Stop copy when input is +.I string +(left-justified). +.PP +.BI pic +.IR "remainder of line" : +Copy to output with leading blanks removed. +.PP +.BI graph +.IR "Name pic-position" : +Start a new frame, place it at specified position, +e.g., +.B graph +.B Thing2 +.BR "with .sw at Thing1.se + (0.1,0)" . +.I Name +must be capitalized to keep +.I pic +happy. +.PP +.BI \&. "anything at beginning of +.IR line : +Copied verbatim. +.PP +.B sh +.BI % anything +.BR % : +Pass everything between the +.BR % 's +to the shell; +as with macros, +.B % +may be any character and +.I anything +may include newlines. +.PP +.B # +.IR anything : +A comment, which is discarded. +.PP +Order is mostly irrelevant; no category is mandatory. +Any arguments on the +.B \&.G1 +line are placed on the generated +.B \&.PS +line for +.IR pic . +.SH EXAMPLES +.EX +.ps -1 +.vs -1 +\&.G1 +frame ht 1 top invis right invis +coord x 0, 10 y 1, 3 log y +ticks left in at 1 "bottommost tick", 2,3 "top tick" +ticks bot in from 0 to 10 by 2 +label bot "silly graph" +label left "left side label" "here" +grid left dashed at 2.5 +copy thru / circle at $1,$2 / +1 1 +2 1.5 +3 2 +4 1.5 +10 3 +\&.G2 +.G1 +frame ht 1 top invis right invis +coord x 0, 10 y 1, 3 log y +ticks left in at 1 "bottommost tick", 2,3 "top tick" +ticks bot in from 0 to 10 by 2 +label bot "silly graph" +label left "left side label" "here" +grid left dashed at 2.5 +copy thru / circle at $1,$2 / +1 1 +2 1.5 +3 2 +4 1.5 +10 3 +.G2 +.ps +.vs +.EE +.SH FILES +.TF /sys/lib/grap.defines +.TP +.B /sys/lib/grap.defines +definitions of standard plotting characters, e.g., bullet +.SH SOURCE +.B /sys/src/cmd/grap +.SH "SEE ALSO" +.IR pic (1), +.IR troff (1) +.br +J. L. Bentley and B. W. Kernighan, +``GRAP\(emA Language for Typesetting Graphs'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2. diff --git a/static/plan9-4e/man1/graph.1 b/static/plan9-4e/man1/graph.1 new file mode 100644 index 00000000..4cdc6b24 --- /dev/null +++ b/static/plan9-4e/man1/graph.1 @@ -0,0 +1,148 @@ +.TH GRAPH 1 +.CT 1 numbers graphics +.SH NAME +graph \- draw a graph +.SH SYNOPSIS +.B graph +[ +.I option ... +] +.SH DESCRIPTION +.I Graph +with no options takes pairs of numbers from the +standard input as abscissas +.RI ( x -values) +and ordinates +.RI ( y -values) +of a graph. +Successive points are connected by straight lines. +The graph is encoded on the standard output +for display by +.IR plot (1) +filters. +.PP +If an ordinate is followed by +a nonnumeric string, that string is printed as a +label beginning on the point. +Labels may be surrounded with quotes +.L +" " +in which case they may be empty or contain blanks +and numbers; +labels never contain newlines. +.PP +The following options are recognized, +each as a separate argument. +.TP +.B -a +Supply abscissas automatically; no +.IR x -values +appear in the input. +Spacing is given by the next +argument (default 1). +A second optional argument is the starting point for +automatic abscissas (default 0, or 1 +with a log scale in +.IR x , +or the lower limit given by +.BR -x ). +.TP +.B -b +Break (disconnect) the graph after each label in the input. +.TP +.B -c +Character string given by next argument +is default label for each point. +.TP +.B -g +Next argument is grid style, +0 no grid, 1 frame with ticks, 2 full grid (default). +.TP +.B -l +Next argument is a legend to title the graph. +Grid ranges +are automatically printed as part +of the title unless a +.B -s +option is present. +.TP +.B -m +Next argument is mode (style) +of connecting lines: +0 disconnected, 1 connected. +Some devices give distinguishable line styles +for other small integers. +Mode \-1 (default) begins with style 1 and +rotates styles for successive curves under option +.BR -o . +.TP +.B -o +(Overlay.) +The ordinates for +.I n +superposed curves appear in the input +with each abscissa value. +The next argument is +.IR n . +.TP +.B -s +Save screen; no new page for this graph. +.TP +.B -x l +If +.B l +is present, +.IR x -axis +is logarithmic. +Next 1 (or 2) arguments are lower (and upper) +.I x +limits. +Third argument, if present, is grid spacing on +.I x +axis. +Normally these quantities are determined automatically. +.TP +.B -y l +Similarly for +.IR y . +.TP +.B -e +Make automatically determined +.I x +and +.I y +scales equal. +.TP +.B -h +Next argument is fraction of space for height. +.TP +.B -w +Similarly for width. +.TP +.B -r +Next argument is fraction of space to move right before plotting. +.TP +.B -u +Similarly to move up before plotting. +.TP +.B -t +Transpose horizontal and vertical axes. +(Option +.B -a +now applies to the vertical axis.) +.PP +If a specified lower limit exceeds the upper limit, +the axis +is reversed. +.SH SOURCE +.B /sys/src/cmd/graph +.SH "SEE ALSO" +.IR plot (1), +.IR grap (1) +.SH BUGS +Segments that run out of bounds are dropped, not windowed. +Logarithmic axes may not be reversed. +Option +.B -e +actually makes automatic limits, rather than automatic scaling, +equal. diff --git a/static/plan9-4e/man1/grep.1 b/static/plan9-4e/man1/grep.1 new file mode 100644 index 00000000..a266c494 --- /dev/null +++ b/static/plan9-4e/man1/grep.1 @@ -0,0 +1,103 @@ +.TH GREP 1 +.SH NAME +grep \- search a file for a pattern +.SH SYNOPSIS +.B grep +[ +.I option ... +] +.I pattern +[ +.I file ... +] +.SH DESCRIPTION +.I Grep\^ +searches the input +.I files\^ +(standard input default) +for lines that match the +.IR pattern , +a regular expression as defined in +.IR regexp (6) +with the addition of a newline character as an alternative +(substitute for +.BR | ) +with lowest precedence. +Normally, each line matching the pattern is `selected', +and each selected line is copied to the standard output. +The options are +.TP +.B -c +Print only a count of matching lines. +.PD 0 +.TP +.B -h +Do not print file name tags (headers) with output lines. +.TP +.B -e +The following argument is taken as a +.IR pattern . +This option makes it easy to specify patterns that +might confuse argument parsing, such as +.BR -n . +.TP +.B -i +Ignore alphabetic case distinctions. The implementation +folds into lower case all letters in the pattern and input before +interpretation. Matched lines are printed in their original form. +.TP +.B -l +(ell) Print the names of files with selected lines; don't print the lines. +.TP +.B -L +Print the names of files with no selected lines; +the converse of +.BR -l . +.TP +.B -n +Mark each printed line with its line number counted in its file. +.TP +.B -s +Produce no output, but return status. +.TP +.B -v +Reverse: print lines that do not match the pattern. +.TP +.B -f +The pattern argument is the name of a file containing regular +expressions one per line. +.TP +.B -b +Don't buffer the output: write each output line as soon as it is discovered. +.PD +.PP +Output lines are tagged by file name when there is more than one +input file. +(To force this tagging, include +.B /dev/null +as a file name argument.) +.PP +Care should be taken when +using the shell metacharacters +.B $*[^|()=\e +and newline +in +.IR pattern ; +it is safest to enclose the +entire expression +in single quotes +.BR \&\|' \|.\|.\|.\| ' . +An expression starting with '*' +will treat the rest of the expression +as literal characters. +.SH SOURCE +.B /sys/src/cmd/grep +.SH SEE ALSO +.IR ed (1), +.IR awk (1), +.IR sed (1), +.IR sam (1), +.IR regexp (6) +.SH DIAGNOSTICS +Exit status is null if any lines are selected, +or non-null when no lines are selected or an error occurs. diff --git a/static/plan9-4e/man1/gs.1 b/static/plan9-4e/man1/gs.1 new file mode 100644 index 00000000..9350269f --- /dev/null +++ b/static/plan9-4e/man1/gs.1 @@ -0,0 +1,276 @@ +.TH GS 1 +.\" This file is an edited version of /sys/src/cmd/gs/man/gs.1, to +.\" document the local installation and remove needless background. +.de TQ +.br +.ns +.TP \\$1 +.. +.SH NAME +gs \- Aladdin Ghostscript (PostScript and PDF language interpreter) +.SH SYNOPSIS +.B gs +[ +.I options +] [ +.I files +] ... +.br +.SH DESCRIPTION +Ghostscript is a programming language similar to Adobe Systems' +PostScript and PDF languages, which are in turn similar to Forth. +.I Gs +reads +.I files +in sequence and executes them as Ghostscript programs. +After doing this, it reads further input from the standard input. +If the +.I file +.B - +is named, however, it represents the standard input, which is read +in order and not after the files on the command line. +Each line is interpreted separately. +The `quit' command, or end-of-file, exits the interpreter. +.PP +The interpreter recognizes several switches described below, which may appear +anywhere in the command line and apply to all files thereafter. +.PP +The +.B -h +or +.B -? +options give help and list the available devices; the default is +.BR inferno, +which produces compressed image files suitable for viewing with +.IR page (1) +(but note that +.IR page (1) +will invoke +.I gs +automatically; see its manual). +.PP +Ghostscript may be built with multiple output devices. Ghostscript +normally opens the first one and directs output to it. To use device xyz +as the initial output device, include the switch +.EX + -sDEVICE=xyz +.EE +in the command line. This switch must precede the first PostScript +file and only its first invocation has any effect. +Output devices can also be selected by the word +.B selectdevice +in the input language, or by setting the environment variable +.BR GS_DEVICE . +The order of precedence for +these alternatives, highest to lowest, is: +.EX + selectdevice + \f1(command line)\fP + GS_DEVICE + dfaxlow +.EE +.PP +Normally, output goes +directly to a scratch file. +To send the output to a series of files +.BR foo1.xyz , +.BR foo2.xyz , +etc., use the switch +.EX + -sOutputFile=foo%d.xyz +.EE +The %d may be any +.I printf +(see +.IR fprintf (2)) +format specification. Each file will receive one page of output. +If the file name begins with a pipe character, +the output will be sent as standard input to the following pipeline. +For example, +.EX + -sOutputFile=|lp +.EE +Specifying the file +.B - +will send the files to standard output; this also requires enabling the +.B -q +option. +.SS "Initialization files" +When looking for the initialization files +.RB ( gs_*.ps ), +the files related +to fonts, or the file for the +.B run +operator, Ghostscript first looks for the file (if +it doesn't start with a slash) in the current directory, then in these +directories in the following order: +.TP +1. +Any directories specified by +.B -I +switches in the command +line (see below); +.TP +2. +Any directories specified by the +.B GS_LIB +environment variable; +.TP +3. +The directories +.BR /sys/lib/ghostscript , +.BR /sys/lib/ghostscript/font , +and +.BR /sys/lib/postscript/font . +.PP +The +.B GS_LIB +or +.B -I +parameters may be +a single directory or a colon-separated list. +.SS Options +.TP +.BI -- " filename arg1 ..." +Take the next argument as a file name as usual, but take all +remaining arguments (even if they have the syntactic form of switches) +and define the name ARGUMENTS in userdict (not systemdict) as an +array of those strings, +.I before +running the file. When Ghostscript +finishes executing the file, it exits back to the shell. +.TP +.BI -D name = token +.TQ +.BI -d name = token +Define a name in systemdict with the given definition. The token must +be exactly one token (as defined by the `token' operator) and must not +contain any white space. +.TP +.BI -D name +.TQ +.BI -d name +Define a name in systemdict with value=null. +.TP +.BI -S name = string +.TQ +.BI -s name = string +Define a name in systemdict with a given string as value. This is +different from +.BR -d . +For example, +.B -dname=35 +is equivalent to the +program fragment +.EX + /name 35 def +.EE +whereas +.B -sname=35 +is equivalent to +.EX + /name (35) def +.EE +.TP +.B -q +Quiet startup: suppress normal startup messages, and also do the +equivalent of +.BR -dQUIET . +.TP +.BI -g number1 x number2 +Equivalent to +.BI -dDEVICEWIDTH= number1 +and +.BI -dDEVICEHEIGHT= number2\f1. +This is for the benefit of devices, such as windows, +that allow width and height to be specified. +.TP +.BI -r number +.TQ +.BI -r number1 x number2 +Equivalent to +.BI -dDEVICEXRESOLUTION= number1 +and +\fL-dDEVICE\%YRESOLUTION= \f2\%number2\f1. +This is for the benefit of devices, such as printers, +that support multiple X and Y resolutions. +If only one number is given, it is used for both X and Y resolutions. +.TP +.BI -I directories +Adds the designated list of directories at the head of the +search path for library files. +.PP +Note that gs_init.ps makes systemdict read-only, so the values of names +defined with -D/d/S/s cannot be changed (although, of course, they can be +superseded by definitions in userdict or other dictionaries.) +.SS "Special names" +.TP +.B -dBATCH +Exit after the last file has been processed. +This is equivalent to listing +.I quit.ps +at the end of the list of files. +.TP +.B -dDISKFONTS +Causes individual character outlines to be loaded from the disk +the first time they are encountered. (Normally Ghostscript loads all the +character outlines when it loads a font.) This may allow loading more +fonts into RAM, at the expense of slower rendering. +.TP +.B -dNOCACHE +Disables character caching. Only useful for debugging. +.TP +.B -dNOBIND +Disables the `bind' operator. Only useful for debugging. +.TP +.B -dNODISPLAY +Suppresses the normal initialization of the output device. +This may be useful when debugging. +.TP +.B -dNOPAUSE +Disables the prompt and pause at the end of each page. +This may be desirable for applications where another program +(e.g. +.IR page (1)) +is +`driving' Ghostscript. +.TP +.B -dSAFER +Disables the +.B deletefile +and +.B renamefile +operators, and the +ability to open files in any mode other than read-only. This may be +desirable for spoolers or other sensitive environments. +.TP +.B -dWRITESYSTEMDICT +Leaves systemdict writable. This is necessary when running +special utility programs such as font2c and pcharstr, which must bypass +normal PostScript access protection. +.TP +.BI -sDEVICE= device +Selects an alternate initial output device, as described above. +.TP +.BI -sOutputFile= filename +Selects an alternate output file (or pipe) for the initial output +device, as described above. +.SH FILES +.TP +.B /sys/lib/ghostscript/* +Startup-files, utilities, examples, and basic font definitions. +.TP +.B /sys/lib/ghostscript/fonts/* +Additional font definitions. +.SH SOURCE +.B /sys/src/cmd/gs +.SH "SEE ALSO" +.IR page (1) +.br +The Ghostscript document files in +.B doc +and +.B man +subdirectories of the source directory. +.SH BUGS +The treatment of standard input is non-standard. diff --git a/static/plan9-4e/man1/gzip.1 b/static/plan9-4e/man1/gzip.1 new file mode 100644 index 00000000..8863abda --- /dev/null +++ b/static/plan9-4e/man1/gzip.1 @@ -0,0 +1,160 @@ +.TH GZIP 1 +.SH NAME +gzip, gunzip, bzip2, bunzip2, zip, unzip, \- compress and expand data +.SH SYNOPSIS +.B gzip +.RB [ -cvD [ 1-9 ]] +.RI [ file +.BR ... ] +.PP +.B gunzip +.RB [ -ctTvD ] +.RI [ file +.BR ... ] +.PP +.B bzip2 +.RB [ -cvD [ 1-9 ]] +.RI [ file +.BR ... ] +.PP +.B bunzip2 +.RB [ -cvD ] +.RI [ file +.BR ... ] +.PP +.B zip +.RB [ -vD [ 1-9 ]] +.RB [ -f +.IR zipfile ] +.I file +.RB [ ... ] +.PP +.B unzip +.RB [ -cistTvD ] +.RB [ -f +.IR zipfile ] +.IR [ file +.BR ... ] +.SH DESCRIPTION +.PP +.I Gzip +encodes files with a hybrid Lempel-Ziv 1977 and Huffman compression algorithm +known as +.BR deflate . +Most of the time, the resulting file is smaller, +and will never be much bigger. +Output files are named by taking the last path element of each file argument +and appending +.BR .gz ; +if the resulting name ends with +.BR .tar.gz , +it is converted to +.B .tgz +instead. +.I Gunzip +reverses the process. +Its output files are named by taking the last path element of each file argument, +converting +.B .tgz +to +.BR .tar.gz , +and stripping any +.BR .gz ; +the resulting name must be different from the original name. +.PP +.I Bzip2 +and +.I bunzip2 +are similar in interface to +.I gzip +and +.IR gunzip , +but use a modified Burrows-Wheeler block sorting +compression algorithm. +The default suffix for output files is +.BR .bz2 , +with +.B .tar.bz2 +becoming +.BR .tbz . +.I Bunzip2 +recognizes the extension +.B .tbz2 +as a synonym for +.BR .tbz . +.PP +.I Zip +encodes the named files and places the results into the archive +.IR zipfile , +or the standard output if no file is given. +.I Unzip +extracts files from an archive created by +.IR zip . +If no files are named as arguments, all of files in the archive are extracted. +A directory's name implies all recursively contained files and subdirectories. +.PP +None of these programs removes the original files. +If the process fails, the faulty output files are removed. +.PP +The options are: +.TP 1i +.B -c +Write to standard output rather than creating an output file. +.TP +.B -i +Convert all archive file names to lower case. +.TP +.B -s +Streaming mode. Looks at the file data adjacent to each compressed file +rather than seeking in the central file directory. +This is the mode used by +.I unzip +if no +.I zipfile +is specified. +If +.B -s +is given, +.B -T +is ignored. +.TP +.B -t +List matching files in the archive rather than extracting them. +.TP +.B -T +Set the output time to that specified in the archive. +.TP +.BR -1 " .. " -9 +Sets the compression level. +.B -1 +is tuned for speed, +.B -9 +for minimal output size. +The best compromise is +.BR -6 , +the default. +.TP +.B -v +Produce more descriptive output. +With +.BR -t , +adds the uncompressed size in bytes and the modification time to the output. +Without +.BR -t , +prints the names of files on standard error as they are compressed or decompressed. +.TP +.B -D +Produce debugging output. +.SH SOURCE +.B /sys/src/cmd/gzip +.br +.B /sys/src/cmd/bzip2 +.SH SEE ALSO +.IR tar (1), +.IR compress (1) +.SH BUGS +.I Unzip +can only extract files which are uncompressed or compressed +with the +.B deflate +compression scheme. Recent zip files fall into this category. diff --git a/static/plan9-4e/man1/hget.1 b/static/plan9-4e/man1/hget.1 new file mode 100644 index 00000000..40ee79eb --- /dev/null +++ b/static/plan9-4e/man1/hget.1 @@ -0,0 +1,68 @@ +.TH HGET 1 +.SH NAME +hget \- retrieve a web page corresponding to a url +.SH SYNOPSIS +.PP +.B hget +[ +.B -dv +][ +.B -o +.I ofile +][ +.B -p +.I body +][ +.B -x +.I netmntpt +] +.I url +.SH DESCRIPTION +.I Hget +retrieves the web page specified by the URL +.I url +and writes it, absent the +.B -o +option, to standard output. +The known URL types are: http and ftp. +.PP +If +.I url +is of type HTTP and the +.B -p +option is specified, then an HTTP POST is performed +with +.I body +as the data to be posted. +.PP +The +.B -o +option is used to keep a local file in sync with a +web page. If the web page has been modified later than the +file, it is copied into the file. If the file is up to date +but incomplete, +.I hget +will fetch the missing bytes. +.PP +Option +.B -d +turns on debugging written to standard error. +.PP +Normally, +.I hget +uses the IP stack mounted under +.BR /net . +The +.B -x +option can be used to specify the mount point of +a different IP stack to use. +.PP +Option +.B -v +writes progress lines to standard output once a second. +Each line contains two numbers, the bytes transferred so +far and the total length to be transferred. +.SH SOURCE +.B /sys/src/cmd/hget.c +.SH "SEE ALSO" +.IR ftpfs (4) diff --git a/static/plan9-4e/man1/history.1 b/static/plan9-4e/man1/history.1 new file mode 100644 index 00000000..7c8d9643 --- /dev/null +++ b/static/plan9-4e/man1/history.1 @@ -0,0 +1,81 @@ +.TH HISTORY 1 +.SH NAME +history \- print file names from the dump +.SH SYNOPSIS +.B history +[ +.B -vDu +] [ +.B -d +.I dumpfilesystem +] [ +.B -s +.I yyyymmdd +] +.I files ... +.SH DESCRIPTION +.I History +prints the names, dates, and sizes, and modifier of all versions of the named +.IR files , +looking backwards in time, +stored in the dump file system. +If the file exists in the main tree, the first line of output will be its current state. +For example, +.IP +.EX +history /adm/users +.EE +.PP +produces +.IP +.EX +May 14 15:29:18 EDT 2001 /adm/users 10083 [adm] +May 14 15:29:18 EDT 2001 /n/dump/2001/0515/adm/users 10083 [adm] +May 11 17:26:24 EDT 2001 /n/dump/2001/0514/adm/users 10481 [adm] +May 10 16:40:51 EDT 2001 /n/dump/2001/0511/adm/users 10476 [adm] + ... +.EE +.PP +The +.B -v +option enables verbose debugging printout. +.PP +The +.B -D +option causes +.IR diff (1) +.B -n +to be run for each adjacent pair of dump files, while +.B -b +runs +.IR diff +.BR -nb . +.PP +The +.B -u +option causes times to be printed in GMT (UT) rather than local time. +.PP +The +.B -d +option selects some other dump filesystem such as +.IR /n/bootesdump . +.PP +Finally, the +.B -s +option +sets the starting (most recent) date for the output. +.SH EXAMPLES +.PP +Check how often a user has been logged in. +.IP +.EX +history /usr/ches/tmp +.EE +.SH FILES +.B /n/dump +.SH SOURCE +.B /sys/src/cmd/history.c +.SH SEE ALSO +.IR fs (4) +.br +.IR yesterday (1) diff --git a/static/plan9-4e/man1/hoc.1 b/static/plan9-4e/man1/hoc.1 new file mode 100644 index 00000000..68a42a6a --- /dev/null +++ b/static/plan9-4e/man1/hoc.1 @@ -0,0 +1,144 @@ +.TH HOC 1 +.SH NAME +hoc \- interactive floating point language +.SH SYNOPSIS +.B hoc +[ +.I file ... +] +[ +.B -e +.I expression +] +.SH DESCRIPTION +.I Hoc +interprets a simple language for floating point arithmetic, +at about the level of BASIC, with C-like syntax and +functions. +.PP +The named +.I files +are read and interpreted in order. +If no +.I file +is given or if +.I file +is +.L - +.I hoc +interprets the standard input. +The +.B -e +option allows input to +.I hoc +to be specified on the command line, to be treated as if it appeared in a file. +.PP +.I Hoc +input consists of +.I expressions +and +.IR statements . +Expressions are evaluated and their results printed. +Statements, typically assignments and function or procedure +definitions, produce no output unless they explicitly call +.IR print . +.PP +Variable names have the usual syntax, including +.LR _ ; +the name +.L _ +by itself contains the value of the last expression evaluated. +The variables +.BR E , +.BR PI , +.BR PHI , +.BR GAMMA +and +.B DEG +are predefined; the last is 59.25..., degrees per radian. +.PP +Expressions are formed with these C-like operators, listed by +decreasing precedence. +.TP +.B ^ +exponentiation +.TP +.B ! - ++ -- +.TP +.B * / % +.TP +.B + - +.TP +.B > >= < <= == != +.TP +.B && +.TP +.B || +.TP +.B = += -= *= /= %= +.PP +Built in functions are +.BR abs , +.BR acos , +.BR asin , +.B atan +(one argument), +.BR cos , +.BR cosh , +.BR exp , +.BR int , +.BR log , +.BR log10 , +.BR sin , +.BR sinh , +.BR sqrt , +.BR tan , +and +.BR tanh . +The function +.B read(x) +reads a value into the variable +.B x +and returns 0 at EOF; +the statement +.B print +prints a list of expressions that may include +string constants such as +\fL"hello\en"\f1.\fP +.PP +Control flow statements are +.BR if - else , +.BR while , +and +.BR for , +with braces for grouping. +Newline ends a statement. +Backslash-newline is equivalent to a space. +.PP +Functions and procedures are introduced by the words +.B func +and +.BR proc ; +.B return +is used to return with a value from a function. +.SH EXAMPLES +.EX +func gcd(a, b) { + temp = abs(a) % abs(b) + if(temp == 0) return abs(b) + return gcd(b, temp) +} +for(i=1; i<12; i++) print gcd(i,12) +.EE +.SH SOURCE +.B /sys/src/cmd/hoc +.SH "SEE ALSO" +.IR bc (1), +.IR dc (1) +.br +B. W. Kernighan and R. Pike, +.I +The Unix Programming Environment, +Prentice-Hall, 1984 +.SH BUGS +Error recovery is imperfect within function and procedure definitions. diff --git a/static/plan9-4e/man1/idiff.1 b/static/plan9-4e/man1/idiff.1 new file mode 100644 index 00000000..5cb22600 --- /dev/null +++ b/static/plan9-4e/man1/idiff.1 @@ -0,0 +1,72 @@ +.TH IDIFF 1 +.SH NAME +idiff \- interactive diff +.SH SYNOPSIS +.B idiff +[ +.B -bw +] +.I file1 +.I file2 +.SH DESCRIPTION +.I Idiff +interactively +merges +.I file1 +and +.IR file2 . +Wherever +.I file1 +and +.I file2 +differ, +.I idiff +displays the differences in the style of +.RB `` diff +.RB -n '' +and prompts the user to select a chunk. +Valid responses are: +.TP +.B < +Use the chunk from +.IR file1 . +.TP +.B > +Use the chunk from +.IR file2 . +.TP +.B = +Use the diff output itself. +.TP +.BR q< ", " q> ", " q= +Use the given response for all future questions. +.TP +.BI ! cmd +Execute +.I cmd +and prompt again. +.PP +.I Idiff +invokes +.IR diff (1) +to compare the files. +The +.B -b +and +.B -w +flags +are simply +passed through to +.IR diff . +.SH FILES +.B /tmp/idiff.* +.SH SOURCE +.B /sys/src/cmd/idiff.c +.SH "SEE ALSO +.IR diff (1) +.br +Kernighan and Pike, +.IR "The Unix Programming Environment" , +Prentice-Hall, 1984. +.SH BUGS +This is a poorly-written manual page. diff --git a/static/plan9-4e/man1/join.1 b/static/plan9-4e/man1/join.1 new file mode 100644 index 00000000..379eec7f --- /dev/null +++ b/static/plan9-4e/man1/join.1 @@ -0,0 +1,148 @@ +.TH JOIN 1 +.CT 1 files +.SH NAME +join \- relational database operator +.SH SYNOPSIS +.B join +[ +.I options +] +.I file1 file2 +.SH DESCRIPTION +.I Join +forms, on the standard output, +a join +of the two relations specified by the lines of +.I file1 +and +.IR file2 . +If one of the file names is +.LR - , +the standard input is used. +.PP +.I File1 +and +.I file2 +must be sorted in increasing +.SM ASCII +collating +sequence on the fields +on which they are to be joined, +normally the first in each line. +.PP +There is one line in the output +for each pair of lines in +.I file1 +and +.I file2 +that have identical join fields. +The output line normally consists of the common field, +then the rest of the line from +.IR file1 , +then the rest of the line from +.IR file2 . +.PP +Input fields are normally separated spaces or tabs; +output fields by space. +In this case, multiple separators count as one, and +leading separators are discarded. +.PP +The following options are recognized, with POSIX syntax. +.TP +.BI -a " n +In addition to the normal output, +produce a line for each unpairable line in file +.IR n , +where +.I n +is 1 or 2. +.TP +.BI -v " n +Like +.BR -a , +omitting output for paired lines. +.TP +.BI -e " s +Replace empty output fields by string +.IR s . +.TP +.BI -1 " m +.br +.ns +.TP +.BI -2 " m +Join on the +.IR m th +field of +.I file1 +or +.IR file2 . +.TP +.BI -j "n m" +Archaic equivalent for +.BI - n " m"\f1. +.TP +.BI -o fields +Each output line comprises the designated fields. +The comma-separated field designators are either +.BR 0 , +meaning the join field, or have the form +.IR n . m , +where +.I n +is a file number and +.I m +is a field number. +Archaic usage allows separate arguments for field designators. +.PP +.TP +.BI -t c +Use character +.I c +as the only separator (tab character) on input and output. +Every appearance of +.I c +in a line is significant. +.SH EXAMPLES +.TP +.L +sort -t: +1 /adm/users | join -t: -1 2 -a 1 -e "" - bdays +Add birthdays to the +.B /adm/users +file, leaving unknown +birthdays empty. +The layout of +.B /adm/users +is given in +.IR users (6); +.B bdays +contains sorted lines like +.LR "ken:Feb\ 4,\ 1953" . +.TP +.L +tr : ' ' temp +.br +.ns +.TP +.L +join -1 3 -2 3 -o 1.1,2.1 temp temp | awk '$1 < $2' +Print all pairs of users with identical userids. +.SH SOURCE +.B /sys/src/cmd/join.c +.SH "SEE ALSO" +.IR sort (1), +.IR comm (1), +.IR awk (1) +.SH BUGS +With default field separation, +the collating sequence is that of +.BI "sort -b" +.BI -k y , y\f1; +with +.BR -t , +the sequence is that of +.BI "sort -t" x +.BI -k y , y\f1. +.br +One of the files must be randomly accessible. + diff --git a/static/plan9-4e/man1/jpg.1 b/static/plan9-4e/man1/jpg.1 new file mode 100644 index 00000000..b41fb6fb --- /dev/null +++ b/static/plan9-4e/man1/jpg.1 @@ -0,0 +1,204 @@ +.TH JPG 1 +.SH NAME +jpg, gif, png, ppm, togif, toppm, topng \- view and convert pictures +.SH SYNOPSIS +.B jpg +[ +.B -39cdefFkJrtv +] [ +.I file ... +] +.PP +.B gif +[ +.B -39cdektv +] [ +.I file ... +] +.PP +.B png +[ +.B -39cdektv +] [ +.I file ... +] +.B ppm +[ +.B -39cdektv +] [ +.I file ... +] +.PP +.B togif +[ +.B -c +.I comment +] [ +.B -l +.I loopcount +] [ +.B -d +.I msec +] [ +.B -t +.I transindex +] [ +.I file ... +[ +.B -d +.I msec +] +.I file ... +] +.PP +.B toppm +[ +.B -c +.I comment +] [ +.I file +] +.PP +.B topng +[ +.B -c +.I comment +] [ +[ +.B -g +.I gamma +] [ +.I file +] +.SH DESCRIPTION +These programs read, display, and write image files in public formats. +.IR Jpg , +.IR gif , +.IR png , +and +.I ppm +read files in the corresponding formats and, by default, display +them in the current window; options cause them instead to convert the images +to Plan 9 image format and write them to standard output. +.IR Togif , +.IR Toppm , +and +.I topng +read Plan 9 images files, convert them to GIF, PPM, or PNG, and write them to standard output. +.PP +The default behavior of +.IR jpg , +.IR gif , +and +.IR ppm +is to display the +.IR file , +or standard input if no file is named. +Once a file is displayed, typing a character causes the program to display the next image. +Typing a +.BR q , +DEL, or control-D exits the program. +For a more user-friendly interface, use +.IR page (1), +which invokes these programs to convert the images to standard format, +displays them, and offers scrolling, panning, and menu-driven navigation among the files. +.PP +These programs share many options: +.TP +.B -e +Disable Floyd-Steinberg error diffusion, which is used to improve the appearance +of images on color-mapped displays, typically with 8 bits per pixel. +Primarily useful for debugging; if the display has true RGB color, the image +will be displayed in full glory. +.TP +.B -k +Convert and display the image as a black and white (really grey-scale) image. +.TP +.B -v +Convert the image to an RGBV color-mapped image, even if the +display has true RGB color. +.TP +.B -d +Suppress display of the image; this is set automatically by +any of the following options: +.TP +.B -c +Convert the image to a Plan 9 representation, as defined by +.IR image (6), +and write it to standard output. +.TP +.B -9 +Like +.BR -c , +but produce an uncompressed image. +This saves processing time, particularly when the output is +being piped to another program such as +.IR page (1), +since it avoids compression and decompression. +.TP +.B -t +Convert the image, if it is in color, to a true color RGB image. +.TP +.B -3 +Like +.BR -t , +but force the image to RGB even if it is originally grey-scale. +.PD +.PP +.I Jpg +has two extra options used to process the output of the LML +video card (see +.IR lml (1)): +.TP +.B -f +Merge two adjacent images, which represent the two fields of a video picture, +into a single image. +.TP +.B -F +The input is a motion JPEG file, with multiple images representing frames of the movie. Sets +.BR -f . +.PD +.PP +The +.IR togif +and +.IR toppm +programs go the other way: they convert from Plan 9 images to GIF and PPM, +and have no display capability. +Both accept an option +.B -c +to set the comment field of the resulting file. +If there is only one input picture, +.I togif +converts the image to GIF format. +If there are many +.IR files , +though, it will assemble them into an animated GIF file. +The options control this process: +.TP +.BI -l loopcount +By default, the animation will loop forever; +.I loopcount +specifies how many times to loop. +A value of zero means loop forever and a negative value means +to stop after playing the sequence once. +.TP +.BI -d msec +By default, the images are displayed as fast as they can be rendered. +This option specifies the time, in milliseconds, to pause while +displaying the next named +.IR file . +.PP +.I Gif +translates files that contain a `transparency' index by attaching +an alpha channel to the converted image. +.SH SOURCE +.B /sys/src/cmd/jpg +.SH "SEE ALSO" +.IR lml (1), +.IR page (1), +.IR image (6). +.SH BUGS +Writing an animated GIF using +.I togif +is a clumsy undertaking. diff --git a/static/plan9-4e/man1/kill.1 b/static/plan9-4e/man1/kill.1 new file mode 100644 index 00000000..a4abe8a2 --- /dev/null +++ b/static/plan9-4e/man1/kill.1 @@ -0,0 +1,70 @@ +.TH KILL 1 +.SH NAME +kill, slay, broke \- print commands to kill processes +.SH SYNOPSIS +.B kill +.I name ... +.PP +.B slay +.I name ... +.PP +.B broke +[ +.I user +] +.SH DESCRIPTION +.I Kill +prints commands that will cause all processes called +.I name +and owned by the current user to be terminated. +Use the +.B send +command of +.IR rio (1), +or pipe the output of +.I kill +into +.IR rc (1) +to execute the commands. +.PP +.I Kill +suggests sending a +.B "kill" +note to the process; the same +message delivered to the process's +.B ctl +file (see +.IR proc (3)) +is a surer, if heavy handed, kill, +but is necessary if the offending process is +ignoring notes. +The +.I slay +command prints commands to do this. +.PP +.I Broke +prints commands that will cause all processes +in the +.I Broken +state +and owned by +.I user +(by default, the current user) +to go away. +When a process dies because of an error caught by +the system, it may linger in the +.I Broken +state to allow examination with a debugger. +Executing the commands printed by +.I broke +lets the system reclaim the resources used by +the broken processes. +.SH SOURCE +.B /rc/bin/kill +.br +.B /rc/bin/broke +.SH "SEE ALSO" +.IR ps (1), +.IR stop (1), +.IR notify (2), +.IR proc (3) diff --git a/static/plan9-4e/man1/ktrace.1 b/static/plan9-4e/man1/ktrace.1 new file mode 100644 index 00000000..ef1086f1 --- /dev/null +++ b/static/plan9-4e/man1/ktrace.1 @@ -0,0 +1,62 @@ +.TH KTRACE 1 +.SH NAME +ktrace \- interpret kernel stack dumps +.SH SYNOPSIS +.B ktrace +[ +.B -i +] +.I kernel +.I pc +.I sp +[ +.I link +] +.SH DESCRIPTION +.I Ktrace +translates a hexadecimal kernel stack dump +into a sequence of +.IR acid (1) +commands to show the points in the call trace. +The +.I kernel +argument should be the path of the kernel being debugged, +and +.I pc +and +.I sp +are the PC and SP values given in the stack dump. +For MIPS kernels, the contents of the +.I link +register must also be supplied. +.PP +A stack trace consists of a +.I ktrace +command followed by a series of lines containing +fields of the form +.IB location = contents \fR: +.EX +ktrace /kernel/path 80105bc1 8048e174 +8048e114=80105ac6 8048e120=80140bb4 8048e134=8010031c +8048e16c=80137e45 8048e170=80105bc1 8048e178=80137e62 +\&... +.EE +.PP +The trace can be edited to provide the correct kernel path +and then pasted into a shell window. +If the +.B -i +option is present, +.I ktrace +instead prompts for the contents of the memory locations in which it is interested; +this is useful when the stack trace is on a screen rather than +in a machine readable form. +.SH SOURCE +.B /sys/src/cmd/ktrace.c +.SH SEE ALSO +.IR acid (1), +.IR rdbfs (4) +.SH BUGS +When examining a kernel trace resulting from +an interrupt on top of other interrupts, +only the topmost call trace is printed. diff --git a/static/plan9-4e/man1/leak.1 b/static/plan9-4e/man1/leak.1 new file mode 100644 index 00000000..edcbfbc1 --- /dev/null +++ b/static/plan9-4e/man1/leak.1 @@ -0,0 +1,141 @@ +.TH LEAK 1 +.SH NAME +leak \- examine family of processes for memory leaks +.SH SYNOPSIS +.B leak +[ +.B -bs +] +[ +.B -f +.I binary +] +[ +.B -r +.I res +] +[ +.B -x +.I width +] +.I pid ... +.SH DESCRIPTION +.I Leak +examines the named processes, which +should be sharing their data and bss segments, +for memory leaks. +It uses a mark and sweep-style algorithm to +determine which allocated blocks are no longer +reachable from the set of root pointers. +The set of root pointers is created by looking through +the shared bss segment as well as each process's registers. +.PP +Unless directed otherwise, +.I leak +prints, for each block, a line with five space-separated fields: +the string +.BR block , +the address of the block, +the size of the block, +and the first two words of the block. +Usually, the first two words of the block +contain the malloc and realloc tags +(see +.IR malloc (2)), +useful for finding who allocated the leaked blocks. +.PP +If the +.B -s +option is given, +.I leak +will instead present a sequence of +.IR acid (1) +commands that show each leaky allocation site. +A comment appears next to each command to +indicate how many lost blocks were allocated +at that point in the program. +.PP +If the +.B -b +option is given, leak will print a Plan 9 image file +graphically summarizing the memory arenas. +In the image, each pixel represents +.I res +(default 8) +bytes. +The color code is: +.TP "\w'\fIbright blue\fR 'u +.I "dark blue +Completely allocated. +.TP +.I "bright blue +Contains malloc headers. +.TP +.I "bright red +Contains malloc headers for leaked memory. +.TP +.I "dark red +Contains leaked memory. +.TP +.I "yellow +Completely free +.TP +.I "white +Padding to fill out the image. +.PD +The bright pixels representing headers help in +counting the number of blocks. +Magnifying the images with +.IR lens (1) +is often useful. +.PP +If given a name rather than a list of process ids, +.I leak +echoes back a command-line with process ids of every process +with that name. +.PP +The +.B -f +option specifies a binary to go on the +.IR acid (1) +command-line used to inspect the +processes, and is only necessary +when inspecting processes started +from stripped binaries. +.SH EXAMPLES +List lost blocks in +.IR 8.out . +This depends on the fact that there is only +once instance of +.I 8.out +running; if there were more, the output of +.B "leak -s 8.out +would need editing before sending to the shell. +.IP +.EX +g% leak -s 8.out +leak -s 229 230 +g% leak -s 8.out | rc +src(0x0000bf1b); // 64 +src(0x000016f5); // 7 +src(0x0000a988); // 7 +g% +.EE +.LP +View the memory usage graphic for the window system. +.IP +.EX +g% leak -b rio | rc | page +.EE +.SH SOURCE +.B /sys/lib/acid/leak +.br +.B /sys/src/cmd/aux/acidleak.c +.br +.B /rc/bin/leak +.SH BUGS +Leak depends on the internal structure of the +libc pool memory allocator (see +.IR pool (2)). +Since the ANSI/POSIX environment uses a different +allocator, leak will not work on APE programs. diff --git a/static/plan9-4e/man1/lens.1 b/static/plan9-4e/man1/lens.1 new file mode 100644 index 00000000..58c49dc2 --- /dev/null +++ b/static/plan9-4e/man1/lens.1 @@ -0,0 +1,39 @@ +.TH LENS 1 +.SH NAME +lens \- interactive screen magnifier +.SH SYNOPSIS +.B lens +.SH DESCRIPTION +.I Lens +presents a magnified view in its window of an arbitrary area on the screen. +The default magnification is 4 (showing each pixel as a 4×4 pixel block in +.IR lens 's +window). This may be changed by typing a digit on the keyboard (with +.B 0 +standing for 10), or by using the +.B + +and +.B - +keys to increase or decrease the magnification by one unit. +The lower limit is ×1; the upper ×16. +.PP +The interface to indicate what area to magnify is dictated by the mouse multiplexing rules of +.IR rio (1). +Start by pressing mouse button 1 in the +.I lens +window and dragging, with the button pressed, to the center of the area to magnify. +.I Lens +will update the display as the mouse moves. +Releasing the button freezes the +.I lens +display. +The magnified view is static\(ema snapshot, not a movie\(embut typing a space or +.B . +key in the +.I lens +window will refresh the +display, as will changing the magnification. +.SH SOURCE +.B /sys/src/cmd/lens.c +.SH BUGS +There should be an easier way to indicate what to magnify. diff --git a/static/plan9-4e/man1/lex.1 b/static/plan9-4e/man1/lex.1 new file mode 100644 index 00000000..c4208332 --- /dev/null +++ b/static/plan9-4e/man1/lex.1 @@ -0,0 +1,78 @@ +.TH LEX 1 +.SH NAME +lex \- generator of lexical analysis programs +.SH SYNOPSIS +.B lex +[ +.B -tvn +] +[ +.I file ... +] +.SH DESCRIPTION +.I Lex +generates programs to be used in simple lexical analysis of text. +The input +.I files +(standard input default) +contain regular expressions +to be searched for and actions written in C to be executed when +expressions are found. +.PP +A C source program, +.B lex.yy.c +is generated. +This program, when run, copies unrecognized portions of +the input to the output, +and executes the associated +C action for each regular expression that is recognized. +.PP +The options have the following meanings. +.TP +.B -t +Place the result on the standard output instead of in file +.BR lex.yy.c . +.TP +.B -v +Print a one-line summary of statistics of the generated analyzer. +.TP +.B -n +Opposite of +.BR -v ; +.B -n +is default. +.SH EXAMPLES +This program converts upper case to lower, +removes blanks at the end of lines, +and replaces multiple blanks by single blanks. +.PP +.EX +%% +[A-Z] putchar(yytext[0]+\'a\'-\'A\'); +[ ]+$ +[ ]+ putchar(\' \'); +.EE +.SH FILES +.TF /sys/lib/lex/ncform +.TP +.B lex.yy.c +output +.TP +.B /sys/lib/lex/ncform +template +.SH "SEE ALSO" +.IR yacc (1), +.IR sed (1) +.br +M. E. Lesk and E. Schmidt, +`LEX\(emLexical Analyzer Generator', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2. +.SH SOURCE +.B /sys/src/cmd/lex +.SH BUGS +Cannot handle +.SM UTF. +.br +The asteroid to kill this dinosaur is still in orbit. diff --git a/static/plan9-4e/man1/look.1 b/static/plan9-4e/man1/look.1 new file mode 100644 index 00000000..da4a21ab --- /dev/null +++ b/static/plan9-4e/man1/look.1 @@ -0,0 +1,86 @@ +.TH LOOK 1 +.SH NAME +look \- find lines in a sorted list +.SH SYNOPSIS +.B look +[ +.BI -dfnixt c +] +[ +.I string +] +[ +.I file +] +.SH DESCRIPTION +.I Look +consults a sorted +.I file +and prints all lines that begin with +.IR string . +It uses binary search. +.PP +The following options are recognized. +Options +.B dfnt +affect comparisons as in +.IR sort (1). +.TP +.B -i +Interactive. +There is no +.I string +argument; instead +.I look +takes lines from the standard input as strings to be looked up. +.TP +.B -x +Exact. +Print only lines of the file whose key matches +.I string +exactly. +.TP +.B -d +`Directory' order: +only letters, digits, +tabs and blanks participate in comparisons. +.TP +.B -f +Fold. +Upper case letters compare equal to lower case. +.TP +.B -n +Numeric comparison with initial string of digits, optional minus sign, +and optional decimal point. +.TP +.BR -t [ \f2c\f1 ] +Character +.I c +terminates the sort key in the +.IR file . +By default, tab terminates the key. If +.I c +is missing the entire line comprises the key. +.PP +If no +.I file +is specified, +.B /lib/words +is assumed, with collating sequence +.BR df . +.SH FILES +.B /lib/words +.SH SOURCE +.B /sys/src/cmd/look.c +.SH "SEE ALSO" +.IR sort (1), +.IR grep (1) +.SH DIAGNOSTICS +The exit status is +.B \&"not found" +if no match is found, and +.B \&"no dictionary" +if +.I file +or the default dictionary cannot be opened. + diff --git a/static/plan9-4e/man1/lp.1 b/static/plan9-4e/man1/lp.1 new file mode 100644 index 00000000..0308f9fd --- /dev/null +++ b/static/plan9-4e/man1/lp.1 @@ -0,0 +1,185 @@ +.TH LP 1 +.SH NAME +lp \- printer output +.SH SYNOPSIS +.B lp +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Lp +is a generalized output printing service. +It can be used to queue files for printing, +check a queue, or kill jobs in a queue. +The options are: +.TF -p\ \fIproc\fP +.TP +.BI -d " dest" +Select the destination printer. +If +.I dest +is +.LR ? , +list the currently available printers. +In the absence of +.LR -d , +the destination is taken from the environment variable +.BR LPDEST . +Destination +.L stdout +is the standard output. +Destination +.L safari +is +.L /dev/lpt1data +line printer port on a 386 machine, assumed +to be connected to a PostScript printer. +Destinations +.L hpdeskjet +and +.L bjc240l +are also +.L /dev/lpt1data +but assumed to be connected to an HP Deskjet 670 or +Canon BJC-240. +.I Lp +can print to any printer supported by +Ghostscript using syntax +.BI gs!device +where +.I device +is a Ghostscript output device. +See +.IR gs (1) +and the +.L canonbjc240l +entry in +.LR /sys/lib/lp/devices . +.TP +.B -k +Kill the job(s) given as subsequent arguments instead of file names +for the given destination. +.TP +.BI -p " proc" +The given processor is invoked. +The default processor is +.LR generic , +which tries to do the right thing for regular text, +.IR troff (1) +output, or +.IR tex (1) +output. +If no processing is desired +.L noproc +may be specified. +.TP +.B -q +Print the queue for the given destination. +For some devices, include printer status. +.TP +.B -R +Stops and restarts the printer daemon. +If the printer is wedged, it is often useful to cycle the power on the printer +before running this command. +.PD +.PP +The remaining options may be used to affect the output at a given device. +These options may not be applicable to all devices. +.TF "-p\ \fIproc\fP" +.TP +.BI -c " n" +Print +.I n +copies. +.TP +.BI -f " font" +Set the font (default +.LR CW.11 ). +.TP +.BI -H +Suppress printing of header page. +.TP +.BI -i " n" +Select paper input tray. +.I n +may be a number 0-9, the word +.I man +for the manual feed slot, and/or +.I simplex +or +.I duplex +to get single or double sided output. +Multiple input tray options may be specified if they are +separated by commas. +.TP +.BI -l " n" +Set the number of lines per page to +.IR n . +.TP +.B -L +Print pages in landscape mode (i.e. turned 90 degrees). +.TP +.BI -m " v" +Set magnification to +.IR v . +.TP +.BI -n " n" +Print +.I n +logical pages per physical page. +.TP +.BI -o " list" +Print only pages whose page numbers appear in +the comma-separated +.I list +of numbers and ranges. +A range +.IB n - m +means pages +.I n +through +.IR m ; +a range +.BI - n +means from the beginning to page +.IR n ; +a range +.IB n - +means from page +.I n +to the end. +.TP +.B -r +Reverse the order of page printing. +.TP +.BI -x " v" +Set the horizontal +offset of the print image, measured in inches. +.TP +.BI -y " v" +Set the vertical +offset of the print image, measured in inches. +.SH EXAMPLES +.TP 0 +.L +eqn paper | troff -ms | lp -dsafari +Typeset and print a paper containing equations. +.TP +.L +pr -l100 file | lp -l100 -fCW.8 +Print a file in a small font at 100 lines per page. +.TP +.L +lp -dstdout /dev/windows/3/window > doc.ps +Convert an image to a postscript file. +.SH SEE ALSO +.IR lp (8) +.br +P. Glick, +``A Guide to the Lp Printer Spooler''. +.SH BUGS +Not all options work with all output devices. +Any user can kill any job. diff --git a/static/plan9-4e/man1/ls.1 b/static/plan9-4e/man1/ls.1 new file mode 100644 index 00000000..a938c905 --- /dev/null +++ b/static/plan9-4e/man1/ls.1 @@ -0,0 +1,155 @@ +.TH LS 1 +.SH NAME +ls, lc \- list contents of directory +.SH SYNOPSIS +.B ls +[ +.B -dlmnpqrstuFQ +] +.I name ... +.PP +.B lc +[ +.B -dlmnqrstuFQ +] +.I name ... +.SH DESCRIPTION +For each directory argument, +.I ls +lists the contents of the directory; +for each file argument, +.I ls +repeats its name and any other information requested. +When no argument is given, the current directory is listed. +By default, the output is sorted alphabetically by name. +.PP +.I Lc +is the same as +.IR ls , +but sets the +.B -p +option and pipes the output through +.IR mc (1). +.PP +There are a number of options: +.TP +.B -d +If argument is a directory, list it, not +its contents. +.TP +.B -l +List in long format, giving mode (see below), file system type +(e.g., for devices, the +.B # +code letter that names it; see +.IR Intro (4)), +the instance or subdevice number, owner, group, +size in bytes, and time of last modification +for each file. +.TP +.B -m +List the name of the user who most recently modified the file. +.TP +.B -n +Don't sort the listing. +.TP +.B -p +Print only the final path element of each file name. +.TP +.B -q +List the +.I qid +(see +.IR stat (2)) +of each file; the printed fields are in the order +type, path, and version. +.TP +.B -r +Reverse the order of sort. +.TP +.B -s +Give size in Kbytes for each entry. +.TP +.B -t +Sort by time modified (latest first) instead of +by name. +.TP +.B -u +Under +.B -t +sort by time of last access; +under +.B -l +print time of last access. +.TP +.B -F +Add the character +.B / +after all directory names +and the character +.B * +after all executable files. +.PP +.B -Q +By default, printed file names are quoted if they contain characters special to +.IR rc (1). +The +.B -Q +flag disables this behavior. +.PP +The mode printed under the +.B -l +option contains 11 characters, +interpreted +as follows: +the first character is +.TP +.B d +if the entry is a directory; +.PD 0 +.TP +.B a +if the entry is an append-only file; +.TP +.B - +if the entry is a plain file. +.PD +.PP +The next letter is +.B l +if the file is exclusive access (one writer or reader at a time). +.PP +The last 9 characters are interpreted +as three sets of three bits each. +The first set refers to owner permissions; +the next to permissions to others in the same user-group; +and the last to all others. +Within each set the three characters indicate +permission respectively to read, to write, or to +execute the file as a program. +For a directory, `execute' permission is interpreted +to mean permission to search the directory +for a specified file. +The permissions are indicated as follows: +.TP 3 +.B r +if the file is readable; +.PD 0 +.TP 3 +.B w +if the file is writable; +.TP 3 +.B x +if the file is executable; +.TP 3 +.B - +if none of the above permissions is granted. +.PD +.SH SOURCE +.B /sys/src/cmd/ls.c +.br +.B /rc/bin/lc +.SH SEE ALSO +.IR stat (2) +.IR mc (1) + diff --git a/static/plan9-4e/man1/mail.1 b/static/plan9-4e/man1/mail.1 new file mode 100644 index 00000000..09a8715d --- /dev/null +++ b/static/plan9-4e/man1/mail.1 @@ -0,0 +1,1268 @@ +.TH MAIL 1 +.SH NAME +mail, marshal, nedmail, send, aliasmail, smtp, smtpd, vwhois, filter, fs, biff, pop3, ml, mlmgr, mlowner, list, deliver, token, vf \- mail commands +.SH SYNOPSIS +.B mail +[ +.I arg ... +] +.PP +.B upas/marshal +[ +.B -t +.I mime-type +] +[ +.B -[aA] +.I attachment +] +[ +.B -s +.I subject +] +[ +.B -r +] +[ +.B -x +] +[ +.B -# +] +[ +.B -n +] +[ +.I mailaddr ... +] +.PP +.B upas/send +[ +.B -b +] +[ +.B -i +] +[ +.B -r +] +[ +.B -x +] +[ +.B -# +] +[ +.B -n +] +[ +.I mailaddr ... +] +.PP +.B upas/nedmail +[ +.B -c [dir] +] +[ +.B -r +] +[ +.B -n +] +[ +.B -f +.I mailfile +] +[ +.B -s +.I mailfile +] +.PP +.B upas/fs +[ +.B -f +.I mailbox +] +[ +.B -b +] +[ +.B -n +] +[ +.B -p +] +.PP +.B upas/biff +.PP +.B upas/filter +[ +.B -bh +] +.I rcvr +.I mailbox +.I "regexp file +[ +.I "regexp file +]* +.PP +.B upas/list add|check +.I patterns +.I addrfile ... +.PP +.B upas/deliver +.I recipient +.I fromfile +.I mbox +.PP +.B upas/token +.I key +[ +.I tokenfile +] +.PP +.B upas/pop3 +.PP +.B upas/mlmgr -c +.I listname +.PP +.B upas/mlmgr -ar +.I listname +.I address +.PP +.B upas/ml +.I addressfile +.I listname +.PP +.B upas/mlowner +.I addressfile +.I listname +.PP +upas/vf +.SH DESCRIPTION +.SS Mail +Mail is a shell script that invokes +.I upas/nedmail +when no recipients appear on the command line and +.I upas/marshal +otherwise. +All command line options are passed through. +.SS "Sending mail +.I Marshal +builds a mail message from standard input and passes it +for transmission or delivery to +.B /bin/myupassend +if it exists, otherwise to +.BR /bin/upas/send . +The message format is both RFC 822 and +MIME conformant, so +.I marshal +adds any required headers not already in the message. +Before adding any necessary header lines, it prepends +the contents of +.BI /mail/box/ username /headers\f1. +This allows the addition of personal headers like +.B From: +lines with a full name or a different +return address. +Command line options direct marshal to add a subject line +and append attachments. The arguments to +.I marshal +are the addresses of the recipients. +.PP +When running in a +.IR rio (1) +window, +.I marshal +automatically puts the window into hold mode (see +.IR rio (1)); +this means that the message can be edited freely, +because nothing will be sent to +.I marshal +until the ESC key is hit to exit hold mode. +.PP +The options are: +.TF "-a file" +.TP +.BI -a file +directs +.I marshal +to append +.I file +as a mime attachment. +Unless explicitly specified by the +.B -t +option, the type of the attachment is determined +by running the +.IR file (1) +command. +.TP +.BI -A file +is like +.B -a +but the message disposition is marked as +.I inline +directing any mail reader to display the attachment +(if it can) when the mail message is read. +.TP +.BI -t type +sets the content type for the attachments from +all subsequent +.B -a +and +.B -A +options. +.TP +.BI -s subject +adds a +.B Subject: +header line to the message if one does not +already exist. +.TP +.B -#xnr +are all passed as command line options to the +.I send +that +.I marshal +invokes. +.PD +.PP +.I Send +reads a message from standard input and disposes of it in one +of four ways: +.IP \(bu 3 +If +.I mailaddr +refers to a local mailbox, it appends it to the +recipient's mailbox. +.IP \(bu +If +.I mailaddr +is remote, it queues the mail for remote delivery. +.IP \(bu +If the +.B -r +option is given and the mail is undeliverable, it +returns the mail to the sender. +.IP \(bu +if the +.B -r +option is not given and the mail is undeliverable, it +appends the mail to +.BI /mail/box/ username /dead.letter +and prints a message to standard error. +.PP +The file +.B /mail/lib/rewrite +determines exactly how to deliver or queue the mail. +The decision is based purely on the recipient address. +.PP +The options are: +.TF -b +.TP +.B -b +suppresses the addition of the +.B To: +line. +.TP +.B -i +let the message input be terminated by a line +containing only a period, for +compatibility with +old mailers. +.TP +.B -x +do not send mail, but instead report +the full mail address of the recipient. +.TP +.B -# +do not send mail, but instead report +what command would be used to send the mail. +.TP +.B -r +input is via a pipe from another program. +Expect a From +line at the start of the message to provide the +name of the sender and timestamp. This implies +the +.B -b +option. +.SS "Reading mail" +.I Nedmail +edits a mailbox. +The default mailbox is +.BI /mail/box/ username /mbox\f1. +The +.B -f +command line option specifies an alternate mailbox. +Unrooted path names are interpreted relative to +.BI /mail/box/ username. +If the +.I mailfile +argument is omitted, the name defaults to +.BR stored . +.PP +The options are: +.TF "-f mailfile" +.TP +.BI -c " dir +Create a mailbox. If +.I dir +is specified, the new mailbox is created in +.BI /mail/box/ username / dir /mbox\f1. +Otherwise, the default mailbox is created. +.TP +.B -r +Reverse: show messages in first-in, first-out order; the default is last-in, first-out. +.TP +.B -n +Make the message numbers the same as the file names in the mail +box directory. This implies the +.B -r +option. +.TP +.BI -f " mailfile" +Read messages from the specified file (see above) instead of the default mailbox. +.TP +.BI -s " mailfile" +Read a single message file +.IR mailfile , +as produced by +.IR fs , +and treat it as an entire mailbox. +This is provided for +use in plumbing rules; see +.IR faces (1). +.PD +.PP +.I Nedmail +starts by reading the mail box, printing out the number +of messages, and then prompting for commands from standard input. +Commands, as in +.IR ed (1), +are of the form +.RI `[ range ] +.I command +.RI [ arguments ]'. +The command is applied to each message in the (optional) range. +.PP +The address range can be: +.TP 1.4i +.I address +to indicate a single message header +.PD 0 +.TP +.IB address , address +to indicate a range of contiguous message headers +.TP +.BI g/ expression / +to indicate all messages whose headers match the regular +.IR expression . +.TP +.BI g% expression % +to indicate all messages whose contents match the regular +.IR expression . +.PD +.PP +The addresses can be: +.TP 1.4i +.I number +to indicate a particular message +.PD 0 +.TP +.IB address . number +to indicate a subpart of a particular message +.TP +.BI / expression / +to indicate the next message whose header matches +.I expression +.TP +.BI % expression % +to indicate the next message whose contents match +expression +.TP +.I "empty or . +to indicate the current message +.TP +.BI - address +to indicate backwards search or movement +.PD +.PP +Since messages in MIME are hierarchical +structures, in +.I nedmail +all the subparts are individually addressable. +For example if message 2 contains 3 attachments, +the attachments are numbered 2.1, 2.2, and 2.3. +.PP +The commands are: +.TP 1.1i +.BI a " args +Reply to all addresses in the +.BR To: , +.BR From: , +and +.BR Cc: +header lines. +.I Marshal +is used to format the reply and any arguments the +user specifies are added to the command line to +.I marshal +before the recipient. +The possibility of making a fool of yourself is very +high with this command. +.PD 0 +.TP +.BI A " args +Like +.B a +but with the message +appended to the reply. +.TP +.B b +Print the headers for the next ten messages. +.TP +.B d +Mark message to be deleted upon exiting +.IR nedmail . +.TP +.B f +Append the message to the file +.BI /mail/box/ username / sendername +where +.I sendername +is the account name of the sender. +.TP +.B h +Print the disposition, size in characters, reception time, sender, +and subject of the message. +.TP +.B H +Print the MIME structure of the message. +.TP +.B help +Print a summary of the commands. +.TP +.BI m " person ... +Forward the message as a mime attachment to the named +.IR persons . +.TP +.BI M " person ... +Like +.B m +but allow the user to type in text to be included +with the forwarded message. +.TP +.B p +Print message. An interrupt stops the printing. +.TP +.BI r " args +Reply to the sender of the message. +.I Marshal +is used to format the reply. +If and optional +.I Args +are specified, they are added to the command line to +.I marshal +before the recipient's address. +.TP +.B R " args +Like +.B r +but with the original message included as an attachment. +.TP +.B rf +Like +.B r +but append the message and the reply to the file +.BI /mail/box/ username / sendername +where +.I sendername +is the account name of the sender. +.TP +.B Rf +Like +.B R +but append the message and the reply to the file +.BI /mail/box/ username / sendername +where +.I sendername +is the account name of the sender. +.TP +.BI s " mfile" +Append the message to the specified mailbox. +If +.I mfile +doesn't start with a `/', it is interpreted relative to the directory in which the mailbox resides. +.TP +.B q +Put undeleted mail back in the mailbox and stop. +.TP +EOT (control-D) +Same as +.BR q . +.TP +.BI w " file +Same as +.B s +with the mail header line(s) stripped. This can be used to +save binary mail bodies. +.TP +.B u +Remove mark for deletion. +.TP +.B x +Exit, without changing the mailbox file. +.TP +.BI | command +Run the +.I command +with the message as standard input. +.TP +.BI ! command +Escape to the shell to do +.IR command . +.TP +.B \&= +Print the number of the current message. +.PD +.PP +Here's an example of a mail session that looks at a summary +of the mail messages, saves away an html file added as an +attachment to a message and then deletes the message: +.LP +.EX +% mail +7 messages +: ,h +1 H 2129 07/22 12:30 noone@madeup.net "Add Up To 2000 free miles" +2 504 07/22 11:43 jmk +3 H 784 07/20 09:05 presotto +4 822 07/11 09:23 xxx@yyy.net "You don't call, you don't write..." +5 193 07/06 16:55 presotto +6 529 06/01 19:42 jmk +7 798 09/02 2000 howard +: 1H +1 multipart/mixed 2129 from=noone@madeup.net + 1.1 text/plain 115 + 1.2 text/html 1705 filename=northwest.htm +: 1.2w /tmp/northwest.html +!saved in /tmp/northwest.html +1.2: d +1: q +!1 message deleted +% +.EE +.PP +Notice that the delete of message 1.2 deleted the entire message and +not just the attachment. +.SS "Aliasmail" +.I Aliasmail +expands mail aliases, its arguments, according to alias files. +Each line of an alias file begins with +.B # +(comment) or with a name. +The rest of a name line gives the expansion. +The expansion may contain multiple addresses and may be continued +to another line by appending a backslash. +Items are separated by white space. +.PP +In expanding a name, the sender's personal alias file +.BI /mail/box/ username /names +is checked first. +Then the system alias files, listed one per line in +.BR /mail/lib/namefiles , +are checked in order. +If the name is not found, the expansion is taken to be +.BI local! name\f1. +Under the +.B -f +option, +alias files listed in +.B /mail/lib/fromfiles +are consulted instead, +and the domain part only of the expansion is printed. +.SS Mailboxes +Incoming mail for a user +.I username +is put in the file +.BI /mail/box/ username /mbox +unless either the file +.BI /mail/box/ username /forward +or +.BI /mail/box/ username /pipeto +exists. +The mailbox must have append-only and exclusive-access mode +(see +.IR chmod (1)). +A user must create his or her own mailbox using the +.B -c +option of +.IR nedmail . +Mailboxes are created writable (append-only) but not readable by others. +.SS Forwarding +If the file +.BI /mail/box/ username /forward +exists and is readable by everyone, incoming mail +will be forwarded to the addresses contained in the first line of the file. +The file may contain multiple addresses. +Forwarding loops are caught and resolved by local delivery. +.SS Filtering +If the file +.BI /mail/box/ username /pipeto +exists and is readable and executable by everyone, +it will be run for each incoming message for the user. +The message will be piped to it rather +than appended to his/her mail box. +The file is run as user +.B none +with arguments of the resolved address of +.I username +(e.g., +.BR local!presotto ) +and the user's mail box name. +.PP +.I Filter +provides simple mail filtering. +The first two arguments are the recipient's address and mailbox, that is, +the same arguments provided to +.BR pipeto . +The remaining arguments are all pairs of a regular expression and a file name. +With no flags, the sender's address is matched against each +regular expression starting with the first. If the expression +matches, then the message is delivered to the file whose name +follows the expression. The file must be world writable and should +be append only. +A message that matches none of the expressions is delivered into +the user's standard mail box. +The flags are: +.TP +.B h +the regular expression is matched against the message header +rather than the address. +.TP +.B b +the regular expression is matched against both the header and the body +of the message. +.PP +For example, to delete any messages of precedence bulk, place in +your +.B pipeto +file: +.EX +/bin/upas/filter -h $1 $2 'Precedence: bulk' /dev/null +.EE +.PP +Three other commands exist which, combined by an +.IR rc (1) +script, allow you to build your own filter. +.PP +.I List +takes two verbs; +.B check +and +.BR add . +.B Check +directs +.I list +to check each address contained in the +.IR addressfile s +against a list of patterns in +.IR patternfile . +Patterns come in four forms: +.TP +.B ~\fIregular-expression\fP +If any address matches the regular expression, +.I list +returns successfully. +.TP +.BR =\fIstring\fP . +If any address exactly matches +.IR string , +.I list +returns successfully. +.TP +.B !~\fIregular-expression\fP +If any address matches the regular expression +and no other address matches a non `!' rule, +.I list +returns error status "!match". +.TP +.B !=\fIstring\fP +If any address exactly matches +.I string +and no other address matches a non `!' rule, +.I list +returns error status "!match". +.PP +If no addresses match a pattern, +.I list +returns "no match". +.PP +The pattern file may also contain lines of the form +.EX +#include filename +.EE +This allows pattern files to include other pattern +files. +All pattern matches are case insensitive. +.I List +searches the pattern file (and its includes) in order. +The first matching pattern determines the action. +.PP +.I List +.B add +directs +.I list +to add a pattern to +.I patternfile +for each address in the +.IR addrssfile 's +that doesh't already match a pattern. +.PP +.IR Token , +with only one argument, prints to standard output a unique token +created from the current date and +.IR key . +With two arguments, it checks +.I token +against tokens created over the last 10 days with +.IR key . +If a match is found, it returns successfully. +.PP +.I Deliver +delivers into mail box +.I mbox +the message read from standard input. +It obeys standard mail file locking and logging +conventions. +.PP +A sample +.B pipeto +using the filter kit can be found in +.BR /sys/src/cmd/upas/filterkit/pipeto.sample . +.PP +A sample +.BR myupassend , +.BR /sys/src/cmd/upas/filterkit/myupassend.sample , +is provided which adds all addresses of your outgoing +mail to your pattern file. +You should copy it into a directory that normally gets +bound by your profile onto +.BR /bin . +.SS "Mime File system +.PP +.I Fs +is a user level file system that reads mailboxes and presents them as a file +system. +A user normally starts +.I fs +in his/her profile after starting +.IR plumber (4) +and before starting +a window system, such as +.IR rio (1) +or +.IR acme (1). +The file system is used by +.I nedmail +and +.IR acme (1)'s +mail reader to parse messages. +.I Fs +also generates plumbing messages used by +.IR biff +and +.IR faces (1) +to provide mail announcements. +.PP +The mailbox itself becomes a directory under +.BR /mail/fs . +Each message in the mailbox becomes a numbered directory in the +mailbox directory, and each attachment becomes a numbered directory +in the message directory. Since an attachment may itself be a mail message, +this structure can recurse ad nauseam. +.PP +Each message and attachment directory contains the files: +.TP 1.4i +.B body +.PD 0 +the message minus the RFC822 style headers +.TP +.B cc +the address(es) from the CC: header +.TP +.B date +the date in the message, or if none, the time of delivery +.TP +.B digest +an SHA1 digest of the message contents +.TP +.B disposition +.B inline +or +.B file +.TP +.B filename +a name to use to file an attachment +.TP +.B from +the from address in the From: header, or if none, +the address on the envelope. +.TP +.B header +the RFC822 headers +.TP +.B info +described below, essentially a summary of the header info +.TP +.B inreplyto +contents of the +.B in-reply-to: +header +.TP +.B mimeheader +the mime headers +.TP +.B raw +the undecoded MIME message +.TP +.B rawbody +the undecoded message body +.TP +.B rawheader +the undecoded message header +.TP +.B replyto +the address to send any replies to. +.TP +.B subject +the contents of the subject line +.TP +.B to +the address(es) from the To: line. +.TP +.B type +the MIME content type +.TP +.B unixheader +the envelope header from the mailbox +.PD +.PP +The +.B info +file contains the following information, one item per line. Lists +of addresses are single space separated. +.IP +.TP 2i +.I "sender address +.PD 0 +.TP +.I "recipient addresses +.TP +.I "cc addresses +.TP +.I "reply address +.TP +.I "envelope date +.TP +.I "subject +.TP +.I "MIME content type +.TP +.I "MIME disposition +.TP +.I filename +.TP +.I "SHA1 digest +.TP +.I "bcc addresses +.TP +.I "in-reply-to: contents +.TP +.I "RFC822 date +.TP +.I "message senders +.TP +.I "message id +.TP +.I "number of lines in body +.PD +.PP +Deleting message directories causes the message to be removed from +the mailbox. +.PP +The mailbox is reread and the structure updated +whenever the mailbox changes. Message directories are +not renumbered. +.PP +The file +.B /mail/fs/ctl +is used to direct +.I fs +to open/close new mailboxes or to delete groups of messages atomically. +The messages that can be written to this file are: +.TP 2i +.PD 0 +.B "open \fIpath mboxname\fP +opens a new mailbox. +.I path +is the file to open, and +.I mboxname +is the name that appears under +.BR /mail/fs . +.TP +.B "close \fImboxname\fP +close +.IR mboxname . +The close takes affect only after all files open under +.BI /mail/fs/ mboxname +have been closed. +.TP +.B "delete \fImboxname number ...\fP +Delete the messages with the given numbers from +.IR mboxname. +.PD +.PP +The options are: +.TF "-f file +.TP +.BI -f file +use +.I file +as the mailbox instead of the default, +.BI /mail/box/ username /mbox. +.PD 0 +.TP +.B -b +stands for biffing. Each time new mail +is received, a message is printed to standard +output containing the sender address, subject, +and number of bytes. It is intended for +people telnetting in who want mail announcements. +.TP +.B -n +Don't open a mailbox initially. Overridden by -f. +.TP +.B -p +turn off plumbing. Unless this is specified, +.I fs +sends a message to the plumb port, +.BR seemail , +from source +.B mailfs +for each message received or deleted. +The message contains the attributes +.IR sender = "" , +.IR filetype =mail, +.IR mailtype = "deleted or new" , +and +.IR length = "" . +The contents of the message is the full path +name of the directory representing the message. +.TP +.B -s +causes +.I fs +to put itself in +.B /srv +with a name of the form +.BR /srv/upasfs.\fIuser\fP . +.TP +.B -m +specifies a mount point other than +.BR /mail/fs . +.PD +.PP +.I Fs +will exit once all references to its directory +have disappeared. +.SS "Mail Announcements +.PP +.I Biff +is the textual equivalent of +.IR faces (1). +It listens to plumbing messages from +.I fs +and for each new message prints to standard output a line +containing the sender address, subject, +and number of bytes. +It exists for people without graphics capability or with screens too small to +dedicate the space +.IR faces (1) +requires. It forks to place itself in the background. +.SS "Remote delivery +.PP +.I Smtp +sends the mail message from standard input +to the users +.I rcpt-list +on the host at network address +.I address +using the Simple Mail Transfer Protocol. +The return address of the mail will contain the local +system name from the environment variable +.I sysname +and the user +.IR sender . +The +.B -h +option uses +.I host +as the local system name; +it may be fully-qualified or not. +If +.I .domain +is given, it is appended to the end of the system name. +The +.B -f +option just prints out the converted message rather than +sending it to the destination. +The +.B -g +option specifies a gateway system to pass the message to if smtp can't +find an address or MX entry for the destination system. +The +.B -d +option turns on debugging output to standard error. +.PP +.I Smtpd +receives a message using the Simple Mail Transfer Protocol. +Standard input and output are the protocol connection. +.PP +The options are: +.TP 1.1i +.B -d +turns on debugging output to standard error. +.TP +.B -r +turns on forward DNS validation of non-trusted sender address. +.TP +.B -f +prevents relaying from non-trusted networks. +.TP +.B "-n \fItcp-directory\fP" +specifies the name of the network directory assigned to the incoming connection. +This is used to determine the peer IP address. If this flag is not +specified, the peer address is determined using standard input. +.TP +.B "-h \fIdomain\fP" +specifies the receiving domain. If this flag is not specified, the +receiving domain is inferred from the host name. +.TP +.B -s +causes copies of blocked messages to be saved in a sub-directory of +.BR /mail/queue.dump . +.TP +.B "-k \fIIP address\fP" +causes connections from the host at +.I "IP address" +to be dropped at program startup. Multiple addresses +can be specified with several +.B -k +options. This option should be used carefully; +it is intended to lessen the effects of denial of +service attacks or broken mailers which continually +connect. The connections are not logged and the +remote system is not notified via the protocol. +.PP +.I Smtpd +is normally run by a network listener such as +.IR listen (8). +Most of the command line options are more conveniently +specified in the smtpd configuration file stored in +.BR /mail/lib/smtpd.conf . +.SS "Mailing lists +.I Mlmgr +creates and updates unmoderated mailing lists. +The +.B \-c +option creates mail directories for both +.I listname +and +.IB listname -owner\f1,\fP +each containing a +.B pipeto +file. +Messages mailed to +.I listname +are sent to all members of the mailing list. +Any +.B Reply-to: +and +.B Precedence: +fields are +removed from the messages and new ones are added +directing replies to +.I listname +and specifying bulk precedence. The envelope address for +error replies is set to +.BR /dev/null . +.PP +The mailing list membership is the file +.BR /mail/box/\fIlistname\fP/address-list . +This file is an add/remove log. Each line +represents a single address. Lines beginning +with a hash +.RB ( # ) +are comments. +Lines beginning with an exclamation point +.RB ( ! ) +are removals. +All other lines are additions. +.PP +Addition and removal entries can be appended using the +.B -a +and +.B -r +options to +.IR mlmgr . +However, they are normally appended as a consequence or +user requests. +.PP +To be added or removed from the list, a user +may send a message to +.IB listname -owner\f1.\fP +containing a key word in +the header or body. The key words are: +.IP +subscribe - add my +.B From: +address to the list +.IP +remove - remove my +.B From: +address from the list +.IP +unsubscribe - remove my +.B From: +address from the list +.PP +Addition and removal events cause notification messages to +be sent to the added/removed address. In the case of +addition, the message describes how to be removed. +.PP +.I Ml +and +.I mlowner +are the programs that receive messages for +.I listname +and +.IB listname -owner +respectively. +Appropriate calls to them are inserted in the +.B pipeto +files created by +.IR mlmgr . +.SS "Virus Wrapper +.I Vf +takes a mail message as standard input, searches for executable +MIME attachments, wraps them in a warning message, and appends +.B .suspect +to any related filenames. +.B /sys/lib/mimetype +contains the list of known MIME content types and file extensions. +.I Vf +wraps all those for which the fifth field of +.B mimetype +is +.BR n . +.SS "Mail server +.I Pop3 +is a rudimentary POP3 server that uses APOP for authentication. +It predates +.I upas/fs +and does not use it. It will soon be replaced by one that uses +.IR upas/fs . +See also the IMAP4 server described in +.IR ipserv (8). +.SH FILES +.TF /mail/box/*/dead.letter +.TP +.B /sys/log/mail +mail log file +.TP +.B /mail/box/* +mail directories +.TP +.B /mail/box/*/mbox +mailbox files +.TP +.B /mail/box/*/forward +forwarding address(es) +.TP +.B /mail/box/*/pipeto +mail filter +.TP +.B /mail/box/*/L.reading +mutual exclusion lock for multiple mbox readers +.TP +.B /mail/box/*/L.mbox +mutual exclusion lock for altering mbox +.TP +.B /mail/box/*/dead.letter +unmailable text +.TP +.B /mail/box/*/names +personal alias files +.TP +.B /mail/lib/rewrite +rules for handling addresses +.TP +.B /mail/lib/namefiles +lists files to search for aliases in +.TP +.B /lib/face/48x48x? +directories of icons for +.I seemail +.SH SOURCE +.TF /sys/src/cmd/upas +.TP +.B /rc/bin/mail +.TP +.B /sys/src/cmd/upas +source for commands in +.B /bin/upas +.TP +.B /sys/src/cmd/faces +.TP +.B /rc/bin/vwhois +.SH "SEE ALSO" +.IR face (6), +.IR rewrite (6) +.IR ipserv (8) +.SH BUGS +.I Nedmail +truncates +long headers for searching. +.sp +.br +.I Biff +and +the +.B \-b +option of +.I fs +perform the same function but in slightly +different environments. +The duality is confusing. +The +.B \-b +option exists because starting both +.I fs +and +.I biff +in a Telnet session results in a number +of processes that don't die when the +session is terminated; the +.IR plumber (4) +is held open by +.I fs +and +.I biff +still having it mounted, while +.I fs +is held open by +.I biff +which is blocked waiting for plumbing +input. diff --git a/static/plan9-4e/man1/man.1 b/static/plan9-4e/man1/man.1 new file mode 100644 index 00000000..c7273051 --- /dev/null +++ b/static/plan9-4e/man1/man.1 @@ -0,0 +1,97 @@ +.TH MAN 1 +.SH NAME +man, lookman \- print or find pages of this manual +.SH SYNOPSIS +.B man +[ +.I option ... +] +[ +.I section ... +] +.I title ... +.PP +.B lookman +.I key ... +.SH DESCRIPTION +.I Man +locates and prints pages of this manual named +.I title +in the specified +.IR sections . +.I Title +is given in lower case. +Each +.I section +is a number; +pages marked (2S), for example, +belong to chapter 2. +If no +.I section +is specified, pages +in all sections are printed. +Any name from the +.SM NAME +section at the top of the page will serve as a +.IR title . +.PP +The options are: +.TP +.B -p +Run +.IR proof (1) +on the specified man pages. +.TP +.B -P +Run +.IR page (1) +on the specified man pages. +.TP +.B -t +Run +.I troff +and send its output +to standard output. +.TP +.B -n +(Default) +Print the pages on the standard output using +.IR nroff . +.PP +.B Lookman +prints the names of all manual sections that contain +all of the +.I key +words given on the command line. +.SH FILES +.TF /sys/lib/man/lookman/index +.TP +.B /sys/man/?/* +.I troff +source for manual; this page is +.B /sys/man/1/man +.TP +.B /sys/man/?/INDEX +indices searched to find pages corresponding to titles +.TP +.B /sys/lib/man/secindex +command to make an index for a given section +.TP +.B /sys/lib/man/lookman/index +index for +.I lookman +.SH SOURCE +.B /rc/bin/man +.br +.B /rc/bin/lookman +.SH "SEE ALSO" +.IR proof (1) +.SH BUGS +The manual was intended to be typeset; some detail is sacrificed on text terminals. +.br +There is no automatic mechanism to keep the indices up to date. +.br +Except for special cases, it doesn't recognize things that should be run through +.I tbl +and/or +.IR eqn . diff --git a/static/plan9-4e/man1/mc.1 b/static/plan9-4e/man1/mc.1 new file mode 100644 index 00000000..672bc967 --- /dev/null +++ b/static/plan9-4e/man1/mc.1 @@ -0,0 +1,40 @@ +.TH MC 1 +.SH NAME +mc \- multicolumn print +.SH SYNOPSIS +.B mc +[ +.B - +] +[ +.BI - N +] +[ +.I file ... +] +.SH DESCRIPTION +.I Mc +splits the input into as many columns as will fit in +.I N +print positions. +If run in an +.IR rio (1) +window, the default +.I N +is the number of blanks that will fit across the window; +otherwise the default +.I N +is 80. +Under option +.B - +each input line ending in a colon +.L : +is printed separately. +.SH SOURCE +.B /sys/src/cmd/mc.c +.SH "SEE ALSO" +.IR rio (1), +.IR pr (1), +.I lc +in +.IR ls (1) diff --git a/static/plan9-4e/man1/mk.1 b/static/plan9-4e/man1/mk.1 new file mode 100644 index 00000000..32485e5e --- /dev/null +++ b/static/plan9-4e/man1/mk.1 @@ -0,0 +1,654 @@ +.TH MK 1 +.SH NAME +mk, membername \- maintain (make) related files +.SH SYNOPSIS +.B mk +[ +.B -f +.I mkfile +] ... +[ +.I option ... +] +[ +.I target ... +] +.PP +.B membername +.I aggregate ... +.SH DESCRIPTION +.I Mk +uses the dependency rules specified in +.I mkfile +to control the update (usually by compilation) of +.I targets +(usually files) +from the source files upon which they depend. +The +.I mkfile +(default +.LR mkfile ) +contains a +.I rule +for each target that identifies the files and other +targets upon which it depends and an +.IR rc (1) +script, a +.IR recipe , +to update the target. +The script is run if the target does not exist +or if it is older than any of the files it depends on. +.I Mkfile +may also contain +.I meta-rules +that define actions for updating implicit targets. +If no +.I target +is specified, the target of the first rule (not meta-rule) in +.I mkfile +is updated. +.PP +The environment variable +.B $NPROC +determines how many targets may be updated simultaneously; +Plan 9 sets +.B $NPROC +automatically to the number of CPUs on the current machine. +.PP +Options are: +.TP \w'\fL-d[egp]\ 'u +.B -a +Assume all targets to be out of date. +Thus, everything is updated. +.PD 0 +.TP +.BR -d [ egp ] +Produce debugging output +.RB ( p +is for parsing, +.B g +for graph building, +.B e +for execution). +.TP +.B -e +Explain why each target is made. +.TP +.B -i +Force any missing intermediate targets to be made. +.TP +.B -k +Do as much work as possible in the face of errors. +.TP +.B -n +Print, but do not execute, the commands +needed to update the targets. +.TP +.B -s +Make the command line arguments sequentially rather than in parallel. +.TP +.B -t +Touch (update the modified date of) file targets, without +executing any recipes. +.TP +.BI -w target1 , target2,... +Pretend the modify time for each +.I target +is the current time; useful in conjunction with +.B -n +to learn what updates would be triggered by +modifying the +.IR targets . +.PD +.PP +The +.IR rc (1) +script +.I membername +extracts member names +(see `Aggregates' below) +from its arguments. +.SS The \fLmkfile\fP +A +.I mkfile +consists of +.I assignments +(described under `Environment') and +.IR rules . +A rule contains +.I targets +and a +.IR tail . +A target is a literal string +and is normally a file name. +The tail contains zero or more +.I prerequisites +and an optional +.IR recipe , +which is an +.B rc +script. +Each line of the recipe must begin with white space. +A rule takes the form +.IP +.EX +target: prereq1 prereq2 + rc \f2recipe using\fP prereq1, prereq2 \f2to build\fP target +.EE +.PP +When the recipe is executed, +the first character on every line is elided. +.PP +After the colon on the target line, a rule may specify +.IR attributes , +described below. +.PP +A +.I meta-rule +has a target of the form +.IB A % B +where +.I A +and +.I B +are (possibly empty) strings. +A meta-rule acts as a rule for any potential target whose +name matches +.IB A % B +with +.B % +replaced by an arbitrary string, called the +.IR stem . +In interpreting a meta-rule, +the stem is substituted for all occurrences of +.B % +in the prerequisite names. +In the recipe of a meta-rule, the environment variable +.B $stem +contains the string matched by the +.BR % . +For example, a meta-rule to compile a C program using +.IR 2c (1) +might be: +.IP +.EX +%: %.c + 2c $stem.c + 2l -o $stem $stem.2 +.EE +.PP +Meta-rules may contain an ampersand +.B & +rather than a percent sign +.BR % . +A +.B % +matches a maximal length string of any characters; +an +.B & +matches a maximal length string of any characters except period +or slash. +.PP +The text of the +.I mkfile +is processed as follows. +Lines beginning with +.B < +followed by a file name are replaced by the contents of the named +file. +Lines beginning with +.B "<|" +followed by a file name are replaced by the output +of the execution of the named +file. +Blank lines and comments, which run from unquoted +.B # +characters to the following newline, are deleted. +The character sequence backslash-newline is deleted, +so long lines in +.I mkfile +may be folded. +Non-recipe lines are processed by substituting for +.BI `{ command } +the output of the +.I command +when run by +.IR rc . +References to variables are replaced by the variables' values. +Special characters may be quoted using single quotes +.BR \&'' +as in +.IR rc (1). +.PP +Assignments and rules are distinguished by +the first unquoted occurrence of +.B : +(rule) +or +.B = +(assignment). +.PP +A later rule may modify or override an existing rule under the +following conditions: +.TP +\- +If the targets of the rules exactly match and one rule +contains only a prerequisite clause and no recipe, the +clause is added to the prerequisites of the other rule. +If either or both targets are virtual, the recipe is +always executed. +.TP +\- +If the targets of the rules match exactly and the +prerequisites do not match and both rules +contain recipes, +.I mk +reports an ``ambiguous recipe'' error. +.TP +\- +If the target and prerequisites of both rules match exactly, +the second rule overrides the first. +.SS Environment +Rules may make use of +.B rc +environment variables. +A legal reference of the form +.B $OBJ +is expanded as in +.IR rc (1). +A reference of the form +.BI ${name: A % B = C\fL%\fID\fL}\fR, +where +.I A, B, C, D +are (possibly empty) strings, +has the value formed by expanding +.B $name +and substituting +.I C +for +.I A +and +.I D +for +.I B +in each word in +.B $name +that matches pattern +.IB A % B\f1. +.PP +Variables can be set by +assignments of the form +.I + var\fL=\fR[\fIattr\fL=\fR]\fIvalue\fR +.br +Blanks in the +.I value +break it into words, as in +.I rc +but without the surrounding parentheses. +Such variables are exported +to the environment of +recipes as they are executed, unless +.BR U , +the only legal attribute +.IR attr , +is present. +The initial value of a variable is +taken from (in increasing order of precedence) +the default values below, +.I mk's +environment, the +.IR mkfiles , +and any command line assignment as an argument to +.IR mk . +A variable assignment argument overrides the first (but not any subsequent) +assignment to that variable. +The variable +.B MKFLAGS +contains all the option arguments (arguments starting with +.L - +or containing +.LR = ) +and +.B MKARGS +contains all the targets in the call to +.IR mk . +.PP +It is recommended that mkfiles start with +.IP +.EX + output +.br +.B html2ms < input > output +.SH DESCRIPTION +.I Ms2html +converts the +.IR ms (6) +source on standard input into HTML and prints it to +standard output. +If the source contains +.IR tbl (1) +or +.IR eqn +input, you must first pipe the text through those +preprocessors. +Postscript images, equations, and tables will be +converted to gif files. +If the document has a +.B .TL +entry, its contents will be used as the title; otherwise +.I ms2html +will look for a +.B ._T +macro, unknown to +.IR ms (6), +and take its value. +.SH SOURCE +.B /sys/src/cmd/ms2html.c +.br +.B /sys/src/cmd/html2ms.c +.SH BUGS +.PP +Ms2html doesn't understand a number of troff +commands. It does handle macros and defined +strings. +.PP +Html2ms doesn't understand html tables. diff --git a/static/plan9-4e/man1/netstat.1 b/static/plan9-4e/man1/netstat.1 new file mode 100644 index 00000000..6c16484b --- /dev/null +++ b/static/plan9-4e/man1/netstat.1 @@ -0,0 +1,39 @@ +.TH NETSTAT 1 +.SH NAME +netstat \- summarize network connections +.SH SYNOPSIS +.B netstat +[ +.B -in +] [ +.I netmtpt +] +.SH DESCRIPTION +.I Netstat +prints information about network mounted at +.IR netmtpt , +default +.BR /net . +With the +.B \-i +option, it reports one line per network interface listing the +device, MTU, local address, masl, remote address, packets in, +packets out, errors in, and errors out for this interface. +For +.I IP +connections +.I netstat +reports the connection number, user, +connection state, local port, remote port and +remote address. +.I Netstat +looks up port numbers and addresses in the network databases +to print symbolic names if possible, but if the +.B -n +option is specified, it does not translate to symbolic form. +.SH FILES +.B /net/*/* +.SH SOURCE +.B /sys/src/cmd/netstat.c +.SH "SEE ALSO" +.IR ipconfig (8) diff --git a/static/plan9-4e/man1/news.1 b/static/plan9-4e/man1/news.1 new file mode 100644 index 00000000..0a33502a --- /dev/null +++ b/static/plan9-4e/man1/news.1 @@ -0,0 +1,63 @@ +.TH NEWS 1 +.SH NAME +news \- print news items +.SH SYNOPSIS +.B news +[ +.B -a +] +[ +.B -n +] +[ +.I item ... +] +.SH DESCRIPTION +When invoked without options, +this simple local news service +prints files that have appeared in +.BR /lib/news +since last reading, most recent first, +with each preceded by an appropriate header. +The time of reading is recorded. +The options are +.TP +.B -a +Print all items, regardless of currency. +The recorded time is not changed. +.TP +.B -n +Report the names of the current items without +printing their contents, and without changing +the recorded time. +.PP +Other arguments +select particular news items. +.PP +To post a news item, create a file in +.BR /lib/news . +.PP +You may arrange to receive news automatically by +registering your mail address in +.BR /sys/lib/subscribers . +A daemon mails recent news +to all addresses on the list. +.PP +Empty news items, and news items named +.B core +or +.B dead.letter +are ignored. +.SH FILES +.TF /sys/lib/subscribers +.TP +.B /lib/news/* +articles +.TP +.B $HOME/lib/newstime +modify time is time news was last read +.TP +.B /sys/lib/subscribers +who gets news mailed to them +.SH SOURCE +.B /sys/src/cmd/news.c diff --git a/static/plan9-4e/man1/nm.1 b/static/plan9-4e/man1/nm.1 new file mode 100644 index 00000000..f9faad54 --- /dev/null +++ b/static/plan9-4e/man1/nm.1 @@ -0,0 +1,104 @@ +.TH NM 1 +.SH NAME +nm \- name list (symbol table) +.SH SYNOPSIS +.B nm +[ +.B -aghnsu +] +.I file ... +.SH DESCRIPTION +.I Nm +prints the name list of each executable or object +.I file +in the argument list. +If the +.I file +is an archive +(see +.IR ar (1)), +the name list of each file in the archive is printed. +If more than one file is given in the argument list, +the name of each file is printed at the beginning of each line. +.PP +Each symbol name is preceded by its hexadecimal +value (blanks if undefined) +and one of the letters +.TP +.B T +text segment symbol +.PD0 +.TP +.B t +static text segment symbol +.TP +.B L +leaf function text segment symbol +.TP +.B l +static leaf function text segment symbol +.TP +.B D +data segment symbol +.TP +.B d +static data segment symbol +.TP +.B B +bss segment symbol +.TP +.B b +static bss segment symbol +.TP +.B a +automatic (local) variable symbol +.TP +.B p +function parameter symbol +.TP +.B z +source file name +.TP +.B Z +source file line offset +.TP +.B f +source file name components +.PD +.PP +The output is sorted alphabetically. +.PP +Options are: +.TP +.B -a +Print all symbols; normally only user-defined text, data, +and bss segment symbols are printed. +.TP +.B -g +Print only global +.RB ( T , +.BR L , +.BR D , +.BR B ) +symbols. +.TP +.B -h +Do not print file name headers with output lines. +.TP +.B -n +Sort according to the address of the symbols. +.TP +.B -s +Don't sort; print in symbol-table order. +.TP +.B -u +Print only undefined symbols. +.SH SOURCE +.B /sys/src/cmd/nm.c +.SH SEE ALSO +.IR ar (1), +.IR 2l (1), +.IR db (1), +.IR acid (1), +.IR a.out (6) + diff --git a/static/plan9-4e/man1/ns.1 b/static/plan9-4e/man1/ns.1 new file mode 100644 index 00000000..ab980345 --- /dev/null +++ b/static/plan9-4e/man1/ns.1 @@ -0,0 +1,44 @@ +.TH NS 1 +.SH NAME +ns \- display name space +.SH SYNOPSIS +.B ns +[ +.B -r +] [ +.I pid +] +.SH DESCRIPTION +.I Ns +prints a representation of the file name space of the process with the named +.IR pid , +or by default itself. +The output is in the form of an +.IR rc (1) +script that could, in principle, recreate the name space. +The output is produced by reading and reformatting the contents of +.BI /proc/ pid /ns . +.PP +By default, +.I ns +rewrites the names of network data files to represent the network +address that data file is connected to, for example replacing +.B /net/il/82/data +with +.BR il!123.122.121.9 . +The +.B -r +flag suppresses this rewriting. +.SH FILES +.B /proc/*/ns +.SH SOURCE +.B /sys/src/cmd/ns.c +.SH "SEE ALSO" +.IR ps (1), +.IR proc (3), +.IR namespace (4), +.IR namespace (6) +.SH BUGS +The names of files printed by +.I ns +will be inaccurate if a file or directory it includes has been renamed. diff --git a/static/plan9-4e/man1/p.1 b/static/plan9-4e/man1/p.1 new file mode 100644 index 00000000..d3287599 --- /dev/null +++ b/static/plan9-4e/man1/p.1 @@ -0,0 +1,33 @@ +.TH P 1 +.SH NAME +p \- paginate +.SH SYNOPSIS +.B p +[ +.BI - number +] +[ +.I file ... +] +.SH DESCRIPTION +.I P +copies its standard input, or the named files if given, +to its standard output, +stopping at the end of every 22nd line, and between files, +to wait for a newline from the user. +The option sets the +.I number +of lines on a page. +.PP +While waiting for a newline, +.I p +interprets the commands: +.TP +.B ! +Pass the rest of the line to the shell as a command. +.TP +.B q +Quit. +.PP +.SH SOURCE +.B /sys/src/cmd/p.c diff --git a/static/plan9-4e/man1/page.1 b/static/plan9-4e/man1/page.1 new file mode 100644 index 00000000..ffa7f8b7 --- /dev/null +++ b/static/plan9-4e/man1/page.1 @@ -0,0 +1,229 @@ +.TH PAGE 1 +.SH NAME +page \- view +FAX, +image, graphic, PostScript, PDF, +and typesetter output +files +.SH SYNOPSIS +.B page +[ +.B -abirPRvVw +] +[ +.B -p +.I ppi +] +[ +.IR file ... +] +.SH DESCRIPTION +.I Page +is a general purpose document viewer. +It can be used to display the individual pages +of a +PostScript, +PDF, +or +.IR tex (1) +or +.IR troff (1) +device independent output +file. +.I Tex +or +.I troff +output is simply converted to PostScript in order to be viewed. +It can also be used to view any number of +graphics files +(such as a +FAX +page, +a Plan 9 +.IR image (6) +file, an Inferno bitmap file, or other common format). +.I Page +displays these +in sequence. +In the absence of named files, +.I page +reads one from standard input. +.PP +By default, +.I page +runs in the window in which it is started +and leaves the window unchanged. +The +.B -R +option causes +.I page +to grow the window if necessary +to display the page being viewed. +The +.B -w +option causes +.I page +to create a new window for itself. +The newly created window will grow as under the +.B -R +option. +If being used to display +multipage documents, +only one file may be specified on the command line. +.PP +The +.B -p +option sets the resolution for PostScript and PDF +files, in pixels per inch. +The default is 100 ppi. +The +.B -r +option reverses the order in which pages are displayed. +.PP +When viewing a document, +.I page +will try to guess the true bounding box, usually rounding up from +the file's bounding box to +8½×11 or A4 size. +The +.B -b +option causes it to respect the bounding box given in the file. +As a more general problem, +some PostScript files claim to conform to Adobe's +Document Structuring Conventions but do not. +The +.B -P +option enables a slightly slower and slightly more +skeptical version of the PostScript processing code. +Unfortunately, there are PostScript documents +that can only be viewed with the +.B -P +option, and there are PostScript documents that +can only be viewed without it. +.PP +When viewing images with +.IR page , +it listens to the +.B image +plumbing channel +(see +.IR plumber (4)) +for more images to display. +The +.B -i +option causes +.I page +to not load any graphics files nor to read +from standard input but rather to listen +for ones to load from the plumbing channel. +.PP +The +.B -v +option turns on extra debugging output, and +the +.B -V +option turns on even more debugging output. +The +.B -a +option causes +.I page +to call +.IR abort (2) +rather than exit cleanly on errors, +to facilitate debugging. +.PP +Pressing and holding button 1 permits panning about the page. +Typing a +.B q +or +control-D exits the program. +Typing a +.B u +toggles whether images are displayed upside-down. +(This is useful in the common case of mistransmitted upside-down faxes). +Typing a +.B r +reverses the order in which pages are displayed. +Typing a +.B w +will write the currently viewed page to a new file as a compressed +.IR image (6) +file. +When possible, the filename is of the form +.IR basename . pagenum . bit . +Typing a +.B d +removes an image from the working set. +.PP +To go to a specific page, one can type its number followed by enter. +Typing left arrow, backspace, or minus displays the previous page. +Clicking button 2 or typing right arrow, space, or enter displays the next page. +The up and down arrow pan up and down one half screen height, +changing pages when panning off the top or bottom of the page. +Button 3 raises a menu of the +pages +to be selected for viewing in any order. +.PP +.I Page +calls +.IR gs (1) +to draw each page of PostScript +and +PDF +.IR files . +It also calls a variety of conversion programs, such as those described in +.IR jpg (1), +to convert the various raster graphics formats +into Inferno bitmap files. +Pages are converted ``on the fly,'' as needed. +.SH EXAMPLES +.TP +.L +page /sys/src/cmd/gs/examples/tiger.ps +Display a color PostScript file. +.TP +.L +page /usr/inferno/icons/*.bit +Browse the Inferno bitmap library. +.TP +.L +man -t page | page -w +Preview this manual in a new window. +.SH "SEE ALSO +.IR gs (1), +.IR jpg (1), +.IR tex (1), +.IR troff (1) +.SH SOURCE +.B /sys/src/cmd/page +.SH DIAGNOSTICS +The mouse cursor changes to an arrow and ellipsis +when +.I page +is reading or writing a file. +.SH BUGS +.I Page +supports reading of only one document +file at a time, and +the user interface is clumsy when viewing very large documents. +.PP +When viewing multipage PostScript files that do not contain +.RB `` %%Page '' +comments, the button 3 menu only contains +``this page'' and ``next page'': +correctly determining +page boundaries in Postscript code is not computable +in the general case. +.PP +If +.I page +has trouble viewing a Postscript file, +it might not be exactly conforming: try viewing it with the +.B -P +option. +.PP +The interface to the plumber is unsatisfactory. In particular, +document references cannot be sent +via plumbing messages. +.PP +There are too many keyboard commands. diff --git a/static/plan9-4e/man1/passwd.1 b/static/plan9-4e/man1/passwd.1 new file mode 100644 index 00000000..4c5b6705 --- /dev/null +++ b/static/plan9-4e/man1/passwd.1 @@ -0,0 +1,74 @@ +.TH PASSWD 1 +.SH NAME +passwd, netkey, iam \- change user password +.SH SYNOPSIS +.B passwd +[ +.I authdom +] +.PP +.B netkey +.PP +.B auth/iam +[ +.I username +] +.SH DESCRIPTION +.I Passwd +changes the invoker's Plan 9 password and/or APOP secret. +The Plan 9 password is used to login to a terminal while +the APOP secret is used for a number of external services: +POP3, IMAP, and VPN access. The optional argument specifies +the authentication domain to use if different than the one +associated with the machine +.I passwd +is run on. +.PP +The program first prompts for the old Plan 9 password in the specified +domain to establish +identity. +It then prompts for changes to the password and the +secret. +New passwords and secrets must be typed twice, to forestall mistakes. +New passwords must be sufficiently hard to guess. +They may be of any length greater than seven characters. +.PP +.I Netkey +uses the password to encrypt network challenges. +It is a substitute for a SecureNet box. +.PP +These commands may be run only on a terminal, to avoid +transmitting clear text passwords over the network. +.PP +.I Auth/iam +can be run only by the the host owner (the user specified as the contents of +.BR /dev/hostower ). +With it both the identity and password of the host owner may +be changed. For example, if start a terminal and log in as +.LR tor , +you may later change identity to +.LR supertor . +If the host owner changes, all processes running as the host owner +also change their identity to the new user id. +.PP +Without an argument, +.I Auth/iam +just sets the password of the host owner. +This can be used on machines like the Bitsy which have no +possibility of user input until the bootstrap procedure has already +started a number of processes. +.SH FILES +.B /dev/key +.SH SOURCE +.B /sys/src/cmd/auth/passwd.c +.br +.B /sys/src/cmd/auth/netkey.c +.SH "SEE ALSO" +.IR encrypt (2), +.IR cons (3), +.IR securenet (8) +.PP +Robert Morris and Ken Thompson, +``UNIX Password Security,'' +.I AT&T Bell Laboratories Technical Journal +Vol 63 (1984), pp. 1649-1672 diff --git a/static/plan9-4e/man1/pcc.1 b/static/plan9-4e/man1/pcc.1 new file mode 100644 index 00000000..fd7acd91 --- /dev/null +++ b/static/plan9-4e/man1/pcc.1 @@ -0,0 +1,185 @@ +.TH PCC 1 +.SH NAME +pcc \- APE C compiler driver +.SH SYNOPSIS +.B pcc +[ +.I option ... +] +[ +.I name ... +] +.SH DESCRIPTION +.I Pcc +compiles and loads C programs, +using APE (ANSI C/POSIX) include files and libraries. +Named files ending with +.B .c +are preprocessed with +.IR cpp (1), +then compiled with one of the compilers described in +.IR 2c (1), +as specified by the environment variable +.BR $objtype . +The object files are then loaded using one of the loaders described in +.IR 2l (1). +The options are: +.TP \w'\fL-D\ \fIname=def\ 'u +.B "-+ +Accept C++ +.B // +comments. +.TP +.BI -o " out" +Place loader output in file +.I out +instead of the default +.BR 2.out , +.BR v.out , +etc. +.TP +.B -P +Omit the compilation and loading phases; +leave the result of preprocessing +.IB name .c +in +.IB name .i\f1. +.TP +.B -E +Like +.BR -P , +but send the result to standard output. +.TP +.B -c +Omit the loading phase. +.TP +.B -p +Insert profiling code into the executable output. +.TP +.B -w +Print compiler warning messages. +.TP +.BI -l lib +Include +.BI / $objtype /lib/ape/lib lib .a +as a library during the linking phase. +.TP +.B -B +Don't complain about functions used without +ANSI function prototypes. +.TP +.B -V +Enable +.B void* +conversion warnings, as in +.IR 2c (1). +.TP +.B -v +Echo the preprocessing, compiling, and loading commands +before they are executed. +.TP +.BI -D name=def +.br +.ns +.TP +.BI -D name +Define the +.I name +to the preprocessor, +as if by +.LR #define . +If no definition is given, the name is defined as +.LR 1 . +.TP +.BI -U name +Undefine the +.I name +to the preprocessor, +as if by +.LR #undef . +.TP +.BI -I dir +.L #include +files whose names do not begin with +.L / +are always +sought first in the directory +of the +.I file +argument, +then in directories named in +.B -I +options, +then in +.BR /$objtype/include/ape . +.TP +.B -N +Don't optimize compiled code. +.TP +.B -S +Print an assembly language version of the object code +on standard output. +.TP +.B -a +Instead of compiling, print on standard output acid functions (see +.IR acid (1)) +for examining structures declared in the source files. +.TP +.B -aa +Like +.B -a +except that functions for structures declared in included header files +are omitted. +.TP +.B -F +Enable vararg type checking as described in +.IR 2c (1). +This is of limited use without the appropriate +.B #pragma +definitions. +.PP +The APE environment contains all of the include +files and library routines specified in the ANSI C standard +(X3.159-1989), as well as those specified in the IEEE Portable +Operating System Interface standard (POSIX, 1003.1-1990, ISO 9945-1). +In order to access the POSIX routines, source programs should +define the preprocessor constant +.BR _POSIX_SOURCE . +.SH FILES +.TF /$objtype/lib/ape/libap.a +.TP +.B /sys/include/ape +directory for machine-independent +.B #include +files. +.TP +.B /$objtype/include/ape +directory for machine-dependent +.B #include +files. +.TP +.B /$objtype/lib/ape/libap.a +ANSI C/POSIX library. +.SH "SEE ALSO" +.IR cpp (1), +.IR 2c (1), +.IR 2a (1), +.IR 2l (1), +.IR mk (1), +.IR nm (1), +.IR acid (1), +.IR db (1), +.IR prof (1) +.PP +Howard Trickey, +``APE \(em The ANSI/POSIX Environment'' +.SH SOURCE +.B /sys/src/cmd/pcc.c +.SH BUGS +The locale manipulation functions are minimal. +Signal functions and terminal characteristic +handlers are only minimally implemented. +.IR Link +always fails, because Plan 9 doesn't support multiple links to a file. +The functions related to setting effective user and group ids +cannot be implemented because the concept doesn't exist in Plan 9. diff --git a/static/plan9-4e/man1/pic.1 b/static/plan9-4e/man1/pic.1 new file mode 100644 index 00000000..9737b83b --- /dev/null +++ b/static/plan9-4e/man1/pic.1 @@ -0,0 +1,344 @@ +.TH PIC 1 +.de PS \" start picture +. \" $1 is height, $2 is width, both in inches +.if \\$1>0 .sp .35 +.ie \\$1>0 .nr $1 \\$1 +.el .nr $1 0 +.in (\\n(.lu-\\$2)/2u +.ne \\$1 +.. +.de PE \" end of picture +.in +.if \\n($1>0 .sp .65 +.. +.SH NAME +pic, tpic \- troff and tex preprocessors for drawing pictures +.SH SYNOPSIS +.B pic +[ +.I files +] +.PP +.B tpic +[ +.I files +] +.SH DESCRIPTION +.I Pic +is a +.IR troff (1) +preprocessor for drawing figures on a typesetter. +.I Pic +code is contained between +.B .PS +and +.B .PE +lines: +.IP +.EX +\&.PS \f2optional-width\fP \f2optional-height\fP +\f2element-list\fP +\&.PE +.EE +.LP +or in a file mentioned in a +.B .PS +line: +.IP +.BI .PS " optional-width optional-height " < file +.LP +If +.IR optional-width +is present, the picture is made that many inches wide, +regardless of any dimensions used internally. +The height is scaled in the same proportion unless +.IR optional-height +is present. +If +.B .PF +is used instead of +.BR .PE , +the typesetting position after printing is restored to what it was +upon entry. +.PP +An +.IR element-list +is a list of elements: +.EX + \f2primitive attribute-list\fP + \f2placename\fP : \f2element\fP + \f2placename\fP : \f2position\fP + \f2var\fP = \f2expr\fP + \f2direction\fP + { \f2element-list\fP } + [ \f2element-list\fP ] + for \f2var\fP = \f2expr\fP to \f2expr\fP by \f2expr\fP do { \f2anything\fP } + if \f2expr\fP then { \f2anything\fP } else { \f2anything\fP } + copy \f2file,\fP copy thru \f2macro,\fP copy \f2file\fP thru \fPmacro\fP + sh { \f2commandline\fP } + print \f2expr\fP + reset \f2optional var-list\fP + \f2troff-command\fP +.EE +.PP +Elements are separated by newlines or semicolons; +a long element may be continued by ending the line with a backslash. +Comments are introduced by a +.BI # +and terminated by a newline. +Variable names begin with a lower case letter; +place names begin with upper case. +Place and variable names retain their values +from one picture to the next. +.PP +After each primitive +the current position moves in the current direction +.RB ( up , down , +.BR left , right +(default)) by the size of the primitive. +The current position and direction are saved upon entry +to a +.BR { ... } +block and restored upon exit. +Elements within a block enclosed in +.BR [ ... ] +are treated as a unit; +the dimensions are determined by the extreme points +of the contained objects. +Names, variables, and direction of motion within a block are local to that block. +.PP +.IR Troff-command +is any line that begins with a period. +Such a line is assumed to make sense in the context where it appears; +generally, this means only size and font changes. +.PP +The +.I primitive +objects are: +.br +.EX + box circle ellipse arc line arrow spline move \f2text-list\fP +.EE +.L arrow +is a synonym for +.LR "line ->" . +.PP +An +.IR attribute-list +is a sequence of zero or more attributes; +each attribute consists of a keyword, perhaps followed by a value. +.EX +.ta .5i 2.5i + h(eigh)t \f2expr\fP wid(th) \f2expr\fP + rad(ius) \f2expr\fP diam(eter) \f2expr\fP + up \f2opt-expr\fP down \f2opt-expr\fP + right \f2opt-expr\fP left \f2opt-expr\fP + from \f2position\fP to \f2position\fP + at \f2position\fP with \f2corner\fP + by \f2expr, expr\fP then + dotted \f2opt-expr\fP dashed \f2opt-expr\fP + chop \f2opt-expr\fP -> <- <-> + invis same + fill \f2opt-expr\fP + \f2text-list\fP \f2expr\fP +.EE +Missing attributes and values are filled in from defaults. +Not all attributes make sense for all primitives; +irrelevant ones are silently ignored. +The attribute +.L at +causes the geometrical center to be put at the specified place; +.L with +causes the position on the object to be put at the specified place. +For lines, splines and arcs, +.L height +and +.L width +refer to arrowhead size. +A bare +.I expr +implies motion in the current direction. +.PP +Text is normally an attribute of some primitive; +by default it is placed at the geometrical center of the object. +Stand-alone text is also permitted. +A text list +is a list of text items: +.EX +\f2 text-item\fP: + "..." \f2positioning ...\fP + sprintf("\f2format\fP", \f2expr\fP, \f2...\fP) \f2positioning ...\fP +\f2 positioning\fP: + center ljust rjust above below +.EE +If there are multiple text items for some primitive, +they are arranged vertically and centered except as qualified. +Positioning requests apply to each item independently. +Text items may contain +.I troff +commands for size and font changes, local motions, etc., +but make sure that these are balanced +so that the entering state is restored before exiting. +.PP +A position is ultimately an +.I x,y +coordinate pair, but it may be specified in other ways. +.EX +\f2 position\fP: + \f2expr, expr\fP + \f2place\fP ± \f2expr, expr\fP + \f2place\fP ± ( \f2expr, expr\fP ) + ( \f2position\fP,\f2 position\fP ) \f2x\fP\fR from one, \f2y\fP\fR the other\fP + \f2expr\fP [\fLof the way\fP] between \f2position\fP and \f2position\fP + \f2expr\fP < \f2position\fP , \f2position\fP > + ( \f2position\fP ) +.EE +.PP +.EX +\f2 place\fP: + \f2placename\fP \f2optional-corner\fP + \f2corner\fP of \f2placename\fP + \f2nth\fP \f2primitive\fP \f2optional-corner\fP + \f2corner\fP of \f2nth\fP \f2primitive\fP + Here +.EE +An +.IR optional-corner +is one of the eight compass points +or the center or the start or end of a primitive. +.EX +\f2 optional-corner\fP: + .n .e .w .s .ne .se .nw .sw .c .start .end +\f2 corner\fP: + top bot left right start end +.EE +Each object in a picture has an ordinal number; +.IR nth +refers to this. +.EX +\f2 nth\fP: + \f2n\fPth\f2, n\fPth last +.EE +.PP +The built-in variables and their default values are: +.EX +.ta .5i 2.5i + boxwid 0.75 boxht 0.5 + circlerad 0.25 arcrad 0.25 + ellipsewid 0.75 ellipseht 0.5 + linewid 0.5 lineht 0.5 + movewid 0.5 moveht 0.5 + textwid 0 textht 0 + arrowwid 0.05 arrowht 0.1 + dashwid 0.1 arrowhead 2 + scale 1 +.EE +These may be changed at any time, +and the new values remain in force from picture to picture until changed again +or reset by a +.L reset +statement. +Variables changed within +.B [ +and +.B ] +revert to their previous value upon exit from the block. +Dimensions are divided by +.B scale +during output. +.PP +Expressions in +.I pic +are evaluated in floating point. +All numbers representing dimensions are taken to be in inches. +.EX +\f2 expr\fP: + \f2expr\fP \f2op\fP \f2expr\fP + - \f2expr\fP + ! \f2expr\fP + ( \f2expr\fP ) + variable + number + \f2place\fP .x \f2place\fP .y \f2place\fP .ht \f2place\fP .wid \f2place\fP .rad + sin(\f2expr\fP) cos(\f2expr\fP) atan2(\f2expr,expr\fP) log(\f2expr\fP) exp(\f2expr\fP) + sqrt(\f2expr\fP) max(\f2expr,expr\fP) min(\f2expr,expr\fP) int(\f2expr\fP) rand() +\f2 op\fP: + + - * / % < <= > >= == != && || +.EE +.PP +The +.B define +and +.B undef +statements are not part of the grammar. +.EX + define \f2name\fP { \f2replacement text\fP } + undef \f2name\fP +.EE +Occurrences of +.BR $1 , +.BR $2 , +etc., +in the replacement text +will be replaced by the corresponding arguments if +.I name +is invoked as +.EX + \f2name\fP(\f2arg1\fP, \f2arg2\fP, ...) +.EE +Non-existent arguments are replaced by null strings. +Replacement text +may contain newlines. +The +.B undef +statement removes the definition of a macro. +.PP +.I Tpic +is a +.IR tex (1) +preprocessor that accepts +.IR pic +language. +It produces Tex commands that define a box called +.BR \egraph , +which contains the picture. +The box may be output this way: +.IP +.L +\ecenterline{\ebox\egraph} +.SH EXAMPLES +.EX +arrow "input" above; box "process"; arrow "output" above +move +A: ellipse + circle rad .1 with .w at A.e + circle rad .05 at 0.5 + circle rad .065 at 0.5 + spline from last circle.nw left .25 then left .05 down .05 + arc from A.c to A.se rad 0.5 + for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 } +.EE +.PP +.PS +arrow "input" above; box "process"; arrow "output" above +move +A: ellipse + circle rad .1 with .w at A.e + circle rad .05 at 0.5 + circle rad .065 at 0.5 + spline from last circle.nw left .25 then left .05 down .05 + arc from A.c to A.se rad 0.5 + for i = 1 to 10 do { line from A.s+.025*i,.01*i down i/50 } +.PE +.SH SOURCE +.B /sys/src/cmd/pic +.SH "SEE ALSO" +.IR grap (1), +.IR doctype (1), +.IR troff (1) +.br +B. W. Kernighan, +``PIC\(ema Graphics Language for Typesetting'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2 diff --git a/static/plan9-4e/man1/pipefile.1 b/static/plan9-4e/man1/pipefile.1 new file mode 100644 index 00000000..19f207f3 --- /dev/null +++ b/static/plan9-4e/man1/pipefile.1 @@ -0,0 +1,101 @@ +.TH PIPEFILE 1 +.SH NAME +pipefile \- attach filter to file in name space +.SH SYNOPSIS +.B pipefile +[ +.B -d +] [ +.B -r +.I command +] [ +.B -w +.I command +] +.I file +.SH DESCRIPTION +.I Pipefile +uses +.IR bind (2) +to attach a pair of pipes to +.IR file , +using them to +interpose filter +.I commands +between the true file and the simulated file that subsequently +appears in the name space. +Option +.B -r +interposes a filter that will affect the data delivered to programs that read from +.IR file ; +.B -w +interposes a filter that will affect the data written by programs to +.IR file . +At least one +.I command +must be specified; +.I pipefile +will insert a +.IR cat (1) +process in the other direction. +.PP +After +.I pipefile +has been run, the filters are established for programs that subsequently +open the +.IR file ; +programs already using the +.I file +are unaffected. +.PP +.I Pipefile +opens the +.I file +twice, once for each direction. If the +.I file +is a single-use device, such as +.BR /dev/mouse , +use the +.B -d +flag to specify that the file is to be opened once, in +.B ORDWR +mode. +.SH EXAMPLES +Simulate an old terminal: +.EX +.IP +% pipefile -w 'tr a-z A-Z' /dev/cons +% rc -i /dev/cons >[2=1] +% echo hello +HELLO +% +.EE +.PP +Really simulate an old terminal: +.EX +.IP +% pipefile -r 'tr A-Z a-z' -w 'tr a-z A-Z' /dev/cons +% rc -i /dev/cons >[2=1] +% DATE +THU OCT 12 10:13:45 EDT 2000 +% +.EE +.SH SOURCE +.B /sys/src/cmd/pipefile.c +.SH SEE ALSO +.IR mouse (8) +.SH BUGS +The I/O model of +.I pipefile +is peculiar; it doesn't work well on plain files. +It is really intended for use with continuous devices such as +.I /dev/cons +and +.IR /dev/mouse . +.I Pipefile +should be rewritten to be a user-level file system. +.PP +If the program using the file managed by +.I pipefile +exits, the filter will see EOF and exit, and the file will be unusable +until the name space is repaired. diff --git a/static/plan9-4e/man1/plot.1 b/static/plan9-4e/man1/plot.1 new file mode 100644 index 00000000..cd1a1b81 --- /dev/null +++ b/static/plan9-4e/man1/plot.1 @@ -0,0 +1,61 @@ +.TH PLOT 1 +.SH NAME +plot \- graphics filter +.SH SYNOPSIS +.B plot +[ +.I file ... +] +.SH DESCRIPTION +.I Plot +interprets plotting instructions (see +.IR plot (6)) +from the +.I files +or standard input, +drawing the results in a newly created +.IR rio (1) +window. +Plot persists until a newline is typed in the window. +Various options may be interspersed with the +.I file +arguments; they take effect at the given point in processing. +Options are: +.TP "\w'\fL-g \fIgrade\fLXX'u" +.B -d +Double buffer: accumulate the plot off-screen and write to the screen all at once +when an erase command is encountered or at end of file. +.TP +.B -e +Erase the screen. +.TP +.BI -c " col" +Set the foreground color (see +.IR plot (6) +for color names). +.TP +.BI -f " fill" +Set the background color. +.TP +.BI -g " grade" +Set the quality factor for arcs. +Higher grades give better quality. +.TP +.BI -p " col" +Set the pen color. +.TP +.BI -w +Pause until a newline is typed on standard input. +.TP +.B -C +Close the current plot. +.TP +.B -W " x0,y0,x1,y1" +Specify the bounding rectangle of plot's window. +By default it uses a 512×512 window in the +middle of the screen. +.SH SOURCE +.B /sys/src/cmd/plot +.SH "SEE ALSO" +.IR rio (1), +.IR plot (6) diff --git a/static/plan9-4e/man1/plumb.1 b/static/plan9-4e/man1/plumb.1 new file mode 100644 index 00000000..6c51d68b --- /dev/null +++ b/static/plan9-4e/man1/plumb.1 @@ -0,0 +1,92 @@ +.TH PLUMB 1 +.SH NAME +plumb \- send message to plumber +.SH SYNOPSIS +.B plumb +[ +.B -p +.I plumbfile +] [ +.B -a +.I attributes +] [ +.B -s +.I source +] [ +.B -d +.I destination +] [ +.B -t +.I type +] [ +.B -w +.I directory +] +.B -i +| +.I data... +.SH DESCRIPTION +The +.I plumb +command formats and sends a plumbing message whose data +is, by default, the concatenation of the argument strings separated by blanks. +The options are: +.TP +.B -p +write the message to +.I plumbfile +(default +.BR /mnt/plumb/send ). +.TP +.B -a +set the +.B attr +field of the message (default is empty). +.TP +.B -s +set the +.B src +field of the message (default is +.BR plumb ). +.TP +.B -d +set the +.B dst +field of the message (default is empty). +.TP +.B -t +set the +.B type +field of the message (default is +.BR text ). +.TP +.B -w +set the +.B wdir +field of the message (default is the current working directory of +.IR plumb ). +.TP +.B -i +take the data from standard input rather than the argument strings. +If an +.B action= +attribute is not otherwise specified, +.I plumb +will add an +.B action=showdata +attribute to the message. +.SH FILES +.TF /usr/$user/lib/plumbing +.TP +.B /usr/$user/lib/plumbing +default rules file +.TP +.B /mnt/plumb +mount point for +.IR plumber (4). +.SH SOURCE +.B /sys/src/cmd/plumb +.SH "SEE ALSO" +.IR plumb (2), +.IR plumber (4), +.IR plumb (6) diff --git a/static/plan9-4e/man1/pr.1 b/static/plan9-4e/man1/pr.1 new file mode 100644 index 00000000..3aaac9f2 --- /dev/null +++ b/static/plan9-4e/man1/pr.1 @@ -0,0 +1,110 @@ +.TH PR 1 +.SH NAME +pr \- print file +.SH SYNOPSIS +.B pr +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Pr +produces a printed listing of one or more +.I files +on its standard output. +The output is separated into pages headed by a date, +the name of the file or a specified header, and the page number. +With no file arguments, +.I pr +prints its standard input. +.PP +Options apply to all following files but may be reset +between files: +.TP +.BI - n +Produce +.IR n -column +output. +.TP +.BI + n +Begin printing with page +.IR n . +.TP +.B -b +Balance columns on last page, in case of multi-column output. +.TP +.B -d +Double space. +.TP +.BI -e n +Set the tab stops for input text every +.I n +spaces. +.TP +.B -h +Take the next argument as a page header +.RI ( file +by default). +.TP +.BI -i n +Replace sequences of blanks in the output +by tabs, using tab stops set every +.I n +spaces. +.TP +.BI -f +Use form feeds to separate pages. +.TP +.BI -l n +Take the length of the page to be +.I n +lines instead of the default 66. +.TP +.B -m +Print all +.I files +simultaneously, +each in one column. +.TP +.BI -n m +Number the lines of each +.IR file . +The numeric argument +.IR m , +default 5, +sets the width of the line-number field. +.TP +.BI -o n +Offset the left margin +.I n +character positions. +.TP +.BI -p +Pad each file printed to an odd number of pages. +For two-sided printers, +this will ensure each file will start a new page. +.TP +.BI -s c +Separate columns by the single character +.I c +instead of aligning them with white space. +A missing +.I c +is taken to be a tab. +.TP +.B -t +Do not print the 5-line header or the +5-line trailer normally supplied for each page. +.TP +.BI -w n +For multi-column output, +take the width of the page to be +.I n +characters instead of the default 72. +.SH SOURCE +.B /sys/src/cmd/pr.c +.SH "SEE ALSO" +.IR cat (1), +.IR lp (1) diff --git a/static/plan9-4e/man1/prof.1 b/static/plan9-4e/man1/prof.1 new file mode 100644 index 00000000..6dedeb21 --- /dev/null +++ b/static/plan9-4e/man1/prof.1 @@ -0,0 +1,132 @@ +.TH PROF 1 +.SH NAME +prof, tprof, kprof \- display profiling data +.SH SYNOPSIS +.B prof +[ +.B -dr +] +[ +.I program +] +[ +.I profile +] +.PP +.B tprof +.I pid +.PP +.B kprof +.I kernel +.I kpdata +.SH DESCRIPTION +.I Prof +interprets files produced automatically by programs loaded using the +.B -p +option of +.IR 2l (1) +or other loader. +The symbol table in the +named program file +.RL ( 2.out +etc., according to +.BR $objtype , +by default) +is read and correlated with the +profile file +.RL ( prof.out +by default). +For each symbol, the percentage +of time (in seconds) spent executing between that symbol +and the next +is printed (in decreasing order), +together with the time spent there and +the number of times that routine was called. +.PP +Under option +.BR -d , +.I prof +prints the dynamic call graph of the target program, +annotating the calls with the time spent in each routine +and those it calls, recursively. The output is indented +two spaces for each call, and is formatted as +.EX + symbol:time/ncall +.EE +where +.I symbol +is the entry point of the call, +.I time +is in milliseconds, +and +.I ncall +is the number of times that entry point was called at that +point in the call graph. If +.I ncall +is one, the +.B /ncall +is elided. +Normally recursive calls are compressed to keep the output brief; +option +.B -r +prints the full call graph. +.PP +The size of the buffer +in +.I program +used to hold the profiling +data, by default 2000 entries, +may be controlled by setting the environment variable +.B profsize +before running +.IR program . +If the buffer fills, subsequent function calls may not be recorded. +.PP +.I Tprof +is similar to +.IR prof , +but is intended for profiling multiprocess programs. +It uses the +.BI /proc/ pid /profile +file to collect instruction frequency counts for the text image associated with the process, +for all processes that share that text. +It must be run while the program is still active, since the data is stored with the running program. +To enable +.I tprof +profiling for a given process, +.EX + echo profile > /proc/\f2pid\f1/ctl +.EE +and then, after the program has run for a while, execute +.EX + tprof \f2pid\f1 +.EE +Since the data collected for +.I tprof +is based on interrupt-time sampling of the program counter, +.I tprof +has no +.B -d +or +.B -r +options. +.PP +.I Kprof +is similar to +.IR prof , +but presents the data accumulated by the kernel +profiling device, +.IR kprof (3) . +The symbol table file, that of the operating system kernel, +and the data file, typically +.BR /dev/kpdata , +must be provided. +.I Kprof +has no options and cannot present dynamic data. +.SH SOURCE +.B /sys/src/cmd/prof.c +.br +.B /sys/src/cmd/kprof.c +.SH SEE ALSO +.IR 2l (1), +.IR kprof (3) diff --git a/static/plan9-4e/man1/proof.1 b/static/plan9-4e/man1/proof.1 new file mode 100644 index 00000000..260ad5ff --- /dev/null +++ b/static/plan9-4e/man1/proof.1 @@ -0,0 +1,134 @@ +.TH PROOF 1 +.SH NAME +proof \- troff output interpreter +.SH SYNOPSIS +.B proof +[ +.BI -m mag +] +[ +.BI -/ nview +] +[ +.B -F +.I dir +] +[ +.B -d +] +[ +.I file +] +.SH DESCRIPTION +.I Proof +reads +.IR troff (1) +intermediate language from +.I file +or standard input +and simulates the resulting pages on the screen. +.PP +After a page of text is displayed, +.I proof +pauses for a command from the keyboard. +The typed commands are: +.TP \w'newline\ \ \ 'u +newline +Go on to next page of text. +.TP +.B - +Go back to the previous page. +.TP +.B q +Quit. +.TP +.BI p n +Print page +.IR n . +An out-of-bounds page number means the end nearer to that number; +a missing number means the current page; +a signed number means an offset to the current page. +.TP +.I n +Same as +.BI p n\f1. +.TP +.B c +Clear the screen, then wait for another command. +.TP +.BI m mag +Change the magnification at which the output is printed. +Normally it is printed with magnification .9; +.IR mag "=.5" +shrinks it to half size; +.IR mag "=2" +doubles the size. +.TP +.BI x val +Move everything +.I val +screen pixels to the right (left, if +.I val +is negative). +.TP +.BI y val +Move everything +.I val +screen pixels down (up, if +.I val +is negative). +.TP +.BI / nview +Split the window into +.I nview +pieces. The current page goes into the rightmost, bottommost piece, +and previous pages are shown in the other pieces. +.TP +.BI "-F " dir +Use +.I dir +for fonts instead of +.BR /lib/font/bit . +.TP +.B d +Toggle the debug flag. +.PD +.PP +These commands are also available, under slightly different form, +from a menu on button 3. The +.B pan +menu item allows arbitrary positioning of the page: +after selecting +.BR pan , +press the mouse button again and hold it down while moving +the page to the desired location. The page will be redisplayed +in its entirety when the button is released. +Mouse button 1 also pans, without the need for selecting from a menu. +.PP +The +.BR m , +.BR x , +.BR y , +.BR F , +.BR / , +and +.B d +commands are also available as command line options. +.SH FILES +.TF /lib/font/bit/MAP +.TP +.B /lib/font/bit/* +fonts +.TP +.B /lib/font/bit/MAP +how to convert troff output fonts and character names +into screen fonts and character numbers +.SH SOURCE +.B /sys/src/cmd/proof +.SH SEE ALSO +.IR lp (1), +.IR gs (1), +.IR page (1) +.br +J. F. Ossanna and B. W. Kernighan, +``Troff User's Manual'' diff --git a/static/plan9-4e/man1/ps.1 b/static/plan9-4e/man1/ps.1 new file mode 100644 index 00000000..f51e09b5 --- /dev/null +++ b/static/plan9-4e/man1/ps.1 @@ -0,0 +1,109 @@ +.TH PS 1 +.SH NAME +ps, psu \- process status +.SH SYNOPSIS +.B ps +[ +.B -pa +] +.PP +.B psu +[ +.B -pa +] +[ +.I user +] +.SH DESCRIPTION +.I Ps +prints information about processes. +.I Psu +prints only information about processes started by +.I user +(default +.BR $user ). +.PP +For each process reported, +the user, +process id, +user time, +system time, +size, +state, +and command name are printed. +State is one of the following: +.TP \w'\fLno\ \fIresource\ \ \ 'u +.B Moribund +Process has exited and is about to have its +resources reclaimed. +.TP +.B Ready +on the queue of processes ready to be run. +.TP +.B Scheding +about to be run. +.TP +.B Running +running. +.TP +.B Queueing +waiting on a queue for a resource. +.TP +.B Wakeme +waiting for I/O or some other kernel event to wake it up. +.TP +.B Broken +dead of unnatural causes; lingering +so that it can be examined. +.TP +.B Stopped +stopped. +.TP +.B Stopwait +waiting for another process to stop. +.TP +.B Fault +servicing a page fault. +.TP +.B Idle +waiting for something to do (kernel processes only). +.TP +.B New +being created. +.TP +.B Pageout +paging out some other process. +.TP +.I Syscall +performing the named system call. +.TP +.BI no " resource +waiting for more of a critical +.IR resource . +.PD +.PP +With the +.B -p +flag, +.I ps +also prints, after the system time, the baseline and current priorities of each process. +.PP +The +.B -a +flag causes +.I ps +to print the arguments for the process. Newlines in arguments will be translated to spaces for display. +.SH FILES +.TF /proc/*/status +.TP +.B /proc/*/status +.SH SOURCE +.B /sys/src/cmd/ps.c +.br +.B /rc/bin/psu +.SH "SEE ALSO" +.IR acid (1), +.IR db (1), +.IR kill (1), +.IR ns (1), +.IR proc (3) diff --git a/static/plan9-4e/man1/pwd.1 b/static/plan9-4e/man1/pwd.1 new file mode 100644 index 00000000..78fedb19 --- /dev/null +++ b/static/plan9-4e/man1/pwd.1 @@ -0,0 +1,46 @@ +.TH PWD 1 +.SH NAME +pwd, pbd \- working directory +.SH SYNOPSIS +.B pwd +.br +.B pbd +.SH DESCRIPTION +.I Pwd +prints the path name of the working (current) directory. +.I Pwd +is guaranteed to return the same path that was used to +enter the directory. +If, however, the name space has changed, or directory names +have been changed, this path name may no longer be valid. +(See +.IR fd2path (2) +for a description of +.BR pwd 's +mechanism.) +.PP +.I Pbd +prints the base name of the working (current) directory. +It prints no final newline and is intended for applications +such as constructing shell prompts. +Since it uses +.IR stat (2) +to discover the name of +.B \&. +(dot), +if the directory has been bound to another name, it will show +the underlying name rather than that reported by +.IR pwd . +.SH SOURCE +.B /sys/src/cmd/pwd.c +.br +.B /sys/src/cmd/pbd.c +.SH SEE ALSO +.I cd +in +.IR rc (1), +.IR bind (1), +.IR intro (2), +.IR getwd (2), +.IR fd2path (2) + diff --git a/static/plan9-4e/man1/rc.1 b/static/plan9-4e/man1/rc.1 new file mode 100644 index 00000000..b296a48a --- /dev/null +++ b/static/plan9-4e/man1/rc.1 @@ -0,0 +1,959 @@ +.TH RC 1 +.SH NAME +rc, cd, eval, exec, exit, flag, rfork, shift, wait, whatis, ., ~ \- command language +.SH SYNOPSIS +.B rc +[ +.B -srdiIlxepvV +] +[ +.B -c command +] +[ +.I file +[ +.I arg ... +]] +.SH DESCRIPTION +.I Rc +is the Plan 9 shell. +It executes command lines read from a terminal or a file or, with the +.B -c +flag, from +.I rc's +argument list. +.SS Command Lines +A command line is a sequence of commands, separated by ampersands or semicolons +.RB ( & +or +.BR ; ), +terminated by a newline. +The commands are executed in sequence +from left to right. +.I Rc +does not wait for a command followed by +.B & +to finish executing before starting +the following command. +Whenever a command followed by +.B & +is executed, its process id is assigned to the +.I rc +variable +.BR $apid . +Whenever a command +.I not +followed by +.B & +exits or is terminated, the +.I rc +variable +.B $status +gets the process's wait message (see +.IR wait (2)); +it will be the null string if the command was successful. +.PP +A long command line may be continued on subsequent lines by typing +a backslash +.RB ( \e ) +followed by a newline. +This sequence is treated as though it were a blank. +Backslash is not otherwise a special character. +.PP +A number-sign +.RB ( # ) +and any following characters up to (but not including) the next newline +are ignored, except in quotation marks. +.SS Simple Commands +A simple command is a sequence of arguments interspersed with I/O redirections. +If the first argument is the name of an +.I rc +function or of one of +.I rc's +built-in commands, it is executed by +.IR rc . +Otherwise if the name starts with a slash +.RB ( / ), +it must be the path name of the program to be executed. +Names containing no initial slash are searched for in +a list of directory names stored in +.BR $path . +The first executable file of the given name found +in a directory in +.B $path +is the program to be executed. +To be executable, the user must have execute permission (see +.IR stat (2)) +and the file must be either an executable binary +for the current machine's CPU type, or a shell script. +Shell scripts begin with a line containing the full path name of a shell +(usually +.BR /bin/rc ), +prefixed by +.LR #! . +.PP +The first word of a simple command cannot be a keyword unless it is +quoted or otherwise disguised. +The keywords are +.EX + for in while if not switch fn ~ ! @ +.EE +.SS Arguments and Variables +A number of constructions may be used where +.I rc's +syntax requires an argument to appear. +In many cases a construction's +value will be a list of arguments rather than a single string. +.PP +The simplest kind of argument is the unquoted word: +a sequence of one or more characters none of which is a blank, tab, +newline, or any of the following: +.EX + # ; & | ^ $ = ` ' { } ( ) < > +.EE +An unquoted word that contains any of the characters +.B * +.B ? +.B [ +is a pattern for matching against file names. +The character +.B * +matches any sequence of characters, +.B ? +matches any single character, and +.BI [ class ] +matches any character in the +.IR class . +If the first character of +.I class +is +.BR ~ , +the class is complemented. +The +.I class +may also contain pairs of characters separated by +.BR - , +standing for all characters lexically between the two. +The character +.B / +must appear explicitly in a pattern, as must the +first character of the path name components +.B . +and +.BR .. . +A pattern is replaced by a list of arguments, one for each path name matched, +except that a pattern matching no names is not replaced by the empty list, +but rather stands for itself. +Pattern matching is done after all other +operations. +Thus, +.EX + x=/tmp echo $x^/*.c +.EE +matches +.BR /tmp/*.c , +rather than matching +.B "/*.c +and then prefixing +.BR /tmp . +.PP +A quoted word is a sequence of characters surrounded by single quotes +.RB ( ' ). +A single quote is represented in a quoted word by a pair of quotes +.RB ( '' ). +.PP +Each of the following is an argument. +.PD 0 +.HP +.BI ( arguments ) +.br +The value of a sequence of arguments enclosed in parentheses is +a list comprising the members of each element of the sequence. +Argument lists have no recursive structure, although their syntax may +suggest it. +The following are entirely equivalent: +.EX + echo hi there everybody + ((echo) (hi there) everybody) +.EE +.HP +.BI $ argument +.HP +.BI $ argument ( subscript ) +.br +The +.I argument +after the +.B $ +is the name of a variable whose value is substituted. +Multiple levels +of indirection are possible, but of questionable utility. +Variable values +are lists of strings. +If +.I argument +is a number +.IR n , +the value is the +.IR n th +element of +.BR $* , +unless +.B $* +doesn't have +.I n +elements, in which case the value is empty. +If +.I argument +is followed by a parenthesized list of subscripts, the +value substituted is a list composed of the requested elements (origin 1). +The parenthesis must follow the variable name with no spaces. +Assignments to variables are described below. +.HP +.BI $# argument +.br +The value is the number of elements in the named variable. +A variable +never assigned a value has zero elements. +.HP +$"\c +.I argument +.br +The value is a single string containing the components of the named variable +separated by spaces. A variable with zero elements yields the empty string. +.HP +.BI `{ command } +.br +.I rc +executes the +.I command +and reads its standard output, splitting it into a list of arguments, +using characters in +.B $ifs +as separators. +If +.B $ifs +is not otherwise set, its value is +.BR "'\ \et\en'" . +.HP +.BI <{ command } +.HP +.BI >{ command } +.br +The +.I command +is executed asynchronously with its standard output or standard input +connected to a pipe. +The value of the argument is the name of a file +referring to the other end of the pipe. +This allows the construction of +non-linear pipelines. +For example, the following runs two commands +.B old +and +.B new +and uses +.B cmp +to compare their outputs +.EX + cmp <{old} <{new} +.EE +.HP +.IB argument ^ argument +.br +The +.B ^ +operator concatenates its two operands. +If the two operands +have the same number of components, they are concatenated pairwise. +If not, +then one operand must have one component, and the other must be non-empty, +and concatenation is distributive. +.PD +.SS Free Carets +In most circumstances, +.I rc +will insert the +.B ^ +operator automatically between words that are not separated by white space. +Whenever one of +.B $ +.B ' +.B ` +follows a quoted or unquoted word or an unquoted word follows a quoted word +with no intervening blanks or tabs, +a +.B ^ +is inserted between the two. +If an unquoted word immediately follows a +.BR $ +and contains a character other than an alphanumeric, underscore, +or +.BR * , +a +.B ^ +is inserted before the first such character. +Thus +.IP +.B cc -$flags $stem.c +.LP +is equivalent to +.IP +.B cc -^$flags $stem^.c +.SS I/O Redirections +The sequence +.BI > file +redirects the standard output file (file descriptor 1, normally the +terminal) to the named +.IR file ; +.BI >> file +appends standard output to the file. +The standard input file (file descriptor 0, also normally the terminal) +may be redirected from a file by the sequence +.BI < file \f1, +or from an inline `here document' +by the sequence +.BI << eof-marker\f1. +The contents of a here document are lines of text taken from the command +input stream up to a line containing nothing but the +.IR eof-marker , +which may be either a quoted or unquoted word. +If +.I eof-marker +is unquoted, variable names of the form +.BI $ word +have their values substituted from +.I rc's +environment. +If +.BI $ word +is followed by a caret +.RB ( ^ ), +the caret is deleted. +If +.I eof-marker +is quoted, no substitution occurs. +.PP +Redirections may be applied to a file-descriptor other than standard input +or output by qualifying the redirection operator +with a number in square brackets. +For example, the diagnostic output (file descriptor 2) +may be redirected by writing +.BR "cc junk.c >[2]junk" . +.PP +A file descriptor may be redirected to an already open descriptor by writing +.BI >[ fd0 = fd1 ] +or +.BI <[ fd0 = fd1 ]\f1. +.I Fd1 +is a previously opened file descriptor and +.I fd0 +becomes a new copy (in the sense of +.IR dup (2)) +of it. +A file descriptor may be closed by writing +.BI >[ fd0 =] +or +.BI <[ fd0 =]\f1. +.PP +Redirections are executed from left to right. +Therefore, +.B cc junk.c >/dev/null >[2=1] +and +.B cc junk.c >[2=1] >/dev/null +have different effects: the first puts standard output in +.BR /dev/null +and then puts diagnostic output in the same place, where the second +directs diagnostic output to the terminal and sends standard output to +.BR /dev/null . +.SS Compound Commands +A pair of commands separated by a pipe operator +.RB ( | ) +is a command. +The standard output of the left command is sent through a pipe +to the standard input of the right command. +The pipe operator may be decorated +to use different file descriptors. +.BI |[ fd ] +connects the output end of the pipe to file descriptor +.I fd +rather than 1. +.BI |[ fd0 = fd1 ] +connects output to +.I fd1 +of the left command and input to +.I fd0 +of the right command. +.PP +A pair of commands separated by +.B && +or +.B || +is a command. +In either case, the left command is executed and its exit status examined. +If the operator is +.B && +the right command is executed if the left command's status is null. +.B || +causes the right command to be executed if the left command's status is non-null. +.PP +The exit status of a command may be inverted (non-null is changed to null, null +is changed to non-null) by preceding it with a +.BR ! . +.PP +The +.B | +operator has highest precedence, and is left-associative (i.e. binds tighter +to the left than the right). +.B ! +has intermediate precedence, and +.B && +and +.B || +have the lowest precedence. +.PP +The unary +.B @ +operator, with precedence equal to +.BR ! , +causes its operand to be executed in a subshell. +.PP +Each of the following is a command. +.PD 0 +.HP +.B if ( +.I list +.B ) +.I command +.br +A +.I list +is a sequence of commands, separated by +.BR & , +.BR ; , +or newline. +It is executed and +if its exit status is null, the +.I command +is executed. +.HP +.B if not +.I command +.br +The immediately preceding command must have been +.BI if( list ) +.IR command . +If its condition was non-zero, the +.I command +is executed. +.HP +.BI for( name +.B in +.IB arguments ) +.I command +.HP +.BI for( name ) +.I command +.br +The +.I command +is executed once for each +.IR argument +with that argument assigned to +.IR name . +If the argument list is omitted, +.B $* +is used. +.HP +.BI while( list ) +.I command +.br +The +.I list +is executed repeatedly until its exit status is non-null. +Each time it returns null status, the +.I command +is executed. +An empty +.I list +is taken to give null status. +.HP +.BI "switch(" argument "){" list } +.br +The +.IR list +is searched for simple commands beginning with the word +.BR case . +(The search is only at the `top level' of the +.IR list . +That is, +.B cases +in nested constructs are not found.) +.I Argument +is matched against each word following +.B case +using the pattern-matching algorithm described above, except that +.B / +and the first characters of +.B . +and +.B .. +need not be matched explicitly. +When a match is found, commands in the list are executed up to the next +following +.B case +command (at the top level) or the closing brace. +.HP +.BI { list } +.br +Braces serve to alter the grouping of commands implied by operator +priorities. +The +.I body +is a sequence of commands separated by +.BR & , +.BR ; , +or newline. +.HP +.BI "fn " name { list } +.HP +.BI "fn " name +.br +The first form defines a function with the given +.IR name . +Subsequently, whenever a command whose first argument is +.I name +is encountered, the current value of +the remainder of the command's argument list will be assigned to +.BR $* , +after saving its current value, and +.I rc +will execute the +.IR list . +The second form removes +.IR name 's +function definition. +.HP +.BI "fn " note { list } +.br +.HP +.BI "fn " note +.br +A function with a special name will be called when +.I rc +receives a corresponding note; see +.IR notify (2). +The valid note names (and corresponding notes) are +.B sighup +.RB ( hangup ), +.B sigint +.RB ( interrupt ), +.BR sigalrm +.RB ( alarm ), +and +.B sigfpe +(floating point trap). +By default +.I rc +exits on receiving any signal, except when run interactively, +in which case interrupts and quits normally cause +.I rc +to stop whatever it's doing and start reading a new command. +The second form causes +.I rc +to handle a signal in the default manner. +.I Rc +recognizes an artificial note, +.BR sigexit , +which occurs when +.I rc +is about to finish executing. +.HP +.IB name = "argument command" +.br +Any command may be preceded by a sequence of assignments +interspersed with redirections. +The assignments remain in effect until the end of the command, unless +the command is empty (i.e. the assignments stand alone), in which case +they are effective until rescinded by later assignments. +.PD +.SS Built-in Commands +These commands are executed internally by +.IR rc , +usually because their execution changes or depends on +.IR rc 's +internal state. +.PD 0 +.HP +.BI . " file ..." +.br +Execute commands from +.IR file . +.B $* +is set for the duration to the remainder of the argument list following +.IR file . +.I File +is searched for using +.BR $path . +.HP +.BI builtin " command ..." +.br +Execute +.I command +as usual except that any function named +.I command +is ignored in favor of the built-in meaning. +.HP +.BI "cd [" dir "]" +.br +Change the current directory to +.IR dir . +The default argument is +.BR $home . +.I dir +is searched for in each of the directories mentioned in +.BR $cdpath . +.HP +.BI "eval [" "arg ..." "]" +.br +The arguments are concatenated separated by spaces into a single string, +read as input to +.IR rc , +and executed. +.HP +.BI "exec [" "command ..." "]" +.br +This instance of +.I rc +replaces itself with the given (non-built-in) +.IR command . +.HP +.BI "flag " f " [+-]" +.br +Either set +.RB ( + ), +clear +.RB ( - ), +or test (neither +.B + +nor +.BR - ) +the flag +.IR f , +where +.I f +is a single character, one of the command line flags (see Invocation, below). +.HP +.BI "exit [" status "]" +.br +Exit with the given exit status. +If none is given, the current value of +.B $status +is used. +.HP +.BR "rfork " [ nNeEsfFm ] +.br +Become a new process group using +.BI rfork( flags ) +where +.I flags +is composed of the bitwise OR of the +.B rfork +flags specified by the option letters +(see +.IR fork (2)). +If no +.I flags +are given, they default to +.BR ens . +The +.I flags +and their meanings are: +.B n +is +.BR RFNAMEG ; +.B N +is +.BR RFCNAMEG ; +.B e +is +.BR RFENVG ; +.B E +is +.BR RFCENVG ; +.B s +is +.BR RFNOTEG ; +.B f +is +.BR RFFDG ; +.B F +is +.BR RFCFDG ; +and +.B m +is +.BR RFNOMNT . +.HP +.BI "shift [" n "]" +.br +Delete the first +.IR n +(default 1) +elements of +.BR $* . +.HP +.BI "wait [" pid "]" +.br +Wait for the process with the given +.I pid +to exit. +If no +.I pid +is given, all outstanding processes are waited for. +.HP +.BI whatis " name ..." +.br +Print the value of each +.I name +in a form suitable for input to +.IR rc . +The output is +an assignment to any variable, +the definition of any function, +a call to +.B builtin +for any built-in command, or +the completed pathname of any executable file. +.HP +.BI ~ " subject pattern ..." +.br +The +.I subject +is matched against each +.I pattern +in sequence. +If it matches any pattern, +.B $status +is set to zero. +Otherwise, +.B $status +is set to one. +Patterns are the same as for file name matching, except that +.B / +and the first character of +.B . +and +.B .. +need not be matched explicitly. +The +.I patterns +are not subjected to +file name matching before the +.B ~ +command is executed, so they need not be enclosed in quotation marks. +.PD +.SS Environment +The +.I environment +is a list of strings made available to executing binaries by the +.B env +device +(see +.IR env (3)). +.I Rc +creates an environment entry for each variable whose value is non-empty, +and for each function. +The string for a variable entry has the variable's name followed by +.B = +and its value. +If the value has more than one component, these +are separated by ctrl-a +.RB ( '\e001' ) +characters. +The string for a function is just the +.I rc +input that defines the function. +The name of a function in the environment is the function name +preceded by +.LR fn# . +.PP +When +.I rc +starts executing it reads variable and function definitions from its +environment. +.SS Special Variables +The following variables are set or used by +.IR rc . +.PD 0 +.TP \w'\fL$promptXX'u +.B $* +Set to +.IR rc 's +argument list during initialization. +Whenever a +.B . +command or a function is executed, the current value is saved and +.B $* +receives the new argument list. +The saved value is restored on completion of the +.B . +or function. +.TP +.B $apid +Whenever a process is started asynchronously with +.BR & , +.B $apid +is set to its process id. +.TP +.B $home +The default directory for +.BR cd . +.TP +.B $ifs +The input field separators used in backquote substitutions. +If +.B $ifs +is not set in +.IR rc 's +environment, it is initialized to blank, tab and newline. +.TP +.B $path +The search path used to find commands and input files +for the +.B . +command. +If not set in the environment, it is initialized by +.BR "path=(.\ /bin)" . +Its use is discouraged; instead use +.IR bind (1) +to build a +.B /bin +containing what's needed. +.TP +.B $pid +Set during initialization to +.IR rc 's +process id. +.TP +.B $prompt +When +.I rc +is run interactively, the first component of +.B $prompt +is printed before reading each command. +The second component is printed whenever a newline is typed and more lines +are required to complete the command. +If not set in the environment, it is initialized by +.BR "prompt=('%\ '\ '\ ')" . +.TP +.B $status +Set to the wait message of the last-executed program. +(unless started with +.BR &). +.B ! +and +.B ~ +also change +.BR $status . +Its value is used to control execution in +.BR && , +.BR || , +.B if +and +.B while +commands. +When +.I rc +exits at end-of-file of its input or on executing an +.B exit +command with no argument, +.B $status +is its exit status. +.PD +.SS Invocation +If +.I rc +is started with no arguments it reads commands from standard input. +Otherwise its first non-flag argument is the name of a file from which +to read commands (but see +.B -c +below). +Subsequent arguments become the initial value of +.BR $* . +.I Rc +accepts the following command-line flags. +.PD 0 +.TP \w'\fL-c\ \fIstring\fLXX'u +.BI -c " string" +Commands are read from +.IR string . +.TP +.B -s +Print out exit status after any command where the status is non-null. +.TP +.B -e +Exit if +.B $status +is non-null after executing a simple command. +.TP +.B -i +If +.B -i +is present, or +.I rc +is given no arguments and its standard input is a terminal, +it runs interactively. +Commands are prompted for using +.BR $prompt . +.TP +.B -I +Makes sure +.I rc +is not run interactively. +.TP +.B -l +If +.B -l +is given or the first character of argument zero is +.BR - , +.I rc +reads commands from +.BR $home/lib/profile , +if it exists, before reading its normal input. +.TP +.B -p +A no-op. +.TP +.B -d +A no-op. +.TP +.B -v +Echo input on file descriptor 2 as it is read. +.TP +.B -x +Print each simple command before executing it. +.TP +.B -r +Print debugging information (internal form of commands +as they are executed). +.PD +.SH SOURCE +.B /sys/src/cmd/rc +.SH "SEE ALSO" +Tom Duff, +``Rc \- The Plan 9 Shell''. +.SH BUGS +There should be a way to match patterns against whole lists rather than +just single strings. +.br +Using +.B ~ +to check the value of +.B $status +changes +.BR $status . +.br +Functions that use here documents don't work. +.br +Free carets don't get inserted next to keywords. diff --git a/static/plan9-4e/man1/replica.1 b/static/plan9-4e/man1/replica.1 new file mode 100644 index 00000000..0279cc14 --- /dev/null +++ b/static/plan9-4e/man1/replica.1 @@ -0,0 +1,304 @@ +.TH REPLICA 1 +.SH NAME +changes, pull, push, scan \- client-server replica management +.SH SYNOPSIS +.B replica/pull +[ +.B -cnsv +] +.I name +[ +.I path +... +] +.br +.B replica/push +[ +.B -nv +] +.I name +[ +.I path +... +] +.br +.B replica/changes +.I name +[ +.I path +... +] +.br +.B replica/scan +.I name +[ +.I path +... +] +.SH DESCRIPTION +These shell scripts provide a simple log-based client-server replica management. +The server keeps a log of changes made to its file system, +and clients synchronize by reading the log and applying these changes locally. +.PP +These scripts are a polished interface to the low-level tools described in +.IR replica (8). +See +.IR replica (8) +for details on the inner workings of replica management. +These tools were written primarily as the fourth +edition Plan 9 distribution mechanism, but they +have wider applicability. +For example, they could be used to synchronize one's +home directory between a laptop and a central file server. +.PP +Replicas are described by configuration files. +The +.I name +in all the replica commands is a configuration +file. Paths that do not begin with +.BR / , +.BR ./ , +or +.B ../ +are assumed to be relative to +.BR $home/lib/replica . +Configuration files are described below. +.PP +.I Replica/scan +is the only one of these programs that does not +need to be run on the client. +It scans the server file system for changes +and appends entries for those changes into the server log. +Typically it is run on a machine with a fast network +connection to the server file system. +.PP +.I Replica/pull +copies changes from the server to the client, +while +.I replica/push +copies changes from the client to the server. +(Both run on the client.) +If a list of +.I paths +is given, only changes to those paths or their children are copied. +The +.B -v +flag causes +.I pull +or +.I push +to print a summary of what it is doing. +Each status line is of the form +.sp 0.5 +\h'0.25i' +.I verb +.I path +.I serverpath +.I mode +.I uid +.I gid +.I mtime +.I length +.sp 0.5 +.I Verb +describes the event: +addition of a file +.RB ( a ), +deletion of a file +.RB ( d ), +a change to a file's contents +.RB ( c ), +or a change to a file's metadata +.RB ( m ). +.I Path +is the file path on the client; +.I serverpath +is the file path on the server. +.IR Mode , +.IR uid , +.IR gid , +and +.I mtime +are the file's metadata as in the +.B Dir +structure (see +.IR stat (5)). +For deletion events, the metadata is that of the deleted file. +For other events, the metadata is that after the event. +The +.B -n +flag causes +.I pull +or +.I push +to print the summary but not actually carry out the actions. +.PP +.I Push +and +.I pull +are careful to notice simultaneous changes to a file or +its metadata on both client and server. +Such simultaneous changes are called +.IR conflicts . +Here, simultaneous does not mean at the same instant +but merely that both changes were carried out without knowledge +of the other. +For example, if a client and server both make changes to a file +without an intervening +.I push +or +.IR pull , +the next +.I push +or +.I pull +will report an update/update conflict. +If a conflict is detected, both files are left the same. +The +.B -c +flag to +.I pull +causes updates to be resolved using the client's copy, +while +.B -s +specifies the server's copy. +Typically these flags are only used when +invoking +.I pull +with a specific list of files that are known +to be conflicting. +.PP +.I Replica/changes +prints a list of local changes made on the client +that have not yet been pushed to the server. +It is like +.I push +with the +.B -n +flag, except that it does not check for conflicts +and thus does not require the server to be available. +.PP +The replica configuration file is an +.IR rc (1) +script that must define the following functions and variables: +.TP +.B servermount +A function that mounts the server; run on both client and server. +.TP +.B serverupdate +A function that rescans the server for changes. +Typically this command dials a CPU server known +to be close to the file server and runs +.I replica/scan +on that well-connected machine. +.TP +.B serverroot +The path to the root of the replicated file +system on the server, as it will be in the name space +after running +.BR servermount . +.TP +.B serverlog +The path to the server's change log, after running +.BR servermount . +.TP +.B serverproto +The path to the proto file describing the server's files, +after running +.BR servermount . +Only used by +.IR scan . +.TP +.B serverdb +The path to the server's file database, after running +.BR servermount . +Only used by +.IR scan . +.TP +.B clientmount +A function to mount the client file system; run only on the client. +.TP +.B clientroot +The path to the root of the replicated file system on the client, +after running +.BR clientmount . +.TP +.B clientlog +The path to the client's copy of the server log file. +The client log is maintained by +.IR pull . +.TP +.B clientproto +The path to the proto file describing the client's files. +Only used by +.IR changes . +Often just a copy of +.BR $serverproto . +.TP +.B clientdb +The path to the client's file database, after running +.BR clientmount . +.TP +.B clientexclude +A (potentially empty) list of paths to exclude from +synchronization. A typical use of this is to exclude +the client database and log files. +These paths are relative to the root of the replicated file system. +.PD +.PP +As an example, the Plan 9 distribution replica configuration looks like: +.EX + fn servermount { 9fs outside; bind /n/outside/plan9 /n/dist } + fn serverupdate { status='' } + serverroot=/n/dist + s=/n/dist/dist/replica + serverlog=$s/plan9.log + serverproto=$s/plan9.proto + + fn clientmount { 9fs kfs } + clientroot=/n/kfs + c=/n/kfs/dist/replica + clientlog=$c/client/plan9.log + clientproto=$c/plan9.proto + clientdb=$c/client/plan9.db + clientexclude=(dist/replica/client) +.EE +.PP +(Since the Plan 9 developers run +.I scan +manually to update the log, the clients need not do anything +to rescan the file system. +Thus +.B serverupdate +simply returns successfully.) +.PP +The fourth edition Plan 9 distribution uses these +tools to synchronize installations with the central +server at Bell Labs. +The replica configuration files and metadata are kept +in +.BR /dist/replica . +To update your system, make sure you are connected +to the internet and run +.EX + disk/kfscmd allow + replica/pull /dist/replica/network + disk/kfscmd disallow +.EE +(We have not yet set up the outside file server at Bell Labs +to make this work; once we do, we will announce instructions +on the Plan 9 web page and in the Usenet group +.BR comp.os.plan9 ). +.PP +To see a list of changes made to the local file system +since installation, run +.EX + replica/changes /dist/replica/network +.EE +(Although the script is called +.IR network , +since +.I changes +is a local-only operation, the network need not be configured.) +.SH SEE ALSO +.IR replica (8) diff --git a/static/plan9-4e/man1/resample.1 b/static/plan9-4e/man1/resample.1 new file mode 100644 index 00000000..35968d05 --- /dev/null +++ b/static/plan9-4e/man1/resample.1 @@ -0,0 +1,58 @@ +.TH RESAMPLE 1 +.SH NAME +resample \- resample a picture +.SH SYNOPSIS +.B resample +[ +.B -x +.I size +] [ +.B -y +.I size +] [ +.I file +] +.SH DESCRIPTION +.I Resample +resamples its input image (default standard input) to a new size. +The image is decimated or interpolated using +a Kaiser window. +.PP +The size of the resampled image can be specified +with the +.B -x +and +.B -y +options. +An unadorned value sets the number of pixels of that dimension; a suffixed percent sign specifies a percentage. +If only one of +.B -x +or +.B -y +is given, the other dimension is scaled to preserve +the aspect ratio of the original image. +Thus, +.B -x50% +will reduce the image to half its original dimension in both +.B x +and +.BR y . +.PP +The input should be a Plan 9 image +as described in +.IR image (6), +and the output will be a compressed 24-bit +.B r8g8b8 +image. +To uncompress the image or change the pixel format, use +.I iconv +(see +.IR crop (1)). +.PP +.SH SOURCE +.B /sys/src/cmd/resample.c +.SH "SEE ALSO +.IR crop (1), +.IR image (6) +.SH BUGS +Faster algorithms exist, but this implementation produces correct pictures. diff --git a/static/plan9-4e/man1/rio.1 b/static/plan9-4e/man1/rio.1 new file mode 100644 index 00000000..6438c29f --- /dev/null +++ b/static/plan9-4e/man1/rio.1 @@ -0,0 +1,513 @@ +.TH RIO 1 +.SH NAME +rio, label, window, wloc \- window system +.SH SYNOPSIS +.B rio +[ +.BI "-i '"cmd ' +] +[ +.BI "-k '"kbdcmd ' +] +[ +.B -s +] +[ +.B -f +.I font +] +.PP +.B label +.I name +.PP +.B window +[ +.B -m +] [ +.B -r +.I minx miny maxx maxy +] [ +.B -dx +.I n +] [ +.B -dy +.I n +] [ +.B -minx +.I n +] [ +.B -miny +.I n +] [ +.B -maxx +.I n +] [ +.B -maxy +.I n +] [ +.B -cd +.I dir +] [ +.B -hide +] [ +.I cmd +.I arg ... +] +.PP +.B wloc +.SH DESCRIPTION +.I Rio +manages asynchronous layers of text, or windows, on a raster display. +It also serves a variety of files for communicating with +and controlling windows; these are discussed in section +.IR rio (4). +.SS Commands +The +.I rio +command starts a new instance of the window system. +Its +.B -i +option names a startup script, which typically contains several +.I window +commands generated by +.IR wloc . +The +.B -k +option causes +.I rio +to run the command +.I kbdcmd +at startup and allow it to provide characters as keyboard input; the +.B keyboard +program described in +.IR bitsyload (1) +is the usual choice. +.PP +The +.B -s +option initializes windows so that text scrolls; +the default is not to scroll. +The +.I font +argument names a font used to display text, both in +.IR rio 's +menus +and as a default for any programs running in its windows; it also +establishes the +environment variable +.BR $font . +If +.B -f +is not given, +.I rio +uses the imported value of +.BR $font +if set; otherwise it imports the default font from the underlying graphics +server, usually the terminal's operating system. +.PP +The +.I label +command changes a window's identifying name. +.PP +The +.I window +command creates a window. +By default, it creates a shell window and sizes and places it automatically. +The geometry arguments control the size +.IB ( dx , +.BR dy ) +and placement +.RB ( minx , +.BR miny , +.BR maxx , +.BR maxy ; +.BR hide +causes the window to be created off-screen); and working directory +.RB ( cd ). +the units are pixels with the +upper left corner of the screen at (0, 0). +The optional command and arguments define which program to run in the window. +.PP +By default, +.I window +uses +.B /dev/wctl +(see +.IR rio (4)) +to create the window and run the command. Therefore, the window and command +will be created by +.I rio +and run in a new file name space, just as if the window had been created using the interactive menu. +However, the +.B -m +option uses the file server properties of +.I rio +to +.B mount +(see +.IR bind (1)) +the new window's name space within the name space of the program calling +.IR window . +This means, for example, that running +.B window +in a CPU window will create another window whose command runs on the terminal, where +.I rio +is running; while +.B window +.B -m +will create another window whose command runs on the CPU server. +.PP +The +.I wloc +command prints the coordinates and label of each window in its instance of +.I rio +and is used to construct arguments for +.IR window . +.SS Window control +Each window behaves as a separate terminal with at least one process +associated with it. +When a window is created, a new process (usually a shell; see +.IR rc (1)) +is established and bound to the window as a new process group. +Initially, each window acts as a simple terminal that displays character text; +the standard input and output of its processes +are attached to +.BR /dev/cons . +Other special files, accessible to the processes running in a window, +may be used to make the window a more general display. +Some of these are mentioned here; the complete set is +discussed in +.IR rio (4). +.PP +One window is +.IR current , +and is indicated with a dark border and text; +characters typed on the keyboard are available in the +.B /dev/cons +file of the process in the current window. +Characters written on +.B /dev/cons +appear asynchronously in the associated window whether or not the window +is current. +.PP +Windows are created, deleted and rearranged using the mouse. +Clicking (pressing and releasing) mouse button 1 in a non-current +window makes that window current and brings it in front of +any windows that happen to be overlapping it. +When the mouse cursor points to the background area or is in +a window that has not claimed the mouse for its own use, +pressing mouse button 3 activates a +menu of window operations provided by +.IR rio . +Releasing button 3 then selects an operation. +At this point, a gunsight or cross cursor indicates that +an operation is pending. +The button 3 menu operations are: +.TF Resize +.TP +.B New +Create a window. +Press button 3 where one corner of the new rectangle should +appear (cross cursor), and move the mouse, while holding down button 3, to the +diagonally opposite corner. +Releasing button 3 creates the window, and makes it current. +Very small windows may not be created. +.TP +.B Resize +Change the size and location of a window. +First click button 3 in the window to be changed +(gunsight cursor). +Then sweep out a window as for the +.B New +operation. +The window is made current. +.TP +.B Move +Move a window to another location. +After pressing and holding button 3 over the window to be moved (gunsight cursor), +indicate the new position by dragging the rectangle to the new location. +The window is made current. +Windows may be moved partially off-screen. +.TP +.B Delete +Delete a window. Click in the window to be deleted (gunsight cursor). +Deleting a window causes a +.L hangup +note to be sent to all processes in the window's process group +(see +.IR notify (2)). +.TP +.B Hide +Hide a window. Click in the window to be hidden (gunsight cursor); +it will be moved off-screen. +Each hidden window is given a menu entry in the button 3 menu according to the +value of the file +.BR /dev/label , +which +.I rio +maintains +(see +.IR rio (4)). +.TP +.I label +Restore a hidden window. +.PD +.PP +Windows may also be arranged by dragging their borders. +Pressing button 1 or 2 over a window's border allows one to +move the corresponding edge or corner, while button 3 +moves the whole window. +.PD +.SS Text windows +Characters typed on the keyboard or written to +.B /dev/cons +collect in the window to form +a long, continuous document. +.PP +There is always some +.I selected +.IR text , +a contiguous string marked on the screen by reversing its color. +If the selected text is a null string, it is indicated by a hairline cursor +between two characters. +The selected text +may be edited by mousing and typing. +Text is selected by pointing and clicking button 1 +to make a null-string selection, or by pointing, +then sweeping with button 1 pressed. +Text may also be selected by double-clicking: +just inside a matched delimiter-pair +with one of +.B {[(<«`'" +on the left and +.B }])>»`'" +on the right, it selects all text within +the pair; at the beginning +or end of a line, it selects the line; within or at the edge of an alphanumeric word, +it selects the word. +.PP +Characters typed on the keyboard replace the selected text; +if this text is not empty, it is placed in a +.I snarf buffer +common to all windows but distinct from that of +.IR sam (1). +.PP +Programs access the text in the window at a single point +maintained automatically by +.IR rio . +The +.I output point +is the location in the text where the next character written by +a program to +.B /dev/cons +will appear; afterwards, the output point is the null string +beyond the new character. +The output point is also the location in the text of the next character +that will be read (directly from the text in the window, +not from an intervening buffer) +by a program from +.BR /dev/cons . +When such a read will occur is, however, under control of +.I rio +and the user. +.PP +In general there is text in the window after the output point, +usually placed there by typing but occasionally by the editing +operations described below. +A pending read of +.B /dev/cons +will block until the text after the output point contains +a newline, whereupon the read may +acquire the text, up to and including the newline. +After the read, as described above, the output point will be at +the beginning of the next line of text. +In normal circumstances, therefore, typed text is delivered +to programs a line at a time. +Changes made by typing or editing before the text is read will not +be seen by the program reading it. +If the program in the window does not read the terminal, +for example if it is a long-running computation, there may +accumulate multiple lines of text after the output point; +changes made to all this text will be seen when the text +is eventually read. +This means, for example, that one may edit out newlines in +unread text to forestall the associated text being read when +the program finishes computing. +This behavior is very different from most systems. +.PP +Even when there are newlines in the output text, +.I rio +will not honor reads if the window is in +.I hold +.IR mode , +which is indicated by a white cursor and blue text and border. +The ESC character toggles hold mode. +Some programs, such as +.IR mail (1), +automatically turn on hold mode to simplify the editing of multi-line text; +type ESC when done to allow +.I mail +to read the text. +.PP +An EOT character (control-D) behaves exactly like newline except +that it is not delivered to a program when read. +Thus on an empty line an EOT serves to deliver an end-of-file indication: +the read will return zero characters. +Like newlines, unread EOTs may be successfully edited out of the text. +The BS character (control-H) erases the character before the selected text. +The ETB character (control-W) erases any nonalphanumeric characters, then +the alphanumeric word just before the selected text. +`Alphanumeric' here means non-blanks and non-punctuation. +The NAK character (control-U) erases the text after the output point, +and not yet read by a program, but not more than one line. +All these characters are typed on the keyboard and hence replace +the selected text; for example, typing a BS with a word selected +places the word in the snarf buffer, removes it from the screen, +and erases the character before the word. +.PP +Text may be moved vertically within the window. +A scroll bar on the left of the window shows in its clear portion what fragment of the +total output text is visible on the screen, and in its gray part what +is above or below view; +it measures characters, not lines. +Mousing inside the scroll bar moves text: +clicking button 1 with the mouse pointing inside the scroll bar +brings the line at the top of the +window to the cursor's vertical location; +button 3 takes the line at the cursor to the top of the window; +button 2, treating the scroll bar as a ruler, jumps to the indicated portion +of the stored text. +Holding a button pressed in the scroll bar will cause the text +to scroll continuously until the button is released. +Also, a VIEW key (possibly with a different label; see +.IR keyboard (6)) +or down-arrow +scrolls forward +half a window, and up-arrow scrolls back. +.PP +The DEL character sends an +.L interrupt +note to all processes in the window's process group. +Unlike the other characters, the DEL, VIEW, and up- and down-arrow +keys do not affect the selected text. +.PP +Normally, written output to a window blocks when +the text reaches the end of the screen; +a button 2 menu item toggles scrolling. +.PP +Other editing operations are selected from a menu on button 2. +The +.B cut +operation deletes the selected text +from the screen and puts it in the snarf buffer; +.B snarf +copies the selected text to the buffer without deleting it; +.B paste +replaces the selected text with the contents of the buffer; +and +.B send +copies the snarf buffer to just after the output point, adding a final newline +if missing. +.B Paste +will sometimes and +.B send +will always place text after the output point; the text so placed +will behave exactly as described above. Therefore when pasting +text containing newlines after the output point, it may be prudent +to turn on hold mode first. +.PP +The +.B plumb +menu item sends the contents of the selection (not the snarf buffer) to the +.IR plumber (4). +If the selection is empty, it sends the white-space-delimited text +containing the selection (typing cursor). +A typical use of this feature is to tell the editor to find the source of an error +by plumbing the file and line information in a compiler's diagnostic. +.SS Raw text windows +Opening or manipulating certain files served by +.IR rio +suppresses some of the services supplied to ordinary text windows. +While the file +.B /dev/mouse +is open, any mouse operations are the responsibility of another program +running in the window. Thus, +.I rio +refrains from maintaining +the scroll bar, +supplying text editing or menus, interpreting the +VIEW key as a request to scroll, and also turns scrolling on. +.PP +The file +.B /dev/consctl +controls interpretation of keyboard input. +In particular, a raw mode may be set: +in a raw-input window, no typed keyboard characters are special, +they are not echoed to the screen, and all are passed +to a program immediately upon reading, instead of being gathered into +lines. +.SS Graphics windows +A program that holds +.B /dev/mouse +and +.B /dev/consctl +open after putting the console in raw mode +has complete control of the window: +it interprets all mouse events, gets all keyboard characters, +and determines what appears on the screen. +.SH FILES +.TF /srv/riowctl.\fIuser\fP.\fIpid\fP +.TP +.B /lib/font/bit/* +font directories +.TP +.B /mnt/wsys +Files served by +.I rio +(also unioned in +.B /dev +in a window's name space, before the terminal's real +.B /dev +files) +.TP +.B /srv/rio.\fIuser\fP.\fIpid\fP +Server end of +.IR rio . +.TP +.B /srv/riowctl.\fIuser\fP.\fIpid\fP +Named pipe for +.I wctl +messages. +.SH SOURCE +.TF /sys/src/cmd/rio +.TP +.B /sys/src/cmd/rio +.TP +.B /rc/bin/label +.TP +.B /rc/bin/window +.TP +.B /rc/bin/wloc +.SH "SEE ALSO" +.IR rio (4), +.IR rc (1), +.IR cpu (1), +.IR sam (1), +.IR mail (1), +.IR proof (1), +.IR graphics (2), +.IR frame (2), +.IR window (2), +.IR notify (2), +.IR cons (3), +.IR draw (3), +.IR mouse (3), +.IR keyboard (6) +.SH BUGS +The standard input of +.I window +is redirected to the newly created window, so there is no way to pipe the output +of a program to the standard input of the new window. +In some cases, +.IR plumb (1) +can be used to work around this limitation. diff --git a/static/plan9-4e/man1/rm.1 b/static/plan9-4e/man1/rm.1 new file mode 100644 index 00000000..c5786f92 --- /dev/null +++ b/static/plan9-4e/man1/rm.1 @@ -0,0 +1,28 @@ +.TH RM 1 +.SH NAME +rm \- remove files +.SH SYNOPSIS +.B rm +[ +.B -fr +] +.I file ... +.SH DESCRIPTION +.I Rm +removes files or directories. +A directory is removed only if it is empty. +Removal of a file requires write permission in its directory, +but neither read nor write permission on the file itself. +The options are +.TP +.B -f +Don't report files that can't be removed. +.TP +.B -r +Recursively delete the +entire contents of a directory +and the directory itself. +.SH SOURCE +.B /sys/src/cmd/rm.c +.SH "SEE ALSO" +.IR remove (2) diff --git a/static/plan9-4e/man1/rtstats.1 b/static/plan9-4e/man1/rtstats.1 new file mode 100644 index 00000000..a01bffc4 --- /dev/null +++ b/static/plan9-4e/man1/rtstats.1 @@ -0,0 +1,117 @@ +.TH RTSTATS 1 +.SH NAME +rtstats \- show real-time process behavior +.SH SYNOPSIS +.B rtstats +[ +.B \-T +.I period +] +[ +.B \-D +.I deadline +] +[ +.B \-C +.I cost +] +[ +.B \-d +.I dir +] +[ +.B \-t +.I timedev +] +[ +.B \-b +] +[ +.B \-v +] +[ +.B \-w +] +.SH DESCRIPTION +.I Rtstats +displays the behavor of the real-time tasks running on a machine. +In its window it shows a time line for each real-time task with +black up arrows to indicate releases, black down arrows to indicate +deadlines, red down arrows to indicate early deadline as a consequence +of reaching cost, and green down arrows to indicate early deadline as +a consequence of yielding. Running tasks are shown as colored blocks, +while pre-empted ones are shown as very thin colored blocks. +.PP +Normally, +.B rtstats +itself runs in real time so that one of the bars in the display represents +.B rtstats +itself. The +.B \-b +flag makes it run as a best-effort process instead. +.PP +The +.BR \-T , +.BR \-D , +and +.BR \-C , +flags, respectively, specification a period, deadline or cost other than the +defaults of 200ms, 80ms and 40ms. +Times can be specified as a fixed-point decimal number, optionally followed +by one of the units +.BR s , +.BR ms , +.BR µs ,(or +.BR us ), +or +.BR ns . +Choosing periods, deadlines or costs less than 1ms or so will probably not produce very +desirable results. +.PP +The +.B \-d +flag can be used to specify a real-time event file other than the default, +.BR #R/realtime/nblog +and the +.B \-t +flag can be used to specify another time source than +.BR #R/realtime/time . +.PP +The +.B \-v +flag prints out the events as they are received from the event file. +.PP +The \-w +flag makes +.B rtstats +open a new window for its display. +.PP +The following one-character commands are recognized by +.BR rtstats : +.TP +.B + +Zoom in by a factor of two, +.TP +.B - +Zoom out by a factor of two, +.TP +.B p +Pause or resume, +.TP +.B q +Quit. +.SH "SEE ALSO +.IR realtime (3) +.SH FILES +.TF #R/realtime/nblog +.TP +.B #R/realtime/task +Task directory +.TP +.B #R/realtime/nblog +Real-time event log (non-blocking version) +.TP +.B #R/realtime/time +Current real time. +.SH SOURCE +.B /sys/src/cmd/rtstats diff --git a/static/plan9-4e/man1/sam.1 b/static/plan9-4e/man1/sam.1 new file mode 100644 index 00000000..55294447 --- /dev/null +++ b/static/plan9-4e/man1/sam.1 @@ -0,0 +1,885 @@ +.TH SAM 1 +.ds a \fR*\ \fP +.SH NAME +sam, B, sam.save \- screen editor with structural regular expressions +.SH SYNOPSIS +.B sam +[ +.I option ... +] [ +.I files +] +.PP +.B sam +.B -r +.I machine +.PP +.B sam.save +.PP +.B B +[ +.BI -nnnn +] +.I file ... +.SH DESCRIPTION +.I Sam +is a multi-file editor. +It modifies a local copy of an external file. +The copy is here called a +.IR file . +The files are listed in a menu available through mouse button 3 +or the +.B n +command. +Each file has an associated name, usually the name of the +external file from which it was read, and a `modified' bit that indicates whether +the editor's file agrees with the external file. +The external file is not read into +the editor's file until it first becomes the current file\(emthat to +which editing commands apply\(emwhereupon its menu entry is printed. +The options are +.TF -rmachine +.TP +.B -d +Do not `download' the terminal part of +.IR sam . +Editing will be done with the command language only, as in +.IR ed (1). +.TP +.BI -r " machine +Run the host part remotely +on the specified machine, the terminal part locally. +.TP +.BI -s " path +Start the host part from the specified file on the remote host. +Only meaningful with the +.BI -r +option. +.TP +.BI -t " path +Start the terminal part from the specified file. Useful +for debugging. +.PD +.SS Regular expressions +Regular expressions are as in +.IR regexp (6) +with the addition of +.BR \en +to represent newlines. +A regular expression may never contain a literal newline character. +The empty +regular expression stands for the last complete expression encountered. +A regular expression in +.I sam +matches the longest leftmost substring formally +matched by the expression. +Searching in the reverse direction is equivalent +to searching backwards with the catenation operations reversed in +the expression. +.SS Addresses +An address identifies a substring in a file. +In the following, `character +.IR n ' +means the null string +after the +.IR n -th +character in the file, with 1 the +first character in the file. +`Line +.IR n ' +means the +.IR n -th +match, +starting at the beginning of the file, of the regular expression +.LR .*\en? . +All files always have a current substring, called dot, +that is the default address. +.SS Simple Addresses +.PD0 +.TP +.BI # n +The empty string after character +.IR n ; +.B #0 +is the beginning of the file. +.TP +.I n +Line +.IR n ; +.B 0 +is the beginning of the file. +.TP +.BI / regexp / +.PD0 +.TP +.BI ? regexp ? +The substring that matches the regular expression, +found by looking toward the end +.RB ( / ) +or beginning +.RB ( ? ) +of the file, +and if necessary continuing the search from the other end to the +starting point of the search. +The matched substring may straddle +the starting point. +When entering a pattern containing a literal question mark +for a backward search, the question mark should be +specified as a member of a class. +.PD +.TP +.B 0 +The string before the first full line. +This is not necessarily +the null string; see +.B + +and +.B - +below. +.TP +.B $ +The null string at the end of the file. +.TP +.B . +Dot. +.TP +.B \&' +The mark in the file (see the +.B k +command below). +.TP +\fL"\f2regexp\fL"\f1\f1 +Preceding a simple address (default +.BR . ), +refers to the address evaluated in the unique file whose menu line +matches the regular expression. +.PD +.SS Compound Addresses +In the following, +.I a1 +and +.I a2 +are addresses. +.TF a1+a2 +.TP +.IB a1 + a2 +The address +.I a2 +evaluated starting at the end of +.IR a1 . +.TP +.IB a1 - a2 +The address +.I a2 +evaluated looking in the reverse direction +starting at the beginning of +.IR a1 . +.TP +.IB a1 , a2 +The substring from the beginning of +.I a1 +to the end of +.IR a2 . +If +.I a1 +is missing, +.B 0 +is substituted. +If +.I a2 +is missing, +.B $ +is substituted. +.TP +.IB a1 ; a2 +Like +.IB a1 , a2\f1, +but with +.I a2 +evaluated at the end of, and dot set to, +.IR a1 . +.PD +.PP +The operators +.B + +and +.B - +are high precedence, while +.B , +and +.B ; +are low precedence. +.PP +In both +.B + +and +.B - +forms, if +.I a2 +is a line or character address with a missing +number, the number defaults to 1. +If +.I a1 +is missing, +.L . +is substituted. +If both +.I a1 +and +.I a2 +are present and distinguishable, +.B + +may be elided. +.I a2 +may be a regular +expression; if it is delimited by +.LR ? 's, +the effect of the +.B + +or +.B - +is reversed. +.PP +It is an error for a compound address to represent a malformed substring. +Some useful idioms: +.IB a1 +- +\%(\f2a1\fL-+\f1) +selects the line containing +the end (beginning) of a1. +.BI 0/ regexp / +locates the first match of the expression in the file. +(The form +.B 0;// +sets dot unnecessarily.) +.BI ./ regexp /// +finds the second following occurrence of the expression, +and +.BI .,/ regexp / +extends dot. +.SS Commands +In the following, text demarcated by slashes represents text delimited +by any printable +character except alphanumerics. +Any number of +trailing delimiters may be elided, with multiple elisions then representing +null strings, but the first delimiter must always +be present. +In any delimited text, +newline may not appear literally; +.B \en +may be typed for newline; and +.B \e/ +quotes the delimiter, here +.LR / . +Backslash is otherwise interpreted literally, except in +.B s +commands. +.PP +Most commands may be prefixed by an address to indicate their range +of operation. +Those that may not are marked with a +.L * +below. +If a command takes +an address and none is supplied, dot is used. +The sole exception is +the +.B w +command, which defaults to +.BR 0,$ . +In the description, `range' is used +to represent whatever address is supplied. +Many commands set the +value of dot as a side effect. +If so, it is always set to the `result' +of the change: the empty string for a deletion, the new text for an +insertion, etc. (but see the +.B s +and +.B e +commands). +.br +.ne 1.2i +.SS Text commands +.PD0 +.TP +.BI a/ text / +.TP +or +.TP +.B a +.TP +.I lines of text +.TP +.B . +Insert the text into the file after the range. +Set dot. +.PD +.TP +.B c\fP +.br +.ns +.TP +.B i\fP +Same as +.BR a , +but +.B c +replaces the text, while +.B i +inserts +.I before +the range. +.TP +.B d +Delete the text in the range. +Set dot. +.TP +.BI s/ regexp / text / +Substitute +.I text +for the first match to the regular expression in the range. +Set dot to the modified range. +In +.I text +the character +.B & +stands for the string +that matched the expression. +Backslash behaves as usual unless followed by +a digit: +.BI \e d +stands for the string that matched the +subexpression begun by the +.IR d -th +left parenthesis. +If +.I s +is followed immediately by a +number +.IR n , +as in +.BR s2/x/y/ , +the +.IR n -th +match in the range is substituted. +If the +command is followed by a +.BR g , +as in +.BR s/x/y/g , +all matches in the range +are substituted. +.TP +.BI m " a1 +.br +.ns +.TP +.BI t " a1 +Move +.RB ( m ) +or copy +.RB ( t ) +the range to after +.IR a1 . +Set dot. +.SS Display commands +.PD 0 +.TP +.B p +Print the text in the range. +Set dot. +.TP +.B = +Print the line address and character address of the range. +.TP +.B =# +Print just the character address of the range. +.PD +.SS File commands +.PD0 +.TP +.BI \*ab " file-list +Set the current file to the first file named in the list +that +.I sam +also has in its menu. +The list may be expressed +.BI < "Plan 9 command" +in which case the file names are taken as words (in the shell sense) +generated by the Plan 9 command. +.TP +.BI \*aB " file-list +Same as +.BR b , +except that file names not in the menu are entered there, +and all file names in the list are examined. +.TP +.B \*an +Print a menu of files. +The format is: +.RS +.TP 11 +.BR ' " or blank +indicating the file is modified or clean, +.TP 11 +.BR - " or \&" + +indicating the file is unread or has been read +(in the terminal, +.B * +means more than one window is open), +.TP 11 +.BR . " or blank +indicating the current file, +.TP 11 +a blank, +.TP 11 +and the file name. +.RE +.TP 0 +.BI \*aD " file-list +Delete the named files from the menu. +If no files are named, the current file is deleted. +It is an error to +.B D +a modified file, but a subsequent +.B D +will delete such a file. +.PD +.SS I/O Commands +.PD0 +.TP +.BI \*ae " filename +Replace the file by the contents of the named external file. +Set dot to the beginning of the file. +.TP +.BI r " filename +Replace the text in the range by the contents of the named external file. +Set dot. +.TP +.BI w " filename +Write the range (default +.BR 0,$ ) +to the named external file. +.TP +.BI \*af " filename +Set the file name and print the resulting menu entry. +.PP +If the file name is absent from any of these, the current file name is used. +.B e +always sets the file name; +.B r +and +.B w +do so if the file has no name. +.TP +.BI < " Plan 9-command +Replace the range by the standard output of the +Plan 9 command. +.TP +.BI > " Plan 9-command +Send the range to the standard input of the +Plan 9 command. +.TP +.BI | " Plan 9-command +Send the range to the standard input, and replace it by +the standard output, of the +Plan 9 command. +.TP +.BI \*a! " Plan 9-command +Run the +Plan 9 command. +.TP +.BI \*acd " directory +Change working directory. +If no directory is specified, +.B $home +is used. +.PD +.PP +In any of +.BR < , +.BR > , +.B | +or +.BR ! , +if the +.I Plan 9 command +is omitted the last +.I Plan 9 command +(of any type) is substituted. +If +.I sam +is +.I downloaded +(using the mouse and raster display, i.e. not using option +.BR -d ), +.B ! +sets standard input to +.BR /dev/null , +and otherwise +unassigned output +.RB ( stdout +for +.B ! +and +.BR > , +.B stderr +for all) is placed in +.B /tmp/sam.err +and the first few lines are printed. +.SS Loops and Conditionals +.PD0 +.TP +.BI x/ regexp / " command +For each match of the regular expression in the range, run the command +with dot set to the match. +Set dot to the last match. +If the regular +expression and its slashes are omitted, +.L /.*\en/ +is assumed. +Null string matches potentially occur before every character +of the range and at the end of the range. +.TP +.BI y/ regexp / " command +Like +.BR x , +but run the command for each substring that lies before, between, +or after +the matches that would be generated by +.BR x . +There is no default regular expression. +Null substrings potentially occur before every character +in the range. +.TP +.BI \*aX/ regexp / " command +For each file whose menu entry matches the regular expression, +make that the current file and +run the command. +If the expression is omitted, the command is run +in every file. +.TP +.BI \*aY/ regexp / " command +Same as +.BR X , +but for files that do not match the regular expression, +and the expression is required. +.TP +.BI g/ regexp / " command +.br +.ns +.TP +.BI v/ regexp / " command +If the range contains +.RB ( g ) +or does not contain +.RB ( v ) +a match for the expression, +set dot to the range and run the command. +.PP +These may be nested arbitrarily deeply, but only one instance of either +.B X +or +.B Y +may appear in a \%single command. +An empty command in an +.B x +or +.B y +defaults to +.BR p ; +an empty command in +.B X +or +.B Y +defaults to +.BR f . +.B g +and +.B v +do not have defaults. +.PD +.SS Miscellany +.TF (empty) +.TP +.B k +Set the current file's mark to the range. Does not set dot. +.TP +.B \*aq +Quit. +It is an error to quit with modified files, but a second +.B q +will succeed. +.TP +.BI \*au " n +Undo the last +.I n +(default 1) +top-level commands that changed the contents or name of the +current file, and any other file whose most recent change was simultaneous +with the current file's change. +Successive +.BR u 's +move further back in time. +The only commands for which u is ineffective are +.BR cd , +.BR u , +.BR q , +.B w +and +.BR D . +If +.I n +is negative, +.B u +`redoes,' undoing the undo, going forwards in time again. +.TP +(empty) +If the range is explicit, set dot to the range. +If +.I sam +is downloaded, the resulting dot is selected on the screen; +otherwise it is printed. +If no address is specified (the +command is a newline) dot is extended in either direction to +line boundaries and printed. +If dot is thereby unchanged, it is set to +.B .+1 +and printed. +.PD +.SS Grouping and multiple changes +Commands may be grouped by enclosing them in braces +.BR {} . +Commands within the braces must appear on separate lines (no backslashes are +required between commands). +Semantically, an opening brace is like a command: +it takes an (optional) address and sets dot for each sub-command. +Commands within the braces are executed sequentially, but changes made +by one command are not visible to other commands (see the next +paragraph). +Braces may be nested arbitrarily. +.PP +When a command makes a number of changes to a file, as in +.BR x/re/c/text/ , +the addresses of all changes to the file are computed in the original file. +If the changes are in sequence, +they are applied to the file. +Successive insertions at the same address are catenated into a single +insertion composed of the several insertions in the order applied. +.SS The terminal +What follows refers to behavior of +.I sam +when downloaded, that is, when +operating as a display editor on a raster display. +This is the default +behavior; invoking +.I sam +with the +.B -d +(no download) option provides access +to the command language only. +.PP +Each file may have zero or more windows open. +Each window is equivalent +and is updated simultaneously with changes in other windows on the same file. +Each window has an independent value of dot, indicated by a highlighted +substring on the display. +Dot may be in a region not within +the window. +There is usually a `current window', +marked with a dark border, to which typed text and editing +commands apply. +Text may be typed and edited as in +.IR rio (1); +also the escape key (ESC) selects (sets dot to) text typed +since the last mouse button hit. +.PP +The button 3 menu controls window operations. +The top of the menu +provides the following operators, each of which uses one or +more +.IR rio -like +cursors to prompt for selection of a window or sweeping +of a rectangle. +`Sweeping' a null rectangle gets a large window, disjoint +from the command window or the whole screen, depending on +where the null rectangle is. +.TF resize +.TP +.B new +Create a new, empty file. +.TP +.B zerox +Create a copy of an existing window. +.TP +.B resize +As in +.IR rio . +.TP +.B close +Delete the window. +In the last window of a file, +.B close +is equivalent to a +.B D +for the file. +.TP +.B write +Equivalent to a +.B w +for the file. +.PD +.PP +Below these operators is a list of available files, starting with +.BR ~~sam~~ , +the command window. +Selecting a file from the list makes the most recently +used window on that file current, unless it is already current, in which +case selections cycle through the open windows. +If no windows are open +on the file, the user is prompted to open one. +Files other than +.B ~~sam~~ +are marked with one of the characters +.B -+* +according as zero, one, or more windows +are open on the file. +A further mark +.L . +appears on the file in the current window and +a single quote, +.BR ' , +on a file modified since last write. +.PP +The command window, created automatically when +.B sam +starts, is an ordinary window except that text typed to it +is interpreted as commands for the editor rather than passive text, +and text printed by editor commands appears in it. +The behavior is like +.IR rio , +with an `output point' that separates commands being typed from +previous output. +Commands typed in the command window apply to the +current open file\(emthe file in the most recently +current window. +.SS Manipulating text +Button 1 changes selection, much like +.IR rio . +Pointing to a non-current window with button 1 makes it current; +within the current window, button 1 selects text, thus setting dot. +Double-clicking selects text to the boundaries of words, lines, +quoted strings or bracketed strings, depending on the text at the click. +.PP +Button 2 provides a menu of editing commands: +.TF /regexp +.TP +.B cut +Delete dot and save the deleted text in the snarf buffer. +.TP +.B paste +Replace the text in dot by the contents of the snarf buffer. +.TP +.B snarf +Save the text in dot in the snarf buffer. +.TP +.B plumb +Send the text in the selection as a plumb +message. If the selection is empty, +the white-space-delimited block of text is sent as a plumb message +with a +.B click +attribute defining where the selection lies (see +.IR plumb (6)). +.TP +.B look +Search forward for the next occurrence of the literal text in dot. +If dot is the null string, the text in the snarf buffer is +used. +The snarf buffer is unaffected. +.TP +.B +Exchange snarf buffers with +.IR rio . +.TP +.BI / regexp +Search forward for the next match of the last regular expression +typed in a command. +(Not in command window.) +.TP +.B send +Send the text in dot, or the snarf buffer if +dot is the null string, as if it were typed to the command window. +Saves the sent text in the snarf buffer. +(Command window only.) +.PD +.SS External communication +.I Sam +listens to the +.B edit +plumb port. +If plumbing is not active, +on invocation +.I sam +creates a named pipe +.BI /srv/sam. user +which acts as an additional source of commands. Characters written to +the named pipe are treated as if they had been typed in the command window. +.PP +.I B +is a shell-level command that causes an instance of +.I sam +running on the same terminal to load the named +.IR files . +.I B +uses either plumbing or the named pipe, whichever service is available. +If plumbing is not enabled, +the option allows a line number to be specified for +the initial position to display in the last named file +(plumbing provides a more general mechanism for this ability). +.SS Abnormal termination +If +.I sam +terminates other than by a +.B q +command (by hangup, deleting its window, etc.), modified +files are saved in an +executable file, +.BR $home/sam.save . +This program, when executed, asks whether to write +each file back to a external file. +The answer +.L y +causes writing; anything else skips the file. +.SH FILES +.TF /sys/src/cmd/samterm +.TP +.B $home/sam.save +.TP +.B $home/sam.err +.TP +.B /sys/lib/samsave +the program called to unpack +.BR $home/sam.save . +.SH SOURCE +.TF /sys/src/cmd/samterm +.TP +.B /sys/src/cmd/sam +source for +.I sam +itself +.TP +.B /sys/src/cmd/samterm +source for the separate terminal part +.TP +.B /rc/bin/B +.SH SEE ALSO +.IR ed (1), +.IR sed (1), +.IR grep (1), +.IR rio (1), +.IR regexp (6). +.PP +Rob Pike, +``The text editor sam''. diff --git a/static/plan9-4e/man1/secstore.1 b/static/plan9-4e/man1/secstore.1 new file mode 100644 index 00000000..97c5b231 --- /dev/null +++ b/static/plan9-4e/man1/secstore.1 @@ -0,0 +1,107 @@ +.TH SECSTORE 1 +.SH NAME +aescbc, secstore \- secstore commands +.SH SYNOPSIS +.B auth/secstore +[-c] [-s +.I server +] [ -(g|G) +.I getfile +] [ -p +.I putfile +] [ -r +.I rmfile +] [ -u +.I user +] +.br +.B auth/aescbc +-e +.I password +.I cleartext +.I cryptext +.br +.B auth/aescbc +-d +.I password +.I cryptext +.I cleartext +.PP +.SH DESCRIPTION +.PP +.I Secstore +authenticates to the server +using a password and optionally a hardware token, +then saves or retrieves a file. +This is intended to be a credentials store (public/private keypairs, +passwords, and other secrets) for a factotum. +.PP +Option +.B -p +stores a file on the secstore. +.PP +Option +.B -g +retrieves a file to the local directory; +option +.B -G +writes it to standard output instead. +Specifying +.I getfile +of . will send to standard output +a list of remote files with dates, lengths and SHA1 hashes. +.PP +Option +.B -r +removes a file from the secstore. +.PP +Option +.B -v +produces more verbose output, in particular providing a few +bits of feedback to help the user detect mistyping. +.PP +Option +.B -c +prompts for a password change. +.PP +The server is +.BR tcp!$auth!5356 , +or the server specified by option +.BR -s . +.PP +For example, to add a secret to the default file read by +.IR factotum (4) +at startup, open a new window and +.sp +.EX + % ramfs -p; cd /tmp + % auth/secstore -g factotum + secstore password: + % echo 'proto=apop dom=x.com user=ehg !password=y~1' >> factotum + % auth/secstore -p factotum + secstore password: + % read -m factotum > /mnt/factotum/ctl +.EE +and delete the window. +The first line an ephemeral memory-resident workspace, +invisible to others and automatically removed when the window is deleted. +The next three commands fetch the persistent copy of the secrets, +append a new secret, +and save the updated file back to secstore. +The final command loads the new secret into the running factotum. +.PP +.I Aescbc +encrypts and decrypts using AES (Rijndael) in cipher +block chaining (CBC) mode. This is the file encryption +used internally by +.IR secstore . +.SH SOURCE +.B /sys/src/cmd/auth/secstore +.SH SEE ALSO +.IR factotum (4), +.IR secstore (8) +.SH BUGS +There is deliberately no backup of files on the secstore, so +.B -r +(or a disk crash) is irrevocable. You are advised to store +important secrets in a second location. diff --git a/static/plan9-4e/man1/sed.1 b/static/plan9-4e/man1/sed.1 new file mode 100644 index 00000000..3b5ac181 --- /dev/null +++ b/static/plan9-4e/man1/sed.1 @@ -0,0 +1,385 @@ +.TH SED 1 +.SH NAME +sed \- stream editor +.SH SYNOPSIS +.B sed +[ +.B -n +] +[ +.B -g +] +[ +.B -e +.I script +] +[ +.B -f +.I sfile +] +[ +.I file ... +] +.SH DESCRIPTION +.I Sed +copies the named +.I files +(standard input default) to the standard output, +edited according to a script of commands. +The +.B -f +option causes the script to be taken from file +.IR sfile ; +these options accumulate. +If there is just one +.B -e +option and no +.BR -f 's, +the flag +.B -e +may be omitted. +The +.B -n +option suppresses the default output; +.B -g +causes all substitutions to be global, as if suffixed +.BR g . +.PP +A script consists of editing commands, one per line, +of the following form: +.IP +[\fIaddress\fR [\fL,\fI address\fR] ] \fIfunction\fR [\fIargument\fR ...] +.PP +In normal operation +.I sed +cyclically copies a line of input into a +.I pattern space +(unless there is something left after +a +.L D +command), +applies in sequence +all commands whose +.I addresses +select that pattern space, +and at the end of the script copies the pattern space +to the standard output (except under +.BR -n ) +and deletes the pattern space. +.PP +An +.I address +is either a decimal number that counts +input lines cumulatively across files, a +.L $ +that +addresses the last line of input, or a context address, +.BI / regular-expression / \f1, +in the style of +.IR regexp (6), +with the added convention that +.L \en +matches a +newline embedded in the pattern space. +.PP +A command line with no addresses selects every pattern space. +.PP +A command line with +one address selects each pattern space that matches the address. +.PP +A command line with +two addresses selects the inclusive range from the first +pattern space that matches the first address through +the next pattern space that matches +the second. +(If the second address is a number less than or equal +to the line number first selected, only one +line is selected.) +Thereafter the process is repeated, looking again for the +first address. +.PP +Editing commands can be applied to non-selected pattern +spaces by use of the negation function +.L ! +(below). +.PP +An argument denoted +.I text +consists of one or more lines, +all but the last of which end with +.L \e +to hide the +newline. +Backslashes in text are treated like backslashes +in the replacement string of an +.L s +command, +and may be used to protect initial blanks and tabs +against the stripping that is done on +every script line. +.PP +An argument denoted +.I rfile +or +.I wfile +must terminate the command +line and must be preceded by exactly one blank. +Each +.I wfile +is created before processing begins. +There can be at most 120 distinct +.I wfile +arguments. +.TP \w'\fL!\ \fIfunction\fLXXX'u +.B a\e +.br +.ns +.TP +.I text +Append. +Place +.I text +on the output before +reading the next input line. +.TP +.BI b " label" +Branch to the +.B : +command bearing the +.IR label . +If +.I label +is empty, branch to the end of the script. +.TP +.B c\e +.br +.ns +.TP +.I text +Change. +Delete the pattern space. +With 0 or 1 address or at the end of a 2-address range, place +.I text +on the output. +Start the next cycle. +.TP +.B d +Delete the pattern space. +Start the next cycle. +.TP +.B D +Delete the initial segment of the +pattern space through the first newline. +Start the next cycle. +.TP +.B g +Replace the contents of the pattern space +by the contents of the hold space. +.TP +.B G +Append the contents of the hold space to the pattern space. +.TP +.B h +Replace the contents of the hold space by the contents of the pattern space. +.TP +.B H +Append the contents of the pattern space to the hold space. +.ne 3 +.TP +.B i\e +.br +.ns +.TP +.I text +Insert. +Place +.I text +on the standard output. +.TP +.B n +Copy the pattern space to the standard output. +Replace the pattern space with the next line of input. +.TP +.B N +Append the next line of input to the pattern space +with an embedded newline. +(The current line number changes.) +.TP +.B p +Print. +Copy the pattern space to the standard output. +.TP +.B P +Copy the initial segment of the pattern space through +the first newline to the standard output. +.TP +.B q +Quit. +Branch to the end of the script. +Do not start a new cycle. +.TP +.BI r " rfile" +Read the contents of +.IR rfile . +Place them on the output before reading +the next input line. +.TP +.B s/\fIregular-expression\fP/\fIreplacement\fP/\fIflags +Substitute the +.I replacement +string for instances of the +.I regular-expression +in the pattern space. +Any character may be used instead of +.LR / . +For a fuller description see +.IR regexp (6). +.I Flags +is zero or more of +.RS +.TP +.B g +Global. +Substitute for all non-overlapping instances of the +.I regular expression +rather than just the +first one. +.TP +.B p +Print the pattern space if a replacement was made. +.TP +.BI w " wfile" +Write. +Append the pattern space to +.I wfile +if a replacement +was made. +.RE +.TP +.BI t " label" +Test. +Branch to the +.L : +command bearing the +.I label +if any +substitutions have been made since the most recent +reading of an input line or execution of a +.LR t . +If +.I label +is empty, branch to the end of the script. +.TP +.B w +.I wfile +.br +Write. +Append the pattern space to +.IR wfile . +.TP +.B x +Exchange the contents of the pattern and hold spaces. +.TP +.B y/\fIstring1\fP/\fIstring2\fP/ +Transform. +Replace all occurrences of characters in +.I string1 +with the corresponding character in +.IR string2 . +The lengths of +.I +string1 +and +.I string2 +must be equal. +.TP +.BI ! "function" +Don't. +Apply the +.I function +(or group, if +.I function +is +.LR { ) +only to lines +.I not +selected by the address(es). +.TP +.BI : " label" +This command does nothing; it bears a +.I label +for +.B b +and +.B t +commands to branch to. +.TP +.B = +Place the current line number on the standard output as a line. +.TP +.B { +Execute the following commands through a matching +.L } +only when the pattern space is selected. +.TP +.B " " +An empty command is ignored. +.ne 4 +.SH EXAMPLES +.TP +.B sed 10q file +Print the first 10 lines of the file. +.TP +.B sed '/^$/d' +Delete empty lines from standard input. +.TP +.B sed 's/UNIX/& system/g' +Replace every instance of +.L UNIX +by +.LR "UNIX system" . +.PP +.EX +sed 's/ *$// \fRdrop trailing blanks\fP +/^$/d \fRdrop empty lines\fP +s/ */\e \fRreplace blanks by newlines\fP +/g +/^$/d' chapter* +.EE +.ns +.IP +Print the files +.BR chapter1 , +.BR chapter2 , +etc. one word to a line. +.PP +.EX +nroff -ms manuscript | sed ' +${ + /^$/p \fRif last line of file is empty, print it\fP +} +//N \fRif current line is empty, append next line\fP +/^\en$/D' \fRif two lines are empty, delete the first\fP +.EE +.ns +.IP +Delete all but one of each group of empty lines from a +formatted manuscript. +.SH SOURCE +.B /sys/src/cmd/sed.c +.SH SEE ALSO +.IR ed (1), +.IR grep (1), +.IR awk (1), +.IR lex (1), +.IR sam (1), +.IR regexp (6) +.br +L. E. McMahon, +`SED \(em A Non-interactive Text Editor', +Unix Research System Programmer's Manual, Volume 2. +.SH BUGS +If input is from a pipe, buffering may consume +characters beyond a line on which a +.L q +command is executed. diff --git a/static/plan9-4e/man1/seq.1 b/static/plan9-4e/man1/seq.1 new file mode 100644 index 00000000..97b68da0 --- /dev/null +++ b/static/plan9-4e/man1/seq.1 @@ -0,0 +1,69 @@ +.TH SEQ 1 +.SH NAME +seq \- print sequences of numbers +.SH SYNOPSIS +.B seq +[ +.B -w +] +[ +.BI -f format +] +[ +.I first +[ +.I incr +] +] +.I last +.SH DESCRIPTION +.I Seq +prints a sequence of numbers, one per line, from +.I first +(default 1) to as near +.I last +as possible, in increments of +.I incr +(default 1). +The numbers are interpreted as floating point. +.PP +Normally integer values are printed as decimal integers. +The options are +.TP "\w'\fL-f \fIformat\fLXX'u" +.BI -f format +Use the +.IR print (2)-style +.I format +.IR print +for printing each (floating point) number. +The default is +.LR %g . +.TP +.B -w +Equalize the widths of all numbers by padding with +leading zeros as necessary. +Not effective with option +.BR -f , +nor with numbers in exponential notation. +.SH EXAMPLES +.TP +.L +seq 0 .05 .1 +Print +.BR "0 0.05 0.1" +(on separate lines). +.TP +.L +seq -w 0 .05 .1 +Print +.BR "0.00 0.05 0.10" . +.SH SOURCE +.B /sys/src/cmd/seq.c +.SH BUGS +Option +.B -w +always surveys every value in advance. +Thus +.L +seq -w 1000000000 +is a painful way to get an `infinite' sequence. diff --git a/static/plan9-4e/man1/size.1 b/static/plan9-4e/man1/size.1 new file mode 100644 index 00000000..cd7ba9b8 --- /dev/null +++ b/static/plan9-4e/man1/size.1 @@ -0,0 +1,28 @@ +.TH SIZE 1 +.SH NAME +size \- print size of executable files +.SH SYNOPSIS +.B size +[ +.I file ... +] +.SH DESCRIPTION +.I Size +prints the size of the segments for each of the argument executable files +(default +.BR v.out ). +The format is +.IP +.IB textsize t ++ +.IB datasize d ++ +.IB bsssize b += +.I total +.PP +where the numbers are in bytes. +.SH SOURCE +.B /sys/src/cmd/size.c +.SH "SEE ALSO +.IR a.out (6) diff --git a/static/plan9-4e/man1/sleep.1 b/static/plan9-4e/man1/sleep.1 new file mode 100644 index 00000000..61169e96 --- /dev/null +++ b/static/plan9-4e/man1/sleep.1 @@ -0,0 +1,31 @@ +.TH SLEEP 1 +.SH NAME +sleep \- suspend execution for an interval +.SH SYNOPSIS +.B sleep +.I time +.SH DESCRIPTION +.I Sleep +suspends execution for +.I time +seconds. +.SH EXAMPLES +Execute a command +100 seconds hence. +.IP +.EX +{sleep 100; command}& +.EE +.PP +Repeat a command every 30 seconds. +.IP +.EX +while (){ + command + sleep 30 +} +.EE +.SH SOURCE +.B /sys/src/cmd/sleep.c +.SH "SEE ALSO" +.IR sleep (2) diff --git a/static/plan9-4e/man1/sort.1 b/static/plan9-4e/man1/sort.1 new file mode 100644 index 00000000..6dded61a --- /dev/null +++ b/static/plan9-4e/man1/sort.1 @@ -0,0 +1,260 @@ +.TH SORT 1 +.SH NAME +sort \- sort and/or merge files +.SH SYNOPSIS +.B sort +[ +.BI -cmuMbdf\&inrwt x +] +[ +.BI + pos1 +[ +.BI - pos2 +] ... +] ... +[ +.B -k +.I pos1 +[ +.I ,pos2 +] +] ... +[ +.B -o +.I output +] +[ +.B -T +.I dir +\&... +] +[ +.I option +\&... +] +[ +.I file +\&... +] +.SH DESCRIPTION +.I Sort\^ +sorts +lines of all the +.I files +together and writes the result on +the standard output. +If no input files are named, the standard input is sorted. +.PP +The default sort key is an entire line. +Default ordering is +lexicographic by runes. +The ordering is affected globally by the following options, +one or more of which may appear. +.TP +.B -M +Compare as months. +The first three +non-white space characters +of the field +are folded +to upper case +and compared +so that +.L JAN +precedes +.LR FEB , +etc. +Invalid fields +compare low to +.LR JAN . +.TP +.B -b +Ignore leading white space (spaces and tabs) in field comparisons. +.TP +.B -d +`Phone directory' order: +only letters, +accented letters, +digits and white space +are significant in comparisons. +.TP +.B -f +Fold lower case +letters onto upper case. +Accented characters are folded to their +non-accented upper case form. +.TP +.B -i +Ignore characters outside the +.SM ASCII +range 040-0176 +in non-numeric comparisons. +.TP +.B -w +Like +.BR -i , +but ignore only tabs and spaces. +.TP +.B -n +An initial numeric string, +consisting of optional white space, +optional plus or minus sign, +and zero or more digits with optional decimal point, +is sorted by arithmetic value. +.TP +.B -g +Numbers, like +.B -n +but with optional +.BR e -style +exponents, are sorted by value. +.TP +.B -r +Reverse the sense of comparisons. +.TP +.BI -t x\^ +`Tab character' separating fields is +.IR x . +.PP +The notation +.BI + "pos1\| " - pos2\^ +restricts a sort key to a field beginning at +.I pos1\^ +and ending just before +.IR pos2 . +.I Pos1\^ +and +.I pos2\^ +each have the form +.IB m . n\f1, +optionally followed by one or more of the flags +.BR Mbdfginr , +where +.I m\^ +tells a number of fields to skip from the beginning of the line and +.I n\^ +tells a number of characters to skip further. +If any flags are present they override all the global +ordering options for this key. +A missing +.BI \&. n\^ +means +.BR \&.0 ; +a missing +.BI - pos2\^ +means the end of the line. +Under the +.BI -t x\^ +option, fields are strings separated by +.IR x ; +otherwise fields are +non-empty strings separated by white space. +White space before a field +is part of the field, except under option +.BR -b . +A +.B b +flag may be attached independently to +.IR pos1 +and +.IR pos2. +.PP +The notation +.B -k +.IR pos1 [, pos2 ] +is how POSIX +.I sort +defines fields: +.I pos1 +and +.I pos2 +have the same format but different meanings. +The value of +.I m\^ +is origin 1 instead of origin 0 +and a missing +.BI \&. n\^ +in +.I pos2 +is the end of the field. +.PP +When there are multiple sort keys, later keys +are compared only after all earlier keys +compare equal. +Lines that otherwise compare equal are ordered +with all bytes significant. +.PP +These option arguments are also understood: +.TP \w'\fL-z\fIrecsize\fLXX'u +.B -c +Check that the single input file is sorted according to the ordering rules; +give no output unless the file is out of sort. +.TP +.B -m +Merge; assume the input files are already sorted. +.TP +.B -u +Suppress all but one in each +set of equal lines. +Ignored bytes +and bytes outside keys +do not participate in +this comparison. +.TP +.B -o +The next argument is the name of an output file +to use instead of the standard output. +This file may be the same as one of the inputs. +.TP +.BI -T dir +Put temporary files in +.I dir +rather than in +.BR /tmp . +.ne 4 +.SH EXAMPLES +.TP +.L sort -u +0f +0 list +Print in alphabetical order all the unique spellings +in a list of words +where capitalized words differ from uncapitalized. +.TP +.L sort -t: +1 /adm/users +Print the users file +sorted by user name +(the second colon-separated field). +.TP +.L sort -umM dates +Print the first instance of each month in an already sorted file. +Options +.B -um +with just one input file make the choice of a +unique representative from a set of equal lines predictable. +.TP +.L +grep -n '^' input | sort -t: +1f +0n | sed 's/[0-9]*://' +A stable sort: input lines that compare equal will +come out in their original order. +.SH FILES +.BI /tmp/sort. . +.SH SOURCE +.B /sys/src/cmd/sort.c +.SH SEE ALSO +.IR uniq (1), +.IR look (1) +.SH DIAGNOSTICS +.I Sort +comments and exits with non-null status for various trouble +conditions and for disorder discovered under option +.BR -c . +.SH BUGS +An external null character can be confused +with an internally generated end-of-field character. +The result can make a sub-field not sort +less than a longer field. +.PP +Some of the options, e.g. +.B -i +and +.BR -M , +are hopelessly provincial. diff --git a/static/plan9-4e/man1/spell.1 b/static/plan9-4e/man1/spell.1 new file mode 100644 index 00000000..8298452c --- /dev/null +++ b/static/plan9-4e/man1/spell.1 @@ -0,0 +1,96 @@ +.TH SPELL 1 +.SH NAME +spell, sprog \- find spelling errors +.SH SYNOPSIS +.B spell +[ +.I options +] +\&... +[ +.I file +] +\&... +.PP +.B sprog +[ +.I options +] +[ +.B -f +.I file +] +.SH DESCRIPTION +.I Spell +looks up words from the named +.I files +(standard input default) +in a spelling list and places +possible misspellings\(emwords +not sanctioned there\(emon the standard output. +.PP +.I Spell +ignores constructs of +.IR troff (1) +and its standard preprocessors. +It understands these options: +.TP +.B -b +Check British spelling. +.TP +.B -v +Print all words not literally in the spelling list, with +derivations. +.TP +.B -x +Print, marked with +.LR = , +every stem as it is looked up in the spelling list, +along with its affix classes. +.PP +As a matter of policy, +.I spell +does not admit multiple spellings of the same word. +Variants that follow general rules are preferred +over those that don't, even when the unruly spelling is +more common. +Thus, in American usage, `modelled', `sizeable', and `judgment' are +rejected in favor of `modeled', `sizable', and `judgement'. +Agglutinated variants are shunned: `crewmember' and `backyard' +cede to `crew member' and `back yard' (noun) or `back-yard' +(adjective). +.SH FILES +.TF /sys/lib/brspell +.TP +.B /sys/lib/amspell +American spelling list +.TP +.B /sys/lib/brspell +British spelling list +.TP +.B /bin/aux/sprog +The actual spelling checker. +It expects one word per line on standard input, +and takes the same arguments as +.IR spell . +.SH SOURCE +.TF /sys/src/cmd/spell +.TP +.B /rc/bin/spell +the script +.TP +.B /sys/src/cmd/spell +source for +.I sprog +.SH SEE ALSO +.IR deroff (1) +.SH BUGS +The heuristics of +.IR deroff (1) +used to excise formatting information are imperfect. +.br +The spelling list's coverage is uneven; +in particular biology, medicine, and chemistry, and +perforce proper names, +not to mention languages other than English, +are covered very lightly. diff --git a/static/plan9-4e/man1/spin.1 b/static/plan9-4e/man1/spin.1 new file mode 100644 index 00000000..99f99925 --- /dev/null +++ b/static/plan9-4e/man1/spin.1 @@ -0,0 +1,149 @@ +.TH SPIN 1 +.SH NAME +spin \- verification tool for concurrent systems +.SH SYNOPSIS +.B spin +[ +.BI -n N +] +[ +.B -cplgrsmv +] +[ +.B -iat +] +[ +.B -V +] +[ +.I file +] +.SH DESCRIPTION +.I Spin +is a tool for analyzing the logical consistency of +concurrent systems, specifically communication protocols. +The system is specified in a guarded command language called +.SM PROMELA\c +\&. +The language, described in the references, +allows for the dynamic creation of processes, +nondeterministic case selection, loops, gotos, +variables, and the specification of correctness requirements. +The tool has fast algorithms for analyzing arbitrary +liveness and safety conditions. +.PP +Given a model system specified in +.SM PROMELA\c +, +.I spin +can perform interactive, guided, or random simulations +of the system's execution +or it can generate a C program that performs an exhaustive +or approximate verification of the system. +The verifier can check, for instance, if user specified system +invariants are violated during a protocol's execution, or +if non-progress execution cycles exist. +.PP +Without any options the program performs a random simulation of the system +defined in the input +.IR file , +default standard input. +The option +.BI -n N +sets the random seed to the integer value +.IR N . +.PP +The group of options +.B -pglmrsv +is used to set the level of information reported +about the simulation run. +Every line of output normally contains a reference to the source +line in the specification that caused it. +.TP +.B c +Show message send and receive operations in tabular form, but +no other information about the execution. +.TP +.B p +Show at each time step which process changed state and what source +statement was executed. +.TP +.B l +In combination with option +.BR p , +show the current value of local variables of the process. +.TP +.B g +Show the value of global variables at each time step. +.TP +.B r +Show all message-receive events, giving +the name and number of the receiving process +and the corresponding source line number. +For each message parameter, show +the message type and the message channel number and name. +.TP +.B s +Show all message-send events. +.TP +.B m +Ordinarily, a send action will be delayed if the +target message buffer if full. +With this option a message sent to a full buffer is lost. +The option can be combined with +.B -a +(see below). +.TP +.B v +Verbose mode: add extra detail and include more warnings. +.TP +.BI i +Perform an interactive simulation. +.TP +.B a +Generate a protocol-specific verifier. +The output is written into a set of C files, named +.BR pan. [ cbhmt ], +that can be compiled +.RB ( "cc pan.c" ) +to produce an executable verifier. +Systems that require more memory than available +on the target machine can still be analyzed by compiling +the verifier with a bit state space: +.IP +.B " cc -DBITSTATE pan.c +.IP +This collapses the state space to 1 bit per system state, +with minimal side-effects. +Partial order reduction rules normally take effect during the +verification unless the compiler directive +.B -DNOREDUCE +is used. +.IP +The compiled verifiers have their own sets of options, +which can be seen by running them with option +.BR -? . +.TP +.B t +If the verifier finds a violation of a correctness property, +it writes an error trail. +The trail can be inspected in detail by invoking +.I spin +with the +.B -t +option. +In combination with the options +.BR pglrsv , +different views of the error sequence are then be obtained. +.TP +.B V +Print the version number and exit. +.SH SEE ALSO +G.J. Holzmann, +.I +Design and Validation of Computer Protocols, +Prentice Hall, 1991. +.br +\(em, ``Using +.SM SPIN\c +\&''. diff --git a/static/plan9-4e/man1/split.1 b/static/plan9-4e/man1/split.1 new file mode 100644 index 00000000..0f169bc7 --- /dev/null +++ b/static/plan9-4e/man1/split.1 @@ -0,0 +1,76 @@ +.TH SPLIT 1 +.CT 1 files +.SH NAME +split \- split a file into pieces +.SH SYNOPSIS +.B split +[ +.I option ... +] +[ +.I file +] +.SH DESCRIPTION +.I Split +reads +.I file +(standard input by default) +and writes it in pieces of 1000 +lines per output file. +The names of the +output files are +.BR xaa , +.BR xab , +and so on to +.BR xzz . +The options are +.TP +.BI - n +Split into +.IR n -line +pieces. +.TP +.BI -e " expression" +File divisions occur at each line +that matches a regular +.IR expression ; +see +.IR regexp (6). +Multiple +.B -e +options may appear. +If a subexpression of +.I expression +is contained in parentheses +.BR ( ... ) , +the output file name is the portion of the +line which matches the subexpression. +.TP +.BI -f " stem +Use +.I stem +instead of +.B x +in output file names. +.TP +.BI -s " suffix +Append +.I suffix +to names identified under +.BR -e . +.TP +.B -x +Exclude the matched input line from the output file. +.TP +.B -i +Ignore case in option +.BR -e ; +force output file names (excluding the suffix) +to lower case. +.SH SOURCE +.B /sys/src/cmd/split.c +.SH SEE ALSO +.IR sed (1), +.IR awk (1), +.IR grep (1), +.IR regexp (6) diff --git a/static/plan9-4e/man1/src.1 b/static/plan9-4e/man1/src.1 new file mode 100644 index 00000000..f6e22ce9 --- /dev/null +++ b/static/plan9-4e/man1/src.1 @@ -0,0 +1,83 @@ +.TH SRC 1 +.SH NAME +src \- find source code for executable +.SH SYNOPSIS +.B src +[ +.B -n +] +[ +.B -s +.I symbol +] +.I file +.B ... +.SH DESCRIPTION +.I Src +examines the named +.I files +to find the corresponding source code, which is then sent to the editor using +.B B +(see +.IR sam (1)). +If +.I file +is an +.IR rc (1) +script, the source is the file itself. +If +.I file +is an executable, the source is defined to be the single file containing the +definition of +.B main +and +.I src +will point the editor at the line that begins the definition. +.I Src +uses +.IR db (1) +to extract the symbol table information that identifies the source. +.PP +.I Src +looks for each +.I file +in the current directory, in +.BR /bin , +and in the subdirectories of +.BR /bin , +in that order. +.PP +The +.B -n +flag causes +.B src +to print the file name but not send it to the editor. +The +.B -s +flag identifies a +.I symbol +other than +.B main +to locate. +.SH EXAMPLES +Find the source to the +.B main +routine in +.BR /bin/ed : +.IP +.EX +src ed +.EE +.PP +Find the source for +.BR strcmp : +.IP +.EX +src -s strcmp rc +.EE +.SH SOURCE +.B /rc/bin/src +.SH "SEE ALSO" +.IR db (1), +.IR plumb (1), +.IR sam (1). diff --git a/static/plan9-4e/man1/ssh.1 b/static/plan9-4e/man1/ssh.1 new file mode 100644 index 00000000..f2dc79ec --- /dev/null +++ b/static/plan9-4e/man1/ssh.1 @@ -0,0 +1,338 @@ +.TH SSH 1 +.SH NAME +ssh, sshnet, scp, sshserve, ssh_genkey \- secure login and file copy from/to Unix or Plan 9 +.SH SYNOPSIS +.B ssh +[ +.B -CiImPprvw +] +[ +.B -A +.I authlist +] +[ +.B -c +.I cipherlist +] +[ +.B -[lu] +.I user +] +.RI [ user\fB@ ] host +[ +.I cmd +[ +.I args +\&... ]] +.PP +.B sshnet +[ +.B -A +.I authlist +] +[ +.B -c +.I cipherlist +] +[ +.B -m +.I mtpt +] +.RI [ user\fB@ ] host +.PP +.B scp +[host:]file [host:]file +.br +.B scp +[host:]file ... [host:]dir +.PP +.B aux/sshserve +[ +.B -p +] +.I address +.PP +.B aux/ssh_genkey +[ +.I basename +] +.SH DESCRIPTION +.I Ssh +allows authenticated login over an encrypted channel to hosts that +support the ssh protocol (see the RFC listed below for encryption and +authentication details). +.LP +.I Ssh +takes the host name of the machine to connect to as its mandatory argument. +It may be specified as a domain name or an IP address. +Normally, login is attempted using the user name from /dev/user. +.PP +Command-line options are: +.TP +.B -C +force input to be read in cooked mode: +``line at a time'' with local echo. +.TP +.B -i +force interactive mode. +In interactive mode, +.I ssh +prompts for passwords and confirmations of +new host keys when necessary. +(In non-interactive mode, password requests +are rejected and unrecognized host keys are +cause for disconnecting.) +By default, +.I ssh +runs in interactive mode only when its +input file descriptor is +.BR /dev/cons . +.TP +.B -I +force non-interactive mode. +.TP +.B -m +disable the +.RB control- \e +menu, described below. +.TP +.B -p +force pseudoterminal request. +The +.I ssh +protocol, grounded in Unix tradition, +differentiates between connections +that request controlling pseudoterminals +and those that do not. +By default, +.I ssh +requests a pseudoterminal only when no +.I command +is given. +.TP +.B -P +force no pseudoterminal request. +.TP +.B -r +strip carriage returns. +.TP +.B -v +enable verbose feedback during the connection and authentication process. +.TP +.B -w +notify the remote side whenever the window changes size. +.TP +.BR - [ lu ] "\fI user +specify user name. +This option is deprecated in favor of the +.IB user @ hostname +syntax. +.TP +.B "-A\fI authlist +specify an ordered space-separated list of authentication protocols to try. +The full set of authentication protocols is +.B rsa +(RSA using +.IR factotum (4) +to moderate key usage), +.B password +(use a password gathered from factotum), +and +.B tis +(challenge-response). +The default list is all three in that order. +.TP +.B "-c\fI cipherlist +specify an ordered space-separated list of allowed ciphers to use when encrypting the channel. +The full set of ciphers is +.B des +(standard DES), +.B 3des +(a somewhat doubtful variation on triple DES), +.B blowfish +(Bruce Schneier's Blowfish), +.B rc4 +(RC4), +and +.B none +(no encryption). +The default cipher list is +.B blowfish +.B rc4 +.BR 3des . +.PD +.PP +The +.RB control\- \e +character is a local escape, as in +.IR con (1). +It prompts with +.BR >>> . +Legitimate responses to the prompt are +.TP +.B q +Exit. +.TP +.B . +Return from the escape. +.TP +.B !cmd +Run the command with the network connection as its +standard input and standard output. +Standard error will go to the screen. +.TP +.B r +Toggle printing of carriage returns. +.PD +.LP +If no command is specified, +a login session is started on the remote +host. +Otherwise, the command is executed with its arguments. +.LP +.I Ssh +establishes a connection with an ssh daemon on the remote host. +The daemon sends to +.I ssh +its RSA public host key and session key. +Using these, +.I ssh +sends a session key which, presumably, only the +daemon can decipher. After this, both sides start encrypting their +data with this session key. +.LP +When the daemon's host key has been received, +.I ssh +looks it up in +.B $home/lib/keyring +and in +.BR /sys/lib/ssh/keyring . +If +the key is found there, and it matches the received key, +.I ssh +is satisfied. If not, +.I ssh +reports this and offers to add the key to +.BR $home/lib/keyring . +.LP +Over the encrypted channel, +.I ssh +attempts to convince the daemon to accept the call +using the listed authentication protocols +(see the +.B -A +option above). +.LP +The preferred way to authenticate is a +.IR netkey -style +challenge/response or via a SecurID token. +.I Ssh +users on other systems than Plan 9 should enable \s-2TIS_A\s0uthentication. +.LP +When the connection is authenticated, the given command line, +(by default, a login shell) is executed on the remote host. +.sp 1 +The SSH protocol allows clients to make outgoing TCP calls via the server. +.I Sshnet +establishes an SSH connection and, rather than execute a remote command, +presents the remote server's TCP stack as a network stack +(see the discussion of TCP in +.IR ip (3)) +mounted at +.I mtpt +(default +.BR /net ). +The +.B -A +and +.B -c +arguments are as in +.IR ssh . +.sp 1 +.I Scp +uses +.I ssh +to copy files from one host to another. A remote file is identified by +a host name, a colon and a file name (no spaces). +.I Scp +can copy files from remote hosts and to remote hosts. +.sp 1 +.I Sshserve +is the server that services +.I ssh +calls from remote hosts. +The +.B -A +and +.B -c +options set valid authentication methods and ciphers +as in +.IR ssh , +except that there is no +.B rsa +authentication method. +Unlike in +.IR ssh , +the list is not ordered: the server presents a set and the client makes the choice. +The default sets are +.B tis +and +.B blowfish +.B rc4 +.BR 3des . +By default, users start with the namespace defined in +.BR /lib/namespace . +Users in group +.B noworld +in +.B /adm/users +start with the namespace defined in +.BR /lib/namespace.noworld . +.I Sshserve +does not provide the TCP forwarding functionality used +by +.IR sshnet , +because many Unix clients present +this capability in an insecure manner. +.PP +.I Ssh_genkey +generates an RSA key set, writing the +private key to +.IB basename .secret +and the public key to +.IB basename .public\fR. +.I Ssh_genkey +also writes +a secret key in the style expected by factotum +to +.IB basename .secret.factotum\fR. +The default +.B basename +is +.BR /sys/lib/ssh/hostkey , +so running it with no arguments +will generate an RSA key set +for the file server in use. +.SH FILES +.TF /sys/lib/ssh/hostkey.public +.TP +.B /sys/lib/ssh/hostkey.public +Public key for the host on which the program runs. +.TP +.B /sys/lib/ssh/hostkey.secret +Secret key for the host on which the program runs. This file must +be owned and be readable by bootes only. +.TP +.B /sys/lib/ssh/keyring +System keyring file containing public keys for remote ssh clients and servers. +.TP +.B /usr/\fIuser\fP/lib/keyring +Personal keyring file containing public keys for remote ssh clients and +servers. +.SH SOURCE +.B /sys/src/cmd/ssh +.SH "SEE ALSO" +.IR /sys/src/cmd/ssh/RFC* +.br +.IR factotum (4), +.IR authsrv (6) diff --git a/static/plan9-4e/man1/stop.1 b/static/plan9-4e/man1/stop.1 new file mode 100644 index 00000000..46e88772 --- /dev/null +++ b/static/plan9-4e/man1/stop.1 @@ -0,0 +1,36 @@ +.TH STOP 1 +.SH NAME +stop, start \- print commands to stop and start processes +.SH SYNOPSIS +.B stop +.I name +.PP +.B start +.I name +.SH DESCRIPTION +.I Stop +prints commands that will cause all processes called +.I name +and owned by the current user to be stopped. +The processes can then be debugged when they are in a consistent state. +.PP +.I Start +prints commands that will cause all stopped processes called +.I name +and owned by the current user to be started again. +.PP +Use the +.B send +command of +.IR rio (1), +or pipe into +.IR rc (1) +to execute the commands. +.SH SOURCE +.B /rc/bin/stop +.br +.B /rc/bin/start +.SH "SEE ALSO" +.IR ps (1), +.IR kill (1), +.IR proc (3) diff --git a/static/plan9-4e/man1/strings.1 b/static/plan9-4e/man1/strings.1 new file mode 100644 index 00000000..d72ffbb1 --- /dev/null +++ b/static/plan9-4e/man1/strings.1 @@ -0,0 +1,28 @@ +.TH STRINGS 1 +.SH NAME +strings \- extract printable strings +.SH SYNOPSIS +.B strings +[ +.I file ... +] +.SH DESCRIPTION +.I Strings +finds and prints strings containing 6 or more +consecutive printable UTF-encoded characters +in a (typically) binary file, default +standard input. +Printable characters are taken to be +.SM ASCII +characters from blank through tilde (hexadecimal 20 through 7E), inclusive, +and +all other characters from value 00A0 to FFFF. +Strings reports +the decimal offset within the file at which the string starts and the text +of the string. If the string is longer than 70 runes the line is +terminated by three dots and the printing is resumed on the next +line with the offset of the continuation line. +.SH SOURCE +.B /sys/src/cmd/strings.c +.SH SEE ALSO +.IR nm (1) diff --git a/static/plan9-4e/man1/strip.1 b/static/plan9-4e/man1/strip.1 new file mode 100644 index 00000000..bed917b1 --- /dev/null +++ b/static/plan9-4e/man1/strip.1 @@ -0,0 +1,19 @@ +.TH STRIP 1 +.SH NAME +strip \- remove symbols from binary files +.SH SYNOPSIS +.B strip +[ +.I file ... +] +.SH DESCRIPTION +.I Strip +removes symbol table segments from executable files, rewriting the files in place. +Stripping a file requires write permission of the file +and the directory it is in. +If no file is given, +standard input is stripped and the result written to standard output. +.SH SOURCE +.B /sys/src/cmd/strip.c +.SH "SEE ALSO" +.IR a.out (6) diff --git a/static/plan9-4e/man1/sum.1 b/static/plan9-4e/man1/sum.1 new file mode 100644 index 00000000..d981c8c7 --- /dev/null +++ b/static/plan9-4e/man1/sum.1 @@ -0,0 +1,77 @@ +.TH SUM 1 +.SH NAME +sum, md5sum, sha1sum \- sum and count blocks in a file +.SH SYNOPSIS +.B sum +[ +.B -5r +] +[ +.I file ... +] +.PP +.B md5sum +[ +.I file ... +] +.PP +.B sha1sum +[ +.I file ... +] +.SH DESCRIPTION +By default, +.I sum +calculates and prints a 32-bit hexadecimal checksum, +a byte count, +and the name of +each +.IR file . +The checksum is also a function of the input length. +If no files are given, +the standard input is +summed. +Other summing algorithms are available. +The options are +.TP +.B -r +Sum with the algorithm of System V's +.B "sum -r" +and print the length (in 1K blocks) of the input. +.TP +.B -5 +Sum with System V's default algorithm +and print the length (in 512-byte blocks) of the input. +.PP +.I Sum +is typically used to look for bad spots, +to validate a file communicated over +some transmission line or +as a quick way to determine if two files on different machines might be the same. +.PP +.B Md5sum +computes the 32 hex digit RSA Data Security, Inc. MD5 Message-Digest Algorithm +described in RFC1321. +If no +.I files +are given, +the standard input is +summed. +.PP +.B Sha1sum +computes the 40 hex digit National Institute of Standards and Technology SHA1 secure hash algorithm +described in FIPS PUB 180-1. +If no +.I files +are given, +the standard input is +summed. +.SH SOURCE +.B /sys/src/cmd/sum.c +.br +.B /sys/src/cmd/md5sum.c +.br +.B /sys/src/cmd/sha1sum.c +.SH "SEE ALSO" +.IR cmp (1), +.IR wc (1) diff --git a/static/plan9-4e/man1/syscall.1 b/static/plan9-4e/man1/syscall.1 new file mode 100644 index 00000000..18746c67 --- /dev/null +++ b/static/plan9-4e/man1/syscall.1 @@ -0,0 +1,77 @@ +.TH SYSCALL 1 +.SH NAME +syscall \- test a system call +.SH SYNOPSIS +.B syscall +[ +.B -osx +] +.I entry +[ +.I arg ... +] +.SH DESCRIPTION +.I Syscall +invokes the system call +.I entry +with the given arguments. +(Some functions, such as +.I write +and +.IR read (2), +although not strictly system calls, are valid +.IR entries .) +It prints the return value and the error string, if there was an error. +An argument is either an integer constant as in C (its value is passed), +a string (its address is passed), +or the literal +.B buf +(a pointer to a 1 Kbyte buffer is passed). +.PP +If +.B -o +is given, the contents of the 1 Kbyte buffer are printed as a zero-terminated string +after the system call is done. +The +.B -x +and +.B -s +options are similar, but +.B -x +formats the data as hexadecimal bytes, while +.B -s +interprets the data as a +.IR stat (5) +message and formats it similar to the style of +.B ls +.B -lqm +(see +.IR ls (1)), +with extra detail about the modify and access times. +.SH EXAMPLES +Write a string to standard output: +.IP +.EX +syscall write 1 hello 5 +.EE +.PP +Print information about the file connected to standard input: +.IP +.EX +syscall -s fstat 0 buf 1024 +.EE +.SH SOURCE +.B /sys/src/cmd/syscall +.SH "SEE ALSO" +Section 2 of this manual. +.SH DIAGNOSTICS +If +.I entry +is not known to +.IR syscall , +the exit status is +.LR unknown . +If the system call succeeds, the exit status is null; +otherwise the exit status is the string that +.IR errstr (2) +returns. diff --git a/static/plan9-4e/man1/tail.1 b/static/plan9-4e/man1/tail.1 new file mode 100644 index 00000000..b2d880b6 --- /dev/null +++ b/static/plan9-4e/man1/tail.1 @@ -0,0 +1,87 @@ +.TH TAIL 1 +.SH NAME +tail \- deliver the last part of a file +.SH SYNOPSIS +.B tail +[ +.BR +- \fInumber\fP[ lbc ][ rf ] +] +[ +.I file +] +.PP +.B tail +[ +.B -fr +] +[ +.B -n +.I nlines +] +[ +.B -c +.I nbytes +] +[ +.I file +] +.SH DESCRIPTION +.I Tail +copies the named file to the standard output beginning +at a designated place. +If no file is named, the standard input is copied. +.PP +Copying begins at position +.BI + number +measured from the beginning, or +.BI - number +from the end of the input. +.I Number +is counted in lines, 1K blocks or bytes, +according to the appended flag +.LR l , +.LR b , +or +.LR c . +Default is +.B -10l +(ten ell). +.PP +The further flag +.L r +causes tail to print lines from the end of the file in reverse order; +.L f +(follow) causes +.IR tail , +after printing to the end, to keep watch and +print further data as it appears. +.PP +The second syntax is that promulgated by POSIX, where +the +.I numbers +rather than the options are signed. +.SH EXAMPLES +.TP +.B tail file +Print the last 10 lines of a file. +.TP +.B tail +0f file +Print a file, and continue to watch +data accumulate as it grows. +.TP +.B sed 10q file +Print the first 10 lines of a file. +.SH SOURCE +.B /sys/src/cmd/tail.c +.SH BUGS +Tails relative to the end of the file +are treasured up in a buffer, and thus +are limited in length. +.br +According to custom, option +.BI + number +counts lines from 1, and counts +blocks and bytes from 0. +.br +.I Tail +is ignorant of UTF. diff --git a/static/plan9-4e/man1/tapefs.1 b/static/plan9-4e/man1/tapefs.1 new file mode 100644 index 00000000..7e3cc630 --- /dev/null +++ b/static/plan9-4e/man1/tapefs.1 @@ -0,0 +1,100 @@ +.TH TAPEFS 1 +.SH NAME +32vfs, cpiofs, tapfs, tarfs, tpfs, v6fs, v10fs \- mount archival file systems +.SH SYNOPSIS +.B fs/32vfs +[ +.B -m +.I mountpoint +] +[ +.B -p +.I passwd +] +[ +.B -g +.I group +] +.I file +.br +.B fs/cpiofs +.br +.B fs/tapfs +.br +.B fs/tarfs +.br +.B fs/tpfs +.br +.B fs/v6fs +.br +.B fs/v10fs +.br +.SH DESCRIPTION +These commands interpret data from traditional tape or file system formats +stored in +.IR file , +and mount their contents (read-only) into a Plan 9 file system. +The optional +.B -p +and +.B -g +flags specify Unix-format password (respectively group) files +that give the mapping between the numeric user- and group-ID +numbers on the media and the strings reported by Plan 9 status +inquiries. +The +.B -m +flag introduces the name at which the new file system should be +attached; the default is +.BR /n/tapefs . +.PP +.I 32vfs +interprets raw disk images of 32V systems, which are ca. 1978 research Unix systems for +the VAX, and also pre-FFS Berkeley VAX systems (1KB block size). +.PP +.I Cpiofs +interprets +.B cpio +tape images (constructed with +.BI cpio 's +.B c +flag). +.PP +.I Tarfs +interprets +.I tar +tape images. +.PP +.I Tpfs +interprets +.I tp +tapes from the Fifth through Seventh Edition research Unix systems. +.PP +.I Tapfs +interprets +.I tap +tapes from the pre-Fifth Edition era. +.PP +.I V6fs +interprets disk images from the +Fifth and Sixth edition research Unix systems (512B block size). +.PP +.I V10fs +interprets disk images from the +Tenth Edition research Unix systems (4KB block size). +.SH SOURCE +.PP +These commands are constructed in a highly stereotyped +way using the files +.I fs.c +and +.I util.c +in +.BR /sys/src/cmd/tapefs , +which in +turn derive substantially from +.IR ramfs (4). +.SH "SEE ALSO +Section 5 +.IR passim , +.IR ramfs (4). diff --git a/static/plan9-4e/man1/tar.1 b/static/plan9-4e/man1/tar.1 new file mode 100644 index 00000000..c0e25ba5 --- /dev/null +++ b/static/plan9-4e/man1/tar.1 @@ -0,0 +1,110 @@ +.TH TAR 1 +.SH NAME +tar \- archiver +.SH SYNOPSIS +.B tar +.I key +[ +.I file ... +] +.SH DESCRIPTION +.PP +.I Tar +saves and restores file trees. +It is most often used to transport a tree of files from one +system to another. +The +.I key +is a string that contains +at most one function letter plus optional modifiers. +Other arguments to the command are names of +files or directories to be dumped or restored. +A directory name implies all the contained +files and subdirectories (recursively). +.PP +The function is one of the following letters: +.TP +.B c +Create a new archive with the given files as contents. +.TP +.B x +Extract the named files from the archive. +If a file is a directory, the directory is extracted recursively. +Modes are restored if possible. +If no file argument is given, extract the entire archive. +If the archive contains multiple entries for a file, +the latest one wins. +.TP +.B t +List all occurrences of each +.I file +in the archive, or of all files if there are no +.I file +arguments. +.TP +.B r +The named files +are appended to the archive. +.PP +The modifiers are: +.TP +.B v +(verbose) +Print the name of each file treated +preceded by the function letter. +With +.BR t , +give more details about the +archive entries. +.TP +.B f +Use the next argument as the name of the archive instead of +the default standard input (for keys +.B x +and +.BR t ) +or standard output (for keys +.B c +and +.BR r ). +.TP +.B u +Use the next (numeric) argument as the user id for files in +the output archive. This is only useful when moving files to +a non-Plan 9 system. +.TP +.B g +Use the next (numeric) argument as the group id for files in +the output archive. +.TP +.B R +When extracting, ignore leading slash on file names, +i.e., extract all files relative to the current directory. +.TP +.B T +Modifies the behavior of +.B x +to set the mode and modified time +of each file to that specified in the archive. +.SH EXAMPLES +.I Tar +can be used to copy hierarchies thus: +.IP +.EX +{cd fromdir && tar c .} | {cd todir && tar xT} +.EE +.SH SOURCE +.B /sys/src/cmd/tar.c +.SH SEE ALSO +.IR ar (1), +.IR bundle (1), +.IR tapefs (1) +.SH BUGS +There is no way to ask for any but the last +occurrence of a file. +.br +File path names are limited to +100 characters. +.br +The tar format allows specification of links and symbolic links, +concepts foreign to Plan 9: they are ignored. diff --git a/static/plan9-4e/man1/tbl.1 b/static/plan9-4e/man1/tbl.1 new file mode 100644 index 00000000..921e9e85 --- /dev/null +++ b/static/plan9-4e/man1/tbl.1 @@ -0,0 +1,285 @@ +.TH TBL 1 +.SH NAME +tbl \- format tables for nroff or troff +.SH SYNOPSIS +.B tbl +[ +.I file ... +] +.SH DESCRIPTION +.I Tbl +is a preprocessor for formatting tables for +.I nroff +or +.IR troff (1). +The input +.I files +are copied to the standard output, +except for segments of the form +.IP +.nf +.B .TS +.IB options " ; +.IB format " . +.I data +.B .T& +.IB format " . +.I data +\&. . . +.B .TE +.fi +.LP +which describe tables +and are replaced by +.I troff +requests to lay out the tables. +If no arguments are given, +.I tbl +reads the standard input. +.PP +The (optional) +.I options +line is terminated by a semicolon and contains one or more +of +.RS +.TF linesize(n) +.TP +.B center +center the table; default is left-adjust +.TP +.B expand +make table as wide as current line length +.TP +.B box +.TP +.B doublebox +enclose the table in a box or double box +.TP +.B allbox +enclose every item in a box +.TP +.BI tab( x ) +use +.I x +to separate input items; default is tab +.TP +.BI linesize( n ) +set rules in +.IR n -point +type +.TP +.BI delim( xy ) +recognize +.I x +and +.I y +as +.IR eqn (1) +delimiters +.PD +.RE +.PP +Each line, except the last, of the obligatory +.I format +describes one row of the table. +The last line describes all rows until the next +.BR .T& , +where the format changes, +or the end of the table at +.BR .TE . +A format is specified by key letters, one per column, either upper or lower case: +.RS +.TP 0 +.B L +Left justify: the default for +columns without format keys. +.PD0 +.TP +.B R +Right justify. +.TP +.B C +Center. +.TP +.B N +Numeric: align at decimal point (inferred for integers) or at +.LR \e& . +.TP +.B S +Span: extend previous column across this one. +.TP +.B A +Alphabetic: left-aligned within column, widest item centered, indented relative to +.B L +rows. +.TP +.B ^ +Vertical span: continue item from previous row into this row. +.TP +.B - +Draw a horizontal rule in this column. +.TP +.B = +Draw a double horizontal rule in this column. +.PD +.RE +.PP +Key letters may be followed by modifiers, also either case: +.RS +.TP \w'\fLF\fIfont\fLXX'u +.B | +Draw vertical rule between columns. +.PD0 +.TP +.B || +Draw a double vertical rule between columns. +.TP +.I n +Gap between column is +.I n +ens wide. +Default is 3. +.TP +.BI F font +Use specified +.IR font . +.B B +and +.B I +mean +.B FB +and +.BR FI . +.TP +.B T +Begin vertically-spanned item at top row of range; default is +vertical centering (with +.LR ^ ). +.TP +.BI P n +Use point size +.IR n . +.TP +.BI V n +Use +.IR n -point +vertical spacing in text block; signed +.I n +means relative change. +.TP +.BI W( n ) +Column width as a +.I troff +width specification. +Parens are optional if +.I n +is a simple integer. +.TP +.B E +Equalize the widths of all columns marked +.BR E . +.PD +.RE +.PP +Each line of +.I data +becomes one row of the table; tabs separate items. +Lines beginning with +.L . +are +.I troff +requests. +Certain special data items are recognized: +.RS +.TP 0 +.B _ +Draw a horizontal rule in this column. +.PD0 +.TP +.B = +Draw a double horizontal rule in this column. +A data line consisting of a single +.L _ +or +.L = +draws the rule across the whole table. +.TP +.B \e_ +Draw a rule only as wide as the contents of the column. +.TP +.BI \eR x +Repeat character +.I x +across the column. +.TP +.B \e^ +Span the previous item in this column down into this row. +.TP +.B T{ +The item is a text block to be separately formatted +by +.I troff +and placed in the table. +The block continues to the next line beginning with +.BR T} . +The remainder of the data line follows at that point. +.PD +.RE +.PP +When it is used in a pipeline with +.IR eqn , +the +.I tbl +command should be first, to minimize the volume +of data passed through +pipes. +.SH EXAMPLES +.ds tb \fR\fP +Let \*(tb +represent a tab (which should +be typed as a genuine tab). +.if t .2C +.EX +\&.TS +c s s +c c s +c c c +l n n. +Household Population +Town\*(tbHouseholds +\*(tbNumber\*(tbSize +Bedminster\*(tb789\*(tb3.26 +Bernards Twp.\*(tb3087\*(tb3.74 +Bernardsville\*(tb2018\*(tb3.30 +\&.TE +.if t \{\0 +\0 +\0\} +.if n .PP +.TS +c s s +c c s +c c c +l n n. +Household Population +Town Households + Number Size +Bedminster 789 3.26 +Bernards Twp. 3087 3.74 +Bernardsville 2018 3.30 +.TE +.EE +.if t \{.sp3 +.1C\} +.SH SOURCE +.B /sys/src/cmd/tbl +.SH SEE ALSO +.IR troff (1), +.IR eqn (1), +.IR doctype (1) +.br +M. E. Lesk and L. L. Cherry, +``TBL\(ema Program to Format Tables'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2. diff --git a/static/plan9-4e/man1/tcs.1 b/static/plan9-4e/man1/tcs.1 new file mode 100644 index 00000000..51b76a7d --- /dev/null +++ b/static/plan9-4e/man1/tcs.1 @@ -0,0 +1,167 @@ +.TH TCS 1 +.SH NAME +tcs \- translate character sets +.SH SYNOPSIS +.B tcs +[ +.B -slcv +] +[ +.B -f +.I ics +] +[ +.B -t +.I ocs +] +[ +.I file ... +] +.SH DESCRIPTION +.I Tcs +interprets the named +.I file(s) +(standard input default) as a stream of characters from the +.I ics +character set or format, converts them to runes, +and then converts them into a stream of characters from the +.I ocs +character set or format on the standard output. +The default value for +.I ics +and +.I ocs +is +.BR utf , +the +.SM UTF +encoding described in +.IR utf (6). +The +.B -l +option lists the character sets known to +.IR tcs . +Processing continues in the face of conversion errors (the +.B -s +option prevents reporting of these errors). +The +.B -c +option forces the output to contain only correctly converted characters; +otherwise, +.B 0x80 +characters will be substituted for +.SM UTF +encoding errors and +.B 0xFFFD +characters will substituted for unknown characters. +.PP +The +.B -v +option generates various diagnostic and summary information on standard error, +or makes the +.B -l +output more verbose. +.PP +.I Tcs +recognizes an ever changing list of character sets. +In particular, it supports a variety of Russian and Japanese encodings. +Some of the supported encodings are +.TF jis-kanji +.TP +.B utf +The Plan 9 +.SM UTF +encoding, known by ISO as UTF-8 +.TP +.B utf1 +The deprecated original +.SM UTF +encoding from ISO 10646 +.TP +.B ascii +7-bit ASCII +.TP +.B 8859-1 +Latin-1 (Central European) +.TP +.B 8859-2 +Latin-2 (Czech .. Slovak) +.TP +.B 8859-3 +Latin-3 (Dutch .. Turkish) +.TP +.B 8859-4 +Latin-4 (Scandinavian) +.TP +.B 8859-5 +Part 5 (Cyrillic) +.TP +.B 8859-6 +Part 6 (Arabic) +.TP +.B 8859-7 +Part 7 (Greek) +.TP +.B 8859-8 +Part 8 (Hebrew) +.TP +.B 8859-9 +Latin-5 (Finnish .. Portuguese) +.TP +.B koi8 +KOI-8 (GOST 19769-74) +.TP +.B jis-kanji +ISO 2022-JP +.TP +.B ujis +EUC-JX: JIS 0208 +.TP +.B ms-kanji +Microsoft, or Shift-JIS +.TP +.B jis +(from only) guesses between ISO 2022-JP, EUC or Shift-Jis +.TP +.B gb +Chinese national standard (GB2312-80) +.TP +.B big5 +Big 5 (HKU version) +.TP +.B unicode +Unicode Standard 1.0 +.TP +.B tis +Thai character set plus +.SM ASCII +(TIS 620-1986) +.TP +.B msdos +IBM PC: CP 437 +.TP +.B atari +Atari-ST character set +.SH EXAMPLES +.TP +.B tcs -f 8859-1 +Convert 8859-1 (Latin-1) characters into +.SM UTF +format. +.TP +.B tcs -s -f jis +Convert characters encoded in one of several shift JIS encodings into +.SM UTF +format. +Unknown Kanji will be converted into +.B 0xFFFD +characters. +.TP +.B tcs -lv +Print an up to date list of the supported character sets. +.SH SOURCE +.B /sys/src/cmd/tcs +.SH SEE ALSO +.IR ascii (1), +.IR rune (2), +.IR utf (6). diff --git a/static/plan9-4e/man1/tee.1 b/static/plan9-4e/man1/tee.1 new file mode 100644 index 00000000..d237fb7f --- /dev/null +++ b/static/plan9-4e/man1/tee.1 @@ -0,0 +1,28 @@ +.TH TEE 1 +.SH NAME +tee \- pipe fitting +.SH SYNOPSIS +.B tee +[ +.B -i +] +[ +.B -a +] +.I files +.SH DESCRIPTION +.I Tee +transcribes the standard input to the standard +output and makes copies in the +.IR files . +The options are +.TP +.B -i +Ignore interrupts. +.TP +.B -a +Append the output to the +.I files +rather than rewriting them. +.SH SOURCE +.B /sys/src/cmd/tee.c diff --git a/static/plan9-4e/man1/tel.1 b/static/plan9-4e/man1/tel.1 new file mode 100644 index 00000000..5774255d --- /dev/null +++ b/static/plan9-4e/man1/tel.1 @@ -0,0 +1,110 @@ +.TH TEL 1 +.SH NAME +tel, ppq, iwhois \- look in phone book +.SH SYNOPSIS +.B tel +.I key ... +.PP +.B p +.RB [ -f ] +.I value +.PP +.B ppq +.RB [ -f ] +.IR attribute = value +.PP +.B iwhois +.IR name [ \fL@\f2domain ] +.SH DESCRIPTION +.I Tel +looks up +.I key +in a private telephone book, +.BR $home/lib/tel , +and in the public telephone book, +.BR /lib/tel . +It uses +.IR grep +(with the +.B -i +option to ignore case differences), so the key may be any part of a +name or number. Customarily, the telephone book contains names, +userids, home numbers, and office numbers of users. It also contains +a directory of area codes and miscellaneous people of general +interest. +.PP +.I Ppq +looks up entries in the Lucent personnel database. +Each search is against a single attribute. The +possible search attributes are: +.IP tel +a telephone number. +An entry matches if its telephone number ends in the +digits given in +.IR value . +.IP name +a proper name. +.I Value +must contain a family name, optionally prefixed +with first and middle names or initials separated by '.'s. +For example, emlin, grace.emlin, g.r.emlin can +can be used to look up Grace Roosevelt Emlin. +.IP org +an organization name. +.I Value +can be any prefix string of an organization number. +For example, +.B bl011 +looks up everyone in research while +.B bl011273 +looks up everyone in a single department. +.IP id +a post id. +.I Value +must exactly match the post id. +.PP +The attribute can be explicitly declared, e.g. +.BR tel=5551212 , +or can be inferred from the form of the value using the following criteria: +.IP 1) +A +.I value +containing a '.' implies a name. +.IP 2) +Nothing but digits, '+', and '-' implies a telephone number. +.IP 3) +A mix of digits and letters implies an organization. +.IP 4) +Anything else implies two searches, first with the attribute +.B id +and if that fails, with attribute +.BR name . +.PP +With no flags, +.I ppq +returns for each match a single line containing +the employee's name, title, organization, location, room, telephone number, +and email address. +With +.BR \-f , +.I ppq +returns a fuller multiline entry for each match. +.PP +.I Iwhois +looks up names in the Internet NIC's personnel database. +.I Name +should be a surname optionally followed by a comma and given name. +A different server can be chosen by appending to the name an +.B @ +followed by the server's domain name. +.SH FILES +.TF /lib/tel +.TP +.B /lib/tel +Public telephone number database. +.SH SOURCE +.B /rc/bin/tel +.br +.B /rc/bin/iwhois +.br +.B /sys/src/cmd/ppq.c diff --git a/static/plan9-4e/man1/test.1 b/static/plan9-4e/man1/test.1 new file mode 100644 index 00000000..7de80217 --- /dev/null +++ b/static/plan9-4e/man1/test.1 @@ -0,0 +1,174 @@ +.TH TEST 1 +.SH NAME +test \- set status according to condition +.SH SYNOPSIS +.B test +.I expr +.SH DESCRIPTION +.I Test +evaluates the expression +.IR expr . +If the value is true the exit status is null; otherwise the +exit status is non-null. +If there are no arguments the exit status is non-null. +.PP +The following primitives are used to construct +.IR expr . +.TP "\w'\fIn1 \fL-eq \fIn2\fLXX'u" +.BI -r " file" +True if the file exists (is accessible) and is readable. +.PD0 +.TP +.BI -w " file" +True if the file exists and is writable. +.TP +.BI -x " file" +True if the file exists and has execute permission. +.TP +.BI -e " file +True if the file exists. +.TP +.BI -f " file" +True if the file exists and is a plain file. +.TP +.BI -d " file" +True if the file exists and is a directory. +.TP +.BI -s " file" +True if the file exists and has a size greater than zero. +.TP +.BI -t " fildes +True if the open file whose file descriptor number is +.I fildes +(1 by default) +is the same file as +.BR /dev/cons . +.TP +.BI -A " file" +True if the file exists and is append-only. +.TP +.BI -L " file" +True if the file exists and is exclusive-use. +.TP +.IB s1 " = " s2 +True +if the strings +.I s1 +and +.I s2 +are identical. +.TP +.IB s1 " != " s2 +True +if the strings +.I s1 +and +.I s2 +are not identical. +.TP +s1 +True if +.I s1 +is not the null string. +(Deprecated.) +.TP +.BI -n " s1" +True if the length of string +.I s1 +is non-zero. +.TP +.BI -z " s1" +True if the length of string +.I s1 +is zero. +.TP +.IB n1 " -eq " n2 +True if the integers +.I n1 +and +.I n2 +are arithmetically equal. +Any of the comparisons +.BR -ne , +.BR -gt , +.BR -ge , +.BR -lt , +or +.BR -le +may be used in place of +.BR -eq . +The (nonstandard) construct +.BI -l " string\f1, +meaning the length of +.IR string , +may be used in place of an integer. +.PD +.PP +These primaries may be combined with the +following operators: +.TP "\w'\fL( \fIexpr\fL )XX'u" +.B ! +unary negation operator +.PD0 +.TP +.B -o +binary +.I or +operator +.TP +.B -a +binary +.I and +operator; higher precedence than +.BR -o +.TP +.BI "( " expr " )" +parentheses for grouping. +.PD +.PP +The primitives +.BR -b , +.BR -u , +.BR -g , +and +.BR -s +return false; they are recognized for compatibility with POSIX. +.PP +Notice that all the operators and flags are separate +arguments to +.IR test . +Notice also that parentheses and equal signs are meaningful +to +.I rc +and must be enclosed in quotes. +.SH EXAMPLES +.I Test +is a dubious way to check for specific character strings: +it uses a process to do what an +.IR rc (1) +match or switch statement can do. +The first example is not only inefficient but wrong, because +.I test +understands the purported string +.B \&"-c" +as an option. +.IP +.EX +if (test $1 '=' "-c") echo OK # wrong! +.EE +.LP +A better way is +.IP +.EX +if (~ $1 -c) echo OK +.EE +.PP +Test whether +.L abc +is in the current directory. +.IP +.B test -f abc -o -d abc +.SH SOURCE +.B /sys/src/cmd/test.c +.SH "SEE ALSO" +.IR rc (1) diff --git a/static/plan9-4e/man1/time.1 b/static/plan9-4e/man1/time.1 new file mode 100644 index 00000000..2c6b834b --- /dev/null +++ b/static/plan9-4e/man1/time.1 @@ -0,0 +1,21 @@ +.TH TIME 1 +.SH NAME +time \- time a command +.SH SYNOPSIS +.B time +.I command +[ +.I arg ... +] +.SH DESCRIPTION +The +.I command +is executed with the given arguments; after it is complete, +.I time +reports on standard error the program's elapsed user time, +system time, and real time, in seconds, +followed by the command line. +.SH SOURCE +.B /sys/src/cmd/time.c +.SH "SEE ALSO" +.IR prof (1) diff --git a/static/plan9-4e/man1/touch.1 b/static/plan9-4e/man1/touch.1 new file mode 100644 index 00000000..ac5937ec --- /dev/null +++ b/static/plan9-4e/man1/touch.1 @@ -0,0 +1,35 @@ +.TH TOUCH 1 +.SH NAME +touch \- set modification date of a file +.SH SYNOPSIS +.B touch +[ +.B -c +] +[ +.B -t +.I time +] +.I file ... +.SH DESCRIPTION +.I Touch +attempts to set the modification time of the +.I files +to +.I time +(by default, the current time). +If a +.I file +does not exist, +it will be created unless option +.B -c +is present. +.SH SOURCE +.B /sys/src/cmd/touch.c +.SH SEE ALSO +.IR ls (1), +.IR stat (2), +.IR chmod (1) +.SH BUGS +.I Touch +will not touch directories. diff --git a/static/plan9-4e/man1/tr.1 b/static/plan9-4e/man1/tr.1 new file mode 100644 index 00000000..0e11f5b9 --- /dev/null +++ b/static/plan9-4e/man1/tr.1 @@ -0,0 +1,97 @@ +.TH TR 1 +.SH NAME +tr \- translate characters +.SH SYNOPSIS +.B tr +[ +.B -cds +] +[ +.I string1 +[ +.I string2 +] +] +.SH DESCRIPTION +.I Tr +copies the standard input to the standard output with +substitution or deletion of selected characters (runes). +Input characters found in +.I string1 +are mapped into the corresponding characters of +.IR string2 . +When +.I string2 +is short it is padded to the length of +.I string1 +by duplicating its last character. +Any combination of the options +.B -cds +may be used: +.TP +.B -c +Complement +.IR string1 : +replace it with a lexicographically ordered +list of all other characters. +.TP +.B -d +Delete from input all characters in +.IR string1 . +.TP +.B -s +Squeeze repeated output characters that occur in +.I string2 +to single characters. +.PP +In either string a noninitial sequence +.BI - x\f1, +where +.I x +is any character (possibly quoted), stands for +a range of characters: +a possibly empty sequence of codes running from +the successor of the previous code up through +the code for +.IR x . +The character +.L \e +followed by 1, 2 or 3 octal digits stands for the +character whose +16-bit +value is given by those digits. +The character sequence +.L \ex +followed by 1, 2, 3, or 4 hexadecimal digits stands +for the character whose +16-bit value is given by those digits. +A +.L \e +followed by any other character stands +for that character. +.SH EXAMPLES +Replace all upper-case +.SM ASCII +letters by lower-case. +.IP +.EX +tr A-Z a-z lower +.EE +.PP +Create a list of all +the words in +.L file1 +one per line in +.LR file2 , +where a word is taken to be a maximal string of alphabetics. +.I String2 +is given as a quoted newline. +.IP +.EX +tr -cs A-Za-z ' +\&' file2 +.EE +.SH SOURCE +.B /sys/src/cmd/tr.c +.SH "SEE ALSO" +.IR sed (1) diff --git a/static/plan9-4e/man1/troff.1 b/static/plan9-4e/man1/troff.1 new file mode 100644 index 00000000..db5b9e6f --- /dev/null +++ b/static/plan9-4e/man1/troff.1 @@ -0,0 +1,198 @@ +.TH TROFF 1 +.SH NAME +troff, nroff \- text formatting and typesetting +.SH SYNOPSIS +.B troff +[ +.I option ... +] +[ +.I file ... +] +.PP +.B nroff +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Troff +formats text in the named +.I files +for +printing on a typesetter. +.I Nroff +does the same, but produces output suitable +for typewriter-like devices. +.PP +If no +.I file +argument is present, the standard input is read. +An argument consisting of a single minus +.RB ( - ) +is taken to be +a file name corresponding to the standard input. +The options are: +.nr xx \w'\fL-m\f2name\ \ ' +.TP \n(xxu +.BI -o list +Print pages in the comma-separated +.I list +of numbers and ranges. +A range +.IB N - M +means +.I N +through +.IR M ; +initial +.BI - M +means up to +.IR M ; +final +.IB N - +means from +.I N +to the end. +.TP +.BI -n N +Number first generated page +.IR N . +.TP +.BI -m name +Process the macro file +.BI /sys/lib/tmac/tmac. name +before the input +.IR files . +.TP +.BI -r aN +Set register +.I a +(one character name) to +.IR N . +.TP +.B -i +Read standard input after the input files are exhausted. +.TP +.B -q +Invoke the simultaneous input-output mode of the +.B rd +request. +.TP +.B -N +Produce output suitable for typewriter-like devices. +.SS Typesetter devices (not \fL-N\fP) only +.TP \n(xxu +.B -a +Send a printable +textual +approximation +of the results to the standard output. +.TP +.BI -T dest +Prepare output for typesetter +.IR dest : +.br +.ns +.RS +.TP \w'\fL-TLatin1\ 'u +.B -Tutf +(The default.) PostScript printers with +preprocessing to handle Unicode +characters encoded in +.SM UTF +.PD0 +.TP +.B -Tpost +Regular PostScript printers +.PD0 +.TP +.B -T202 +Mergenthaler Linotron 202 +.RE +.PD +.TP "\w'\fL-m\f2name 'u" +.BI -F dir +Take font information from directory +.IR dir . +.SS Typewriter (\fL-N\fP) output only +.TP \n(xxu +.BI -s N +Halt prior to every +.I N +pages (default +.IR N =1) +to allow paper loading or changing. +.TP +.BI -T name +Prepare output for specified terminal. +Known +.I names +include +.B utf +for the normal Plan 9 +.SM UTF +encoding of the Unicode Standard character set (default), +.B 37 +for the +Teletype model 37, +.B lp +(`line-printer') +for any terminal without half-line capability, +.B 450 +for the \s-1DASI\s+1-450 +(Diablo Hyterm), +and +.B think +(HP ThinkJet). +.TP +.B -e +Produce equally-spaced words in adjusted +lines, using full terminal resolution. +.TP +.B -h +Use output tabs during horizontal spacing +to speed output and reduce output character count. +Tab settings are assumed to be every +8 nominal character widths. +.SH FILES +.TF /sys/lib/troff/term/* +.TP +.B /tmp/trtmp* +temporary file +.TP +.B /sys/lib/tmac/tmac.* +standard macro files +.TP +.B /sys/lib/troff/term/* +terminal driving tables for +.I nroff +.TP +.B /sys/lib/troff/font/* +font width tables for +.I troff +.SH SOURCE +.B /sys/src/cmd/troff +.SH "SEE ALSO" +.IR lp (1), +.IR proof (1), +.IR eqn (1), +.IR tbl (1), +.IR pic (1), +.IR grap (1), +.IR doctype (1), +.IR ms (6), +.IR image (6), +.IR tex (1), +.IR deroff (1) +.br +J. F. Ossanna and B. W. Kernighan, +``Troff User's Manual'' +.br +B. W. Kernighan, +``A TROFF Tutorial'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2. diff --git a/static/plan9-4e/man1/troff2html.1 b/static/plan9-4e/man1/troff2html.1 new file mode 100644 index 00000000..36b47c31 --- /dev/null +++ b/static/plan9-4e/man1/troff2html.1 @@ -0,0 +1,97 @@ +.TH TROFF2HTML 1 +.SH NAME +troff2html \- convert troff output into HTML +.SH SYNOPSIS +.B troff2html +[ +.B -t +.I title +] [ +.I file +\ ... +] +.SH DESCRIPTION +.I Troff2html +reads the +.IR troff (1) +output in the named +.IR files , +default standard input, +and converts them into HTML. +.PP +.I Troff2html +does a tolerable job with straight +.B troff +output, but it is helped by annotations, described below. +Its main use is for +.B man2html +(see +.IR httpd (8)), +which converts +.IR man (1) +pages into HTML +and depends on a specially annotated set of +.IR man (6) +macros, invoked by +.B troff +.BR -manhtml . +.PP +.B Troff +output lines beginning +.IP +.EX +x X html \f1... +.EE +.LP +which are introduced by placing +.B \eX'html\ \f1...\fP' +in the +.IR input , +cause the rest of the line to be interpolated into the HTML produced. +Several such lines are recognized specially by +.IR troff2html . +The most important are the pair +.IP +.EX +x X html manref start cp 1 +x X html manref end cp 1 +.EE +.PP +which are used to create HTML anchors of the form +.IR cp (1) +pointing to +.BR /magic/man2html/1/cp . +.PP +.I Troff2html +is new and experimental; in time, it may improve and subsume +.IR ms2html (1). +On the one hand, because it uses the input, +.B ms2html +can handle +.IR pic (1), +.IR eqn (1), +etc., which +.I troff2html +does not handle at all; on the other hand, +.B ms2html +understands only +.IR ms (6) +documents and is easily confused by complex +.B troff +constructions. +.I Troff2html +has the reverse properties: it does not handle the preprocessors but its output +is reliable and (modulo helper annotations) is independent of macro package. +.SH SEE ALSO +.IR troff (1), +.IR ms2html (1), +.B man2html +in +.IR httpd (8). +.SH BUGS +.B Troff +and HTML have different models, and they don't mesh well in all cases. +.BR Troff 's +indented paragraphs are not well served in HTML, and the output of +.I troff2html +shows this. diff --git a/static/plan9-4e/man1/tweak.1 b/static/plan9-4e/man1/tweak.1 new file mode 100644 index 00000000..e3f19503 --- /dev/null +++ b/static/plan9-4e/man1/tweak.1 @@ -0,0 +1,167 @@ +.TH TWEAK 1 +.CT 1 graphics +.SH NAME +tweak \- edit image files, subfont files, face files, etc. +.SH SYNOPSIS +.B tweak +[ +.I file ... +] +.SH DESCRIPTION +.I Tweak +edits existing files holding various forms of images. +To create original images, start from an existing image, subfont, etc. +.PP +.I Tweak +reads its argument +.I files +and displays the resulting images in a vertical column. +If the image is too wide to fit across the display, it +is folded much like a long line of text in an +.IR rio +window. +Under each image is displayed one or two lines of text +presenting its parameters. +The first line shows the image's +.BR depth , +the number +of bits per pixel; +.BR r , +the rectangle covered by the image; +and the name of the +.B file +from which it was read. +If the file is a subfont, a second line presents a hexadecimal 16-bit +.B offset +to be applied to character values from the subfont +(typically as stored in a font file; see +.IR font (6)); +and the subfont's +.BR n , +.BR height , +and +.B ascent +as defined in +.IR cachechars (2). +.PP +By means described below, magnified views of portions of the images +may be displayed. +The text associated with such a view includes +.BR mag , +the magnification. +If the view is of a single character from a subfont, the second +line of text shows the character's value (including the subfont's offset) +in hexadecimal and as a character in +.I tweak's +default font; the character's +.BR x , +.BR top , +.BR bottom , +.BR left , +and +.BR width +as defined in +.IR cachechars (2); +and +.BR iwidth , +the physical width of the image in the subfont's image. +.PP +There are two methods to obtain a magnified view of a character from a +subfont. +The first is to click mouse button 1 over the image of the character in +the subfont. The second is to select the +.B char +entry on the button 3 menu, +point the resulting gunsight cursor at the desired subfont and click button 3, +and then type at the text prompt at the bottom of the screen the +character value, either as a multi-digit hexadecimal number or as a single +rune representing the character. +.PP +To magnify a portion of other types of image files, +click button 1 over the unmagnified file. +The cursor will switch to a cross. +Still with button 1, sweep a rectangle, as in +.BR rio , +that encloses the portion of the image to be magnified. +(If the file is 16×16 or smaller, +.I tweak +will just magnify the entire file; no sweeping is necessary.) +.PP +Pressing buttons 1 and 2 within magnified images changes pixel values. +By default, button 1 sets the pixel to all zeros and button 2 sets the pixel +to all ones. +.PP +Across the top of the screen is a textual display of global parameters. +These values, as well as many of the textual values associated with +the images, may be edited by clicking button 1 on the displayed +value and typing a new value. +The values along the top of the screen are: +.TP +.B mag +Default magnification. +.TP +.B val(hex) +The value used to modify pixels within magnified images. +The value must be in hexadecimal, optionally preceded by a +tilde for bitwise negation. +.TP +.B but1 +.TP +.B but2 +The pixel value written when the corresponding button is pressed over a pixel. +.TP +.B invert-on-copy +Whether the pixel values are inverted when a +.B copy +operation is performed. +.PP +Under button 3 is a menu holding a variety of functions. +Many of these functions prompt for the image upon which to act +by switching to a gunsight cursor; click button 3 over the +selection, or click a different button to cancel the action. +.TP +.B open +Read and display a file. The name of the file is typed to the prompt +on the bottom line. +.TP +.B read +Reread a file. +.TP +.B write +Write a file. +.TP +.B copy +Use the copy function, default +.BR S , +to transfer a rectangle of pixels from one image to another. +The program prompts with a cross cursor; sweep out a rectangle in +one image or just click button 3 to select the whole image. +The program will leave that rectangle in place and +attach another one to the cursor. Move that rectangle to the desired +place in any image and click button 3, or another button to cancel the action. +.TP +.B char +As described above, open a magnified view of a character image in a subfont. +.TP +.B pixels +Report the coordinate and value of individual pixels indicated by pressing button 3. +This is a mode of operation canceled by pressing button 1 or 2. +.TP +.B close +Close the specified image. +If the image is the unmagnified file, also close any magnified views of that file. +.TP +.B exit +Quit +.IR tweak . +The program will complain once about modified but unwritten files. +.SH SOURCE +.B /sys/src/cmd/tweak.c +.SH "SEE ALSO" +.IR cachechars (2), +.IR image (6), +.IR font (6) +.SH BUGS +For a program written to adjust width tables in fonts, +.I tweak +has been pushed unreasonably far. diff --git a/static/plan9-4e/man1/uniq.1 b/static/plan9-4e/man1/uniq.1 new file mode 100644 index 00000000..65fcd49f --- /dev/null +++ b/static/plan9-4e/man1/uniq.1 @@ -0,0 +1,59 @@ +.TH UNIQ 1 +.SH NAME +uniq \- report repeated lines in a file +.SH SYNOPSIS +.B uniq +[ +.B -udc +[ +.BI +- num +] +] +[ +.I file +] +.SH DESCRIPTION +.I Uniq +copies the input +.IR file , +or the standard input, to the +standard output, comparing adjacent lines. +In the normal case, the second and succeeding copies +of repeated lines are +removed. +Repeated lines must be adjacent +in order to be found. +.TP +.B -u +Print unique lines. +.TP +.B -d +Print (one copy of) duplicated lines. +.TP +.B -c +Prefix a repetition count and a tab to each output line. +Implies +.B -u +and +.BR -d . +.TP +.BI - num +The first +.IR num +fields +together with any blanks before each are ignored. +A field is defined as a string of non-space, non-tab characters +separated by tabs and spaces from its neighbors. +.TP +.BI + num +The first +.IR num +characters are ignored. +Fields are skipped before characters. +.SH SOURCE +.B /sys/src/cmd/uniq.c +.SH "SEE ALSO" +.IR sort (1) +.SH BUGS +Field selection and comparison should be compatible with +.IR sort (1). diff --git a/static/plan9-4e/man1/units.1 b/static/plan9-4e/man1/units.1 new file mode 100644 index 00000000..799b3114 --- /dev/null +++ b/static/plan9-4e/man1/units.1 @@ -0,0 +1,108 @@ +.TH UNITS 1 +.if n .ds / / +.SH NAME +units \- conversion program +.SH SYNOPSIS +.B units +[ +.B -v +] +[ +.I file +] +.SH DESCRIPTION +.I Units +converts quantities expressed +in various standard scales to +their equivalents in other scales. +It works interactively in this fashion: +.IP +.EX +you have: inch +you want: cm + * 2.54 + / 0.393701 +.EE +.PP +A quantity is specified as a multiplicative combination +of units and floating point numbers. +Operators have the following precedence: +.IP +.EX +.ta \w'\fLXXXXXXXXXXXXXXX'u +\fL+\fP \fL-\fP \f1add and subtract +\fL*\fP \fL/\fP \fL×\fP \fL÷\fP \f1multiply and divide +catenation multiply +\fL²\fP \fL³\fP \fL^\fP \f1exponentiation +\fL|\fP \f1divide +\fL(\fP ... \fL)\fP \f1grouping +.EE +.PP +Most familiar units, +abbreviations, and metric prefixes are recognized, +together with a generous leavening of exotica +and a few constants of nature including: +.IP +.de fq +\fL\\$1\\fP \\$2 \\$3 \\$4 \\$5 \\$6 +.. +.ta \w'\fLwaterXXX'u +.nf +.fq pi,\f1π\fP ratio of circumference to diameter +.fq c speed of light +.fq e charge on an electron +.fq g acceleration of gravity +.fq force same as \fLg\fP +.fq mole Avogadro's number +.fq water "pressure head per unit height of water" +.fq au astronomical unit +.fi +.PP +The +.L pound +is a unit of +mass. +Compound names are run together, e.g. +.LR lightyear . +British units that differ from their US counterparts +are prefixed thus: +.LR brgallon . +Currency is denoted +.LR belgiumfranc , +.LR britainpound , +etc. +.PP +The complete list of units can be found in +.BR /lib/units . +A +.I file +argument to +.I units +specifies a file to be used instead of +.BR /lib/units. +The +.B -v +flag causes +.I units +to print its entire database. +.SH EXAMPLE +.EX +you have: 15 pounds force/in² +you want: atm + * 1.02069 + / .97973 +.EE +.SH FILES +.B /lib/units +.SH SOURCE +.B /sys/src/cmd/units.y +.SH BUGS +Since +.I units +does only multiplicative scale changes, +it can convert Kelvin to Rankine but not Centigrade to +Fahrenheit. +.br +Currency conversions are only as accurate as the last time someone +updated +.BR /lib/units . diff --git a/static/plan9-4e/man1/vac.1 b/static/plan9-4e/man1/vac.1 new file mode 100644 index 00000000..2af05984 --- /dev/null +++ b/static/plan9-4e/man1/vac.1 @@ -0,0 +1,122 @@ +.TH VAC 1 +.SH NAME +vac \- create a vac archive on Venti +.SH SYNOPSIS +.B vac +[ +.B -mqsv +] [ +.B -b +.I blocksize +] [ +.B -d +.I oldvacfile +] [ +.B -e +.I exclude +] [ +.B -f +.I vacfile +] [ +.B -h +.I host +] +.I file ... +.SH DESCRIPTION +.I Vac +creates an archival copy of Plan 9 file trees on Venti. It can be used +to build a simple backup system. One of the unusual properties of Venti is +that duplicate blocks are detected and coalesced. When +.I vac +is used on a file tree that shares data with an existing archive, the consumption of +storage will be approximately equal to an incremental backup. +This reduction in storage consumption occurs transparently to the user. +.PP +As an optimization, the +.B -d +and +.B -q +options, described below, can be used to explicitly create an archive relative to an existing archive. +These options do not change the resulting archive generated by +.IR vac , +but simply reduce the number of write operations to Venti. +.PP +The output of +.I vac +is the hexadecimal representation of the Sha1 fingerprint of the root of the archive, in this format: +.IP +.EX +vac:64daefaecc4df4b5cb48a368b361ef56012a4f46 +.EE +.PP +Option to +.I vac +are: +.TP +.BI -b " blocksize +Specifies the block size that data will be broken into. +The units for the size can be specified by appending +.L k +to indicate kilobytes. +The default is 8k. +The size must be in the range +of 512 bytes to 52k. +.TP +.BI -d " oldvacfile +Reduce the number of blocks written to Venti by comparing the files to be stored with +the contents of an existing +.I vac +file tree given by +.IR oldvacfile . +.TP +.BI -e " exclude +Do not include the file or directory specified by +.IR exclude . +This option may be repeated multiple times. +.TP +.BI -f " vacfile +The results of +.I vac +are place in +.IR vacfile , +or the standard output if no file is given. +.TP +.BI -h " host +The network address of the Venti server. +The default is taken from the environment variable +.BR venti . +If this variable does not exist, then the default is the +metaname +.BR $venti , +which can be configured via +.IR ndb (6). +.TP +.B -m +Expand and merge any +.I vac +archives that are found while reading the input files. This option is +useful for building an archive from a collection of existing archives. Each archive is inserted +into the new archive as if it had been unpacked in the directory in which it was found. Multiple +archives can be unpacked in a single directory and the contents will be merged. To be detected, the +archives must end in +.LR .vac . +Note, an archive is inserted by simply copying the root fingerprint and does not require +the archive to be unpacked. +.TP +.B -q +Increase the performance of the +.B -d +option by detecting unchanged files based on a match of the files name and other meta data, +rather than examining the contents of the files. +.TP +.B -s +Print out various statistics on standard error. +.TP +.B -v +Produce more verbose output on standard error, including the name of the files added to the archive +and the vac archives that are expanded and merged. +.SH SOURCE +.B /sys/src/cmd/vac +.SH "SEE ALSO" +.IR vacfs (4), +.IR venti (8) diff --git a/static/plan9-4e/man1/vi.1 b/static/plan9-4e/man1/vi.1 new file mode 100644 index 00000000..e97aa80e --- /dev/null +++ b/static/plan9-4e/man1/vi.1 @@ -0,0 +1,170 @@ +.TH VI 1 +.SH NAME +0i, 5i, ki, vi \- instruction simulators +.SH SYNOPSIS +.B vi +[ +.I textfile +] +.br +.B vi +.I pid +.br +.B 0i +[ +.I textfile +] +.br +.B 0i +.I pid +.br +.B 5i +[ +.I textfile +] +.br +.B 5i +.I pid +.br +.B ki +[ +.I textfile +] +.br +.B ki +.I pid +.SH DESCRIPTION +.I Vi +simulates the execution of a MIPS binary in +a Plan 9 environment. +It has two main uses: as +a debugger and as a statistics gatherer. +Programs running under +.I vi +execute about two hundred times +slower than normal\(embut faster than +single stepping under +.IR db . +.IR 0i , +.IR 5i , +and +.IR ki +are similar to +.I vi +but interpret little-endian MIPS, ARM 7500, and SPARC binaries. +The following discussion refers to +.I vi +but applies to the others +as well. +.PP +.I Vi +will simulate the execution of a named +.IR textfile . +It will also make a copy of an existing process with process id +.I pid +and simulate its continuation. +.PP +As a debugger +.I vi +offers more complete information +than +.IR db (1). +Tracing can be performed at the level of instructions, +system calls, or function calls. +.I Vi +allows breakpoints to be triggered when specified addresses +in memory are accessed. +A report of instruction counts, +load delay fills and distribution is produced for +each run. +.I Vi +simulates the CPU's caches and MMU +to assist the optimization of compilers and programs. +.PP +The command interface mirrors the interface to +.IR db ; +see +.IR db (1) +for a detailed description. +Data formats and addressing are compatible with +.I db +except +for disassembly: +.I vi +offers only MIPS +.RB ( db +.BR -mmipsco ) +mnemonics for +machine instructions. +.I Ki +offers both Plan 9 and Sun SPARC formats. +.PP +Several extra commands allow +extended tracing and printing of statistics: +.TP +.BR $t [ 0ics ] +The +.I t +command controls tracing. Zero cancels all tracing +options. +.RS +.TP +.B i +Enable instruction tracing +.TP +.B c +Enable call tracing +.TP +.B s +Enable system call tracing +.RE +.TP +.BR $i [ itsp ] +The +.B i +command prints statistics accumulated by +all code run in this session. +.RS +.TP +.B i +Print instruction counts and frequency. +.TP +.B p +Print cycle profile. +.TP +.B t +.RI ( Vi +only) Print TLB and cache statistics. +.TP +.B s +Print memory reference, working set and size statistics. +.RE +.TP +.BR :b [ arwe ] +.I Vi +allows breakpoints to be set on any memory location. +These breakpoints monitor when a location is +accessed, read, written, or equals a certain value. +For equality the compared value is the +.I count +(see +.IR db (1)) +supplied to the command. +.SH SOURCE +.B /sys/src/cmd/vi +etc. +.SH "SEE ALSO" +.IR nm (1), +.IR db (1) +.SH BUGS +The code generated by +the compilers +is well supported, but some unusual instructions are unimplemented. +Some Plan 9 system calls such as +.I rfork +cause simulated traps. +The floating point simulation makes assumptions about the interpreting +machine's floating point support. The floating point conversions performed +by +.I vi +may cause a loss of precision. diff --git a/static/plan9-4e/man1/vnc.1 b/static/plan9-4e/man1/vnc.1 new file mode 100644 index 00000000..a94de71d --- /dev/null +++ b/static/plan9-4e/man1/vnc.1 @@ -0,0 +1,153 @@ +.TH VNC 1 +.SH NAME +vncs, vncv \- remote frame buffer server and viewer for Virtual Network Computing (VNC) +.SH SYNOPSIS +.B vncs +[ +.B -v ] [ -g +.I width +.B X +.I height +.B ] +.B [ -d +.I :display +.B ] +.B [command [args ...]] +.PP +.B vncs -k +.I :display +.PP +.B vncv +[ +.B -e +.I encodings +] +[ +.B -csv +] +.IR host [\fL: n ] +.SH DESCRIPTION +.I vncs +starts a new virtual frame buffer in memory and waits for connections from remote viewers. +Each viewer is authenticated using challenge and response. APOP password is used as the +private key. A display number +.I :n +in the global name space is printed to stderr. A viewer must use the same display number +in order to contact the desired server. Multiple VNC servers can co-exist on the same host, +each with a unique display number. +.PP +One frame buffer can have simultaneous viewers if the viewers are started with the -s option, +see below. Otherwise, starting a new viewer would cause the server to disconnect from all +existing viewers. Killing the viewers will not affect the remote server. Therefore, the same desktop +can migrate from one location to another without restarting the window system. +.PP +The server options are: +.TP +.B -v +causes verbose output to stderr. +.TP +.B -g " widthXheight +specifies the frame buffer geometry. Default is 1024x768. The depth is fixed +at 16 bits per pixel (r5g6b5). +.TP +.B -d +chooses a display number +.RI : n . +The server aborts if the display is not available. If not specified, the server hunts for +the first available on that host interface. +.TP +.I command [args ...] +By default, the server starts with a terminal similar to that of drawterm. RC is +executed on behalf of the owner of the vncs process. The user can specify any program +to start the VNC server, e.g. rio. +.TP +.B -k " :display +shutdown the VNC server and all of its connected clients on +.RI : display . +Note, kill vncs | rc will kill ALL servers running on that host. +.PP +.I Vncv +provides access to remote frame buffer +.I n +on +.I host +using the VNC (Virtual Network Computing) +protocol. +It resizes its window to be the smaller of the +remote frame buffer size and the local screen. +.PP +The +.B -e +option specifies an ordered list of rectangle +encodings to allow in the protocol. +The default (and full set) is +.IP +.EX +copyrect corre hextile rre raw +.EE +.PP +By default, connecting to a display closes +any other connections to that display. +The +.B -s +option allows the other connections to share the display. +.PP +The +.B -v +option causes verbose output. +.PP +.I Vncv +negotiates with the VNC server to settle on a true-color pixel format. +For true-color displays, this is the native display pixel format. +On eight bit color-mapped displays, +.I vncv +requests +.B r3g3b2 +pixels and upon receipt translates them to the nearest +color in the map. +This does not cover the color map particularly well. +When invoked with the +.B -c +option, +.I vncv +requests +.B r4g4b4 +pixels instead. This consumes more bandwidth +but results in better matching to the available colors. +.PP +.I Vncv +correctly handles the typing of control characters +and shifted keystrokes. +To support systems that require the use +of modifiers like Alt, Ctl, and Shift on +things like mouse events, +typing the sequences +.B Alt +.B Z +.B A +(for Alt), +.B Alt +.B Z +.B C +(for Ctrl), +and +.B Alt +.B Z +.B S +(for Shift) +will send a ``key down'' message for +the given key (see +.IR keyboard (6)). +A corresponding ``key up'' message +will be sent after the next key is pressed, +or when the sequence is retyped, +whichever happens first. +.SH SOURCE +.B /sys/src/cmd/vnc +.SH "SEE ALSO +.IR drawterm (8) +.br +.B http://www.uk.research.att.com/vnc +.SH BUGS +If the remote frame buffer is larger than the local screen, +only the upper left corner can be accessed. diff --git a/static/plan9-4e/man1/vt.1 b/static/plan9-4e/man1/vt.1 new file mode 100644 index 00000000..2addce85 --- /dev/null +++ b/static/plan9-4e/man1/vt.1 @@ -0,0 +1,109 @@ +.TH VT 1 +.SH NAME +vt \- emulate a VT-100 or VT-220 terminal +.SH SYNOPSIS +.B vt +[ +.B -2sa +] +.SH DESCRIPTION +.I Vt +replaces a rio window with a fresh instance of the shell +.IR rc (1) +running within an emulation of a DEC VT-100 terminal. +The +.B -2 +and +.B -a +options configure +.I vt +to emulate a VT-220 and Ansi terminal respectively. +The +.B -s +options forces a saner color scheme, i.e, black text on white +background. +.PP +The right button has a menu with the following entries to provide +the sort of character processing expected by non-Plan 9 systems: +.TF cooked +.TP +.B 24x80 +Resize the +.I vt +window to hold 24 rows of 80 columns. +.TP +.B crnl +Print a newline (linefeed) character after receiving a carriage return from the host. +.TP +.B cr +Do not print a newline after carriage return. +.TP +.B nlcr +Print a carriage return after receiving a newline from the host. +.TP +.B nl +Do not print a carriage return after newline. +.TP +.B raw +Enter raw (no echo, no interpretation) character mode for input. +.TP +.B cooked +Leave raw mode. +.TP +.B exit +Exits +.IR vt . +.PD +.PP +The middle button has a menu with the following entries: +.TF right_key +.TP +.B backup +Move the display back one screenful. +.TP +.B forward +Move the display forward one screenful. +(These are a poor substitute for a scroll bar.) +.TP +.B reset +Display the last screenful; the same as going +.B forward +to the end. +.TP +.B clear +Clear the screen. Previous contents can be recovered using +.BR backup . +.TP +.B send +Send the contents of the +.B rio +snarf buffer, just as +.B send +in the +.B rio +menu. +.TP +.B scroll +Make new lines visible as they appear at the bottom. +.TP +.B page +When the page fills, pause and wait for a character to be typed before proceeding. +The down arrow key advances a page without sending the character to the host. +.PD +.PP +To exit +.IR vt , +exit its +.B rc +session by, for example, typing EOT (control-D). +.SH SOURCE +.B /sys/src/cmd/vt +.SH BUGS +.PP +This program is used only for communicating with foreign systems, so it is not +as rich an emulation as its equivalent in other environments. +.PP +Use care in setting raw and newline modes when connecting to Unix systems +via +.IR con . +It may also be necessary to set the emulator into raw mode. diff --git a/static/plan9-4e/man1/wc.1 b/static/plan9-4e/man1/wc.1 new file mode 100644 index 00000000..1c9768fc --- /dev/null +++ b/static/plan9-4e/man1/wc.1 @@ -0,0 +1,53 @@ +.TH WC 1 +.SH NAME +wc \- word count +.SH SYNOPSIS +.B wc +[ +.B -lwrbc +] +[ +.I file ... +] +.SH DESCRIPTION +.I Wc +counts lines, words, runes, syntactically-invalid +.SM UTF +codes and bytes in the named +.IR files , +or in the standard input if no file is named. +A word is a maximal string of characters +delimited by spaces, tabs or newlines. +The count of runes includes invalid codes. +.PP +If the optional argument is present, +just the specified counts (lines, words, runes, broken +.SM UTF +codes or bytes) +are selected by the letters +.BR l , +.BR w , +.BR r , +.BR b , +or +.BR c . +Otherwise, lines, words and bytes +.RB ( -lwc ) +are reported. +.SH SOURCE +.B /sys/src/cmd/wc.c +.SH BUGS +The Unicode Standard has many blank characters scattered through it, +but +.I wc +looks for only +.SM ASCII +space, tab and newline. +.br +.I Wc +should have options to count suboptimal +.SM UTF +codes +and bytes that cannot occur in any +.SM UTF +code. diff --git a/static/plan9-4e/man1/who.1 b/static/plan9-4e/man1/who.1 new file mode 100644 index 00000000..1a13c3af --- /dev/null +++ b/static/plan9-4e/man1/who.1 @@ -0,0 +1,22 @@ +.TH WHO 1 +.SH NAME +who, whois \- who is using the machine +.SH SYNOPSIS +.B who +.PP +.B whois +.I person +.SH DESCRIPTION +.I Who +prints the name of everyone with a non-Exiting process +on the current machine. +.PP +.I Whois +looks in +.B /adm/whois +and +.B /adm/users +to find out more information about +.IR person . +.SH SOURCE +.B /rc/bin/who diff --git a/static/plan9-4e/man1/xd.1 b/static/plan9-4e/man1/xd.1 new file mode 100644 index 00000000..cc2d394f --- /dev/null +++ b/static/plan9-4e/man1/xd.1 @@ -0,0 +1,87 @@ +.TH XD 1 +.SH NAME +xd \- hex, octal, decimal, or ASCII dump +.SH SYNOPSIS +.B xd +[ +.I option ... +] +[ +.BI - "format ... +] [ +.I file ... +] +.SH DESCRIPTION +.I Xd +concatenates and dumps the +.I files +(standard input by default) +in one or more formats. +Groups of 16 bytes are printed in each of the named formats, one +format per line. +Each line of output is prefixed by its address (byte offset) +in the input file. +The first line of output for each group is zero-padded; subsequent are blank-padded. +.PP +Formats other than +.B -c +are specified by pairs of characters telling size and style, +.L 4x +by default. +The sizes are +.TP \w'2\ or\ w\ \ \ 'u +.BR 1 " or " b +1-byte units. +.PD0 +.TP +.BR 2 " or " w +2-byte big-endian units. +.TP +.BR 4 " or " l +4-byte big-endian units. +.TP +.BR 8 " or " v +8-byte big-endian units. +.PD +.PP +The styles are +.TP 0 +.B o +Octal. +.PD0 +.TP +.B x +Hexadecimal. +.TP +.B d +Decimal. +.PD +.PP +Other options are +.TP \w'\fL-a\fIstyle\fLXX'u +.B -c +Format as +.B 1x +but print +.SM ASCII +representations or C escape sequences where possible. +.TP +.BI -a style +Print file addresses in the given style (and size 4). +.TP +.B -u +(Unbuffered) Flush the output buffer after each 16-byte sequence. +.TP +.B -s +Reverse (swab) the order of bytes in each group of 4 before printing. +.TP +.B -r +Print repeating groups of identical 16-byte sequences as the first group +followed by an asterisk. +.SH SOURCE +.B /sys/src/cmd/xd.c +.SH "SEE ALSO" +.IR db (1) +.SH BUGS +The various output formats don't line up properly in the output of +.IR xd . diff --git a/static/plan9-4e/man1/yacc.1 b/static/plan9-4e/man1/yacc.1 new file mode 100644 index 00000000..a965f953 --- /dev/null +++ b/static/plan9-4e/man1/yacc.1 @@ -0,0 +1,167 @@ +.TH YACC 1 +.SH NAME +yacc \- yet another compiler-compiler +.SH SYNOPSIS +.B yacc +[ +.I option ... +] +.I grammar +.SH DESCRIPTION +.I Yacc +converts a context-free grammar and translation code +into a set of +tables for an LR(1) parser and translator. +The grammar may be ambiguous; +specified precedence rules are used to break ambiguities. +.PP +The output file, +.BR y.tab.c , +must be compiled by the C compiler +to produce a program +.LR yyparse . +This program must be loaded with a lexical analyzer function, +.B yylex(void) +(often generated by +.IR lex (1)), +with a +.B main(int argc, char *argv[]) +program, and with an error handling routine, +.BR yyerror(char*) . +.PP +The options are +.TP "\w'\fL-o \fIoutput\fLXX'u" +.BI -o " output +Direct output to the specified file instead of +.BR y.tab.c . +.TP +.BI -D n +Create file +.BR y.debug , +containing diagnostic messages. +To incorporate them in the parser, compile it with preprocessor symbol +.B yydebug +defined. +The amount of +diagnostic output from the parser is regulated by +value +.IR n . +The value 0 reports errors; 1 reports reductions; +higher values (up to 4) include more information about +state transitions. +.TP +.B -v +Create file +.BR y.output , +containing a description of the parsing tables and of +conflicts arising from ambiguities in the grammar. +.TP +.B -d +Create file +.BR y.tab.h , +containing +.B #define +statements that associate +.IR yacc -assigned +`token codes' with user-declared `token names'. +Include it in source files other than +.B y.tab.c +to give access to the token codes. +.TP +.BI -s " stem +Change the prefix +.L y +of the file names +.BR y.tab.c , +.BR y.tab.h , +.BR y.debug , +and +.B y.output +to +.IR stem . +.TP +.B -S +Write a parser that uses +Stdio +instead of the +.B print +routines in libc. +.PP +The specification of +.I yacc +itself is essentially the same as the UNIX version +described in the references mentioned below. +Besides the +.B -D +option, the main relevant differences are: +.IP +The interface to the C environment is by default through +.B +rather than +.BR ; +the +.B -S +option reverses this. +.IP +The parser accepts +.SM UTF +input text (see +.IR utf (6)), +which has a couple of effects. +First, the return value of +.B yylex() +no longer fits in a +.BR short ; +second, the starting value for non-terminals is now 0xE000 rather than 257. +.IP +The generated parser can be recursive: actions can call +.IR yyparse , +for example to implement a sort of +.B #include +statement in an interpreter. +.IP +Finally, some undocumented inner workings of the parser have been +changed, which may affect programs that know too much about its structure. +.SH FILES +.TF /sys/lib/yaccpars +.TP +.B y.output +.TP +.B y.tab.c +.TP +.B y.tab.h +.TP +.B y.debug +.TP +.B y.tmp.* +temporary file +.TP +.B y.acts.* +temporary file +.TP +.B /sys/lib/yaccpar +parser prototype +.TP +.B /sys/lib/yaccpars +parser prototype using stdio +.SH SOURCE +.B /sys/src/cmd/yacc.c +.SH "SEE ALSO" +.IR lex (1) +.br +S. C. Johnson and R. Sethi, +``Yacc: A parser generator'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2 +.br +B. W. Kernighan and Rob Pike, +.I +The UNIX Programming Environment, +Prentice Hall, 1984 +.SH BUGS +The parser may not have full information when it writes to +.B y.debug +so that the names of the tokens returned by +.L yylex +may be missing. diff --git a/static/plan9-4e/man1/yesterday.1 b/static/plan9-4e/man1/yesterday.1 new file mode 100644 index 00000000..123366b7 --- /dev/null +++ b/static/plan9-4e/man1/yesterday.1 @@ -0,0 +1,122 @@ +.TH YESTERDAY 1 +.SH NAME +yesterday \- print file names from the dump +.SH SYNOPSIS +.B yesterday +[ +.B -abcCdD +] [ +.B -n +.I daysago +] [ +.I \-date +] +.I files ... +.SH DESCRIPTION +.I Yesterday +prints the names of the +.I files +from the most recent dump. +Since dumps are done early in the morning, +yesterday's files are really in today's dump. +For example, if today is March 17, 1992, +.IP +.EX +yesterday /adm/users +.EE +.PP +prints +.IP +.EX +/n/dump/1992/0317/adm/users +.EE +.PP +In fact, the implementation is to select the most recent dump in +the current year, so the dump selected may not be from today. +.PP +By default, +.I yesterday +prints the names of the dump files corresponding to the named files. +The first set of options changes this behavior. +.TP +.B -a +Run +.IR acme (1)'s +.I adiff +to compare the dump files with the named files. +.TP +.B -b +Bind the dump files over the named files. +.TP +.B -c +Copy the dump files over the named files. +.TP +.B -C +Copy the dump files over the named files only when +they differ. +.TP +.B -d +Run +.B diff +to compare the dump files with the named files. +.TP +.B -D +Run +.B diff +.B -n +to compare the dump files with the named files. +.PP +The +.I date +option selects other day's dumps, with a format of +1, 2, 4, 6, or 8 digits of the form +.IR d, +.IR dd , +.IR mmdd , +.IR yymmdd , +or +.IR yyyymmdd . +.PP +The +.B -n +option selects the dump +.I daysago +prior to the current day. +.PP +.I Yesterday +does not guarantee that the string it prints represents an existing file. +.SH EXAMPLES +.PP +Back up to yesterday's MIPS binary of +.BR vc : +.IP +.EX +yesterday -c /mips/bin/vc +.EE +.PP +Temporarily back up to March 1's MIPS C library to see if a program +runs correctly when loaded with it: +.IP +.EX +yesterday -b -0301 /mips/lib/libc.a +rm v.out +mk +v.out +.EE +.PP +Find what has changed in the C library since March 1: +.IP +.EX +yesterday -d -0301 /sys/src/libc/port/*.c +.EE +.SH FILES +.B /n/dump +.SH SOURCE +.B /rc/bin/yesterday +.SH SEE ALSO +.IR history (1), +.IR bind (1), +.IR diff (1), +.IR fs (4). +.SH BUGS +It's hard to use this command without singing. diff --git a/static/plan9-4e/man2/0intro.2 b/static/plan9-4e/man2/0intro.2 new file mode 100644 index 00000000..5ed0b30a --- /dev/null +++ b/static/plan9-4e/man2/0intro.2 @@ -0,0 +1,465 @@ +.TH INTRO 2 +.SH NAME +intro \- introduction to library functions +.SH SYNOPSIS +.nf +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B #include +.fi +.SH DESCRIPTION +This section describes functions +in various libraries. +For the most part, each library is defined by a single C include +file, such as those listed above, and a single archive file containing +the library proper. The name of the archive is +.BI /$objtype/lib/lib x .a \f1, +where +.I x +is the base of the include file name, stripped of a leading +.B lib +if present. +For example, +.B +defines the contents of library +.BR /$objtype/lib/libdraw.a , +which may be abbreviated when named to the loader as +.BR -ldraw . +In practice, each include file contains a +.B #pragma +that directs the loader to pick up the associated archive +automatically, so it is rarely necessary to tell the loader +which +libraries a program needs. +.PP +The library to which a function belongs is defined by the +header file that defines its interface. +The `C library', +.IR libc , +contains most of the basic subroutines such +as +.IR strlen . +Declarations for all of these functions are +in +.BR , +which must be preceded by +.RI ( needs ) +an include of +.BR . +The graphics library, +.IR draw , +is defined by +.BR , +which needs +.B +and +.BR . +The Buffered I/O library, +.IR libbio , +is defined by +.BR , +which needs +.B +and +.BR . +The ANSI C Standard I/O library, +.IR libstdio , +is defined by +.BR , +which has no prerequisites. +There are a few other, less commonly used libraries defined on +individual pages of this section. +.PP +The include file +.BR , +a prerequisite of several other include files, +declares the architecture-dependent and -independent types, including: +.IR ushort , +.IR uchar , +and +.IR ulong , +the unsigned integer types; +.IR schar , +the signed char type; +.IR vlong , +a very long integral type; +.IR jmp_buf , +the type of the argument to +.I setjmp +and +.IR longjmp , +plus macros that define the layout of +.IR jmp_buf +(see +.IR setjmp (2)); +definitions of the bits in the floating-point control register +as used by +.IR getfcr (2); +the macros +.B va_arg +and friends for accessing arguments of variadic functions (identical to the +macros defined in +.B +in ANSI C); +and +.IR Length , +for historical reasons a union, +representing the 64-bit length of a file, declared something like +.IP +.EX +.ta 6n +6n +6n +typedef union +{ + vlong length; +} Length; +.EE +.SS "Name space +Files are collected into a hierarchical organization called a +.I "file tree +starting in a +.I directory +called the +.IR root . +File names, also called +.IR paths , +consist of a number of +.BR / -separated +.IR "path elements" +with the slashes corresponding to directories. +A path element must contain only printable +characters (those outside +.SM ASCII +and Latin-1 control space) +that occupy no more than +.B NAMELEN-1 +bytes. +A path element cannot contain a space or slash. +.PP +When a process presents a file name to Plan 9, it is +.I evaluated +by the following algorithm. +Start with a directory that depends on the first +character of the path: +.L / +means the root of the main hierarchy, +.L # +means the separate root of a kernel device's file tree (see Section 3), +and anything else means the process's current working directory. +Then for each path element, look up the element +in the directory, advance to that directory, +do a possible translation (see below), and repeat. +The last step may yield a directory or regular file. +The collection of files reachable from the root is called the +.I "name space +of a process. +.PP +A program can use +.I bind +or +.I mount +(see +.IR bind (2)) +to say that whenever a specified file is reached during evaluation, +evaluation instead continues from a second specified file. +Also, the same system calls create +.IR "union directories" , +which are concatenations of ordinary directories +that are searched sequentially until the desired element is found. +Using +.I bind +and +.I mount +to do name space adjustment affects only +the current process group (see below). +Certain conventions about the layout of the name space should +be preserved; see +.IR namespace (4). +.SS "File I/O" +Files are opened for input or output +by +.I open +or +.I create +(see +.IR open (2)). +These calls return an integer called a +.IR "file descriptor" +which identifies the file +to subsequent I/O calls, +notably +.IR read (2) +and +.IR write . +The system allocates the numbers by selecting the lowest unused descriptor. +They are allocated dynamically; there is no visible limit to the number of file +descriptors a process may have open. +They may be reassigned using +.IR dup (2). +File descriptors are indices into a +kernel resident +.IR "file descriptor table" . +Each process has an associated file descriptor table. +In some cases (see +.I rfork +in +.IR fork (2)) +a file descriptor table may be shared by several processes. +.PP +By convention, +file descriptor 0 is the standard input, +1 is the standard output, +and 2 is the standard error output. +With one exception, the operating system is unaware of these conventions; +it is permissible to close file 0, +or even to replace it by a file open only for writing, +but many programs will be confused by such chicanery. +The exception is that the system prints messages about broken processes +to file descriptor 2. +.PP +Files are normally read or written in sequential order. +The I/O position in the file is called the +.IR "file offset" +and may be set arbitrarily using the +.IR seek (2) +system call. +.PP +Directories may be opened and read much like regular files. +They contain an integral number of records, called +.IR "directory entries" , +of length +.B DIRLEN +(defined in +.BR ). +Each entry is a machine-independent representation of +the information about an existing file in the directory, +including the name, ownership, +permission, +access dates, +and so on. +The entry +corresponding to an arbitrary file can be retrieved by +.IR stat (2) +or +.IR fstat ; +.I wstat +and +.I fwstat +write back entries, thus changing the properties of a file. +An entry may be translated into a more convenient, addressable +form called a +.B Dir +structure; +.IR dirstat , +.IR dirfstat, +.IR dirwstat , +and +.I dirfwstat +execute the appropriate translations (see +.IR stat (2)). +.PP +New files are made with +.I create +(in +.IR open (2)) +and deleted with +.IR remove (2). +Directories may not directly be written; +.IR create , +.IR remove , +.IR wstat , +and +.I fwstat +alter them. +.PP +The operating system kernel records the file name used to access each open file or directory. +If the file is opened by a local name (one that does not begin +.B / +or +.BR # ), +the system makes the stored name absolute by prefixing +the string associated with the current directory. +Similar lexical adjustments are made for path names containing +.B . +(dot) or +.B .. +(dot-dot). +By this process, the system maintains a record of the route by which each file was accessed. +Although there is a possibility for error\(emthe name is not maintained after the file is opened, +so removals and renamings can confound it\(emthis simple method usually +permits the system to return, via the +.IR fd2path (2) +system call and related calls such as +.IR getwd (2), +a valid name that may be used to find a file again. +This is also the source of the names reported in the name space listing of +.IR ns (1) +or +.B /dev/ns +(see +.IR proc (3)). +.PP +.IR Pipe (2) +creates a connected pair of file descriptors, +useful for bidirectional local communication. +.SS "Process execution and control" +A new process is created +when an existing one calls +.I rfork +with the +.B RFPROC +bit set, usually just by calling +.IR fork (2). +The new (child) process starts out with +copies of the address space and most other attributes +of the old (parent) process. +In particular, +the child starts out running +the same program as the parent; +.IR exec (2) +will bring in a different one. +.PP +Each process has a unique integer process id; +a set of open files, indexed by file descriptor; +and a current working directory +(changed by +.IR chdir (2)). +.PP +Each process has a set of attributes \(em memory, open files, +name space, etc. \(em that may be shared or unique. +Flags to +.IR rfork +control the sharing of these attributes. +.PP +The memory of a process is divided into +.IR segments . +Every program has at least a +.I text +(instruction) and +.I stack +segment. +Most also have an initialized +.I data +segment and a segment of zero-filled data called +.IR bss . +Processes may +.IR segattach (2) +other segments for special purposes. +.PP +A process terminates by calling +.IR exits (2). +A parent process may call +.I wait +(in +.IR exits (2)) +to wait for some child to terminate. +A string of status information +may be passed from +.I exits +to +.IR wait . +A process can go to sleep for a specified time by calling +.IR sleep (2). +.PP +There is a +.I notification +mechanism for telling a process about events such as address faults, +floating point faults, and messages from other processes. +A process uses +.IR notify (2) +to register the function to be called (the +.IR "notification handler" ) +when such events occur. +.SS Multithreading +By calling +.I rfork +with the +.B RFMEM +bit set, a program may create several independently executing processes sharing the same +memory (except for the stack segment, which is unique to each process). +Where possible according to the ANSI C standard, +the main C library works properly in multiprocess programs; +.IR malloc , +.IR print , +and the other routines use locks (see +.IR lock (2)) +to synchronize access to their data structures. +The graphics library defined in +.B +is also multi-process capable; details are in +.IR graphics (2). +In general, though, multiprocess programs should use some form of synchronization +to protect shared data. +.PP +The thread library, defined in +.BR , +provides support for multiprocess programs. +It includes a data structure called a +.B Channel +that can be used to send messages between processes, +and coroutine-like +.IR threads , +which enable multiple threads of control within a single process. +The threads within a process are scheduled by the library, but there is +no pre-emptive scheduling within a process; thread switching occurs +only at communication or synchronization points. +.PP +Most programs using the thread library +comprise multiple processes +communicating over channels, and within some processes, +multiple threads. Since Plan 9 I/O calls may block, a system +call may block all the threads in a process. +Therefore, a program that shouldn't block unexpectedly will use a process +to serve the I/O request, passing the result to the main processes +over a channel when the request completes. +For an example of this design, see +.IR mouse (2). +.SH SEE ALSO +.IR nm (1), +.IR 2l (1), +.IR 2c (1) +.SH DIAGNOSTICS +Math functions in +.I libc +return +special values when the function is undefined for the +given arguments or when the value is not representable +(see +.IR nan (2)). +.PP +Some of the functions in +.I libc +are system calls and many others employ system calls in their implementation. +All system calls return integers, +with \-1 indicating that an error occurred; +.IR errstr (2) +recovers a string describing the error. +Some user-level library functions also use the +.I errstr +mechanism to report errors. +Functions that may affect the value of the error string are said to ``set +.IR errstr ''; +it is understood that the error string is altered only if an error occurs. +.SH BUGS +The limitation of path elements to 27 bytes +.RB ( NAMELEN-1 ) +is a liability in the networked world. diff --git a/static/plan9-4e/man2/9p.2 b/static/plan9-4e/man2/9p.2 new file mode 100644 index 00000000..f1191bb5 --- /dev/null +++ b/static/plan9-4e/man2/9p.2 @@ -0,0 +1,678 @@ +.TH 9P 2 +.SH NAME +Srv, +dirread9p, +emalloc9p, +erealloc9p, +estrdup9p, +postfd, +postmountsrv, +readbuf, +readstr, +respond, +threadpostmountsrv, +srv \- 9P file service +.SH SYNOPSIS +.ft L +.nf +#include +#include +#include +#include +#include <9p.h> +.fi +.PP +.ft L +.nf +.ta \w'\fL1234'u +\w'\fLTree* 'u +typedef struct Srv { + Tree* tree; + + void (*attach)(Req*); + void (*auth)(Req*); + void (*open)(Req*); + void (*create)(Req*); + void (*read)(Req*); + void (*write)(Req*); + void (*remove)(Req*); + void (*flush)(Req*); + void (*stat)(Req*); + void (*wstat)(Req*); + void (*walk)(Req*); + + char* (*walk1)(Fid *fid, char *name, Qid *qid); + char* (*clone)(Fid *oldfid, Fid *newfid); + + void (*destroyfid)(Fid*); + void (*destroyreq)(Req*); + void (*end)(Srv*); + void* aux; +} Srv; +.fi +.PP +.nf +.ft L +.ta \w'\fLvoid* 'u +int srv(Srv *s, int fd) +int postmountsrv(Srv *s, char *srvname, char *mtpt, int flag) +int threadpostmountsrv(Srv *s, char *srvname, char *mtpt, int flag) +int postfd(char *srvname, int fd) +void respond(Req *r, char *error) +ulong readstr(Req *r, char *src) +ulong readbuf(Req *r, void *src, ulong nsrc) +typedef int Dirgen(int n, Dir *dir, void *aux) +void dirread9p(Req *r, Dirgen *gen, void *aux) +.fi +.PP +.nf +.ft L +.ta \w'\fLvoid* 'u +void* emalloc9p(ulong n) +void* erealloc9p(void *v, ulong n) +char* estrdup9p(char *s) +.fi +.PP +.nf +.ft L +extern int chatty9p; +.fi +.SH DESCRIPTION +The function +.I srv +uses serves a 9P session by dispatching requests +to the function pointers kept in +.BR Srv . +.PP +.B Req +and +.B Fid +structures are allocated one-to-one with uncompleted +requests and active fids, and are described in +.IR 9pfid (2). +.PP +The behavior of +.I srv +depends on whether there is a file tree +(see +.IR 9pfile (2)) +associated with the server, that is, +whether the +.B tree +element is nonzero. +The differences are made explicit in the +discussion of the service loop below. +The +.B aux +element is the client's, to do with as it pleases. +At the end of its service loop, +.I srv +calls the +.I endsrv +function (if not zero) +on the +.I Srv +structure itself. +.I Endsrv +should perform any necessary cleanup, +which may include freeing the data associated +with +.IR aux , +or freeing the +.B Srv +structure itself. +.PP +.I Srv +does not return until the 9P conversation is finished. +.I Postmountsrv +and +.I threadpostmountsrv +are wrappers that create a separate process in which to run +.IR srv , +optionally posting the remote end of the service pipe in +.BI /srv/ srvname +or mounting it at +.IR mtpt . +They both return +the file descriptor corresponding to the +.I local +end of the service pipe on success, or \-1 on failure. +.I Threadpostmountsrv +is intended for use in programs that utilize the +.IR thread (2) +library. +.I Postfd +posts the given file descriptor as +.BI /srv/ srvname \fR, +but does not mount and does not start the service loop. +.PP +Since it is usually run in a separate process so that +the caller can exit, the service loop has little chance +to return gracefully on out of memory errors. +It calls +.IR emalloc9p , +.IR erealloc9p , +and +.I estrdup 9p +to obtain its memory. +The default implementations of these functions +act as +.IR malloc , +.IR realloc , +and +.I strdup +but abort the program if they run out of memory. +If alternate behavior is desired, clients can link against +alternate implementations of these functions. +.SS Service functions +The functions in a +.B Srv +structure named after 9P transactions +are called to satisfy requests as they arrive. +If a function is provided, it +.I must +arrange for +.I respond +to be called when the request is satisfied. +The only parameter of each service function +is a +.B Req* +parameter (say +.BR r ). +The incoming request parameters are stored in +.IB r -> ifcall \fR; +.IB r -> fid +and +.IB r -> newfid +are pointers to +.B Fid +structures corresponding to the +numeric fids in +.IB r -> ifcall \fR; +similarly, +.IB r -> oldreq +is the +.B Req +structure corresponding to +.IB r -> ifcall.oldreq \fR. +The outgoing response data should be stored in +.IB r -> ofcall \fR. +The one exception to this rule is that +.B stat +should fill in +.IB r -> d +rather than +.IB r -> ofcall.stat \fR: +the library will convert the structure into the machine-independent +wire representation. +Similarly, +.B wstat +may consult +.IB r -> d +rather than decoding +.IB r -> ifcall . stat +itself. +When a request has been handled, +.I respond +should be called with +.B r +and an error string. +If the request was satisfied successfully, the error +string should be a nil pointer. +Note that it is permissible for a function to return +without itself calling +.IR respond , +as long as it has arranged for +.I respond +to be called at some point in the future +by another proc sharing its address space, +but see the discussion of +.B flush +below. +Once +.I respond +has been called, the +.B Req* +as well as any pointers it once contained must +be considered freed and not referenced. +.PP +If the service loop detects an error in a request +(e.g., an attempt to reuse an extant fid, an open of +an already open fid, a read from a fid opened for write, etc.) +it will reply with an error without consulting +the service functions. +.PP +The service loop provided by +.I srv +(and indirectly by +.I postmountsrv +and +.IR threadpostmountsrv ) +is single-threaded. +If it is expected that some requests might +block, arranging for alternate processes +to handle them is suggested. +.PP +The constraints on the service functions are as follows. +These constraints are checked while the server executes. +If a service function fails to do something it ought to have, +.I srv +will call +.I endsrv +and then abort. +.TP +.I Auth +If authentication is desired, +the +.I auth +function should record that +.B afid +is the new authentication fid and +set +.I afid->qid +and +.IR ofcall.qid . +.I Auth +may be nil, in which case it will be treated as having +responded with the error +.RI `` "argv0: authentication not required" ,'' +where +.I argv0 +is the program name variable as set by +.I ARGBEGIN +(see +.IR arg (2)). +.TP +.I Attach +The +.I attach +function should check the authentication state of +.B afid +if desired, +and set +.IB r -> fid -> qid +and +.I ofcall.qid +to the qid of the file system root. +.I Attach +may be nil only if file trees are in use; +in this case, the qid will be filled from the root +of the tree, and no authentication will be done. +.TP +.B Walk +If file trees are in use, +.I walk +is handled internally, and +.IB srv -> walk +is never called. +.IP +If file trees are not in use, +.I walk +should consult +.B ifcall.wname +and +.BR ifcall.nwname , +filling in +.B ofcall.qid +and +.BR ofcall.nqid , +and also copying any necessary +.B aux +state from +.IB r -> fid +to +.IB r -> newfid +when the two are different. +As long as +.I walk +sets +.B ofcall.nqid +appropriately, it can +.I respond +with a nil error string even when 9P +demands an error +.RI ( e.g. , +in the case of a short walk); +the library detects error conditions and handles them appropriately. +.TP +.B Walk1\fR, \fPClone +Because implementing the full walk message is +intricate and prone to error, the client may instead provide functions +.IB srv -> walk1 +and (optionally) +.IB srv -> clone \fR. +.IR Clone , +if non-nil, is called to signal the creation of +.I newfid +from +.IR oldfid . +Typically a +.I clone +routine will copy or increment a reference count in +.IR oldfid 's +.I aux +element. +.I Walk1 +should walk +.I fid +to +.IR name , +initializing both +.IB fid -> qid +and +.BI * qid +to the new path's qid. +Rather than calling +.IR respond , +both should return nil +on success or an error message on error. +.TP +.B Open +If file trees are in use, the file +metadata will be consulted on open, create, remove, and wstat +to see if the requester has the appropriate permissions. +If not, an error will be sent back without consulting a service function. +.PP +If not using file trees or the user has the appropriate permissions, +.I open +is called with +.IB r -> ofcall . qid +already initialized to the one stored in the +.B Fid +structure (that is, the one returned in the previous walk). +If the qid changes, both should be updated. +.TP +.B Create +The +.I create +function must fill in +both +.IB r -> fid -> qid +and +.IB r -> ofcall . qid +on success. +When using file trees, +.I create +should allocate a new +.B File +with +.IR createfile ; +note that +.I createfile +may return nil (because, say, the file already exists). +If the +.I create +function is nil, +.I srv +behaves as though it were a function that always responded +with the error ``create prohibited''. +.TP +.B Remove +.I Remove +should mark the file as removed, whether +by calling +.I removefile +when using file trees, or by updating an internal data structure. +In general it is not a good idea to clean up the +.I aux +information associated with the corresponding +.B File +at this time, to avoid memory errors if other +fids have references to that file. +Instead, it is suggested that +.I remove +simply mark the file as removed (so that further +operations on it know to fail) and wait until the +file tree's destroy function is called to reclaim the +.I aux +pointer. +If not using file trees, it is prudent to take the +analogous measures. +If +.I remove +is not provided, all remove requests will draw +``remove prohibited'' errors. +.TP +.B Read +The +.I read +function must be provided; it fills +.IB r -> ofcall . data +with at most +.IB r -> ifcall . count +bytes of data from offset +.IB r -> ofcall . offset +of the file. +It also sets +.IB r -> ofcall . count +to the number of bytes being returned. +If using file trees, +.I srv +will handle reads of directories internally, only +calling +.I read +for requests on files. +.I Readstr +and +.I readbuf +are useful for satisfying read requests on a string or buffer. +Consulting the request in +.BR r->ifcall , +they fill +.B r->ofcall.data +and set +.BR r->ofcall.count ; +they do not call +.BR respond . +Similarly, +.I dirread9p +can be used to handle directory reads in servers +not using file trees. +The passed +.I gen +function will be called as necessary to +fill +.I dir +with information for the +.I n th +entry in the directory. +The string pointers placed in +.I dir +should be fresh copies +made with +.IR estrdup9p ; +they will be freed by +.I dirread9p +after each successful call to +.IR gen . +.I Gen +should return zero if it successfully filled +.IR dir , +minus one on end of directory. +.TP +.B Write +The +.I write +function is similar but need not be provided. +If it is not, all writes will draw +``write prohibited'' errors. +Otherwise, +.I write +should attempt to write the +.IB r -> ifcall . n +bytes of +.IB r -> ifcall . data +to offset +.IB r -> ifcall . offset +of the file, setting +.IB r -> ofcall . offset +to the number of bytes actually written. +Most programs consider it an error to +write less than the requested amount. +.TP +.B Stat +.I Stat +should fill +.IB r -> d +with the stat information for +.IB r -> fid \fR. +If using file trees, +.IB r -> d +will have been initialized with the stat info from +the tree, and +.I stat +itself may be nil. +.TP +.I Wstat +The +.I wstat +consults +.IB r -> d +in changing the metadata for +.IB r -> fid +as described in +.IR stat (5). +When using file trees, +.I srv +will take care to check that the request satisfies +the permissions outlined in +.IR stat (5). +Otherwise +.I wstat +should take care to enforce permissions +where appropriate. +.TP +.B Flush +Single-threaded servers, which always call +.I respond +before returning from the service functions, +need not provide a +.I flush +implementation: +.I flush +is only necessary in multithreaded programs, +which arrange for +.I respond +to be called asynchronously. +.I Flush +must ensure that once +.I respond +has been called on +.BR r , +.I respond +will +.I never +be called on +.IB r -> oldreq \fR, +and in fact that +.IB r -> oldreq +and the pointers it contains +will never be accessed again (consider them freed). +.I Flush +must +.I not +call respond with a non-nil error string. +.PD +.PP +.IR Destroyfid , +.IR destroyreq , +and +.I end +are auxiliary functions, not called in direct response to 9P requests. +.TP +.B Destroyfid +When a +.BR Fid 's +reference count drops to zero +.RI ( i.e., +it has been clunked and there are no outstanding +requests referring to it), +.I destroyfid +is called to allow the program to dispose +of the +.B Fid.aux +pointer. +.TP +.B Destroyreq +Similarly, when a +.BR Req 's +reference count drops to zero +.RI ( i.e. , +it has been handled via +.I respond +or has been successfully flushed), +.I destroyreq +is called to allow the program to dispose of the +.B Req.aux +pointer. +.TP +.B End +Once the 9P service loop has finished +(end of file been reached on the service pipe +or a bad message has been read), +.I end +is called (if provided) to allow any final cleanup. +For example, it is used by the Palm Pilot synchronization +file system to gracefully close the serial connection once +the file system has been unmounted. +After calling +.IR end , +the service loop (which runs in a separate process +from its caller) terminates using +.I _exits +(see +.IR exits (2)). +.PD +.PP +If the +.B chatty9p +flag is at least one, +a transcript of the 9P session is printed +on standard error. +If the +.B chatty9p +flag is greater than one, +additional unspecified debugging output is generated. +By convention, servers written using this library +accept the +.B -D +option to increment +.BR chatty9p . +.SH EXAMPLES +.IR Archfs (4), +.IR cdfs (4), +.IR nntpfs (4), +.IR snap (4), +and +.B /sys/src/lib9p/ramfs.c +are good examples of simple single-threaded file servers. +.IR Webfs (4) +and +.I sshnet +(see +.IR ssh (1)) +are good examples of multithreaded file servers. +.PP +In general, the +.B File +interface is appropriate for maintaining arbitrary file trees (as in +.IR ramfs ). +The +.B File +interface is best avoided when the +tree structure is easily generated as necessary; +this is true when the tree is highly structured (as in +.I cdfs +and +.IR nntpfs ) +or is maintained elsewhere. +.SH SOURCE +.B /sys/src/lib9p +.SH SEE ALSO +.IR 9pfid (2), +.IR 9pfile (2), +.IR srv (3), +.IR intro (5) +.SH BUGS +The switch to 9P2000 was taken as an opportunity to tidy +much of the interface; we promise to avoid such gratuitous change +in the future. diff --git a/static/plan9-4e/man2/9pfid.2 b/static/plan9-4e/man2/9pfid.2 new file mode 100644 index 00000000..33c05761 --- /dev/null +++ b/static/plan9-4e/man2/9pfid.2 @@ -0,0 +1,204 @@ +.TH 9PFID 2 +.SH NAME +Fid, Fidpool, allocfidpool, freefidpool, allocfid, closefid, lookupfid, removefid, +Req, Reqpool, allocreqpool, freereqpool, allocreq, closereq, lookupreq, removereq \- 9P fid, request tracking +.SH SYNOPSIS +.ft L +.nf +#include +#include +#include +#include +#include +#include <9p.h> +.fi +.PP +.ft L +.nf +.ta \w'\fL 'u +\w'\fLulong 'u +typedef struct Fid +{ + ulong fid; + char omode; /* -1 if not open */ + char *uid; + Qid qid; + File *file; + void *aux; + \fI...\fP +} Fid; +.fi +.PP +.ft L +.nf +.ta \w'\fL 'u +\w'\fLulong 'u +typedef struct Req +{ + ulong tag; + Fcall fcall; + Req *oldreq; + void *aux; + \fI...\fP +} Req; +.fi +.PP +.ft L +.nf +.ta \w'\fLFidpool* 'u +Fidpool* allocfidpool(void (*destroy)(Fid*)) +void freefidpool(Fidpool *p) +Fid* allocfid(Fidpool *p, ulong fid) +Fid* lookupfid(Fidpool *p, ulong fid) +void closefid(Fid *f) +void removefid(Fid *f) +.fi +.PP +.ft L +.nf +.ta \w'\fLReqpool* 'u +Reqpool* allocreqpool(void (*destroy)(Req*)) +void freereqpool(Reqpool *p) +Req* allocreq(Reqpool *p, ulong tag) +Req* lookupreq(Reqpool *p, ulong tag) +void closereq(Req *f) +void removereq(Req *r) +.fi +.SH DESCRIPTION +These routines provide management of +.B Fid +and +.B Req +structures from +.BR Fidpool s +and +.BR Reqpool s. +They are primarily used by the 9P server loop +described in +.IR 9p (2). +.PP +.B Fid +structures are intended to represent +active fids in a 9P connection, as +.B Chan +structures do in the Plan 9 kernel. +The +.B fid +element is the integer fid used in the 9P +connection. +.B Omode +is the mode under which the fid was opened, or +.B -1 +if this fid has not been opened yet. +Note that in addition to the values +.BR OREAD , +.BR OWRITE , +and +.BR ORDWR , +.B omode +can contain the various flags permissible in +an open call. +To ignore the flags, use +.BR omode&OMASK . +.B Omode +should not be changed by the client. +The fid derives from a successful authentication by +.BR uid . +.B Qid +contains the qid returned in the last successful +.B walk +or +.B create +transaction involving the fid. +In a file tree-based server, the +.BR Fid 's +.B file +element points at a +.B File +structure +(see +.IR 9pfile (2)) +corresponding to the fid. +The +.B aux +member is intended for use by the +client to hold information specific to a particular +.BR Fid . +With the exception of +.BR aux , +these elements should be treated +as read-only by the client. +.PP +.I Allocfidpool +creates a new +.BR Fidpool . +.I Freefidpool +destroys such a pool. +.I Allocfid +returns a new +.B Fid +whose fid number is +.IR fid . +There must not already be an extant +.B Fid +with that number in the pool. +Once a +.B Fid +has been allocated, it can be looked up by +fid number using +.IR lookupfid . +.BR Fid s +are reference counted: both +.I allocfid +and +.I lookupfid +increment the reference count on the +.B Fid +structure before +returning. +When a reference to a +.B Fid +is no longer needed, +.I closefid +should be called to note the destruction of the reference. +When the last reference to a +.B Fid +is removed, if +.I destroy +(supplied when creating the fid pool) +is not zero, it is called with the +.B Fid +as a parameter. +It should perform whatever cleanup is necessary +regarding the +.B aux +element. +.I Removefid +is equivalent to +.I closefid +but also removes the +.B Fid +from the pool. +Note that due to lingering references, +the return of +.I removefid +may not mean that +.I destroy +has been called. +.PP +.IR Allocreqpool , +.IR freereqpool , +.IR allocreq , +.IR lookupreq , +.IR closereq , +and +.I removereq +are analogous but +operate on +.BR Reqpool s +and +.B Req +structures. +.SH SOURCE +.B /sys/src/lib9p +.SH SEE ALSO +.IR 9p (2), +.IR 9pfile (2) diff --git a/static/plan9-4e/man2/9pfile.2 b/static/plan9-4e/man2/9pfile.2 new file mode 100644 index 00000000..10949a26 --- /dev/null +++ b/static/plan9-4e/man2/9pfile.2 @@ -0,0 +1,224 @@ +.TH 9PFILE 2 +.SH NAME +Tree, alloctree, freetree, +File, createfile, closefile, removefile, walkfile, +opendirfile, readdirfile, closedirfile, hasperm \- in-memory file hierarchy +.SH SYNOPSIS +.ft L +.nf +#include +#include +#include +#include +#include +#include <9p.h> +.fi +.PP +.ft L +.nf +.ta \w'\fLFile 'u +typedef struct File +{ + Ref; + Dir; + void *aux; + \fI...\fP +} File; +.fi +.PP +.ft L +.nf +.ta \w'\fLTree 'u +typedef struct Tree +{ + File *root; + \fI...\fP +} Tree; +.fi +.PP +.ft L +.nf +.ta \w'\fLReaddir* 'u +4n +4n +Tree* alloctree(char *uid, char *gid, ulong mode, + void (*destroy)(File*)) +void freetree(Tree *tree) +File* createfile(File *dir, char *name, char *uid, + ulong mode, void *aux) +int removefile(File *file) +void closefile(File *file) +File* walkfile(File *dir, char *path) +Readdir* opendirfile(File *dir) +long readdirfile(Readdir *rdir, char *buf, long n) +void closedirfile(Readdir *rdir) +int hasperm(File *file, char *uid, int p) +.fi +.SH DESCRIPTION +.BR File s +and +.BR Tree s +provide an in-memory file hierarchy +intended for use in 9P file servers. +.PP +.I Alloctree +creates a new tree of files, and +.I freetree +destroys it. +The root of the tree +(also the +.B root +element in the structure) +will have mode +.I mode +and be owned by user +.I uid +and group +.IR gid . +.I Destroy +is used when freeing +.B File +structures and is described later. +.PP +.BR File s +(including directories) +other than the root are created using +.IR createfile , +which attempts to create a file named +.I name +in the directory +.IR dir . +If created, the file will have owner +.I uid +and have a group inherited from +the directory. +.I Mode +and the permissions of +.I dir +are used to calculate the permission bits for +the file as described in +.IR open (5). +It is permissible for +.I name +to be a slash-separated path rather than a single element. +.PP +.I Removefile +removes a file from the file tree. +The file will not be freed until the last +reference to it has been removed. +Directories may only be removed when empty. +.I Removefile +returns zero on success, \-1 on error. +It is correct to consider +.I removefile +to be +.I closefile +with the side effect of removing the file +when possible. +.PP +.I Walkfile +evaluates +.I path +relative to the directory +.IR dir , +returning the resulting file, +or zero if the named file or any intermediate element +does not exist. +.PP +The +.B File +structure's +.B aux +pointer may be used by the client +for +.RB per- File +storage. +.BR File s +are reference-counted: if not zero, +.I destroy +(specified in the call to +.IR alloctree ) +will be called for each file when its +last reference is removed or when the tree is freed. +.I Destroy +should take care of any necessary cleanup related to +.BR aux . +When creating new file references by copying pointers, +call +.I incref +(see +.IR lock (2)) +to update the reference count. +To note the removal of a reference to a file, call +.IR closefile . +.I Createfile +and +.I walkfile +return new references. +.IR Removefile , +.IR closefile , +and +.I walkfile +(but not +.IR createfile ) +consume the passed reference. +.PP +Directories may be read, yielding a directory entry structure +(see +.IR stat (5)) +for each file in the directory. +In order to allow concurrent reading of directories, +clients must obtain a +.B Readdir +structure by calling +.I opendirfile +on a directory. +Subsequent calls to +.I readdirfile +will each yield an integral number of machine-independent +stat buffers, until end of directory. +When finished, call +.I closedirfile +to free the +.BR Readdir . +.PP +.I Hasperm +does simplistic permission checking; it assumes only +one-user groups named by uid and returns non-zero if +.I uid +has permission +.I p +(a bitwise-or of +.BR AREAD , +.BR AWRITE +and +.BR AEXEC ) +according to +.IB file ->mode \fR. +9P servers written using +.B File +trees will do standard permission checks automatically; +.I hasperm +may be called explicitly to do additional checks. +A 9P server may link against a different +.I hasperm +implementation to provide more complex groups. +.SH EXAMPLE +The following code correctly handles references +when elementwise walking a path and creating a file. +.IP +.EX +f = tree->root; +incref(f); +for(i=0; i +plan 9 man section 2 + + +[manual index] +

Plan 9 from Bell Labs - Section 2 - System and Library Calls

+
+
+
0intro +- introduction to library functions +
intro + +
9p +- 9P file service +
Srv, dirread9p, emalloc9p, erealloc9p, estrdup9p, postfd, postmountsrv, readbuf, readstr, respond, threadpostmountsrv, srv + +
9pfid +- 9P fid, request tracking +
Fid, Fidpool, allocfidpool, freefidpool, allocfid, closefid, lookupfid, removefid, Req, Reqpool, allocreqpool, freereqpool, allocreq, closereq, lookupreq, removereq + +
9pfile +- in-memory file hierarchy +
Tree, alloctree, freetree, File, createfile, closefile, removefile, walkfile, opendirfile, readdirfile, closedirfile, hasperm + +
abort +- generate a fault +
abort + +
abs +- integer absolute values +
abs, labs + +
access +- determine accessibility of file +
access + +
addpt +- arithmetic on points and rectangles +
addpt, subpt, mulpt, divpt, rectaddpt, rectsubpt, insetrect, canonrect, eqpt, eqrect, ptinrect, rectinrect, rectXrect, rectclip, combinerect, Dx, Dy, Pt, Rect, Rpt + +
aes +- advanced encryption standard (rijndael) +
setupAESstate, aesCBCencrypt, aesCBCdecrypt + +
allocimage +- allocating, freeing, reading, writing images +
allocimage, allocimagemix, freeimage, nameimage, namedimage, setalpha, loadimage, cloadimage, unloadimage, readimage, writeimage, bytesperline, wordsperline + +
arg +- process option letters from argv +
ARGBEGIN, ARGEND, ARGC, ARGF, EARGF, arginit, argopt + +
arith3 +- operations on 3-d points and planes +
add3, sub3, neg3, div3, mul3, eqpt3, closept3, dot3, cross3, len3, dist3, unit3, midpt3, lerp3, reflect3, nearseg3, pldist3, vdiv3, vrem3, pn2f3, ppp2f3, fff2p3, pdiv4, add4, sub4 + +
assert +- check program invariants +
assert + +
atof +- convert text to numbers +
atof, atoi, atol, atoll, charstod, strtod, strtol, strtoll, strtoul, strtoull + +
auth +- +
amount, newns, addns, login, noworld, auth_proxy, fauth_proxy, auth_allocrpc, auth_freerpc, auth_rpc, auth_getkey, amount_getkey, auth_freeAI, auth_chuid, auth_challenge, auth_response, auth_freechal, auth_respond, auth_userpasswd, auth_getuserpasswd, auth_getinfo\- routines for authenticating users + +
authsrv +- routines for communicating with authentication servers +
authdial, passtokey, nvcsum, readnvram, convT2M, convM2T, convTR2M, convM2TR, convA2M, convM2A, convPR2M, convM2PR, _asgetticket, _asrdresp + +
bin +- grouped memory allocation +
binalloc, bingrow, binfree + +
bind +- change name space +
bind, mount, unmount + +
bio +- buffered input/output +
Bopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered + +
blowfish +- blowfish encryption +
setupBFstate, bfCBCencrypt, bfCBCdecrypt, bfECBencrypt, bfECBdecrypt + +
brk +- change memory allocation +
brk, sbrk + +
cachechars +- font utilities +
cachechars, agefont, loadchar, Subfont, Fontchar, Font + +
chdir +- change working directory +
chdir + +
cleanname +- clean a path name +
cleanname + +
color +- colors and color maps +
cmap2rgb, cmap2rgba, rgb2cmap + +
control +- interactive graphical controls +
Control, Controlset, activate, closecontrol, closecontrolset, controlcalled, controlwire, createbox, createboxbox, createbutton, createcolumn, createentry, createkeyboard, createlabel, createmenu, createradiobutton, createrow, createscribble, createslider, createstack, createtab, createtext, createtextbutton, ctlerror, ctlmalloc, ctlrealloc, ctlstrdup, ctlprint, deactivate, freectlfont, freectlimage, initcontrols, namectlfont, namectlimage, newcontrolset, resizecontrolset + +
cputime +- cpu time in this process and children +
cputime, times + +
ctime +- convert date and time +
ctime, localtime, gmtime, asctime, tm2sec, timezone + +
ctype +- ASCII character classification +
isalpha, isupper, islower, isdigit, isxdigit, isalnum, isspace, ispunct, isprint, isgraph, iscntrl, isascii, toascii, _toupper, _tolower, toupper, tolower + +
debugger +- machine-independent debugger functions +
cisctrace, risctrace, ciscframe, riscframe, localaddr, symoff, fpformat, beieee80ftos, beieeesftos, beieeedftos, leieee80ftos, leieeesftos, leieeedftos, ieeesftos, ieeedftos + +
des +- single and triple digital encryption standard +
setupDESstate, des_key_setup, block_cipher, desCBCencrypt, desCBCdecrypt, desECBencrypt, desECBdecrypt, des3CBCencrypt, des3CBCdecrypt, des3ECBencrypt, des3ECBdecrypt, key_setup, des56to64, des64to56, setupDES3state, triple_block_cipher, + +
dial +- make and break network connections +
dial, hangup, announce, listen, accept, reject, netmkaddr, setnetmtpt, getnetconninfo, freenetconninfo + +
dirread +- read directory +
dirread, dirreadall + +
disk +- generic disk device interface +
opendisk, Disk + +
draw +- graphics functions +
Image, draw, gendraw, drawreplxy, drawrepl, replclipr, line, poly, fillpoly, bezier, bezspline, fillbezier, fillbezspline, ellipse, fillellipse, arc, fillarc, icossin, icossin2, border, string, stringn, runestring, runestringn, stringbg, stringnbg, runestringbg, runestringnbg, _string, ARROW, drawsetdebug + +
dup +- duplicate an open file descriptor +
dup + +
elgamal +- elgamal encryption +
eggen, egencrypt, egdecrypt, egsign, egverify, egalloc, egfree, egpuballoc, egpubfree, egprivalloc, egprivfree, egsigalloc, egsigfree, egprivtopub + +
encode +- encoding byte arrays as strings +
dec64, enc64, dec32, enc32, dec16, enc16, encodefmt + +
encrypt +- DES encryption +
encrypt, decrypt, netcrypt + +
errstr +- description of last system call error +
errstr, rerrstr, werrstr + +
event +- graphics events +
event, einit, estart, estartfn, etimer, eread, emouse, ekbd, ecanread, ecanmouse, ecankbd, ereadmouse, eatomouse, eresized, egetrect, edrawgetrect, emenuhit, emoveto, esetcursor, Event, Mouse, Menu + +
exec +- execute a file +
exec, execl, _clock, _privates, _nprivates + +
exits +- terminate process, process cleanup +
exits, _exits, atexit, atexitdont, terminate + +
exp +- exponential, logarithm, power, square root +
exp, log, log10, pow, pow10, sqrt + +
fauth +- set up authentication on a file descriptor to a file server +
fauth + +
fcall +- interface to Plan 9 File protocol +
Fcall, convS2M, convD2M, convM2S, convM2D, fcallfmt, dirfmt, dirmodefmt, read9pmsg, statcheck, sizeD2M + +
fd2path +- return file name associated with file descriptor +
fd2path + +
fgetc +- Stdio input and output +
fgetc, getc, getchar, fputc, putc, putchar, ungetc, fgets, gets, fputs, puts, fread, fwrite + +
flate +- deflate compression +
deflateinit, deflate, deflatezlib, deflateblock, deflatezlibblock, inflateinit, inflate, inflatezlib, inflateblock, inflatezlibblock, flateerr, mkcrctab, blockcrc, adler32 + +
floor +- absolute value, remainder, floor, ceiling functions +
fabs, fmod, floor, ceil + +
fmtinstall +- support for user-defined print formats and output routines +
fmtinstall, dofmt, dorfmt, fmtprint, fmtvprint, fmtrune, fmtstrcpy, fmtrunestrcpy, fmtfdinit, fmtfdflush, fmtstrinit, fmtstrflush, runefmtstrinit, runefmtstrflush, errfmt + +
fopen +- standard buffered input/output package +
fopen, freopen, fdopen, fileno, fclose, sopenr, sopenw, sclose, fflush, setvbuf, setbuf, fgetpos, ftell, fsetpos, fseek, rewind, feof, ferror, clearerr + +
fork +- manipulate process resources +
fork, rfork + +
fprintf +- print formatted output +
fprintf, printf, sprintf, snprintf, vfprintf, vprintf, vsprintf, vsnprintf + +
frame +- frames of text +
frinit, frsetrects, frinittick, frclear, frcharofpt, frptofchar, frinsert, frdelete, frselect, frtick, frselectpaint, frdrawsel, frdrawsel0, frgetmouse + +
frexp +- split into mantissa and exponent +
frexp, ldexp, modf + +
fscanf +- scan formatted input +
fscanf, scanf, sscanf, vfscanf + +
fversion +- initialize 9P connection and negotiate version +
fversion + +
genrandom +- random number generation +
genrandom, prng + +
getcallerpc +- fetch return PC of current function +
getcallerpc + +
getenv +- access environment variables +
getenv, putenv + +
getfcr +- control floating point +
getfcr, setfcr, getfsr, setfsr + +
getfields +- break a string into fields +
getfields, gettokens, tokenize + +
getpid +- get process ids +
getpid, getppid + +
getuser +- get user or system name +
getuser, sysname + +
getwd +- get current directory +
getwd + +
graphics +- interactive graphics +
Display, Point, Rectangle, Cursor, initdraw, geninitdraw, drawerror, initdisplay, closedisplay, getdefont, getwindow, gengetwindow, flushimage, bufimage, lockdisplay, unlockdisplay, cursorswitch, cursorset, openfont, buildfont, freefont, Pfmt, Rfmt, strtochan, chantostr, chantodepth + +
html +- HTML parser +
parsehtml, printitems, validitems, freeitems, freedocinfo, dimenkind, dimenspec, targetid, targetname, fromStr, toStr + +
httpd +- routines for creating an http server +
HConnect, HContent, HContents, HETag, HFields, Hio, Htmlesc, HttpHead, HttpReq, HRange, HSPairs, hmydomain, hversion, htmlesc, halloc, hbodypush, hbuflen, hcheckcontent, hclose, hdate2sec, hdatefmt, hfail, hflush, hgetc, hgethead, hinit, hiserror, hload, hlower, hmkcontent, hmkhfields, hmkmimeboundary, hmkspairs, hmoved, hokheaders, hparseheaders, hparsequery, hparsereq, hprint, hputc, hreadbuf, hredirected, hreqcleanup, hrevhfields, hrevspairs, hstrdup, http11, httpfmt, httpunesc, hunallowed, hungetc, hunload, hurlfmt, hurlunesc, hwrite, hxferenc, + +
hypot +- Euclidean distance +
hypot + +
intmap +- integer to data structure maps +
Intmap, allocmap, freemap, insertkey, caninsertkey, lookupkey, deletekey + +
iounit +- return size of atomic I/O unit for file descriptor +
iounit + +
ip +- Internet protocol +
eipfmt, parseip, parseipmask, v4parseip, v4parsecidr, parseether, myipaddr, myetheraddr, maskip, equivip, defmask, isv4, v4tov6, v6tov4, nhgetl, nhgets, hnputl, hnputs, ptclbsum, readipifc + +
isalpharune +- Unicode character classes and cases +
isalpharune, islowerrune, isspacerune, istitlerune, isupperrune, tolowerrune, totitlerune, toupperrune + +
keyboard +- keyboard control +
initkeyboard, ctlkeyboard, closekeyboard + +
lock +- shared memory spin locks, rendez-vous locks, reader-writer locks, and atomic increment and decrement +
lock, canlock, unlock, qlock, canqlock, qunlock, rlock, runlock, canrlock, wlock, wunlock, canwlock, incref, decref + +
mach +- machine-independent access to executable files +
crackhdr, machbytype, machbyname, newmap, setmap, findseg, unusemap, loadmap, attachproc, get1, get2, get4, get8, put1, put2, put4, put8, beswab, beswal, beswav, leswab, leswal, leswav + +
malloc +- memory allocator +
malloc, mallocz, free, realloc, calloc, msize, setmalloctag, setrealloctag, getmalloctag, getrealloctag, malloctopoolblock + +
matrix +- Geometric transformations +
ident, matmul, matmulr, determinant, adjoint, invertmat, xformpoint, xformpointd, xformplane, pushmat, popmat, rot, qrot, scale, move, xform, ixform, persp, look, viewport + +
memdraw +- drawing routines for memory-resident images +
Memimage, Memdata, Memdrawparam, memimageinit, wordaddr, byteaddr, memimagemove, allocmemimage, allocmemimaged, readmemimage, creadmemimage, writememimage, freememimage, memsetchan, loadmemimage, cloadmemimage, unloadmemimage, memfillcolor, memarc, mempoly, memellipse, memfillpoly, memimageline, memimagedraw, drawclip, memlinebbox, memlineendsize, allocmemsubfont, openmemsubfont, freememsubfont, memsubfontwidth, getmemdefont, memimagestring, iprint, hwdraw + +
memlayer +- windows of memory-resident images +
memdraw, memlalloc, memldelete, memlexpose, memlfree, memlhide, memline, memlnorefresh, memload, memunload, memlorigin, memlsetrefresh, memltofront, memltofrontn, memltorear, memltorearn + +
memory +- memory operations +
memccpy, memchr, memcmp, memcpy, memmove, memset + +
mktemp +- make a unique file name +
mktemp + +
mouse +- mouse control +
initmouse, readmouse, closemouse, moveto, cursorswitch, getrect, drawgetrect, menuhit, setcursor + +
mp +- extended precision arithmetic +
mpsetminbits, mpnew, mpfree, mpbits, mpnorm, mpcopy, mpassign, mprand, strtomp, mpfmt,mptoa, betomp, mptobe, letomp, mptole, mptoui, uitomp, mptoi, itomp, uvtomp, mptouv, vtomp, mptov, mpdigdiv, mpadd, mpsub, mpleft, mpright, mpmul, mpexp, mpmod, mpdiv, mpcmp, mpextendedgcd, mpinvert, mpsignif, mplowbits0, mpvecdigmuladd, mpvecdigmulsub, mpvecadd, mpvecsub, mpveccmp, mpvecmul, mpmagcmp, mpmagadd, mpmagsub, crtpre, crtin, crtout, crtprefree, crtresfree + +
muldiv +- high-precision multiplication and division +
muldiv, umuldiv + +
nan +- not-a-number and infinity functions +
NaN, Inf, isNaN, isInf + +
ndb +- network database +
ndbopen, ndbcat, ndbclose, ndbreopen, ndbsearch, ndbsnext, ndbgetval, ndbfree, ipattr, ndbipinfo, csipinfo, ndbhash, ndbparse, csgetval, ndblookval, dnsquery + +
notify +- handle asynchronous process notification +
notify, noted, atnotify + +
object +- object file interpretation functions +
objtype, readobj, objtraverse, isar, nextar, readar + +
open +- open a file for reading or writing, create file +
open, create, close + +
perror +- system error messages +
perror, syslog, sysfatal + +
pipe +- create an interprocess channel +
pipe + +
plumb +- plumb messages +
eplumb, plumbfree, plumbopen, plumbsend, plumbsendtext, plumblookup, plumbpack, plumbpackattr, plumbaddattr, plumbdelattr, plumbrecv, plumbunpack, plumbunpackpartial, plumbunpackattr, Plumbmsg + +
pool +- general memory management routines +
poolalloc, poolfree, poolmsize, poolrealloc, poolcompact, poolcheck, poolblockcheck, pooldump + +
postnote +- send a note to a process or process group +
postnote + +
prime +- prime number generation +
genprime, gensafeprime, genstrongprime, DSAprimes, probably_prime, smallprimetest + +
print +- print formatted output +
print, fprint, sprint, snprint, seprint, smprint, runesprint, runesnprint, runeseprint, runesmprint, vfprint, vsnprint, vseprint, vsmprint, runevsnprint, runevseprint, runevsmprint + +
privalloc +- per-process private storage management +
privalloc, privfree + +
proto +- parse and process a proto file listing +
rdproto + +
pushssl +- attach SSL version 2 encryption to a communication channel +
pushssl + +
pushtls +- attach TLS1 or SSL3 encryption to a communication channel +
pushtls, tlsClient, tlsServer, initThumbprints, freeThumbprints, okThumbprint, readcert + +
qball +- 3-d rotation controller +
qball + +
qsort +- quicker sort +
qsort + +
quaternion +- Quaternion arithmetic +
qtom, mtoq, qadd, qsub, qneg, qmul, qdiv, qunit, qinv, qlen, slerp, qmid, qsqrt + +
quote +- quoted character strings +
quotestrdup, quoterunestrdup, unquotestrdup, unquoterunestrdup, quotestrfmt, quoterunestrfmt, quotefmtinstall, doquote + +
rand +- random number generator +
rand, lrand, frand, nrand, lnrand, srand, truerand, ntruerand, fastrand, nfastrand + +
rc4 +- alleged rc4 encryption +
setupRC4state, rc4, rc4skip, rc4back + +
read +- read or write file +
read, readn, write, pread, pwrite + +
readcolmap +- access display color map +
RGB, readcolmap, writecolmap + +
readv +- scatter/gather read and write +
readv, writev, preadv, pwritev + +
regexp +- regular expression +
regcomp, regcomplit, regcompnl, regexec, regsub, rregexec, rregsub, regerror + +
remove +- remove a file +
remove + +
rendezvous +- user level process synchronization +
rendezvous + +
rsa +- +
+ +
rune +- rune/UTF conversion +
runetochar, chartorune, runelen, runenlen, fullrune, utfecpy, utflen, utfnlen, utfrune, utfrrune, utfutf + +
runestrcat +- rune string operations +
runestrcat, runestrncat, runestrcmp, runestrncmp, runestrcpy, runestrncpy, runestrecpy, runestrlen, runestrchr, runestrrchr, runestrdup, runestrstr + +
scribble +- character recognition +
scribblealloc, recognize + +
scsi +- SCSI device operations +
openscsi, scsiready, scsi, scsicmd, scsierror + +
sechash +- cryptographically secure hashes +
md4, md5, sha1, hmac_md5, hmac_sha1, md5pickle, md5unpickle, sha1pickle, sha1unpickle + +
seek +- change file offset +
seek + +
segattach +- map/unmap a segment in virtual memory +
segattach, segdetach, segfree + +
segbrk +- change memory allocation +
segbrk + +
segflush +- flush instruction and data caches +
segflush + +
setjmp +- non-local goto +
setjmp, longjmp, notejmp + +
sin +- trigonometric functions +
sin, cos, tan, asin, acos, atan, atan2 + +
sinh +- hyperbolic functions +
sinh, cosh, tanh + +
sleep +- delay, ask for delayed note +
sleep, alarm + +
stat +- get and put file status +
stat, fstat, wstat, fwstat, dirstat, dirfstat, dirwstat, dirfwstat, nulldir + +
strcat +- string operations +
strcat, strncat, strcmp, strncmp, cistrcmp, cistrncmp, strcpy, strncpy, strecpy, strlen, strchr, strrchr, strpbrk, strspn, strcspn, strtok, strdup, strstr, cistrstr + +
string +- extensible strings +
s_alloc, s_append, s_array, s_copy, s_error, s_free, s_incref, s_memappend, s_nappend, s_new, s_newalloc, s_parse, s_reset, s_restart, s_terminate, s_tolower, s_putc, s_unique, s_grow, s_read, s_read_line, s_getline + +
stringsize +- graphical size of strings +
stringsize, stringwidth, stringnwidth, runestringsize, runestringwidth, runestringnwidth + +
subfont +- subfont manipulation +
allocsubfont, freesubfont, installsubfont, lookupsubfont, uninstallsubfont, subfontname, readsubfont, readsubfonti, writesubfont, stringsubfont, strsubfontwidth, mkfont + +
symbol +- symbol table access functions +
syminit, getsym, symbase, pc2sp, pc2line, textseg, line2addr, lookup, findlocal, getauto, findsym, localsym, globalsym, textsym, file2pc, fileelem, filesym, fileline, fnbound + +
thread +- thread and proc management +
alt, chancreate, chanfree, chaninit, chanprint, mainstacksize, proccreate, procdata, procexec, procexecl, procrfork, recv, recvp, recvul, send, sendp, sendul, nbrecv, nbrecvp, nbrecvul, nbsend, nbsendp, nbsendul, threadcreate, threaddata, threadexits, threadexitsall, threadgetgrp, threadgetname, threadint, threadintgrp, threadkill, threadkillgrp, threadmain, threadnotify, threadid, threadpid, threadprint, threadsetgrp, threadsetname, threadwaitchan, yield + +
time +- time in seconds and nanoseconds since epoch +
time, nsec + +
tmpfile +- Stdio temporary files +
tmpfile, tmpnam + +
wait +- wait for a process to exit +
await, wait, waitpid + +
window +- window management +
Screen, allocscreen, publicscreen, freescreen, allocwindow, bottomwindow, bottomnwindows, topwindow, topnwindows, originwindow + +
diff --git a/static/plan9-4e/man2/Makefile b/static/plan9-4e/man2/Makefile new file mode 100644 index 00000000..b938fb36 --- /dev/null +++ b/static/plan9-4e/man2/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.2) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man2/abort.2 b/static/plan9-4e/man2/abort.2 new file mode 100644 index 00000000..feec9d85 --- /dev/null +++ b/static/plan9-4e/man2/abort.2 @@ -0,0 +1,18 @@ +.TH ABORT 2 +.SH NAME +abort \- generate a fault +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +void abort(void) +.fi +.SH DESCRIPTION +.I Abort +causes an access fault, causing the current process to enter the `Broken' state. +The process can then be inspected by a debugger. +.SH SOURCE +.B /sys/src/libc/9sys/abort.c diff --git a/static/plan9-4e/man2/abs.2 b/static/plan9-4e/man2/abs.2 new file mode 100644 index 00000000..b2df7fba --- /dev/null +++ b/static/plan9-4e/man2/abs.2 @@ -0,0 +1,33 @@ +.TH ABS 2 +.SH NAME +abs, labs \- integer absolute values +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int abs(int a) +.PP +.B +long labs(long a) +.SH DESCRIPTION +.I Abs +returns +the absolute value of integer +.IR a , +and +.I labs +does the same for a long. +.SH SOURCE +.B /sys/src/libc/port/abs.c +.SH SEE ALSO +.IR floor (2) +for +.I fabs +.SH DIAGNOSTICS +.I Abs +and +.I labs +return +the most negative integer or long when the true result is unrepresentable. diff --git a/static/plan9-4e/man2/access.2 b/static/plan9-4e/man2/access.2 new file mode 100644 index 00000000..f21eda24 --- /dev/null +++ b/static/plan9-4e/man2/access.2 @@ -0,0 +1,64 @@ +.TH ACCESS 2 +.SH NAME +access \- determine accessibility of file +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int access(char *name, int mode) +.SH DESCRIPTION +.I Access +evaluates the given +file +.I name +for accessibility. +If \fImode\fL&4\fR +is nonzero, +read permission is expected; +if \fImode\fL&2\fR, +write permission; +if \fImode\fL&1\fR, +execute permission. +If \fImode\fL==0\fR, +the file merely need exist. +In any case +all directories leading to the file +must permit searches. +Zero is returned if the desired access is permitted, +\-1 if not. +.PP +Only access bits are checked. +A file may look executable, but +.IR exec (2) +will fail unless it is in proper format. +.PP +The include file +.F +defines +.BR AEXIST =0, +.BR AEXEC =1, +.BR AWRITE =2, +and +.BR AREAD =4. +.PP +.SH SOURCE +.B /sys/src/libc/9sys/access.c +.SH SEE ALSO +.IR stat (2) +.SH DIAGNOSTICS +Sets +.IR errstr . +.SH BUGS +Since file permissions are checked by the server and group information +is not known to the client, +.I access +must open the file to check permissions. +(It calls +.IR stat (2) +to check simple existence.) +Besides giving misleading information about the writability of directories, +this is as expensive as the open that +.I access +is often intended to avoid. diff --git a/static/plan9-4e/man2/addpt.2 b/static/plan9-4e/man2/addpt.2 new file mode 100644 index 00000000..9738c51b --- /dev/null +++ b/static/plan9-4e/man2/addpt.2 @@ -0,0 +1,188 @@ +.TH ADDPT 2 +.SH NAME +addpt, subpt, mulpt, divpt, rectaddpt, rectsubpt, insetrect, canonrect, eqpt, eqrect, ptinrect, rectinrect, rectXrect, rectclip, combinerect, Dx, Dy, Pt, Rect, Rpt \- arithmetic on points and rectangles +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.B +Point addpt(Point p, Point q) +.PP +.B +Point subpt(Point p, Point q) +.PP +.B +Point mulpt(Point p, int a) +.PP +.B +Point divpt(Point p, int a) +.PP +.B +Rectangle rectaddpt(Rectangle r, Point p) +.PP +.B +Rectangle rectsubpt(Rectangle r, Point p) +.PP +.B +Rectangle insetrect(Rectangle r, int n) +.PP +.B +Rectangle canonrect(Rectangle r) +.PP +.B +int eqpt(Point p, Point q) +.PP +.B +int eqrect(Rectangle r, Rectangle s) +.PP +.B +int ptinrect(Point p, Rectangle r) +.PP +.B +int rectinrect(Rectangle r, Rectangle s) +.PP +.B +int rectXrect(Rectangle r, Rectangle s) +.PP +.B +int rectclip(Rectangle *rp, Rectangle b) +.PP +.B +void combinerect(Rectangle *rp, Rectangle b) +.PP +.B +int Dx(Rectangle r) +.PP +.B +int Dy(Rectangle r) +.PP +.B +Point Pt(int x, int y) +.PP +.B +Rectangle Rect(int x0, int y0, int x1, int y1) +.PP +.B +Rectangle Rpt(Point p, Point q) +.SH DESCRIPTION +The functions +.IR Pt , +.I Rect +and +.I Rpt +construct geometrical data types from their components. +.PP +.I Addpt +returns the Point +sum of its arguments: +.BI Pt( p .x+ q .x, +.IB p .y+ q .y) \f1. +.I Subpt +returns the Point +difference of its arguments: +.BI Pt( p .x- q .x, +.IB p .y- q .y) \f1. +.I Mulpt +returns the Point +.BI Pt( p .x* a , +.IB p .y* a ) \f1. +.I Divpt +returns the Point +.BI Pt( p .x/ a , +.IB p .y/ a ) \f1. +.PP +.I Rectaddpt +returns the Rectangle +.BI Rect(add( r .min, +.IB p ) \f1, +.BI add( r .max, +.IB p )) \f1; +.I rectsubpt +returns the Rectangle +.BI Rpt(sub( r .min, +.IB p ), +.BI sub( r .max, +.IB p ))\fR. +.PP +.I Insetrect +returns the Rectangle +.BI Rect( r .min.x+ n \f1, +.IB r .min.y+ n \f1, +.IB r .max.x- n \f1, +.IB r .max.y- n ) \f1. +.PP +.I Canonrect +returns a rectangle with the same extent as +.IR r , +canonicalized so that +.B min.x +≤ +.BR max.x , +and +.B min.y +≤ +.BR max.y . +.PP +.I Eqpt +compares its argument Points and returns +0 if unequal, +1 if equal. +.I Eqrect +does the same for its argument Rectangles. +.PP +.I Ptinrect +returns 1 if +.I p +is a point within +.IR r , +and 0 otherwise. +.PP +.I Rectinrect +returns 1 if all the pixels in +.I r +are also in +.IR s , +and 0 otherwise. +.PP +.I RectXrect +returns 1 if +.I r +and +.I s +share any point, and 0 otherwise. +.PP +.I Rectclip +clips in place +the Rectangle pointed to by +.I rp +so that it is completely contained within +.IR b . +The return value is 1 if any part of +.RI * rp +is within +.IR b . +Otherwise, the return value is 0 and +.RI * rp +is unchanged. +.PP +.I Combinerect +overwrites +.B *rp +with the smallest rectangle sufficient to cover all the pixels of +.B *rp +and +.BR b . +.PP +The functions +.I Dx +and +.I Dy +give the width (Δx) and height (Δy) of a Rectangle. +They are implemented as macros. +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2) diff --git a/static/plan9-4e/man2/aes.2 b/static/plan9-4e/man2/aes.2 new file mode 100644 index 00000000..daf0043a --- /dev/null +++ b/static/plan9-4e/man2/aes.2 @@ -0,0 +1,50 @@ +.TH AES 2 +.SH NAME +setupAESstate, aesCBCencrypt, aesCBCdecrypt - advanced encryption standard (rijndael) +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +void setupAESstate(AESstate *s, uchar key[], int keybytes, uchar *ivec) +.PP +.B +void aesCBCencrypt(uchar*, int, AESstate*) +.PP +.B +void aesCBCdecrypt(uchar*, int, AESstate*) +.PP +.SH DESCRIPTION +.PP +DES is being replaced by Rijndael, also known as AES, as the preferred +block ciper. +.IR setupAESstate , +.IR aesCBCencrypt , +and +.I aesCBCdecrypt +implement cipher block chaining encryption. +.I Keybytes +should be 16, 24, or 32. +The initialization vector +.I ivec +of +.I AESbsize +bytes should random enough to be unlikely to be reused but does not need to be +cryptographically strongly unpredictable. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2), +.IR blowfish (2), +.IR des (2), +.IR elgamal (2), +.IR rc4 (2), +.IR rsa (2), +.IR sechash (2), +.IR prime (2), +.IR rand (2) diff --git a/static/plan9-4e/man2/allocimage.2 b/static/plan9-4e/man2/allocimage.2 new file mode 100644 index 00000000..f49b962b --- /dev/null +++ b/static/plan9-4e/man2/allocimage.2 @@ -0,0 +1,348 @@ +.TH ALLOCIMAGE 2 +.SH NAME +allocimage, allocimagemix, freeimage, nameimage, namedimage, setalpha, loadimage, cloadimage, unloadimage, readimage, writeimage, bytesperline, wordsperline \- allocating, freeing, reading, writing images +.SH SYNOPSIS +.nf +.PP +.B +#include +.B +#include +.B +#include +.PP +.ta \w'\fLImage 'u +.B +Image *allocimage(Display *d, Rectangle r, +.br +.B + ulong chan, int repl, int col) +.PP +.B +Image *allocimagemix(Display *d, ulong one, ulong three) +.PP +.B +void freeimage(Image *i) +.PP +.B +int nameimage(Image *i, char *name, int in) +.PP +.B +Image *namedimage(Display *d, char *name) +.PP +.B +ulong setalpha(ulong color, uchar alpha) +.PP +.B +int loadimage(Image *i, Rectangle r, uchar *data, int ndata) +.PP +.B +int cloadimage(Image *i, Rectangle r, uchar *data, int ndata) +.PP +.B +int unloadimage(Image *i, Rectangle r, uchar *data, int ndata) +.PP +.B +Image *readimage(Display *d, int fd, int dolock) +.PP +.B +int writeimage(int fd, Image *i, int dolock) +.PP +.B +int bytesperline(Rectangle r, int d) +.PP +.B +int wordsperline(Rectangle r, int d) +.PP +.nf +.B +enum +.nf +.ft L +.ta +4n +20 +{ + DOpaque = 0xFFFFFFFF, + DTransparent = 0x00000000, + DBlack = 0x000000FF, + DWhite = 0xFFFFFFFF, + DRed = 0xFF0000FF, + DGreen = 0x00FF00FF, + DBlue = 0x0000FFFF, + DCyan = 0x00FFFFFF, + DMagenta = 0xFF00FFFF, + DYellow = 0xFFFF00FF, + DPaleyellow = 0xFFFFAAFF, + DDarkyellow = 0xEEEE9EFF, + DDarkgreen = 0x448844FF, + DPalegreen = 0xAAFFAAFF, + DMedgreen = 0x88CC88FF, + DDarkblue = 0x000055FF, + DPalebluegreen = 0xAAFFFFFF, + DPaleblue = 0x0000BBFF, + DBluegreen = 0x008888FF, + DGreygreen = 0x55AAAAFF, + DPalegreygreen = 0x9EEEEEFF, + DYellowgreen = 0x99994CFF, + DMedblue = 0x000099FF, + DGreyblue = 0x005DBBFF, + DPalegreyblue = 0x4993DDFF, + DPurpleblue = 0x8888CCFF, + + DNotacolor = 0xFFFFFF00, + DNofill = DNotacolor, + +}; +.fi +.SH DESCRIPTION +A new +.B Image +on +.B Display +.B d +is allocated with +.BR allocimage ; +it will have the rectangle, pixel channel format, +and replication flag +given by its arguments. +Convenient pixel channels like +.BR GREY1 , +.BR GREY2 , +.BR CMAP8 , +.BR RGB16 , +.BR RGB24 , +and +.BR RGBA32 +are predefined. +All the new image's pixels will have initial value +.IR col . +If +.I col +is +.BR DNofill , +no initialization is done. +Representative useful values of color are predefined: +.BR DBlack , +.BR DWhite , +.BR DRed , +and so on. +Colors are specified by 32-bit numbers comprising, +from most to least significant byte, +8-bit values for red, green, blue, and alpha. +The values correspond to illumination, so 0 is black and 255 is white. +Similarly, for alpha 0 is transparent and 255 is opaque. +The +.I id +field will have been set to the identifying number used by +.B /dev/draw +(see +.IR draw (3)), +and the +.I cache +field will be zero. +If +.I repl +is true, the clip rectangle is set to a very large region; if false, it is set to +.IR r . +The +.I depth +field will be set to the number of bits per pixel specified +by the channel descriptor +(see +.IR image (6)). +.I Allocimage +returns 0 if the server has run out of image memory. +.PP +.I Allocimagemix +is used to allocate background colors. +On 8-bit color-mapped displays, it +returns a 2×2 replicated image with one pixel colored +the color +.I one +and the other three with +.IR three . +(This simulates a wider range of tones than can be represented by a single pixel +value on a color-mapped display.) +On true color displays, it returns a 1×1 replicated image +whose pixel is the result of mixing the two colors in +a one to three ratio. +.PP +.I Freeimage +frees the resources used by its argument image. +.PP +.I Nameimage +publishes in the server the image +.I i +under the given +.IR name . +If +.I in +is non-zero, the image is published; otherwise +.I i +must be already named +.I name +and it is withdrawn from publication. +.I Namedimage +returns a reference to the image published under the given +.I name +on +.B Display +.IR d . +These routines permit unrelated applications sharing a display to share an image; +for example they provide the mechanism behind +.B getwindow +(see +.IR graphics (2)). +.PP +The RGB values in a color are +.I premultiplied +by the alpha value; for example, a 50% red is +.B 0x7F00007F +not +.BR 0xFF00007F . +The function +.I setalpha +performs the alpha computation on a given +.BR color , +ignoring its initial alpha value, multiplying the components by the supplied +.BR alpha . +For example, to make a 50% red color value, one could execute +.B setalpha(DRed, +.BR 0x7F) . +.PP +The remaining functions deal with moving groups of pixel +values between image and user space or external files. +There is a fixed format for the exchange and storage of +image data +(see +.IR image (6)). +.PP +.I Unloadimage +reads a rectangle of pixels from image +.I i +into +.IR data , +whose length is specified by +.IR ndata . +It is an error if +.I ndata +is too small to accommodate the pixels. +.PP +.I Loadimage +replaces the specified rectangle in image +.I i +with the +.I ndata +bytes of +.IR data . +.PP +The pixels are presented one horizontal line at a time, +starting with the top-left pixel of +.IR r . +In the data processed by these routines, each scan line starts with a new byte in the array, +leaving the last byte of the previous line partially empty, if necessary. +Pixels are packed as tightly as possible within +.IR data , +regardless of the rectangle being extracted. +Bytes are filled from most to least significant bit order, +as the +.I x +coordinate increases, aligned so +.IR x =0 +would appear as the leftmost pixel of its byte. +Thus, for +.B depth +1, the pixel at +.I x +offset 165 within the rectangle will be in a +.I data +byte at bit-position +.B 0x04 +regardless of the overall +rectangle: 165 mod 8 equals 5, and +.B "0x80\ >>\ 5" +equals +.BR 0x04 . +.PP +.B Cloadimage +does the same as +.IR loadimage , +bu tfor +.I ndata +bytes of compressed image +.I data +(see +.IR image (6)). +On each call to +.IR cloadimage, +the +.I data +must be at the beginning of a compressed data block, in particular, +it should start with the +.B y +coordinate and data length for the block. +.PP +.IR Loadimage , +.IR cloadimage , +and +.I unloadimage +return the number of bytes copied. +.PP +.I Readimage +creates a image from data contained an external file (see +.IR image (6) +for the file format); +.I fd +is a file descriptor obtained by opening such a file for reading. +The returned image is allocated using +.IR allocimage . +The +.I dolock +flag specifies whether the +.B Display +should be synchronized for multithreaded access; single-threaded +programs can leave it zero. +.PP +.I Writeimage +writes image +.I i +onto file descriptor +.IR fd , +which should be open for writing. +The format is as described for +.IR readimage . +.PP +.I Readimage +and +.I writeimage +do not close +.IR fd . +.PP +.I Bytesperline +and +.I wordsperline +return the number of bytes or words occupied in memory by one scan line of rectangle +.I r +in an image with +.I d +bits per pixel. +.SH EXAMPLE +To allocate a single-pixel replicated image that may be used to paint a region red, +.EX + red = allocimage(display, Rect(0, 0, 1, 1), RGB24, 1, DRed); +.EE +.SH SOURCE +.B /sys/src/libdraw +.SH "SEE ALSO" +.IR graphics (2), +.IR draw (2), +.IR draw (3), +.IR image (6) +.SH DIAGNOSTICS +These functions return pointer 0 or integer \-1 on failure, usually due to insufficient +memory. +.PP +May set +.IR errstr . +.SH BUGS +.B Depth +must be a divisor or multiple of 8. diff --git a/static/plan9-4e/man2/arg.2 b/static/plan9-4e/man2/arg.2 new file mode 100644 index 00000000..e85ca13f --- /dev/null +++ b/static/plan9-4e/man2/arg.2 @@ -0,0 +1,122 @@ +.TH ARG 2 +.SH NAME +ARGBEGIN, ARGEND, ARGC, ARGF, EARGF, arginit, argopt \- process option letters from argv +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B ARGBEGIN { +.B char *ARGF(); +.B char *EARGF(code); +.B Rune ARGC(); +.B } ARGEND +.PP +.B extern char *argv0; +.SH DESCRIPTION +These macros assume the names +.I argc +and +.I argv +are in scope; see +.IR exec (2). +.I ARGBEGIN +and +.I ARGEND +surround code for processing program options. +The code +should be the cases of a C switch on +option characters; +it is executed once for each option character. +Options end after an argument +.BR -- , +before an argument +.BR - , +or before an argument that doesn't begin with +.BR - . +.PP +The function macro +.I ARGC +returns the current option character, as an integer. +.PP +The function macro +.I ARGF +returns the current option argument: +a pointer to the rest of the option string if not empty, +or the next argument in +.I argv +if any, or 0. +.I ARGF +must be called just once for each option +that takes an argument. +The macro +.I EARGF +is like +.I ARGF +but instead of returning zero +runs +.I code +and, if that returns, calls +.IR abort (2). +A typical value for +.I code +is +.BR usage() . +.PP +After +.IR ARGBEGIN , +.I argv0 +is a copy of +.BR argv[0] +(conventionally the name of the program). +.PP +After +.IR ARGEND , +.I argv +points at a zero-terminated list of the remaining +.I argc +arguments. +.SH EXAMPLE +This C program can take option +.B b +and option +.BR f , +which requires an argument. +.IP +.EX +.ta \w'12345678'u +\w'12345678'u +\w'12345678'u +\w'12345678'u +\w'12345678'u +#include +#include +void +main(int argc, char *argv[]) +{ + char *f; + print("%s", argv[0]); + ARGBEGIN { + case 'b': + print(" -b"); + break; + case 'f': + print(" -f(%s)", (f=ARGF())? f: "no arg"); + break; + default: + print(" badflag('%c')", ARGC()); + } ARGEND + print(" %d args:", argc); + while(*argv) + print(" '%s'", *argv++); + print("\en"); + exits(nil); +} +.EE +.PP +Here is the output from running the command +.B +prog -bffile1 -r -f file2 arg1 arg2 +.IP +.B +prog -b -f(file1) badflag('r') -f(file2) 2 args: 'arg1' 'arg2' +.PP +.SH SOURCE +.B /sys/include/libc.h diff --git a/static/plan9-4e/man2/arith3.2 b/static/plan9-4e/man2/arith3.2 new file mode 100644 index 00000000..f4e9e59b --- /dev/null +++ b/static/plan9-4e/man2/arith3.2 @@ -0,0 +1,269 @@ +.TH ARITH3 2 +.SH NAME +add3, sub3, neg3, div3, mul3, eqpt3, closept3, dot3, cross3, len3, dist3, unit3, midpt3, lerp3, reflect3, nearseg3, pldist3, vdiv3, vrem3, pn2f3, ppp2f3, fff2p3, pdiv4, add4, sub4 \- operations on 3-d points and planes +.SH SYNOPSIS +.PP +.B +#include +.PP +.B +#include +.PP +.B +Point3 add3(Point3 a, Point3 b) +.PP +.B +Point3 sub3(Point3 a, Point3 b) +.PP +.B +Point3 neg3(Point3 a) +.PP +.B +Point3 div3(Point3 a, double b) +.PP +.B +Point3 mul3(Point3 a, double b) +.PP +.B +int eqpt3(Point3 p, Point3 q) +.PP +.B +int closept3(Point3 p, Point3 q, double eps) +.PP +.B +double dot3(Point3 p, Point3 q) +.PP +.B +Point3 cross3(Point3 p, Point3 q) +.PP +.B +double len3(Point3 p) +.PP +.B +double dist3(Point3 p, Point3 q) +.PP +.B +Point3 unit3(Point3 p) +.PP +.B +Point3 midpt3(Point3 p, Point3 q) +.PP +.B +Point3 lerp3(Point3 p, Point3 q, double alpha) +.PP +.B +Point3 reflect3(Point3 p, Point3 p0, Point3 p1) +.PP +.B +Point3 nearseg3(Point3 p0, Point3 p1, Point3 testp) +.PP +.B +double pldist3(Point3 p, Point3 p0, Point3 p1) +.PP +.B +double vdiv3(Point3 a, Point3 b) +.PP +.B +Point3 vrem3(Point3 a, Point3 b) +.PP +.B +Point3 pn2f3(Point3 p, Point3 n) +.PP +.B +Point3 ppp2f3(Point3 p0, Point3 p1, Point3 p2) +.PP +.B +Point3 fff2p3(Point3 f0, Point3 f1, Point3 f2) +.PP +.B +Point3 pdiv4(Point3 a) +.PP +.B +Point3 add4(Point3 a, Point3 b) +.PP +.B +Point3 sub4(Point3 a, Point3 b) +.SH DESCRIPTION +These routines do arithmetic on points and planes in affine or projective 3-space. +Type +.B Point3 +is +.IP +.EX +.ta 6n +typedef struct Point3 Point3; +struct Point3{ + double x, y, z, w; +}; +.EE +.PP +Routines whose names end in +.B 3 +operate on vectors or ordinary points in affine 3-space, represented by their Euclidean +.B (x,y,z) +coordinates. +(They assume +.B w=1 +in their arguments, and set +.B w=1 +in their results.) +.TF reflect3 +.TP +Name +Description +.TP +.B add3 +Add the coordinates of two points. +.TP +.B sub3 +Subtract coordinates of two points. +.TP +.B neg3 +Negate the coordinates of a point. +.TP +.B mul3 +Multiply coordinates by a scalar. +.TP +.B div3 +Divide coordinates by a scalar. +.TP +.B eqpt3 +Test two points for exact equality. +.TP +.B closept3 +Is the distance between two points smaller than +.IR eps ? +.TP +.B dot3 +Dot product. +.TP +.B cross3 +Cross product. +.TP +.B len3 +Distance to the origin. +.TP +.B dist3 +Distance between two points. +.TP +.B unit3 +A unit vector parallel to +.IR p . +.TP +.B midpt3 +The midpoint of line segment +.IR pq . +.TP +.B lerp3 +Linear interpolation between +.I p +and +.IR q . +.TP +.B reflect3 +The reflection of point +.I p +in the segment joining +.I p0 +and +.IR p1 . +.TP +.B nearseg3 +The closest point to +.I testp +on segment +.IR "p0 p1" . +.TP +.B pldist3 +The distance from +.I p +to segment +.IR "p0 p1" . +.TP +.B vdiv3 +Vector divide \(em the length of the component of +.I a +parallel to +.IR b , +in units of the length of +.IR b . +.TP +.B vrem3 +Vector remainder \(em the component of +.I a +perpendicular to +.IR b . +Ignoring roundoff, we have +.BR "eqpt3(add3(mul3(b, vdiv3(a, b)), vrem3(a, b)), a)" . +.PD +.PP +The following routines convert amongst various representations of points +and planes. Planes are represented identically to points, by duality; +a point +.B p +is on a plane +.B q +whenever +.BR p.x*q.x+p.y*q.y+p.z*q.z+p.w*q.w=0 . +Although when dealing with affine points we assume +.BR p.w=1 , +we can't make the same assumption for planes. +The names of these routines are extra-cryptic. They contain an +.B f +(for `face') to indicate a plane, +.B p +for a point and +.B n +for a normal vector. +The number +.B 2 +abbreviates the word `to.' +The number +.B 3 +reminds us, as before, that we're dealing with affine points. +Thus +.B pn2f3 +takes a point and a normal vector and returns the corresponding plane. +.TF reflect3 +.TP +Name +Description +.TP +.B pn2f3 +Compute the plane passing through +.I p +with normal +.IR n . +.TP +.B ppp2f3 +Compute the plane passing through three points. +.TP +.B fff2p3 +Compute the intersection point of three planes. +.PD +.PP +The names of the following routines end in +.B 4 +because they operate on points in projective 4-space, +represented by their homogeneous coordinates. +.TP +pdiv4 +Perspective division. Divide +.B p.w +into +.IR p 's +coordinates, converting to affine coordinates. +If +.B p.w +is zero, the result is the same as the argument. +.TP +add4 +Add the coordinates of two points. +.PD +.TP +sub4 +Subtract the coordinates of two points. +.SH SOURCE +.B /sys/src/libgeometry +.SH "SEE ALSO +.IR matrix (2) diff --git a/static/plan9-4e/man2/assert.2 b/static/plan9-4e/man2/assert.2 new file mode 100644 index 00000000..3e952348 --- /dev/null +++ b/static/plan9-4e/man2/assert.2 @@ -0,0 +1,25 @@ +.TH ASSERT 2 +.SH NAME +assert \- check program invariants +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +#define assert if(cond);else _assert("cond") +.PP +.B +void _assert(int cond) +.SH DESCRIPTION +.I Assert +is a preprocessor macro that +(via +.IR _assert ) +prints a message and calls +.I abort +when +.I cond +is false. +.SH SOURCE +.B /sys/src/libc/port/_assert.c diff --git a/static/plan9-4e/man2/atof.2 b/static/plan9-4e/man2/atof.2 new file mode 100644 index 00000000..49246183 --- /dev/null +++ b/static/plan9-4e/man2/atof.2 @@ -0,0 +1,146 @@ +.TH ATOF 2 +.SH NAME +atof, atoi, atol, atoll, charstod, strtod, strtol, strtoll, strtoul, strtoull \- convert text to numbers +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.ta \w'\fLdouble 'u +.B +double atof(char *nptr) +.PP +.B +int atoi(char *nptr) +.PP +.B +long atol(char *nptr) +.PP +.B +vlong atoll(char *nptr) +.PP +.B +double charstod(int (*f)(void *), void *a) +.PP +.B +double strtod(char *nptr, char **rptr) +.PP +.B +long strtol(char *nptr, char **rptr, int base) +.PP +.B +vlong strtoll(char *nptr, char **rptr, int base) +.PP +.B +ulong strtoul(char *nptr, char **rptr, int base) +.PP +.B +vlong strtoull(char *nptr, char **rptr, int base) +.fi +.SH DESCRIPTION +.IR Atof , +.IR atoi , +.IR atol , +and +.I atoll +convert a string pointed to by +.I nptr +to floating, integer, long integer, and long long integer +.RB ( vlong ) +representation respectively. +The first unrecognized character ends the string. +Leading C escapes are understood, as in +.I strtol +with +.I base +zero (described below). +.PP +.I Atof +recognizes an optional string of tabs and spaces, +then an optional sign, then +a string of digits optionally containing a decimal +point, then an optional +.L e +or +.L E +followed +by an optionally signed integer. +.PP +.I Atoi +and +.I atol +recognize an optional string of tabs and spaces, +then an optional sign, then a string of +decimal digits. +.PP +.IR Strtod , +.IR strtol , +.IR strtoll , +.IR strtoul , +and +.I strtoull +behave similarly to +.I atof +and +.I atol +and, if +.I rptr +is not zero, set +.I *rptr +to point to the input character +immediately after the string converted. +.PP +.IR Strtol , +.IR strtoll , +.IR strtoul , +and +.IR strtoull +interpret the digit string in the specified +.IR base , +from 2 to 36, +each digit being less than the base. +Digits with value over 9 are represented by letters, +a-z or A-Z. +If +.I base +is 0, the input is interpreted as an integral constant in +the style of C (with no suffixed type indicators): +numbers are octal if they begin with +.LR 0 , +hexadecimal if they begin with +.L 0x +or +.LR 0X , +otherwise decimal. +.PP +.I Charstod +interprets floating point numbers in the manner of +.IR atof , +but gets successive characters by calling +.BR (*\fIf\fP)(a) . +The last call to +.I f +terminates the scan, so it must have returned a character that +is not a legal continuation of a number. +Therefore, it may be necessary to back up the input stream one character +after calling +.IR charstod . +.SH SOURCE +.B /sys/src/libc/port +.SH SEE ALSO +.IR fscanf (2) +.SH DIAGNOSTICS +Zero is returned if the beginning of the input string is not +interpretable as a number; even in this case, +.I rptr +will be updated. +.br +These routines set +.IR errstr . +.SH BUGS +.I Atoi +and +.I atol +accept octal and hexadecimal numbers in the style of C, +contrary to the ANSI specification. diff --git a/static/plan9-4e/man2/auth.2 b/static/plan9-4e/man2/auth.2 new file mode 100644 index 00000000..7dd92a39 --- /dev/null +++ b/static/plan9-4e/man2/auth.2 @@ -0,0 +1,395 @@ +.TH AUTH 2 +.SH NAME +amount, newns, addns, login, noworld, auth_proxy, fauth_proxy, auth_allocrpc, auth_freerpc, auth_rpc, auth_getkey, amount_getkey, auth_freeAI, auth_chuid, auth_challenge, auth_response, auth_freechal, auth_respond, auth_userpasswd, auth_getuserpasswd, auth_getinfo\- routines for authenticating users +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +#include +.fi +.ta 11n +4n +4n +4n +4n +4n +4n +.PP +.B +int newns(char *user, char *nsfile); +.PP +.B +int addns(char *user, char *nsfile); +.PP +.B +int amount(int fd, char *old, int flag, char *aname); +.PP +.B +int login(char *user, char *password, char *namespace); +.PP +.B +int noworld(char *user); +.PP +.B +AuthInfo* auth_proxy(int fd, AuthGetkey *getkey, char *fmt, ...); +.PP +.B +AuthInfo* fauth_proxy(int fd, AuthRpc *rpc, AuthGetkey *getkey, +.br +.B char *params); +.PP +.B +AuthRpc* auth_allocrpc(int afd); +.PP +.B +void auth_freerpc(AuthRpc *rpc); +.PP +.B +uint auth_rpc(AuthRpc *rpc, char *verb, void *a, int n); +.PP +.B +int auth_getkey(char *proto, char *dom); +.PP +.B +int (*amount_getkey)(char*, char*); +.PP +.B +void auth_freeAI(AuthInfo *ai); +.PP +.B +int auth_chuid(AuthInfo *ai, char *ns); +.PP +.B +Chalstate* auth_challenge(char *fmt, ...); +.PP +.B +AuthInfo* auth_response(Chalstate*); +.PP +.B +void auth_freechal(Chalstate*); +.PP +.B +int auth_respond(void *chal, uint nchal, char *user, uint nuser, void *resp, uint nresp, AuthGetkey *getkey, char *fmt, ...); +.PP +.B +AuthInfo* auth_userpasswd(char*user, char*password); +.PP +.B +UserPasswd* auth_getuserpasswd(AuthGetkey *getkey, char*fmt, ...); +.PP +.B +AuthInfo* auth_getinfo(int fd); +.SH DESCRIPTION +.PP +This library, in concert with +.IR factotum (4), +is used to authenticate users. +It provides the primary interface to +.IR factotum . +.PP +.I Newns +builds a name space for +.IR user . +It opens the file +.I nsfile +.RB ( /lib/namespace +is used if +.I nsfile +is null), +copies the old environment, erases the current name space, +sets the environment variables +.B user +and +.BR home , +and interprets the commands in +.IR nsfile . +The format of +.I nsfile +is described in +.IR namespace (6). +.PP +.I Addns +also interprets and executes the commands in +.IR nsfile . +Unlike +.I newns +it applies the command to the current name space +rather than starting from scratch. +.PP +.I Amount +is like +.I mount +but performs any authentication required. +It should be used instead of +.I mount +whenever the file server being mounted requires authentication. +See +.IR bind (2) +for a definition of the arguments to +.I mount +and +.IR amount . +.PP +.I Login +changes the user id of the process +.I user +and recreates the namespace using the file +.I namespace +(default +.BR /lib/nnamespace ). +It uses +.I auth_userpassword +and +.IR auth_chuid . +.PP +.I Noworld +returns 1 if the user is in the group +.B noworld +in +.BR /adm/users . +Otherwise, it returns 0. +.I Noworld +is used by telnetd and ftpd to provide sandboxed +access for some users. +.PP +The following routines use the +.B AuthInfo +structure returned after a successful authentication by +.IR factotum (4). +.PP +.ne 8 +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +4n +4n +typedef struct +{ + char *cuid; /* caller id */ + char *suid; /* server id */ + char *cap; /* capability */ + int nsecret; /* length of secret */ + uchar *secret; /* secret */ +} AuthInfo; +.EE +.sp +The fields +.B cuid +and +.B suid +point to the authenticated ids of the client and server. +.B Cap +is a capability returned only to the server. +It can be passed to the +.IR cap (3) +device to change the user id of the process. +.B Secret +is an +.BR nsecret -byte +shared secret that can be used by the client and server to +create encryption and hashing keys for the rest of the +conversation. +.PP +.I Auth_proxy +proxies an authentication conversation between a remote +server reading and writing +.I fd +and a +.I factotum +file. The +.I factotum +file used is +.BR /mnt/factotum/rpc . +An +.B sprint +(see +.IR print (2)) +of +.I fmt +and the variable arg list yields a key template (see +.IR factotum (4)) +specifying the key to use. +The template must specify at least the protocol ( +.BI proto= xxx ) +and the role (either +.B role=client +or +.BR role=server ). +.I Auth_proxy +either returns an allocated +.B AuthInfo +structure, or sets the error string and +returns nil. +.PP +.I Fauth_proxy +can be used instead of +.I auth_proxy +if a single connection to +.I factotum +will be used for multiple authentications. +This is necessary, for example, for +.I newns +which must open the +.I factotum +file before wiping out the namespace. +.I Fauth_proxy +takes as an argument a pointer to an +.B AuthRPC +structure which contains an fd for an open connection to +.I factotum +in addition to storage and state information for +the protocol. +An +.B AuthRPC +structure is obtained by calling +.I auth_allocrpc +with the fd of an open +.I factotum +connection. +It is freed using +.IR auth_freerpc . +Individual commands can be sent to +.IR factotum (4) +by invoking +.IR auth_rpc . +.PP +Both +.I auth_proxy +and +.I fauth_proxy +take a pointer to a routine, +.IR getkey , +to invoke should +.I factotum +not posess a key for the authentication. If +.I getkey +is nil, the authentication fails. +.I Getkey +is called with a key template for the desired +key. +We have provided a generic routine, +.IR auth_getkey , +which queries the user for +the key information and passes it to +.IR factotum . +This is the default for the global variable, +.IR amount_getkey , +which holds a pointer to the key prompting routine used by +.IR amount . +.PP +.I Auth_chuid +uses the +.B cuid +and +.B cap +fields of an +.B AuthInfo +structure to change the user id of the current +process and uses +.IR ns , +default +.BR /lib/namespace , +to build it a new name space. +.PP +.I Auth_challenge +and +.I auth_response +perform challenge/response protocols with +.IR factotum . +State between the challenge and response phase are +kept in the +.B Chalstate +structure: +.sp +.EX +struct Chalstate +{ + char *user; + char chal[MAXCHLEN]; + int nchal; + void *resp; + int nresp; + +/* for implementation only */ + int afd; + AuthRpc *rpc; + char userbuf[MAXNAMELEN]; + int userinchal; +}; +.EE +.sp +.I Auth_challenge +requires a key template generated by an +.B sprint +of +.I fmt +and the variable arguments. It must contain the protocol +(\fBproto=\fIxxx\fR) +and depending on the protocol, the user name ( +.BI user= xxx \fR).\fP +.B P9cr +and +.B vnc +expect the user specified as an attribute in +the key template and +.BR apop , +.BR cram , +and +.BR chap +expect it in the +.B user +field of the arg to +.IR auth_response . +For all protocols, the response is returned +to +.I auth_response +in the +.I resp +field of the +.BR Chalstate . +.I Chalstate.nresp +must be the length of the response. +.PP +Supply to +.I auth_respond +a challenge string and the fmt and args specifying a key, +and it will use +.I factotum +to return the proper user and response. +.PP +.I Auth_userpasswd +verifies a simple user/password pair. +.I Auth_getuserpasswd +retrieves a user/password pair from +.I factotum +if permitted. +.PP +.I Auth_getinfo +reads an +.B AuthInfo +message from +.I fd +and converts it into a structure. It is only +used by the other routines in this library when +communicating with +.IR factotum . +.PP +.ne 8 +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +4n +4n +typedef struct UserPasswd { + char *user; + char *passwd; +} UserPasswd; +.EE +.sp +.PP +.I Auth_freeAI +is used to free an +.B AuthInfo +structure returned by one of these routines. +Similary +.I auth_freechal +frees a challenge/response state. +.SH SOURCE +.B /sys/src/libauth +.SH SEE ALSO +.IR factotum (4), +.IR authsrv (2), +.IR bind (2) +.SH DIAGNOSTICS +These routines set +.IR errstr . diff --git a/static/plan9-4e/man2/authsrv.2 b/static/plan9-4e/man2/authsrv.2 new file mode 100644 index 00000000..309e6251 --- /dev/null +++ b/static/plan9-4e/man2/authsrv.2 @@ -0,0 +1,217 @@ +.TH AUTHSRV 2 +.SH NAME +authdial, passtokey, nvcsum, readnvram, convT2M, convM2T, convTR2M, convM2TR, convA2M, convM2A, convPR2M, convM2PR, _asgetticket, _asrdresp \- routines for communicating with authentication servers +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +#include +.fi +.ta 8n +4n +4n +4n +4n +4n +4n +.PP +.B +int authdial(char *netroot, char *ad); +.PP +.B +int passtokey(char key[DESKEYLEN], char *password) +.PP +.B +uchar nvcsum(void *mem, int len) +.PP +.B +int readnvram(Nvrsafe *nv, int flag); +.PPP +.B +int convT2M(Ticket *t, char *msg, char *key) +.PP +.B +void convM2T(char *msg, Ticket *t, char *key) +.PP +.B +int convA2M(Authenticator *a, char *msg, char *key) +.PP +.B +void convM2A(char *msg, Authenticator *a, char *key) +.PP +.B +int convTR2M(Ticketreq *tr, char *msg) +.PP +.B +void convM2TR(char *msg, Ticketreq *tr) +.PP +.B +int convPR2M(Passwordreq *pr, char *msg, char *key) +.PP +.B +void convM2PR(char *msg, Passwordreq *pr, char *key) +.PP +.B +int _asgetticket(int fd, char *trbuf, char *tbuf); +.PP +.B +int _asrdresp(int fd, char *buf, int len); +.SH DESCRIPTION +.PP +.I Authdial +dials an authentication server over the +network rooted at +.IR net , +default +.BR /net . +The authentication domain, +.IR ad , +specifies which server to call. +If +.I ad +is non-nil, +the connection server +.B cs +(see +.IR ndb (8)) +is queried for an entry which contains +.B authdom=\fIad\fP +or +.BR dom=\fIad\fP , +the former having precedence, +and which also contains an +.B auth +attribute. +The string dialed is then +.I netroot\fP!\fIserver\fP!ticket +where +.I server +is the value of the +.B auth +attribute. +If no entry is found, the error string is +set to ``no authentication server found'' +and -1 is returned. +If +.I authdom +is nil, the string +.IB netroot !$auth! ticket +is used to make the call. +.PP +.I Passtokey +converts +.I password +into a DES key and stores the result in +.IR key . +It returns 0 if +.I password +could not be converted, +and 1 otherwise. +.PP +.I Readnvram +reads authentication information into the structure: +.EX +.ta 4n +4n +8n +4n +4n +4n +4n + struct Nvrsafe + { + char machkey[DESKEYLEN]; + uchar machsum; + char authkey[DESKEYLEN]; + uchar authsum; + char config[CONFIGLEN]; + uchar configsum; + char authid[ANAMELEN]; + uchar authidsum; + char authdom[DOMLEN]; + uchar authdomsum; + }; +.EE +.PP +On Sparc, MIPS, and SGI machines this information is +in non-volatile ram, accessible in the file +.BR #r/nvram . +On x86s and Alphas +.I readnvram +successively opens the following areas stopping with the +first to succeed: +.PP +\- the partition +.B #S/sdC0/nvram +.br +\- a file called +.B plan9.nvr +in the partition +.B #S/sdC0/9fat +.br +\- the partition +.B #S/sd00/nvram +.br +\- a file called +.B plan9.nvr +in the partition +.B #S/sd00/9fat +.br +\- a file called +.B plan9.nvr +on a DOS floppy in drive 0 +.br +\- a file called +.B plan9.nvr +on a DOS floppy in drive 1 +.PP +The +.IR nvcsum s +of the fields +.BR machkey , +.BR authid , +and +.B authdom +must match their respective checksum or that field is zeroed. +If +.I flag +is +.B NVwrite +or at least one checksum fails and +.I flag +is +.BR NVwriteonerr , +.I readnvram +will prompt for new values on +.B #c/cons +and then write them back to the storage area. +.PP +.IR ConvT2M , +.IR convA2M , +.IR convTR2M , +and +.I convPR2M +convert tickets, authenticators, ticket requests, and password change request +structures into transmittable messages. +.IR ConvM2T , +.IR convM2A , +.IR convM2TR , +and +.I convM2PR +are used to convert them back. +.I Key +is used for encrypting the message before transmission and decrypting +after reception. +.PP +The routine +.I _asgetresp +receives either a character array or an error string. +On error, it sets errstr and returns -1. If successful, +it returns the number of bytes received. +.PP +The routine +.I _asgetticket +sends a ticket request message and then uses +.I _asgetresp +to recieve an answer. +.SH SOURCE +.B /sys/src/libauthsrv +.SH SEE ALSO +.IR passwd (1), +.IR cons (3), +.IR dial (2), +.IR authsrv (6), +.SH DIAGNOSTICS +These routines set +.IR errstr . +Integer-valued functions return -1 on error. diff --git a/static/plan9-4e/man2/bin.2 b/static/plan9-4e/man2/bin.2 new file mode 100644 index 00000000..f711b21d --- /dev/null +++ b/static/plan9-4e/man2/bin.2 @@ -0,0 +1,99 @@ +.TH BIN 2 +.SH NAME +binalloc, bingrow, binfree \- grouped memory allocation +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLvoid* 'u +.PP +.B +typedef struct Bin Bin; +.PP +.B +void *binalloc(Bin **bp, ulong size, int clr); +.PP +.B +void *bingrow(Bin **bp, void *op, ulong osize, +.br +.B + ulong size, int clr); +.PP +.B +void binfree(Bin **bp); +.SH DESCRIPTION +These routines provide simple grouped memory allocation and deallocation. +Items allocated with +.I binalloc +are added to the +.I Bin +pointed to by +.IR bp . +All items in a bin may be freed with one call to +.IR binfree ; +there is no way to free a single item. +.PP +.I Binalloc +returns a pointer to a new block of at least +.I size +bytes. +The block is suitably aligned for storage of any type of object. +No two active pointers from +.I binalloc +will have the same value. +The call +.B binalloc(0) +returns a valid pointer rather than null. +If +.I clr +is non-zero, the allocated memory is set to 0; +otherwise, the contents are undefined. +.PP +.I Bingrow +is used to extend the size of a block of memory returned by +.IR binalloc . +.I Bp +must point to the same bin group used to allocate the original block, +and +.I osize +must be the last size used to allocate or grow the block. +A pointer to a block of at least +.I size +bytes is returned, with the same contents in the first +.I osize +locations. +If +.I clr +is non-zero, the remaining bytes are set to 0, +and are undefined otherwise. +If +.I op +is +.BR nil , +it and +.I osize +are ignored, and the result is the same as calling +.IR binalloc . +.PP +.I Binalloc +and +.I bingrow +allocate large chunks of memory using +.IR malloc (2) +and return pieces of these chunks. +The chunks are +.IR free 'd +upon a call to +.IR binfree . +.SH SOURCE +.B /sys/src/libbin +.SH SEE ALSO +.IR malloc (2) +.SH DIAGNOSTICS +.I binalloc +and +.I bingrow +return 0 if there is no available memory. diff --git a/static/plan9-4e/man2/bind.2 b/static/plan9-4e/man2/bind.2 new file mode 100644 index 00000000..98feb41f --- /dev/null +++ b/static/plan9-4e/man2/bind.2 @@ -0,0 +1,236 @@ +.TH BIND 2 +.SH NAME +bind, mount, unmount \- change name space +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int bind(char *name, char *old, int flag) +.PP +.B +int mount(int fd, int afd, char *old, int flag, char *aname) +.PP +.B +int unmount(char *name, char *old) +.SH DESCRIPTION +.I Bind +and +.I mount +modify the file name space of the current process and other +processes in its name space group +(see +.IR fork (2)). +For both calls, +.I old +is the name of an existing file or directory in the +current name space where the modification is to be made. +The name +.I old +is +.I evaluated +as described in +.IR intro (2), +except that no translation of the final path element is done. +.PP +For +.IR bind , +.I name +is the name of another (or possibly the same) +existing file or directory in +the current name space. +After a successful +.I bind +call, the file name +.I old +is an alias for the object originally named by +.IR name ; +if the modification doesn't hide it, +.I name +will also still refer to its original file. +The evaluation of +.I new +happens at the time of the +.IR bind , +not when the binding is later used. +.PP +The +.I fd +argument to +.I mount +is a file descriptor of an open network connection +or pipe to a file server, while +.I afd +is a authentication file descriptor as created by +.IR fauth (2) +and subsequently authenticated. +If authentication is not required, +.I afd +should be -1. +The +.I old +file must be a directory. +After a successful +.I mount +the file tree +.I served +(see below) by +.I fd +will be visible with its root directory having name +.IR old . +.PP +The +.I flag +controls details of the modification made to the name space. +In the following, +.I new +refers to the file +as defined by +.I name +or the root directory served by +.IR fd . +Either both +.I old +and new files must be directories, +or both must not be directories. +.I Flag +can be one of: +.TF MBEFORE +.TP +.B MREPL +Replace the +.I old +file by the new one. +Henceforth, an evaluation of +.I old +will be translated to the new file. +If they are directories (for +.IR mount , +this condition is true by definition), +.I old +becomes a +.I "union directory" +consisting of one directory (the new file). +.TP +.B MBEFORE +Both the +.I old +and new files must be directories. +Add the constituent files of the new directory +to the union directory at +.I old +so its contents appear first in the union. +After an +.B MBEFORE +.I bind +or +.IR mount , +the new directory will be searched first when evaluating file names +in the union directory. +.TP +.B MAFTER +Like +.B MBEFORE +but the new directory goes at the end of the union. +.PD +.PP +The flags are defined in +.BR . +In addition, there is an +.B MCREATE +flag that can be OR'd with any of the above. +When a +.I create +system call (see +.IR open (2)) +attempts to create in a union directory, and the file does not exist, +the elements of the union are searched in order until one is found +with +.B MCREATE +set. +The file is created in that directory; if that attempt fails, +the +.I create +fails. +.PP +Finally, the +.B MCACHE +flag, valid for +.I mount +only, turns on caching for files made available by the mount. +By default, file contents are always retrieved from the server. +With caching enabled, the kernel may instead use a local cache to satisfy +.IR read (5) +requests for files accessible through this mount point. +The currency of cached data for a file is verified at each +.IR open (5) +of the file from this client machine. +.PP +With +.IR mount , +the file descriptor +.I fd +must be open for reading and writing +and prepared to respond to 9P messages +(see Section 5). +After the +.IR mount , +the file tree starting at +.I old +is served by a kernel +.IR mnt (3) +device. +That device will turn operations in the tree into messages on +.IR fd . +.I Aname +selects among different +file trees on the server; the null string chooses the default tree. +.PP +The file descriptor +.I fd +is automatically closed by a successful +.I mount +call. +.PP +The effects of +.I bind +and +.I mount +can be undone by +.IR unmount . +If +.I name +is zero, everything bound to or mounted upon +.I old +is unbound or unmounted. +If +.I name +is not zero, it is evaluated as described above for +.IR bind , +and the effect of binding or mounting that particular result on +.I old +is undone. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR bind (1), +.IR intro (2), +.IR fcall (2), +.IR auth (2) +(particularly +.BR amount ), +.IR intro (5), +.IR mnt (3), +.IR srv (3) +.SH DIAGNOSTICS +The return value is a positive integer (a unique sequence number) for +success, -1 for failure. +These routines set +.IR errstr . +.SH BUGS +.I Mount +will not return until it has successfully attached +to the file server, so the process doing a +.I mount +cannot be the one serving. diff --git a/static/plan9-4e/man2/bio.2 b/static/plan9-4e/man2/bio.2 new file mode 100644 index 00000000..a38b28e7 --- /dev/null +++ b/static/plan9-4e/man2/bio.2 @@ -0,0 +1,349 @@ +.TH BIO 2 +.SH NAME +Bopen, Binit, Binits, Brdline, Brdstr, Bgetc, Bgetrune, Bgetd, Bungetc, Bungetrune, Bread, Bseek, Boffset, Bfildes, Blinelen, Bputc, Bputrune, Bprint, Bvprint, Bwrite, Bflush, Bterm, Bbuffered \- buffered input/output +.SH SYNOPSIS +.ta \w'Biobuf* 'u +.B #include +.br +.B #include +.br +.B #include +.PP +.B +Biobuf* Bopen(char *file, int mode) +.PP +.B +int Binit(Biobuf *bp, int fd, int mode) +.PP +.B +int Binits(Biobufhdr *bp, int fd, int mode, uchar *buf, int size) +.PP +.B +int Bterm(Biobufhdr *bp) +.PP +.B +int Bprint(Biobufhdr *bp, char *format, ...) +.PP +.B +int Bvprint(Biobufhdr *bp, char *format, va_list arglist); +.PP +.B +void* Brdline(Biobufhdr *bp, int delim) +.PP +.B +char* Brdstr(Biobufhdr *bp, int delim, int nulldelim) +.PP +.B +int Blinelen(Biobufhdr *bp) +.PP +.B +vlong Boffset(Biobufhdr *bp) +.PP +.B +int Bfildes(Biobufhdr *bp) +.PP +.B +int Bgetc(Biobufhdr *bp) +.PP +.B +long Bgetrune(Biobufhdr *bp) +.PP +.B +int Bgetd(Biobufhdr *bp, double *d) +.PP +.B +int Bungetc(Biobufhdr *bp) +.PP +.B +int Bungetrune(Biobufhdr *bp) +.PP +.B +vlong Bseek(Biobufhdr *bp, vlong n, int type) +.PP +.B +int Bputc(Biobufhdr *bp, int c) +.PP +.B +int Bputrune(Biobufhdr *bp, long c) +.PP +.B +long Bread(Biobufhdr *bp, void *addr, long nbytes) +.PP +.B +long Bwrite(Biobufhdr *bp, void *addr, long nbytes) +.PP +.B +int Bflush(Biobufhdr *bp) +.PP +.B +int Bbuffered(Biobufhdr *bp) +.PP +.SH DESCRIPTION +These routines implement fast buffered I/O. +I/O on different file descriptors is independent. +.PP +.I Bopen +opens +.I file +for mode +.B OREAD +or creates for mode +.BR OWRITE . +It calls +.IR malloc (2) +to allocate a buffer. +.PP +.I Binit +initializes a standard size buffer, type +.IR Biobuf , +with the open file descriptor passed in +by the user. +.I Binits +initializes a non-standard size buffer, type +.IR Biobufhdr , +with the open file descriptor, +buffer area, and buffer size passed in +by the user. +.I Biobuf +and +.I Biobufhdr +are related by the declaration: +.IP +.EX +typedef struct Biobuf Biobuf; +struct Biobuf +{ + Biobufhdr; + uchar b[Bungetsize+Bsize]; +}; +.EE +.PP +Arguments +of types pointer to Biobuf and pointer to Biobufhdr +can be used interchangeably in the following routines. +.PP +.IR Bopen , +.IR Binit , +or +.I Binits +should be called before any of the +other routines on that buffer. +.I Bfildes +returns the integer file descriptor of the associated open file. +.PP +.I Bterm +flushes the buffer for +.IR bp . +If the buffer was allocated by +.IR Bopen , +the buffer is +.I freed +and the file is closed. +.PP +.I Brdline +reads a string from the file associated with +.I bp +up to and including the first +.I delim +character. +The delimiter character at the end of the line is +not altered. +.I Brdline +returns a pointer to the start of the line or +.L 0 +on end-of-file or read error. +.I Blinelen +returns the length (including the delimiter) +of the most recent string returned by +.IR Brdline . +.PP +.I Brdstr +returns a +.IR malloc (2)-allocated +buffer containing the next line of input delimited by +.IR delim , +terminated by a NUL (0) byte. +Unlike +.IR Brdline , +which returns when its buffer is full even if no delimiter has been found, +.I Brdstr +will return an arbitrarily long line in a single call. +If +.I nulldelim +is set, the terminal delimiter will be overwritten with a NUL. +After a successful call to +.IR Brdstr , +the return value of +.I Blinelen +will be the length of the returned buffer, excluding the NUL. +.PP +.I Bgetc +returns the next character from +.IR bp , +or a negative value +at end of file. +.I Bungetc +may be called immediately after +.I Bgetc +to allow the same character to be reread. +.PP +.I Bgetrune +calls +.I Bgetc +to read the bytes of the next +.SM UTF +sequence in the input stream and returns the value of the rune +represented by the sequence. +It returns a negative value +at end of file. +.I Bungetrune +may be called immediately after +.I Bgetrune +to allow the same +.SM UTF +sequence to be reread as either bytes or a rune. +.I Bungetc +and +.I Bungetrune +may back up a maximum of five bytes. +.PP +.I Bgetd +uses +.I charstod +(see +.IR atof (2)) +and +.I Bgetc +to read the formatted +floating-point number in the input stream, +skipping initial blanks and tabs. +The value is stored in +.BR *d. +.PP +.I Bread +reads +.I nbytes +of data from +.I bp +into memory starting at +.IR addr . +The number of bytes read is returned on success +and a negative value is returned if a read error occurred. +.PP +.I Bseek +applies +.IR seek (2) +to +.IR bp . +It returns the new file offset. +.I Boffset +returns the file offset of the next character to be processed. +.PP +.I Bputc +outputs the low order 8 bits of +.I c +on +.IR bp . +If this causes a +.IR write +to occur and there is an error, +a negative value is returned. +Otherwise, a zero is returned. +.PP +.I Bputrune +calls +.I Bputc +to output the low order +16 bits of +.I c +as a rune +in +.SM UTF +format +on the output stream. +.PP +.I Bprint +is a buffered interface to +.IR print (2). +If this causes a +.IR write +to occur and there is an error, +a negative value +.RB ( Beof ) +is returned. +Otherwise, the number of bytes output is returned. +.I Bvprint +does the same except it takes as argument a +.B va_list +parameter, so it can be called within a variadic function. +.PP +.I Bwrite +outputs +.I nbytes +of data starting at +.I addr +to +.IR bp . +If this causes a +.IR write +to occur and there is an error, +a negative value is returned. +Otherwise, the number of bytes written is returned. +.PP +.I Bflush +causes any buffered output associated with +.I bp +to be written. +The return is as for +.IR Bputc . +.I Bflush +is called on +exit for every buffer still open +for writing. +.PP +.I Bbuffered +returns the number of bytes in the buffer. +When reading, this is the number of bytes still available from the last +read on the file; when writing, it is the number of bytes ready to be +written. +.SH SOURCE +.B /sys/src/libbio +.SH SEE ALSO +.IR open (2), +.IR print (2), +.IR exits (2), +.IR utf (6), +.SH DIAGNOSTICS +.I Bio +routines that return integers yield +.B Beof +if +.I bp +is not the descriptor of an open file. +.I Bopen +returns zero if the file cannot be opened in the given mode. +All routines set +.I errstr +on error. +.SH BUGS +.I Brdline +returns an error on strings longer than the buffer associated +with the file +and also if the end-of-file is encountered +before a delimiter. +.I Blinelen +will tell how many characters are available +in these cases. +In the case of a true end-of-file, +.I Blinelen +will return zero. +At the cost of allocating a buffer, +.I Brdstr +sidesteps these issues. +.PP +The data returned by +.I Brdline +may be overwritten by calls to any other +.I bio +routine on the same +.IR bp. diff --git a/static/plan9-4e/man2/blowfish.2 b/static/plan9-4e/man2/blowfish.2 new file mode 100644 index 00000000..7bf41960 --- /dev/null +++ b/static/plan9-4e/man2/blowfish.2 @@ -0,0 +1,51 @@ +.TH BLOWFISH 2 +.SH NAME +setupBFstate, bfCBCencrypt, bfCBCdecrypt, bfECBencrypt, bfECBdecrypt - blowfish encryption +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +void setupBFstate(BFstate *s, uchar key[], int keybytes, +.B + uchar *ivec) +.PP +.B +void bfCBCencrypt(uchar *data, int len, BFstate *s) +.PP +.B +void bfCBCdecrypt(uchar *data, int len, BFstate *s) +.PP +.B +void bfECBencrypt(uchar *data, int len, BFstate *s) +.PP +.B +void bfECBdecrypt(uchar *data, int len, BFstate *s) +.SH DESCRIPTION +.PP +Blowfish is Bruce Schneier's symmetric block cipher. It supports +variable length keys from 32 to 448 bits and has a block size of 64 +bits. Both CBC and ECB modes are supported. +.PP +setupBFstate takes a BFstate structure, a key of at most 56 bytes, the +length of the key in bytes, and an initialization vector of 8 bytes +(set to all zeroes if argument is nil). The encryption and decryption +functions take a BFstate structure, a data buffer, and a length, which +must be a multiple of eight bytes as padding is currently unsupported. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2), +.IR aes (2), +.IR des (2), +.IR elgamal (2), +.IR rc4 (2), +.IR rsa (2), +.IR sechash (2), +.IR prime (2), +.IR rand (2) diff --git a/static/plan9-4e/man2/brk.2 b/static/plan9-4e/man2/brk.2 new file mode 100644 index 00000000..f916a687 --- /dev/null +++ b/static/plan9-4e/man2/brk.2 @@ -0,0 +1,62 @@ +.TH BRK 2 +.SH NAME +brk, sbrk \- change memory allocation +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLvoid* 'u +.B +int brk(void *addr) +.PP +.B +void* sbrk(ulong incr) +.SH DESCRIPTION +.I Brk +sets the system's idea of the lowest bss location not used by the program +(called the break) +to +.I addr +rounded up to the next multiple of 8 bytes. +Locations not less than +.I addr +and below the stack pointer +may cause a memory violation if accessed. +.PP +In the alternate function +.IR sbrk , +.I incr +more bytes are added to the +program's data space and a pointer to the +start of the new area is returned. +Rounding occurs as with +.IR brk . +.PP +When a program begins execution via +.I exec +the break is set at the +highest location defined by the program +and data storage areas. +Ordinarily, therefore, only programs with growing +data areas need to use +.IR brk . +A call to +.I sbrk +with a zero argument returns the lowest address +in the dynamic segment. +.SH SOURCE +.B /sys/src/libc/9sys/sbrk.c +.SH SEE ALSO +.IR intro (2), +.IR malloc (2), +.IR segattach (2), +.IR segbrk (2) +.SH DIAGNOSTICS +These functions set +.IR errstr . +.PP +The error return from +.I sbrk +is +.BR (void*)-1 . diff --git a/static/plan9-4e/man2/cachechars.2 b/static/plan9-4e/man2/cachechars.2 new file mode 100644 index 00000000..fa1805f2 --- /dev/null +++ b/static/plan9-4e/man2/cachechars.2 @@ -0,0 +1,313 @@ +.TH CACHECHARS 2 +.SH NAME +cachechars, agefont, loadchar, Subfont, Fontchar, Font \- font utilities +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLCacheinfo 'u +.PP +.B +int cachechars(Font *f, char **s, Rune **r, ushort *c, int max, +.PP +.B + int *widp, char **sfname) +.PP +.B +int loadchar(Font *f, Rune r, Cacheinfo *c, int h, +.PP +.B + int noclr, char **sfname) +.PP +.B +void agefont(Font *f) +.SH DESCRIPTION +A +.I Font +may contain too many characters to hold in memory +simultaneously. +The graphics library and draw device (see +.IR draw (3)) +cooperate to solve this problem by maintaining a cache of recently used +character images. +The details of this cooperation need not be known by most programs: +.I initdraw +and its associated +.I font +variable, +.IR openfont , +.IR stringwidth , +.IR string , +and +.I freefont +are sufficient for most purposes. +The routines described below are used internally by the graphics library +to maintain the font cache. +.PP +A +.B Subfont +is a set of images for a contiguous range of characters, stored as a single +image +with the characters +placed side-by-side on a common baseline. +It is described by the following data structures. +.IP +.EX +.ta 6n +\w'Fontchar 'u +\w'bottom; 'u +typedef +struct Fontchar { + int x; /* left edge of bits */ + uchar top; /* first non-zero scan-line */ + uchar bottom; /* last non-zero scan-line */ + char left; /* offset of baseline */ + uchar width; /* width of baseline */ +} Fontchar; + +typedef +struct Subfont { + char *name; + short n; /* number of chars in subfont */ + uchar height; /* height of image */ + char ascent; /* top of image to baseline */ + Fontchar *info; /* n+1 Fontchars */ + Image *bits; /* of font */ +} Subfont; +.EE +.PP +The image fills the rectangle +\fL(0, 0, \fIw\fP, height)\fR, +where +.I w +is the sum of the horizontal extents (of non-zero pixels) +for all characters. +The pixels to be displayed for character +.I c +are in the rectangle +\fL(\fIi\fP->x, \fIi\fP->top, (\fIi\fP+1)->x, \%\fIi\fP->bottom)\fR +where +.I i +is +.B +&subfont->info[\fIc\fP]\fR. +When a character is displayed at +.B Point +.B p +in an image, +the character rectangle is placed at +.BI (p.x+ i ->left, +.B p.y) +and the next character of the string is displayed at +.BI (p.x+ i ->width, +.BR p.y) . +The baseline of the characters is +.L ascent +rows down from the top of the subfont image. +The +.L info +array has +.B n+1 +elements, one each for characters 0 to +.BR n-1 +plus an additional entry so the size of the last character +can be calculated. +Thus the width, +.IR w , +of the +.B Image +associated with a +.B Subfont +.B s +is +.BR s->info[s->n].x . +.PP +A +.B Font +consists of an overall height and ascent +and a collection of subfonts together with the ranges of runes (see +.IR utf (6)) +they represent. +Fonts are described by the following structures. +.IP +.EX +.ta 6n +\w'Cacheinfo 'u +\w'height; 'u +typedef +struct Cachefont { + Rune min; /* value of 0th char in subfont */ + Rune max; /* value+1 of last char in subfont */ + int offset; /* posn in subfont of char at min */ + char *name; /* stored in font */ + char *subfontname; /* to access subfont */ +} Cachefont; + +typedef +struct Cacheinfo { + ushort x; /* left edge of bits */ + uchar width; /* width of baseline */ + schar left; /* offset of baseline */ + Rune value; /* of char at this slot in cache */ + ushort age; +} Cacheinfo; + +typedef +struct Cachesubf { + ulong age; /* for replacement */ + Cachefont *cf; /* font info that owns us */ + Subfont *f; /* attached subfont */ +} Cachesubf; + +typedef +struct Font { + char *name; + Display *display; + short height; /* max ht of image;interline space*/ + short ascent; /* top of image to baseline */ + short width; /* widest so far; used in caching */ + short nsub; /* number of subfonts */ + ulong age; /* increasing counter; for LRU */ + int ncache; /* size of cache */ + int nsubf; /* size of subfont list */ + Cacheinfo *cache; + Cachesubf *subf; + Cachefont **sub; /* as read from file */ + Image *cacheimage; +} Font; +.EE +.PP +The +.LR height +and +.LR ascent +fields of Font are described in +.IR graphics (2). +.L Sub +contains +.L nsub +pointers to +.BR Cachefonts . +A +.B Cachefont +connects runes +.L min +through +.LR max , +inclusive, to the subfont +with file name +.LR name ; +it corresponds to a line of the file describing the font. +.PP +The characters +are taken from the subfont starting at character number +.L offset +(usually zero) in the subfont, permitting selection of parts of subfonts. +Thus +the image for rune +.I r +is found in position +.IB r -min+offset +of the subfont. +.PP +For each font, the library, with support from the +graphics server, +maintains a cache of +subfonts and a cache of recently used +character images. +The +.B subf +and +.B cache +fields are used by the library to maintain these caches. +The +.L width +of a font is the maximum of the horizontal extents of the characters +in the cache. +.I String +draws a string by loading the cache and emitting a sequence of +cache indices to draw. +.I Cachechars +guarantees the images for the characters pointed to by +.I *s +or +.I *r +(one of these must be nil in each call) +are in the cache of +.IR f . +It calls +.I loadchar +to put missing characters into the cache. +.I Cachechars +translates the character string into a set of cache indices +which it loads into the array +.IR c , +up to a maximum of +.I n +indices or the length of the string. +.I Cachechars +returns in +.I c +the number of cache indices emitted, +updates +.I *s +to point to the next character to be processed, and sets +.I *widp +to the total width of the characters processed. +.I Cachechars +may return before the end of the string if it cannot +proceed without destroying active data in the caches. +If it needs to load a new subfont, it will fill +.B *sfname +with the name of the subfont it needs and return \-1. +It can return zero if it is unable to make progress because +it cannot resize the caches. +.PP +.I Loadchar +loads a character image into the character cache. +Then it tells the graphics server to copy the character +into position +.I h +in the character cache. +If the current font +.L width +is smaller than the horizontal extent of the character being loaded, +.I loadfont +clears the cache and resets it to +accept characters with the bigger width, unless +.I noclr +is set, in which case it just returns \-1. +If the character does not exist in the font at all, +.I loadfont +returns 0; if it is unable to load the character +without destroying cached information, it returns \-1, +updating +.B *sfname +as described above. +It returns 1 to indicate success. +.PP +The +.L age +fields record when +subfonts and characters have been used. +The font +.L age +is increased every time the font is used +.RI ( agefont +does this). +A character or subfont +.L age +is set to the font age at each use. +Thus, characters or subfonts with small ages are the best candidates +for replacement when the cache is full. +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR allocimage (2), +.IR draw (2), +.IR subfont (2), +.IR image (6), +.IR font (6) +.SH DIAGNOSTICS +All of the functions use the graphics error function (see +.IR graphics (2)). diff --git a/static/plan9-4e/man2/chdir.2 b/static/plan9-4e/man2/chdir.2 new file mode 100644 index 00000000..24e1626b --- /dev/null +++ b/static/plan9-4e/man2/chdir.2 @@ -0,0 +1,32 @@ +.TH CHDIR 2 +.SH NAME +chdir \- change working directory +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int chdir(char *dirname) +.SH DESCRIPTION +.I Chdir +changes the working directory +of the invoking process to +.IR dirname . +The working directory is the starting point for +evaluating file names that do not begin with +.L / +or +.LR # , +as explained in +.IR intro (2). +When Plan 9 boots, the initial process has +.L / +for its working directory. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/cleanname.2 b/static/plan9-4e/man2/cleanname.2 new file mode 100644 index 00000000..cd760e42 --- /dev/null +++ b/static/plan9-4e/man2/cleanname.2 @@ -0,0 +1,34 @@ +.TH CLEANNAME 2 +.SH NAME +cleanname \- clean a path name +.SH SYNOPSIS +.B #include +.br +.B #include +.sp +.B +char* cleanname(char *filename) +.SH DESCRIPTION +.I Cleanname +takes a +.I filename +and by lexical processing only returns the shortest string that names the same (possibly +hypothetical) file. +It eliminates multiple and trailing slashes, and it lexically interprets +.B . +and +.B .. +directory components in the name. +The string is overwritten in place. +.PP +The shortest string +.I cleanname +can return is two bytes: the null-terminated string +\f(CW"."\f1. +Therefore +.I filename +must contain room for at least two bytes. +.SH SOURCE +.B /sys/src/libc/port/cleanname.c +.SH SEE ALSO +.IR cleanname (1) diff --git a/static/plan9-4e/man2/color.2 b/static/plan9-4e/man2/color.2 new file mode 100644 index 00000000..27569cb9 --- /dev/null +++ b/static/plan9-4e/man2/color.2 @@ -0,0 +1,56 @@ +.TH COLOR 2 +.SH NAME +cmap2rgb, cmap2rgba, rgb2cmap \- colors and color maps +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.B +int rgb2cmap(int red, int green, int blue) +.PP +.B +int cmap2rgb(int col) +.PP +.B +int cmap2rgba(int col) +.SH DESCRIPTION +These routines convert between `true color' red/green/blue triples and the Plan 9 color map. +See +.IR color (6) +for a description of RGBV, the standard color map. +.PP +.I Rgb2cmap +takes a trio of color values, scaled from 0 (no intensity) to 255 (full intensity), +and returns the index of the color in RGBV closest to that represented +by those values. +.PP +.I Cmap2rgb +decomposes the color of RGBV index +.I col +and returns a 24-bit integer with the low 8 bits representing the blue value, +the next 8 representing green, and the next 8 representing red. +.I Cmap2rgba +decomposes the color of RGBV index +.I col +and returns a 32-bit integer with the low 8 bits representing an alpha value, +defined to be 255, +and the next 8 representing blue, then green, then red, as for +.I cmap2rgba +shifted up 8 bits. +This 32-bit representation is the format used by +.IR draw (2) +and +.IR memdraw (2) +library routines that +take colors as arguments. +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR allocimage (2), +.IR draw (2), +.IR image (6), +.IR color (6) diff --git a/static/plan9-4e/man2/control.2 b/static/plan9-4e/man2/control.2 new file mode 100644 index 00000000..dd9df509 --- /dev/null +++ b/static/plan9-4e/man2/control.2 @@ -0,0 +1,1829 @@ +.TH CONTROL 2 +.SH NAME +Control, +Controlset, +activate, +closecontrol, +closecontrolset, +controlcalled, +controlwire, +createbox, +createboxbox, +createbutton, +createcolumn, +createentry, +createkeyboard, +createlabel, +createmenu, +createradiobutton, +createrow, +createscribble, +createslider, +createstack, +createtab, +createtext, +createtextbutton, +ctlerror, +ctlmalloc, +ctlrealloc, +ctlstrdup, +ctlprint, +deactivate, +freectlfont, +freectlimage, +initcontrols, +namectlfont, +namectlimage, +newcontrolset, +resizecontrolset +\- interactive graphical controls +.SH SYNOPSIS +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +#include +#include +#include +#include +#include +#include +#include +.sp 0.8 +typedef struct Control Control; +typedef struct Controlset Controlset; +.sp 0.8 +struct Control +{ + char *name; + Rectangle rect; /* area on screen */ + Rectangle size; /* min/max Dx, Dy (not a rect) */ + Channel *event; /* chan(char*) to client */ + Channel *data; /* chan(char*) to client */ + \&... +}; +.sp 0.8 +struct Controlset +{ + \&... + Channel *ctl; + Channel *data; + \&... + int clicktotype; + \&... +}; +.sp 0.8 +void initcontrols(void) +.sp 0.8 +Controlset* newcontrolset(Image *i, + Channel *kc, Channel *mc, Channel *rc) +.sp 0.8 +void closecontrolset(Controlset *cs) +.sp 0.8 +int namectlfont(Font *font, char *name) +.sp 0.8 +int freectlfont(char *name) +.sp 0.8 +int namectlimage(Image *image, char *name) +.sp 0.8 +int freectlimage(char *name) +.sp 0.8 +Control* createbox(Controlset *cs, char *name) +.sp 0.8 +Control* createboxbox(Controlset *cs, char *name) +.sp 0.8 +Control* createbutton(Controlset *cs, char *name) +.sp 0.8 +Control* createcolumn(Controlset*, char*) +.sp 0.8 +Control* createentry(Controlset *cs, char *name) +.sp 0.8 +Control* createkeyboard(Controlset *cs, char *name) +.sp 0.8 +Control* createlabel(Controlset *cs, char *name) +.sp 0.8 +Control* createmenu(Controlset *cs, char *name) +.sp 0.8 +Control* createradiobutton(Controlset *cs, char *name) +.sp 0.8 +Control* createrow(Controlset*, char*) +.sp 0.8 +Control* createscribble(Controlset *cs, char *name) +.sp 0.8 +Control* createslider(Controlset *cs, char *name) +.sp 0.8 +Control* createstack(Controlset*, char*) +.sp 0.8 +Control* createtab(Controlset*, char *) +.sp 0.8 +Control* createtext(Controlset *cs, char *name) +.sp 0.8 +Control* createtextbutton(Controlset *cs, char *name) +.sp 0.8 +void closecontrol(Control *c) +.sp 0.8 +int ctlprint(Control*, char*, ...); +.sp 0.8 +void ctlerror(char *fmt, ...) +.sp 0.8 +Control* controlcalled(char *name) +.sp 0.8 +void controlwire(Control *c, char *cname, Channel *ch) +.sp 0.8 +void activate(Control *c) +.sp 0.8 +void deactivate(Control *c) +.sp 0.8 +void resizecontrolset(Controlset *cs) +.sp 0.8 +void* ctlmalloc(uint n) +.sp 0.8 +void* ctlrealloc(void *p, uint n) +.sp 0.8 +char* ctlstrdup(char *s) +.sp 0.8 +int ctldeletequits +.EE +.SH DESCRIPTION +.PP +This library provides a set of interactive +controls for graphical displays: buttons, sliders, text entry boxes, and so on. +It also provides aggregator controls: boxes, columns, rows and stacks of controls. +A stack is a collection of colocated controls, of which one is normally visible. +A +.B controlset +collects a group of controls that share mouse and keyboard. Each controlset +has a separate thread of control that processes keyboard and mouse events as +well as commands to be passed on to the controls. +Since each controlset uses a thread, programs using the control library must +be linked with the thread library, +.IR thread (2). +.PP +Controls are manipulated by reading and writing to the control channel, +.BR ctl , +of their controlset. +Channels are defined in +.IR thread (2). +Each control has two output channels: +.B Event +delivers messages about actions within the control (such as a button press) and +.B data +delivers (if requested by an appropriate write to +.BR ctl ) +control-specific data such as the contents of a field. +.PP +The library provides a simple mechanism for automatic layout: +the minimum and maximum sizes of each simple control can be specified. +.BR Boxbox , +.BR row , +.B column +and +.B stack +controls then use these sizes to lay out their constituent controls when called upon +to do so. See the description of these grouping controls for further details. +.SS "Message format +All messages are represented as +.SM UTF\c +-8 +text. +Numbers are formatted in decimal, and strings are transmitted in the +quoted form of +.IR quote (2). +.PP +Messages sent to a controlset are of the form, +.IP +.IR sender : +.I destination +.I verb +.RI [ argument +\&... ] +.LP +The sender (and the colon following it) may be ommitted. +For example, the initial field of a text entry control called +.I entry +could be set by sending the message, +.IP +.B "entry value 'Hello, world!' +.PP +to its controlset's +.B ctl +file. +This message contains the verb +.B value +and the single argument +.B "Hello, world!" +.PP +To make it easy to write messages, the function +.IR chanprint +(see +.IR thread (2)) +can be used to print formatted text to a controlset's channel. +.PP +The +.B %q +and +.B %Q +formats are convenient for properly quoting string arguments, +as in +.IP +.EX +chanprint(e->event, "value %q", "Don't touch!"); +.EE +.PP +It is wise to use +.B %q +always instead of +.BR %s +when sending messages, and avoid dealing with the quoting explicitly. +In the other direction, +.B tokenize +(see +.IR getfields (2)) +parses these messages and interprets the quotes correctly. +.PP +The destination of a message can be a named control, or a set of controls identified +by name or type. The command +.IP +.B "'entry slider' show +.PP +(note the quotation) sends the `show' command to the entry named +.I entry +and all controls of type +.IR slider . +If there were a control whose name was +.I slider +that control would also be shown. +.LP +\f2 +Note that we are still experimenting with destination names. One proposal is that +a destination of the form +\fR"`name1 name2 ⋯ type1 type2 ⋯'\fP +selects all controls of the named types in the control hierarchies (of columns, rows and +stacks) whose names precede the types. +.LP +.sp +Messages sent by a control on its +.B event +channel are of the form +.IP +.IB sender : +.IB event +.PP +The +.I sender +is the name of the control sending the message; +the +.I event +describes the event. Its format can often be controlled by setting the +control's +.IR "format string" . +For example, when the user types a newline at a text entry control named +.BR entry, +the control sends the message +.IP +.B entry:\ value\ 'Hello\ again!' +on its +.B event +channel. +.SS "Initialization and Control sets +After +.B initdraw +(see +.IR graphics (2)) +is called, +the function +.I initcontrols +should be called to initialize the library. +It calls +.I quotefmtinstall +to install the +.B %q +and +.B %Q +formats; see +.IR quote (2). +.PP +Each control is represented by a +.B Control +data structure and is associated with a +.B Controlset +that groups a set of controls sharing mouse, keyboard, and display. +Most applications will need only one +.BR Controlset ; +only those with multiple windows or unusual configurations will need +more than one. +The function +.I newcontrolset +creates a +.BR Controlset . +Its arguments are the image (usually a window) +on which its controls will appear, typically the +.B screen +variable in the draw library, and three channels: +.BR kc , +a channel of +.B Runes +from the keyboard; +.BR mc , +a channel of +.B Mouse +structures from the mouse; +and +.BR rc , +a channel of +.B int +that indicates when the window has been resized. +Any of the channels may be nil, +in which case +.I newcontrolset +will call +.B initkeyboard +and/or +.B initmouse +(see +.IR keyboard (2) +and +.IR mouse (2)) +to initialize the keyboard and mouse +and connect them to the control set. +The mouse and resize channels must both be nil or both be non-nil. +.PP +The function +.I closecontrolset +frees all the controls in the control set and tears down all the associated threads. +It does not close the mouse and keyboard. +.PP +The public elements of a +.B Controlset +are the flag +.BR clicktotype , +and the +.I ctl +and +.I data +channels. +.PP +.I Clicktotype +is zero by default. +If it is set to non-zero, the controls +in the set will acquire `focus' by the click-to-type paradigm. +Otherwise, focus is always given to the control under the mouse. +.PP +Commands for controls are sent through the controlset's +.I ctl +channel. +One special command is recognized by the controlset itself: Sending +the string +.B sync +to the +.I ctl +channel causes tha string to be echoed to the controlset's +.I data +channel when all commands up to the +.I sync +command have been processed. The string is +allocated and must be freed (see +.IR malloc (2)). +Synchronization is necessary between sending a command, for example, to resize +all controls, and using their +.I rect +fields. +.PP +The function +.I resizecontrolset +must be provided by the user. +When the associated window is resized, the library will call +.I resizecontrolset +with the affected +.BR Controlset ; +the function should reconnect to and redraw the window. +.PP +If all windows are organized in a hierachy of +.IR boxboxes , +.IR columns , +.I rows +and +.IR stacks , +and minimum and maximum sizes have already been supplied, only +the top control needs to be resized (see the +.I rect +command below). +.SS "Fonts and images +Fonts and images must be given names so they may be referenced +in messages. +The functions +.I namectlfont +and +.I namectlimage +associate a (unique) name with the specified font or image. +The association is removed by +.I freectlfont +and +.IR freectlimage . +The font or image is not freed by these functions, however. +.PP +The function +.I initcontrols +establishes name bindings for all the colors mentioned in +.BR , +such as +.BR black , +.BR white , +.BR red , +.BR yellow , +etc., as well as masks +.B transparent +and +.BR opaque . +It also sets the name +.B font +to refer to the default +.B font +variable set up by +.BR initdraw . +.SS Creation +Each type of control has an associated creation function: +.IR createbutton , +.IR createentry , +etc., +whose arguments are the +.B Controlset +to attach it to and a globally unique name for it. +A control may be destroyed by calling +.IR closecontrol . +.PP +The function +.I controlcalled +returns a pointer to the +.B Control +with the given +.IR name , +or nil if no such control exists. +.SS Configuration +After a control is created, it must be configured using the control-specific +commands documented below. +Commands are sent to the +.B ctl +channel of the controlset. +Multiple commands may be sent in a single message; newline characters +separate commands. +For an example, see the implementation of +.I resizecontrolset +in the EXAMPLES section. +Note that newline is a separator, not a terminator; the final command +does not need a newline. +.PP +Messages sent to the +.I ctl +channel are delivered to all controls that match the +.I destination +field. This field is a set of names separated by spaces, tabs or newlines. +A control matches the destination if its name or its type is among the set. +.PP +The recipient of a message ignores the initial +.IB sender : +field of the message, if present, +making it possible to send messages generated on an +.B event +channel directly to another control's +.B ctl +channel. +.SS Activation +When they are created, controls are disabled: they do not respond to +user input. +Not all controls need to be responsive; +for example, labels are static and a text display +might show a log of messages but not be useful to edit. +But buttons, entry boxes, and other text displays should be active. +.PP +To enable a control, call the +.I activate +function, which +specifies that the +.B Control +.I c +should respond to mouse and keyboard events; +.I deactivate +turns it off again. +.PP +Controls can be either +.I revealed +(default) or +.IR hidden . +When a control is hidden, it will not receive mouse or keyboard events +and state changes or +.I show +commands will be ignored until the control is once again +.IR revealed . +Control hiding is particularly useful when different controls are overlayed, +revealing only the `top' one. +.PP +The function +.I controlwire +permits rearrangement of the channels associated with a +.BR Control . +The channel +.I cname +(one of +\f5"data"\fP +or +\f5"event"\fP) +of +.B Control +.I c +is reassigned to the channel +.IR ch . +There are several uses for this operation: +one may reassign all the +.B event +channels to a single channel, in effect multiplexing all the events onto +a single channel; +or connect the +.B event +channel of a slider to the +.B ctl +channel for delivery to a text display (after setting the format for the slider's messages +to name the destination control and the appropriate syntax for the rest of the command) +to let the slider act as a scroll bar for the text without rerouting the messages explicitly. +.SS Controls +The following sections document the individual controls in alphabetical order. +The layout of each section is a brief description of the control's behavior, +followed by the messages it sends on +.BR event , +followed by the messages it accepts via the +.B ctl +channel. +The +.B event +messages are triggered +.I only +by mouse or keyboard action; messages to the +.B ctl +file do not cause events to be generated. +.PP +All controls accept the following messages: +.TP +.BI rect " minx miny maxx maxy +Set the bounding rectangle for the control on the display. +The syntax generated by the +.B %R +print format of the draw library is also acceptable for the coordinates. +.TP +.BR size " [ \f2minΔx minΔy maxΔx maxΔy\fP ] +Set the minimum and maximum size for automatic layout in +.IR columns , +.I rows +and +.IR stacks . +Without its four arguments, this command is ignored by primitive controls +and used by grouping controls to calculate their minimum and maximum sizes +by examining those of their constituent members. +If all primitive controls have been assigned a size, a single size request addressed +to the top of a layout hierarchy will assign sizes to all grouping controls. +.TP +.B hide +Disable drawing of the control and ignore mouse and keyboard events +until the control is once again revealed. +Grouping controls (\f2column\fP, \f2row\fP, and \f2stack\fP) pass the +request down to their constituent controls. +.TP +.B reveal +This is the opposite of +.BR hide : +the control is displayed and mouse and keyboard operations resume. +Grouping controls (\f2column\fP, \f2row\fP, and \f2stack\fP) pass the +request down to their constituent controls. +The +.B reveal +command for +.I stacks +takes an optional argument naming the control to be revealed; all +other controls will be hidden. +.TP +.B show +Display the control on its screen if not hidden. +Some actions will also cause the controls to show themselves automatically +(but never when the control is hidden). +Grouping controls (\f2column\fP, \f2row\fP, and \f2stack\fP) pass the +request down to their constituent controls. +.PP +Many messages are common between multiple controls. +Such messages are described in detail here to avoid repetition. +In the individual descriptions, only the syntax is presented. +.TP +.BI align " n +Specify the alignment of (some part of) the control's display within its rectangle. +For textual controls, the alignment specifies where the text should appear. +For multiline text, the alignment refers to each line within its box, and only the +horizontal part is honored. +For other controls, the alignment affects the appearance of the display in +a reasonable way. +The valid alignments are words with obvious interpretations: +.BR upperleft , +.BR uppercenter , +.BR upperright , +.BR centerleft , +.BR center , +.BR centerright , +.BR lowerleft, +.BR lowercenter , +and +.BR lowerright . +.TP +.BI border " n +Inset the control (or separate constituent controls in +.IR boxbox , +.I column +and +.I row +controls after the next +.I rect +command) within its rectangle by +.I n +pixels, default zero. +.TP +.BI bordercolor " name +Paint the border of the control with the named color, default black. +.TP +.BI focus " n +The control now has (if +.I n +is non-zero) or does not have ( if +.I n +is zero) focus. +Most controls ignore the message; there are plans to make them react. +.TP +.BI format " fmt +Set the format of `value' messages sent on the +.B event +channel. +By default, the format is +.B \&"%q: value %q" +for string-valued controls, +.B \&"%q: value %d" +for integer-valued controls such as buttons, +and +.B \&"%q: value 0x%x" +for the keyboard and scribble controls. +The +.B %q +prints the name of the control; the rest the value. +Any supplied format string must be type-equivalent to the default for that control. +.TP +.BI image " name +.TP +.BI light " name +.TP +.BI mask " name +Many controls set a background image or color for display. +The +.B image +message sets the image. +The +.B mask +and +.B light +images together specify how the control shows it is enabled: +the +.B light +is printed through the +.B mask +when the state is `on' or `pressed'. +Otherwise, the image appears unmodified. +The default image is white; mask opaque; light yellow. +.TP +.BI font " name +.TP +.BI textcolor " name +These commands set the font and color for displaying text. +The defaults are the default +.B font +set up by the draw library, and black. +.TP +.BI value " v +Set the value of the control. Textual images accept an arbitrary string; +others an integral value. +.SS Box +A box is a trivial control that does nothing more than pass keyboard, mouse, +and focus messages back on its +.B event +channel. +Keyboard characters are sent in the format +.IP +.EX +boxname: key 0x\f2nn +.EE +.PP +where +.I nn +is the hexadecimal value of the character. +Mouse messages are sent in the format +.IP +.EX +boxname: mouse [\f2x\fP \f2y\fP] \f2but\fP \f2msec\fP +.EE +.PP +where +.IR x , +.IR y , +.IR but , +and +.I msec +are the various fields of the +.B Mouse +structure. +The focus message is just +.IP +.EX +boxname: focus \f2n\f1 +.EE +.PP +where +.I n +is 0 if the box has lost focus, 1 if it has acquired it. +.PP +The box displays within its rectangle +an image, under mask, with specified alignment. +The control messages it accepts are: +.TP +.BI align " a +Controls the placement of the image in the rectangle (unimplemented). +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI hide +.TP +.BI image " name +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.BI show +.TP +.BI size " minΔx minΔy maxΔx maxΔy +.PP +.SS Boxbox +A +.B boxbox +allows a set of controls (``boxes'') to be displayed in rows and columns within the +rectangle of the +.IR boxbox . +The maximum of the minimum heights of the constituent controls determines the +number of rows to be displayed. The number of columns is the minimum that +allows all controls to be displayed. This aggregator works well for collections +of buttons, labels, or textbuttons that all have a fixed height. +.TP +.BI add " name ... +adds the named control to the box of controls. The display order +is determined by the order of adding. The first named control is top left, +the second goes below it, etc. +It is possible to add one control to multiple grouping controls but +the layout of the result will be quite unpredictable. +.TP +.BI border " width +.TP +.BI bordercolor " color +.TP +.B hide +This command is passed on to the member controls. +.TP +.B image " color +Background color displayed between member controls. +.TP +.B reveal +This command is passed on to the member controls. +.TP +.BI separation " width +Set the separation between member controls to +.I n +pixels. +.TP +.BI rect " minx miny maxx maxy +The member controls are layed out within the given rectangle according to +the minimum and maximum sizes given. If the rectangle is not large enough +for the minimum a fatal error is currently generated. +If the controls at their maximum size are not big enough to fit, they are top-left justified +at their maximum size in the space given. +Otherwise, controls will get their minimum size and be enlarged proportional +to the extra size given by the maximum until they fit given rectangle. +The members are separated by borders of the width established by +.IR borderwidth . +.TP +.BI remove " name +Remove the named +control from the box. +.TP +.B show +This command is passed on to the member controls. +Show also (re)displays background and borders. +.TP +.BR size " \f2minΔx minΔy maxΔx maxΔy\fP +.PP +.SS Button +A button is a simple control that toggles its state when mouse button 1 is pressed on its rectangle. +Each state change triggers an event message: +.IP +.EX +buttonname: value \f2n\fP +.EE +where +.I n +encodes the mouse buttons used to make the selection. +.PP +The button displays an image (which may of course be a simple color) +and illuminates in the standard way when it is `on'. +The control messages it accepts are: +.TP +.BI align " a +Controls the placement of the image in the rectangle (unimplemented). +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI format " fmt +.TP +.BI hide +.TP +.BI image " name +.TP +.BI light " name +.TP +.BI mask " name +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.B show +.TP +.BI size " minΔx minΔy maxΔx maxΔy +.TP +.BI value " n +Set the button to `on' (if +.I n +is non-zero) or `off' (if +.I n +is zero). +.PP +.SS Column +A column is a grouping control which lays out its members vertically, +from top to bottom. Currently, columns ignore mouse and keyboard +events, but there are plans to allow dragging the borders (when they +have non-zero width) between constituent members. +.TP +.BI add " name ... +adds the named control to the column of controls. The vertical order +is determined by the order of adding. The first named control goes at +the top. It is possible to add one control to multiple grouping controls but +the layout of the result will be quite unpredictable. +.TP +.BI border " width +Set the border between members to the width given. +.TP +.BI bordercolor " color +.TP +.B hide +.TP +.B image " color +Background color displayed between member controls. +.TP +.B reveal +.TP +.BI separation " width +Set the separation between member controls to +.I n +pixels. +.TP +.B show +These three commands are passed on to the member controls. +Show also (re)displays the borders between members. +.TP +.BI rect " minx miny maxx maxy +The member controls are layed out within the given rectangle according to +the minimum and maximum sizes given. If the rectangle is not large enough +for the minimum a fatal error is currently generated. However, see the example +at the end of this man page. +If the controls at their maximum size are not big enough to fit, they are centered +at their maximum size in the space given. +Otherwise, controls will get their minimum size and be enlarged proportional +to the extra size given by the maximum until they fit given rectangle. +The members are separated by borders of the width established by +.IR borderwidth . +.TP +.BI remove " name +Remove the named control from the column. +.TP +.BR size " [ \f2minΔx minΔy maxΔx maxΔy\fP ] +Without arguments, this command computes the minimum and +maximum size of a column by adding the minimum and maximum +heights to set +.I minΔy +and +.IR maxΔy , +and it finds the largest minimum and maximum widths to set +.I minΔy +and +.IR maxΔy . +When called with arguments, it simply sets the minimum and maximum +sizes to those given. +.PP +.SS Entry +The entry control manages a single line of editable text. +When the user hits a carriage return anywhere +in the text, the control generates the event message, +.IP +.EX +entryname: value \f2s\fP +.EE +.PP +with +.I s +the complete text of the entry box. +.PP +The cursor can be moved by clicking button 1; at the moment, +there is no way to select characters, only a typing position. +Some control characters have special actions: +control-H (backspace) deletes the character before the cursor; +control-U clears the line; and +control-V pastes the snarf buffer at the typing position. +Most important, carriage return sends the text to the event channel. +.PP +To enter passwords and other secret text without displaying the +contents, set the font to one in which all characters are the same. +The easiest way to do this is to make a font containing only one character, +at position 0 (NUL), since that position is used to render all +characters not otherwise defined in the font (see +.IR draw (2)). +The file +.B /lib/font/bit/lucm/passwd.9.font +defines such a font. +.PP +The control messages the entry control accepts are: +.TP +.BI align " a +Controls the placement of the text in the rectangle. +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI data +After receiving this message, the entry will send its value to its +.B data +channel as an unadorned, unquoted string. +.TP +.BI focus " n +When it receives focus, the entry box displays a typing cursor. +When it does not have focus, the cursor is not displayed. +.TP +.BI font " name +.TP +.BI format " fmt +.TP +.BI hide +.TP +.BI image " name +.TP +.BI rect " minx miny maxx maxy +.TP +.B reveal +.TP +.B show +.TP +.BI size " minΔx minΔy maxΔx maxΔy +.TP +.BI textcolor " name +.TP +.BI value " s +Set the string displayed in the entry box. +.SS Keyboard +The keyboard control implements a simulated keyboard useful on palmtop devices. +Keystrokes, generated by mouse button 1 on the simulated keys, +are sent as event messages: +.IP +.EX +keyboardname: value 0x\f2nn\f1 +.EE +.PP +where +.I nn +is the hexadecimal Unicode value of the character. +Shift, control, and caps lock are handled by the keyboard control itself; +shift and control affect only the next regular keystroke. +The Alt key is unimplemented; it will become equivalent to the standard Plan 9 +key for synthesizing non-ASCII characters. +.PP +There are two special keys, +.B Scrib +and +.BR Menu , +which return values +.B 0x10000 +and +.BR 0x10001 . +.PP +The image, mask, light rules are used to indicate that a key is pressed, +but to aid clumsy fingers the keystroke is not generated until the key is released, +so it is possible to slide the pointer to a different key to correct for bad aim. +.PP +The control messages the keyboard accepts are: +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI font " name1 name2 +Sets the font for the keys. +If only one font is named, it is used for all keys. +If two are named, the second is used for key caps with special names such +as Shift and Enter. +(Good choices on the Bitsy are +.B /lib/font/bit/lucidasans/boldlatin1.6.font +for the first and +.B /lib/font/bit/lucidasans/unicode.6.font +for the second argument.) +If neither is specified, both will be set to the default global font. +.TP +.BI format " fmt +.TP +.BI hide +.TP +.BI image " name +.TP +.BI light " name +.TP +.BI mask " name +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.B show +.TP +.BI size " minx miny maxx maxy +.SS Label +A label is like a textbutton +.RI ( q.v. ) +that does not react, but whose value is the text it displays. +The control messages it accepts are: +.TP +.BI align " a +Controls the placement of the image in the rectangle. +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI font " name +.TP +.BI hide +.TP +.BI image " name +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.B show +.TP +.BI size " minx miny maxx maxy +.TP +.BI textcolor " name +.TP +.BI value " s +The value is a string that can be modified only by sending this message to the +.B ctl +file. +.SS Menu +A menu is a pop-up window containing a set of textual selections. +When a selection is made, it removes itself from the screen and reports the selection +by value: +.IP +.EX +menuname: value \f2n\fP +.EE +.PP +If no selection is made, no message is reported. +Because it creates a window, programs using a menu must have their +.B screen +variable (see +.IR graphics (2) +and +.IR window (2)) +set up to be refreshed properly. +The easiest way to do this is to call +.B getwindow +with refresh argument +.B Refbackup +(see +.IR graphics (2)); +most programs use +.BR Refnone . +.PP +The control messages accepted by a menu are: +.TP +.BI add " text +Add a line of +.I text +to the end of the menu. +.TP +.BI align " a +Controls the left-right placement of the text in its rectangle. +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI font " name +.TP +.BI format " fmt +.TP +.BI hide +.TP +.BI image " name +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.BI size " minx miny maxx maxy +.TP +Only the origin of the rectangle is significant; menus calculate the appropriate size. +.TP +.BI selectcolor " name +Set the color in which to highlight selected lines; default yellow. +.TP +.BI selecttextcolor " name +Set the color in which to draw the text in selected lines; default black. +.TP +.B show +Display the menu. Not usually needed unless the menu is changed while visible; use +.I window +instead. +.TP +.B window +.TP +.BI window " n +With no arguments, toggle the menu's visibility; otherwise make it visible (1) or invisible (0). +When the selection is made, the menu will remove its window automatically. +.SS Radiobutton +The radiobutton assembles a group of buttons or textbuttons into a +single control with a numeric value. +Its value is \-1 if none of the constituent buttons is pressed; otherwise +it is the index, starting at zero, of the button that is pressed. +Only one button may be pressed; the radiobutton manipulates its +buttons to guarantee this. +State changes trigger an event message: +.IP +.EX +radiobuttonname: value \f2n\fP +.EE +.PP +Buttons are added to the radio button using the +.B add +message; there is no way to remove them, although they may be turned off +independently using +.IR deactivate . +The index reported in the value is defined by the order +in which the buttons are added. +The constituent buttons should be configured and layed out in the usual way; +the rectangle of the radiobutton is used only to `catch' mouse events and +should almost always correspond to the bounding box of the constituent +buttons. +In other words, the geometry is not maintained automatically. +.PP +The control messages the radiobutton accepts are: +.TP +.BI add " name +Add the control with the specified +.I name +to the radiobutton. +.TP +.BI focus " n +.TP +.BI format " fmt +.TP +.BI hide +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.BI size " minx miny maxx maxy +.TP +.B show +.TP +.BI value " n +.SS Row +A row groups a number of member controls left to right in a rectangle. +Rows behave exactly like columns with the roles of +.I x +and +.I y +interchanged. +.TP +.BI add " name ... +.TP +.BI border " width +.TP +.BI bordercolor " color +.TP +.BI hide +.TP +.B image " color +.TP +.BI rect " minx miny maxx maxy +.TP +.BI remove " name +.TP +.BI reveal +.TP +.BI separation " width +.TP +.BI show +.TP +.BR size " [ \f2minΔx minΔy maxΔx maxΔy\fP ] +.SS Scribble +The scribble control provides a region in which strokes drawn with mouse button +1 are interpreted as characters in the manner of +.IR scribble (2). +In most respects, including the format of its event messages, it is equivalent +to a keyboard control. +.PP +The control messages it accepts are: +.TP +.BI align " a +Controls the placement of the image in the rectangle (unimplemented). +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI font " name +Used to display the indicia. +.TP +.BI hide +TP +.BI image " name +.TP +.BI linecolor " name +The color in which to draw the strokes; default black. +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.BI size " minx miny maxx maxy +.TP +.B show +.SS Stack +A stack groups a number of member controls in the same shared rectangle. +Only one of these controls will be visible (revealed), the others are hidden. +.TP +.BI hide +.TP +.BI rect " minx miny maxx maxy +.TP +.BI remove " name +.TP +.BR reveal " [ \f2n\fP ] +Without argument, +.B reveal +is the opposite of +.BR hide : +it makes its selected control visible after it was hidden. +With an argument, it makes the +.IR n 'th +added control visible, hiding all others. +.TP +.BI show +.TP +.BR size " [ \f2minΔx minΔy maxΔx maxΔy\fP ] +Without argument, +.I size +computes the maximum of the minimum and maximum sizes of +its constituent controls. With arguments, it sets the size to the +given values. +.SS Slider +A slider controls an integer value by dragging the mouse with a button. +Configured appropriately, it can serve as a scroll bar with the standard +Plan 9 behavior. +When the value changes, an event message is sent: +.IP +.EX +slidername: value \f2n\f1 +.EE +.PP +The slider is a good candidate for connecting to another control +by setting its format and rewiring its +.B event +channel to the other's +.B ctl +channel. +.PP +The geometry of the slider is defined by three numbers: +.B max +is a number representing the range of the slider; +.B vis +is a number representing how much of what is being controlled is visible; +and +.B value +is a number representing the value of the slider within its range. +For example, if the slider is managing a textual display of 1000 lines, with +18 visible, and the first visible line (numbered starting form 0) is 304, +.B max +will be 1000, +.B vis +will be 18, and +.B value +will be 304. +The +.I indicator +is the visual representation of the +.I vis +portion of the controlled object. +.PP +The control messages the slider accepts are: +.TP +.BI absolute " n +If +.I n +is zero, +the slider behaves like a Plan 9 scroll bar: +button 2 sets absolute position, button 1 decreases the value, +and button 3 increases it. +If +.I n +is non-zero, all buttons behave like button 2, setting the absolute value. +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI clamp " end n +The +.I end +is either the word +.B high +or +.BR low ; +.I n +sets whether that end is clamped or not. +If it is clamped, that end of the indicator is always at its supremum. +A standard scroll bar has neither end clamped; a volume slider would +have its low end clamped. +If the low end is clamped, the value of the slider is represented by the +high end of the indicator; otherwise it is represented by the low end. +.TP +.BI focus " n +.TP +.BI format " fmt +.TP +.BI hide +.TP +.BI image " name +.TP +.BI indicatorcolor " name +Set the color in which to draw the indicator; default black. +.TP +.BI max " n +Set the maximum value of the range covered by the slider. +.TP +.BI orient " dir +The string +.I dir +begins either +.B hor +or +.B ver +to specify the orientation of the slider. +The default is vertical. +The value always increases to the right for horizontal sliders and +downwards for vertical sliders. +.TP +.BI rect " minx miny maxx maxy +.TP +.BI reveal +.TP +.BI size " minx miny maxx maxy +.TP +.B show +.TP +.BI value " n +.TP +.BI vis " n +Set the visible area shown by the indicator. +.SS Tab +A tab control combines radiobottuns with a stack of windows giving the +appearance of tabbed controls. Currently, the tabs are positioned at the +top of the stack. The radiobutton consists of textbuttons, the stack +can be composed of any type of control. +.PP +Control messages are +.TP +.BI add " button control button control ... +Adds a button to the radiobutton, and an associated control to the stack. +Buttons and controls are numbered in the order of addition. There is +no remove operation. +.TP +.BI border " b +.TP +.BI bordercolor " color +.TP +.BI focus " n +.TP +.BI format " fmt +When a format string is defined, the tab control reports which tab +is selected using the format string (which must print a +.B char* +and an +.BR int ). +.TP +.BI image " color +Color between member controls. +.TP +.BI separation " n +Spacing between buttons in the radiobutton and between the row of +buttons and the stack below it. +.TP +.BI rect " n n n n +.TP +.B hide +.TP +.B reveal +.TP +.BI size " n n n n +.TP +.B show +.TP +.BI value " n +Value must be an integer indicating which tab to bring to the top. +.SS Text +A text control presents a set of lines of text. +The text cannot be edited with the keyboard, but can be +changed by control messages. +(A more interactive text control will be created eventually.) +The mouse can be used to select lines of text. +The only event message reports a state change in the selection of a line: +.IP +.EX +textname: select \f2n\f1 \f2s\f1 +.EE +.PP +states that line +.I n +has changed its selection state to +.IR s , +either zero (unselected) or non-zero (selected). +The non-zero value encodes the mouse buttons that were down +when the selection occurred. +.PP +.PP +The control messages the text control accepts are: +.TP +.BI accumulate " s +.TP +.BI accumulate " n s +.TP +.BI add " s +.TP +.BI add " n s +With one argument, append the string +.I s +as a new last line of the control; if +.I n +is specified, add the line +.I before +the current line +.IR n , +making the new line number +.IR n. +The lines are zero indexed and +.I n +can be no greater than the current number of lines. +.I Add +refreshes the display, but +.I accumulate +does not, to avoid n-squared behavior when assembling a piece of text. +.TP +.BI align " a +Controls the placement of each line of text left-to-right in its rectangle. +Vertically, lines are tightly packed with separation set by the font's interline +spacing. +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI clear +Delete all text. +.TP +.BI delete " n +Delete line +.IR n . +.TP +.BI focus " n +.TP +.BI font " name +.TP +.BI image " name +.TP +.BI rect " minx miny maxx maxy +.TP +.BI replace " n s +Replace line +.I n +by the string +.IR s . +.TP +.BI reveal +.TP +.B scroll " n +If +.I n +is non-zero, the text will automatically scroll so the last line is always visible +when new text is added. +.TP +.BI select " n m +Set the selection state of line +.I n +to +.IR m . +.TP +.BI selectcolor " name +Set the color in which to highlight selected lines; default yellow. +.TP +.BI selectmode " s +The string +.I s +is either +.B single +or +.BR multi . +If +.BR single , +the default, +only one line may be selected at a time; when a line is selected, +other lines are unselected. +If +.BR multi , +the selection state of individual lines can be toggled independently. +.TP +.BI size " minx miny maxx maxy +.TP +.B show +.TP +.BI textcolor " name +.TP +.BI topline " n +Scroll the text so the top visible line is number +.IR n . +.TP +.BI value " s +Delete all the text in the control and then add the single line +.IR s . +.SS Textbutton +A textbutton is a textual variant of a plain button. +Each state change triggers an event message: +.IP +.EX +textbuttonname: value \f2n\fP +.EE +where +.I n +encodes the mouse buttons used to make the selection. +.PP +Like a regular button, the value of a textbutton is an integer; the +.I text +is the string that appears in the button. +It uses the image, light, mask method of indicating its state; +moreover, the color of the text can be set to change when the button is pressed. +The control messages it accepts are: +.TP +.BI align " a +Controls the placement of the text in the rectangle. +.TP +.BI border " b +.TP +.BI bordercolor " name +.TP +.BI focus " n +.TP +.BI font " name +.TP +.BI format " fmt +.TP +.B hide +.TP +.BI image " name +.TP +.BI light " name +.TP +.BI mask " name +.TP +.BI pressedtextcolor " name +Set the color in which to display text when the textbutton is pressed. +.TP +.BI rect " minx miny maxx maxy +.TP +.B reveal +.TP +.BI size " minx miny maxx maxy +.TP +.B show +.TP +.BI text " s +Set the text displayed in the button. +.TP +.BI textcolor " name +.TP +.BI value " n +Set the button to `on' (if +.I n +is non-zero) or `off' (if +.I n +is zero). +.SS "Helper functions +The function +.I ctlerror +is called when the library encounters an error. +It prints the formatted message and exits the program. +.PP +The functions +.IR ctlmalloc , +.IR ctlrealloc , +.IR ctlstrdup , +and +.I ctlrunestrdup +are packagings of the corresponding C library functions. +They call +.I ctlerror +if they fail to allocate memory, and +.I ctlmalloc +zeros the memory it returns. +.PP +Finally, for debugging, if the global variable +.I ctldeletequits +is set to a non-zero value, typing a +.SM DEL +will cause the program to call +.IP +.EX +ctlerror("delete"); +.EE +.SS Caveat +This library is very new and is still missing a number of important features. +The details are all subject to change. +Another level of library that handles geometry and has sensible default +appearances for the controls would be useful. +.PP +One unusual design goal of this library was to make the controls themselves +easy to implement. +The reader is encouraged +to create new controls by adapting the source to existing ones. +.SH EXAMPLES +This example creates two entry boxes, +.BR top +and +.BR bot , +and copies the contents of one to the other whenever a newline is typed. +.PP +.EX +#include +#include +#include +#include +#include +#include +#include + +Controlset *cs; + +int ctldeletequits = 1; + +void +resizecontrolset(Controlset*) +{ + int i; + Rectangle r, r1, r2; + + if(getwindow(display, Refnone) < 0) + sysfatal("resize failed: %r"); + r = insetrect(screen->r, 10); + r1 = r; + r2 = r; + r1.max.y = r1.min.y+1+font->height+1; + r2.min.y = r1.max.y+10; + r2.max.y = r2.min.y+1+font->height+1; + chanprint(cs->ctl, "top rect %R\enshow", r1); + chanprint(cs->ctl, "bot rect %R\enshow", r2); +} + +void +threadmain(int argc, char *argv[]) +{ + char *s, *args[3]; + Channel *c; + Contro *top, *bot; + int n; + + initdraw(0, 0, "example"); + initcontrols(); + cs = newcontrolset(screen, nil, nil, nil); + cs->clicktotype = 1; + + top = createentry(cs, "top"); + chanprint(cs->ctl, "top image paleyellow"); + chanprint(cs->ctl, "top border 1"); + bot = createentry(cs, "bot"); + chanprint(cs->ctl, "bot image paleyellow"); + chanprint(cs->ctl, "bot border 1"); + + c = chancreate(sizeof(char*), 0); + controlwire(top, "event", c); + controlwire(bot, "event", c); + + activate(top); + activate(bot); + resizecontrolset(cs); + + for(;;){ + s = recvp(c); + n = tokenize(s, args, nelem(args)); + if(n==3 && strcmp(args[1], "value")==0){ + if(strcmp(args[0], "top:") == 0) + chanprint(cs->ctl, "bot value %q", args[2]); + else + chanprint(cs->ctl, "top value %q", args[2]); + } + } + threadexitsall(nil); +} +.EE +.PP +A richer variant couples a text entry box to a slider. +Since the value of a slider is its numerical setting, as a decimal number, +all that needs changing is the setup of +.BR bot : +.PP +.EX + bot = createslider(cs, "bot"); + chanprint(cs->ctl, "bot border 1"); + chanprint(cs->ctl, "bot image paleyellow"); + chanprint(cs->ctl, "bot indicatorcolor red"); + chanprint(cs->ctl, "bot max 100"); + chanprint(cs->ctl, "bot clamp low 1"); + chanprint(cs->ctl, "bot orient horizontal"); +.EE +.PP +The rest is the same. +Of course, the value of the entry box is only meaningful to the slider +if it is also a decimal number. +.PP +Finally, we can avoid processing events altogether by cross-coupling +the controls. Replace the rest of +.B threadmain +with this: +.PP +.EX + chanprint(cs->ctl, "bot format %q", "%q: top value %q"); + chanprint(cs->ctl, "top format %q", "%q: bot value %q"); + + controlwire(top, "event", cs->ctl); + controlwire(bot, "event", cs->ctl); + + activate(top); + activate(bot); + resizecontrolset(cs); + + for(;;) + yield(); + threadexitsall(nil); +.EE +.SH SOURCE +.B /sys/src/libcontrol +.SH SEE ALSO +.IR draw (2) +.IR frame (2) +.IR graphics (2) +.IR quote (2) +.IR thread (2) +.SH BUGS +The library is strict about matters of formatting, argument count in messages, +etc., and calls +.I ctlerror +in situations where it may be fine to ignore the error and continue. diff --git a/static/plan9-4e/man2/cputime.2 b/static/plan9-4e/man2/cputime.2 new file mode 100644 index 00000000..5cb64f6e --- /dev/null +++ b/static/plan9-4e/man2/cputime.2 @@ -0,0 +1,34 @@ +.TH CPUTIME 2 +.SH NAME +cputime, times \- cpu time in this process and children +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLdouble 'u +.B +int times(long t[4]) +.PP +.B +double cputime(void) +.SH DESCRIPTION +If +.I t +is non-null, +.I times +fills it in +with the number of milliseconds spent in user code, system calls, +child processes in user code, and child processes in system calls. +.I Cputime +returns the sum of those same times, converted to seconds. +.I Times +returns the elapsed real time, in milliseconds, that the process has been running. +.PP +These functions read +.BR /dev/cputime , +opening that file when they are first called. +.SH SOURCE +.B /sys/src/libc/9sys +.SH SEE ALSO +.IR cons (3) diff --git a/static/plan9-4e/man2/ctime.2 b/static/plan9-4e/man2/ctime.2 new file mode 100644 index 00000000..a4e07434 --- /dev/null +++ b/static/plan9-4e/man2/ctime.2 @@ -0,0 +1,129 @@ +.TH CTIME 2 +.SH NAME +ctime, localtime, gmtime, asctime, tm2sec, timezone \- convert date and time +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLchar* 'u +.B +char* ctime(long clock) +.PP +.B +Tm* localtime(long clock) +.PP +.B +Tm* gmtime(long clock) +.PP +.B +char* asctime(Tm *tm) +.PP +.B +long tm2sec(Tm *tm) +.PP +.B +/env/timezone +.SH DESCRIPTION +.I Ctime +converts a time +.I clock +such as returned by +.IR time (2) +into +.SM ASCII +(sic) +and returns a pointer to a +30-byte string +in the following form. +All the fields have constant width. +.PP +.B + Wed Aug 5 01:07:47 EST 1973\en\e0 +.PP +.I Localtime +and +.I gmtime +return pointers to structures containing +the broken-down time. +.I Localtime +corrects for the time zone and possible daylight savings time; +.I gmtime +converts directly to GMT. +.I Asctime +converts a broken-down time to +.SM ASCII +and returns a pointer +to a 30-byte string. +.IP +.EX +.ta 6n +\w'char 'u +\w'zone[4]; 'u +typedef +struct { + int sec; /* seconds (range 0..59) */ + int min; /* minutes (0..59) */ + int hour; /* hours (0..23) */ + int mday; /* day of the month (1..31) */ + int mon; /* month of the year (0..11) */ + int year; /* year A.D. \- 1900 */ + int wday; /* day of week (0..6, Sunday = 0) */ + int yday; /* day of year (0..365) */ + char zone[4]; /* time zone name */ + int tzoff; /* time zone delta from GMT */ +} Tm; +.EE +.PP +.I Tm2sec +converts a broken-down time to +seconds since the start of the epoch. +It ignores +.BR wday , +and assumes the local time zone +if +.B zone +is not +.BR GMT . +.PP +When local time is first requested, +the program consults the +.B timezone +environment variable to determine the time zone and +converts accordingly. +(This variable is set at system boot time by +.IR init (8).) +The +.B timezone +variable contains +the normal time zone name and its difference from GMT +in seconds followed by an alternate (daylight) time zone name and +its difference followed by a newline. +The remainder is a list of pairs of times +(seconds past the start of 1970, in the first time zone) +when the alternate time zone applies. +For example: +.IP +.EX +EST -18000 EDT -14400 + 9943200 25664400 41392800 57718800 ... +.EE +.PP +Greenwich Mean Time is represented by +.IP +.EX +GMT 0 +.EE +.SH SOURCE +.B /sys/src/libc/9sys +.SH "SEE ALSO" +.IR date (1), +.IR time (2), +.IR init (8) +.SH BUGS +The return values point to static data +whose content is overwritten by each call. +.br +Daylight Savings Time is ``normal'' in the Southern hemisphere. +.br +These routines are not equipped to handle non-\c +.SM ASCII +text, and are provincial anyway. diff --git a/static/plan9-4e/man2/ctype.2 b/static/plan9-4e/man2/ctype.2 new file mode 100644 index 00000000..4b8693ab --- /dev/null +++ b/static/plan9-4e/man2/ctype.2 @@ -0,0 +1,160 @@ +.TH CTYPE 2 +.SH NAME +isalpha, isupper, islower, isdigit, isxdigit, isalnum, isspace, ispunct, isprint, isgraph, iscntrl, isascii, toascii, _toupper, _tolower, toupper, tolower \- ASCII character classification +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.2C +.B isalpha(c) +.PP +.B isupper(c) +.PP +.B islower(c) +.PP +.B isdigit(c) +.PP +.B isxdigit(c) +.PP +.B isalnum(c) +.PP +.B isspace(c) +.PP +.B ispunct(c) +.PP +.B isprint(c) +.PP +.B isgraph(c) +.PP +.B iscntrl(c) +.PP +.B isascii(c) +.PP +.B _toupper(c) +.PP +.B _tolower(c) +.PP +.B toupper(c) +.PP +.B tolower(c) +.PP +.B toascii(c) +.1C +.SH DESCRIPTION +These macros classify +.SM ASCII\c +-coded integer values +by table lookup. +Each is a predicate returning nonzero for true, +zero for false. +.I Isascii +is defined on all integer values; the rest +are defined only where +.I isascii +is true and on the single non-\c +.SM ASCII +value +.BR EOF ; +see +.IR fopen (2). +.TP "\w'isalnum 'u" +.I isalpha +.I c +is a letter, a\-z or A\-Z +.TP +.I isupper +.I c +is an upper case letter, A\-Z +.TP +.I islower +.I c +is a lower case letter, a\-z +.TP +.I isdigit +.I c +is a digit, 0\-9 +.TP +.I isxdigit +.I c +is a hexadecimal digit, 0\-9 or a\-f or A\-F +.TP +.I isalnum +.I c +is an alphanumeric character, a\-z or A\-Z or 0\-9 +.TP +.I isspace +.I c +is a space, horizontal tab, newline, vertical tab, formfeed, or carriage return +(0x20, 0x9, 0xA, 0xB, 0xC, 0xD) +.TP +.I ispunct +.I c +is a punctuation character +(one of +.L +!"#$%&'()*+,-./:;<=>?@[\e]^_`{|}~\fR) +.TP +.I isprint +.I c +is a printing character, 0x20 (space) +through 0x7E (tilde) +.TP +.I isgraph +.I c +is a visible printing character, 0x21 (exclamation) through 0x7E +(tilde) +.TP +.I iscntrl +.I c +is a delete character, 0x7F, +or ordinary control character, 0x0 through 0x1F +.TP +.I isascii +.I c +is an +.SM ASCII +character, 0x0 through 0x7F +.PP +.I Toascii +is not a classification macro; +it converts its argument to +.SM ASCII +range by +.IR and ing +with 0x7F. +.PP +If +.I c +is an upper case letter, +.I tolower +returns the lower case version of the character; +otherwise it returns the original character. +.I Toupper +is similar, returning the upper case version of a character +or the original character. +.I Tolower +and +.I toupper +are functions; +.I _tolower +and +.I _toupper +are corresponding macros which should only be used when it +is known that the argument is upper case or lower case, respectively. +.SH SOURCE +.TF /sys/src/libc/port/ctype.c +.TP +.B /sys/include/ctype.h +for the macros. +.TP +.B /sys/src/libc/port/ctype.c +for the tables. +.SH "SEE ALSO +.IR isalpharune (2) +.SH BUGS +These macros are +.SM ASCII \c +-centric. diff --git a/static/plan9-4e/man2/debugger.2 b/static/plan9-4e/man2/debugger.2 new file mode 100644 index 00000000..5a2ec634 --- /dev/null +++ b/static/plan9-4e/man2/debugger.2 @@ -0,0 +1,386 @@ +.TH DEBUGGER 2 +.SH NAME +cisctrace, risctrace, ciscframe, riscframe, localaddr, symoff, +fpformat, beieee80ftos, beieeesftos, beieeedftos, leieee80ftos, +leieeesftos, leieeedftos, ieeesftos, ieeedftos \- machine-independent debugger functions +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLmachines 'u +.nf +.B +int cisctrace(Map *map, ulong pc, ulong sp, ulong link, +.B + Tracer trace) +.PP +.nf +.B +int risctrace(Map *map, ulong pc, ulong sp, ulong link, +.B + Tracer trace) +.PP +.nf +.B +ulong ciscframe(Map *map, ulong addr, ulong pc, ulong sp, +.B + ulong link) +.PP +.nf +.B +ulong riscframe(Map *map, ulong addr, ulong pc, ulong sp, +.B + ulong link) +.PP +.nf +.B +int localaddr(Map *map, char *fn, char *var, long *ret, +.B + Rgetter rget) +.PP +.B +int symoff(char *buf, int n, long addr, int type) +.PP +.B +int fpformat(Map *map, Reglist *rp, char *buf, int n, int code) +.PP +.B +int beieee80ftos(char *buf, int n, void *fp) +.PP +.B +int beieeesftos(char *buf, int n, void *fp) +.PP +.B +int beieeedftos(char *buf, int n, void *fp) +.PP +.B +int leieee80ftos(char *buf, int n, void *fp) +.PP +.B +int leieeesftos(char *buf, int n, void *fp) +.PP +.B +int leieeedftos(char *buf, int n, void *fp) +.PP +.B +int ieeesftos(char *buf, int n, ulong f) +.PP +.B +int ieeedftos(char *buf, int n, ulong high, ulong low) +.PP +.B +extern Machdata *machdata; +.SH DESCRIPTION +These functions provide machine-independent implementations +of common debugger functions. +Many of the functions assume that global variables +.I mach +and +.I machdata +point to the +.I Mach +and +.I Machdata +data structures describing the target architecture. +The former contains machine parameters and a description of +the register set; it is usually +set by invoking +.I crackhdr +(see +.IR mach (2)) +to interpret the header of an executable. +The +.I Machdata +structure +is primarily a jump table specifying +functions appropriate for processing an +executable image for a given architecture. +Each application is responsible for setting +.I machdata +to the address of the +.I Machdata +structure for the target architecture. +Many of the functions described here are not +called directly; instead, they are invoked +indirectly through the +.I Machdata +jump table. +.PP +These functions must retrieve data and register contents +from an executing image. The +.I Map +(see +.IR mach (2)) +data structure +supports the consistent retrieval of data, but +no uniform access mechanism exists for registers. +The application passes the address of a register +retrieval function as an argument to those functions +requiring register values. +This function, called an +.IR Rgetter , +is of the form +.PP +.RS +.B "ulong rget(Map *map, char *name); +.RE +.PP +It returns the contents of a register when given +the address of a +.I Map +associated with an executing image and the name of the register. +.PP +.I Cisctrace +and +.I risctrace +unwind the stack for up to 40 levels or until the frame for +.I main +is found. They return the +count of the number of levels unwound. These functions +process stacks conforming to the generic compiler model for +.SM RISC +and +.SM CISC +architectures, respectively. +.I Map +is the address of a +.I Map +data structure associated with the image +of an executing process. +.IR Sp , +.I pc +and +.I link +are starting values for the stack pointer, program counter, and +link register from which the unwinding is to take place. Normally, they are +the current contents of the appropriate +registers but they can be any values defining a legitimate +process context, for example, an alternate stack in a +multi-threaded process. +.I Trace +is the address of an application-supplied function to be called +on each iteration as the frame unwinds. The prototype of this +function is: +.PP +.RS +.B "void tracer(Map *map, ulong pc, ulong fp, Symbol *s); +.RE +.PP +where +.I Map +is the +.I Map +pointer passed to +.I cisctrace +or +.I risctrace +and +.I pc +and +.I fp +are the program counter and frame pointer. +.I S +is the address of a +.I Symbol +structure, as defined in +.IR symbol (2), +containing the symbol table information for the +function owning the frame (i.e., the function that +caused the frame to be instantiated). +.PP +.I Ciscframe +and +.I riscframe +calculate the frame pointer associated with +a function. They are suitable for +programs conforming to the +.SM CISC +and +.SM RISC +stack models. +.I Map +is the address of a +.I Map +associated with the memory image of an executing +process. +.I Addr +is the entry point of the desired function. +.IR Pc , +.I sp +and +.I link +are the program counter, stack pointer and link register of +an execution context. As with the stack trace +functions, these can be the current values of the +registers or any legitimate execution context. +The value of the frame pointer is returned. A return +value of zero indicates an error. +.PP +.I Localaddr +fills the location +pointed to by +.I ret +with the address of a local variable. +.I Map +is the address of a +.I Map +associated with an executing memory image. +.I Fn +and +.I var +are pointers to the names of the function and variable of interest. +.I Rget +is the address of a register retrieval function. +If both +.I fn +and +.I var +are non-zero, the frame for function +.I fn +is calculated and the address of the automatic or +argument named +.I var +in that frame is returned. +If +.I var +is zero, the address of the +frame for function +.I fn +is returned. +In all cases, the frame for the function named +.I fn +must be instantiated somewhere on the current stack. +If there are multiple frames for the function (that is, if +it is recursive), the most recent frame is used. +The search starts from the context defined by the +current value of the program counter and stack pointer. +If a valid address is found, +.I localaddr +returns 1. A negative return indicates an error in +resolving the address. +.PP +.I Symoff +converts a virtual address to a symbolic reference. The +string containing that reference is of +the form `name+offset', where `name' is the name of the +nearest symbol with an address less than +or equal to the target address and `offset' is the hexadecimal offset +beyond that symbol. If `offset' is zero, only the name of +the symbol is printed. If no symbol is found within 4,096 +bytes of the address, the address is formatted as a hexadecimal +address. +.I Buf +is the address of a buffer of +.I n +characters to receive the formatted string. +.I Addr +is the address to be converted. +.I Type +is the type code of the search space: +.BR CTEXT , +.BR CDATA , +or +.BR CANY . +.I Symoff +returns the length of the formatted string contained in +.IR buf . +.PP +.I Fpformat +converts the contents of a floating point register to a +string. +.I Map +is the address of a +.I Map +associated with an executing process. +.I Rp +is the address of a +.I Reglist +data structure describing the desired register. +.I Buf +is the address of a buffer of +.I n +characters to hold the resulting string. +.I Code +must be either +.B F +or +.BR f, +selecting double +or single precision, respectively. If +.I code +is +.BR F , +the contents of the specified register and +the following register +are interpreted as a double precision floating point +number; this +is only meaningful for architectures that implement +double precision floats by combining adjacent +single precision registers. +For +.I code +.BR f , +the specified register is formatted +as a single precision float. +.I Fpformat +returns 1 if the number is successfully converted or \-1 +in the case of an error. +.PP +.IR Beieee80ftos , +.I beieeesftos +and +.I beieeedftos +convert big-endian 80-bit extended, 32-bit single precision, +and 64-bit double precision floating point values to +a string. +.IR Leieee80ftos , +.IR leieeesftos , +and +.I leieeedftos +are the little-endian counterparts. +.I Buf +is the address of a buffer of +.I n +characters to receive the formatted string. +.I Fp +is the address of the floating point value to be +converted. These functions return the length of +the resulting string. +.PP +.I Ieeesftos +converts the 32-bit single precision floating point value +.IR f , +to a string in +.IR buf , +a buffer of +.I n +bytes. It returns the length of the resulting string. +.PP +.I Ieeedftos +converts a 64-bit double precision floating point value +to a character string. +.I Buf +is the address of a buffer of +.I n +characters to hold the resulting string. +.I High +and +.I low +contain the most and least significant 32 bits of +the floating point value, respectively. +.I Ieeedftos +returns the number of characters in the resulting string. +.SH SOURCE +.B /sys/src/libmach +.SH "SEE ALSO" +.IR mach (2), +.IR symbol (2), +.IR errstr (2) +.SH DIAGNOSTICS +Set +.IR errstr . diff --git a/static/plan9-4e/man2/des.2 b/static/plan9-4e/man2/des.2 new file mode 100644 index 00000000..82e538e7 --- /dev/null +++ b/static/plan9-4e/man2/des.2 @@ -0,0 +1,143 @@ +.TH DES 2 +.SH NAME +setupDESstate, des_key_setup, block_cipher, desCBCencrypt, desCBCdecrypt, desECBencrypt, desECBdecrypt, des3CBCencrypt, des3CBCdecrypt, des3ECBencrypt, des3ECBdecrypt, key_setup, des56to64, des64to56, setupDES3state, triple_block_cipher, - single and triple digital encryption standard +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +void des_key_setup(uchar key[8], ulong schedule[32]) +.PP +.B +void block_cipher(ulong *schedule, uchar *data, +.B + int decrypting) +.PP +.B +void setupDESstate(DESstate *s, uchar key[8], uchar *ivec) +.PP +.B +void desCBCencrypt(uchar*, int, DESstate*) +.PP +.B +void desCBCdecrypt(uchar*, int, DESstate*) +.PP +.B +void desECBencrypt(uchar*, int, DESstate*) +.PP +.B +void desECBdecrypt(uchar*, int, DESstate*) +.PP +.B +void triple_block_cipher(ulong keys[3][32], uchar*, int) +.PP +.B +void setupDES3state(DES3state *s, uchar key[3][8], +.B + uchar *ivec) +.PP +.B +void des3CBCencrypt(uchar*, int, DES3state*) +.PP +.B +void des3CBCdecrypt(uchar*, int, DES3state*) +.PP +.B +void des3ECBencrypt(uchar*, int, DES3state*) +.PP +.B +void des3ECBdecrypt(uchar*, int, DES3state*) +.PP +.B +void key_setup(uchar[7], ulong[32]) +.PP +.B +void des56to64(uchar *k56, uchar *k64) +.PP +.B +void des64to56(uchar *k64, uchar *k56) +.SH DESCRIPTION +.PP +The Digital Encryption Standard (DES) +is a shared key or symmetric encryption using either +a 56 bit key for single DES or three 56 bit keys for triple des. +The keys are encoded into 64 bits where every eight bit +is parity. +.PP +The basic DES function, +.IR block_cipher , +works on a block of 8 bytes, converting them in place. +It takes a key schedule, a pointer to the block, and +a flag indicating encrypting (0) or decrypting (1). +The key schedule is created from the key using +.IR des_key_setup . +.PP +Since it is a bit awkward, +.I block_cipher +is rarely called directly. Instead, one normally uses +routines that encrypt larger buffers of data and +which may chain the encryption state from one buffer +to the next. +These routines keep track of the state of the +encryption using a +.B DESstate +structure that contains the key schedule and any chained +state. +.I SetupDESstate +sets up the +.B DESstate +structure using the key and an 8 byte initialization vector. +.PP +Electronic code book, using +.I desECBencrypt +and +.IR desECBdecrypt , +is the less secure mode. The encryption of each 8 bytes +does not depend on the encryption of any other. +Hence the encryption is a substitution +cipher using 64 bit characters. +.PP +Cipher block chaining mode, using +.I desCBCencrypt +and +.IR desCBCdecrypt , +is more secure. Every block encrypted depends on the initialization +vector and all blocks encrypted before it. +.PP +For both CBC and ECB modes, a stream of data can be encrypted as +multiple buffers. However, all buffers except the last must +be a multiple of 8 bytes to ensure successful decryption of +the stream. +.PP +There are equivalent triple DES functions for each of the +DES functions. +.PP +In the past Plan 9 used a 56 bit or 7 byte +format for DES keys. To be compatible with the rest +of the world, we've abandoned this format. +There are two functions: +.I des56to64 +and +.I des64to56 +to convert back and forth between the two formats. +Also a key schedule can be set up from the 7 byte format +using +.IR key_setup . +.PP +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2), +.IR aes (2), +.IR blowfish (2), +.IR elgamal (2), +.IR rc4 (2), +.IR rsa (2), +.IR sechash (2), +.IR prime (2), +.IR rand (2) diff --git a/static/plan9-4e/man2/dial.2 b/static/plan9-4e/man2/dial.2 new file mode 100644 index 00000000..408ba6c2 --- /dev/null +++ b/static/plan9-4e/man2/dial.2 @@ -0,0 +1,331 @@ +.TH DIAL 2 +.SH NAME +dial, hangup, announce, listen, accept, reject, netmkaddr, setnetmtpt, getnetconninfo, freenetconninfo \- make and break network connections +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int dial(char *addr, char *local, char *dir, int *cfdp) +.PP +.B +int hangup(int ctl) +.PP +.B +int announce(char *addr, char *dir) +.PP +.B +int listen(char *dir, char *newdir) +.PP +.B +int accept(int ctl, char *dir) +.PP +.B +int reject(int ctl, char *dir, char *cause) +.PP +.B +char* netmkaddr(char *addr, char *defnet, char *defservice) +.PP +.B +void setnetmtpt(char *to, int tolen, char *from) +.PP +.B +NetConnInfo* getnetconninfo(char *conndir, int fd) +.PP +.B +void freenetconninfo(NetConnINfo*) +.SH DESCRIPTION +For these routines, +.I addr +is a network address of the form +.IB network ! netaddr ! service\f1, +.IB network ! netaddr\f1, +or simply +.IR netaddr . +.I Network +is any directory listed in +.B /net +or the special token, +.BR net . +.B Net +is a free variable that stands for any network in common +between the source and the host +.IR netaddr . +.I Netaddr +can be a host name, a domain name, a network address, +or a meta-name of the form +.BI $ attribute\f1, +which +is replaced by +.I value +from the value-attribute pair +.IB attribute = value +most closely associated with the source host in the +network data base (see +.IR ndb (6)). +.PP +If a connection attempt is successful and +.I dir +is non-zero, +the path name of a +.I line directory +that has files for accessing the connection +is copied into +.IR dir . +The path name is guaranteed to be less than 40 +bytes long. +One line directory exists for each possible connection. +The +.B data +file in the line directory should be used to communicate with the destination. +The +.B ctl +file in the line directory can be used to send commands to the line. +See +.IR ip (3) +for messages that can be written to the +.B ctl +file. +The last close of the +.B data +or +.B ctl +file will close the connection. +.PP +.I Dial +makes a call to destination +.I addr +on a multiplexed network. +If the network in +.I addr +is +.BR net , +.I dial +will try in succession all +networks in common between source and destination +until a call succeeds. +It returns a file descriptor open for reading and writing the +.B data +file in the line directory. +The +.B addr +file in the line directory contains the address called. +If the network allows the local address to be set, +as is the case with UDP and TCP port numbers, and +.IR local +is non-zero, the local address will be set to +.IR local . +If +.I cfdp +is non-zero, +.BI * cfdp +is set to a file descriptor open for reading and +writing the control file. +.PP +.I Hangup +is a means of forcing a connection to hang up without +closing the +.B ctl +and +.B data +files. +.P +.I Announce +and +.I listen +are the complements of +.IR dial . +.I Announce +establishes a network +name to which calls can be made. +Like +.IR dial , +.I announce +returns an open +.B ctl +file. +The +.I netaddr +used in announce may be a local address or an asterisk, +to indicate all local addresses, e.g. +.BR tcp!*!echo . +The +.I listen +routine takes as its first argument the +.I dir +of a previous +.IR announce . +When a call is received, +.I listen +returns an open +.B ctl +file for the line the call was received on. +It sets +.I newdir +to the path name of the new line directory. +.I Accept +accepts a call received by +.IR listen , +while +.I reject +refuses the call because of +.IR cause . +.I Accept +returns a file descriptor for the data file opened +.BR ORDWR . +.PP +.I Netmkaddr +makes an address suitable for dialing or announcing. +It takes an address along with a default network and service to use +if they are not specified in the address. +It returns a pointer to static data holding the actual address to use. +.PP +.I Getnetconninfo +returns a structure containing information about a +network connection. The structure is: +.EX + typedef struct NetConnInfo NetConnInfo; + struct NetConnInfo + { + char *dir; /* connection directory */ + char *root; /* network root */ + char *spec; /* binding spec */ + char *lsys; /* local system */ + char *lserv; /* local service */ + char *rsys; /* remote system */ + char *rserv; /* remote service */ + }; +.EE +.PP +The information is obtained from the connection directory, +.IR conndir . +If +.I conndir +is nil, the directory is obtained by performing +.IR fd2path (2) +on +.IR fd . +.I Getnetconninfo +returns either a completely specified structure, or +nil if either the structure can't be allocated or the +network directory can't be determined. +The structure +is freed using +.IR freenetconninfo . +.PP +.I Setnetmtpt +copies the name of the network mount point into +the buffer +.IR to , +whose length is +.IR tolen . +It exists to merge two pre-existing conventions for specifying +the mount point. +Commands that take a network mount point as a parameter +(such as +.BR dns , +.BR cs +(see +.IR ndb (8)), +and +.IR ipconfig (8)) +should now call +.IR setnetmtpt . +If +.I from +is +.BR nil , +the mount point is set to the default, +.BR /net . +If +.I from +points to a string starting with a slash, +the mount point is that path. +Otherwise, the mount point is the string pointed to by +.I from +appended to the string +.BR /net . +The last form is obsolete and is should be avoided. +It exists only to aid in conversion. +.SH EXAMPLES +Make a call and return an open file descriptor to +use for communications: +.IP +.EX +int callkremvax(void) +{ + return dial("kremvax", 0, 0, 0); +} +.EE +.PP +Call the local authentication server: +.IP +.EX +int dialauth(char *service) +{ + return dial(netmkaddr("$auth", 0, service), 0, 0, 0); +} +.EE +.PP +Announce as +.B kremvax +on TCP/IP and +loop forever receiving calls and echoing back +to the caller anything sent: +.IP +.EX +int +bekremvax(void) +{ + int dfd, acfd, lcfd; + char adir[40], ldir[40]; + int n; + char buf[256]; + + acfd = announce("tcp!*!7", adir); + if(acfd < 0) + return -1; + for(;;){ + /* listen for a call */ + lcfd = listen(adir, ldir); + if(lcfd < 0) + return -1; + /* fork a process to echo */ + switch(fork()){ + case -1: + perror("forking"); + close(lcfd); + break; + case 0: + /* accept the call and open the data file */ + dfd = accept(lcfd, ldir); + if(dfd < 0) + return -1; + + /* echo until EOF */ + while((n = read(dfd, buf, sizeof(buf))) > 0) + write(dfd, buf, n); + exits(0); + default: + close(lcfd); + break; + } + } +} +.EE +.SH SOURCE +.BR /sys/src/libc/9sys , +.B /sys/src/libc/port +.SH "SEE ALSO" +.IR auth (2), +.IR ip (3), +.IR ndb (8) +.SH DIAGNOSTICS +.IR Dial , +.IR announce , +and +.I listen +return \-1 if they fail. +.I Hangup +returns nonzero if it fails. diff --git a/static/plan9-4e/man2/dirread.2 b/static/plan9-4e/man2/dirread.2 new file mode 100644 index 00000000..6a3ad34c --- /dev/null +++ b/static/plan9-4e/man2/dirread.2 @@ -0,0 +1,103 @@ +.TH DIRREAD 2 +.SH NAME +dirread, dirreadall \- read directory +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +long dirread(int fd, Dir **buf) +.PP +.B +long dirreadall(int fd, Dir **buf) +.PP +.B +#define STATMAX 65535U +.PP +.B +#define DIRMAX (sizeof(Dir)+STATMAX) +.SH DESCRIPTION +The data returned by a +.IR read (2) +on a directory is a set of complete directory entries +in a machine-independent format, exactly equivalent to +the result of a +.IR stat (2) +on each file or subdirectory in the directory. +.I Dirread +decodes the directory entries into a machine-dependent form. +It reads from +.IR fd +and unpacks the data into an array of +.B Dir +structures +whose address is returned in +.B *buf +(see +.IR stat (2) +for the layout of a +.BR Dir ). +The array is allocated with +.IR malloc (2) +each time +.I dirread +is called. +.PP +.I Dirreadall +is like +.IR dirread , +but reads in the entire directory; by contrast, +.I dirread +steps through a directory one +.IR read (2) +at a time. +.PP +Directory entries have variable length. +A successful +.I read +of a directory always returns an integral number of complete directory entries; +.I dirread +always returns complete +.B Dir +structures. +See +.IR read (5) +for more information. +.PP +The constant +.B STATMAX +is the maximum size that a directory entry can occupy. +The constant +.B DIRMAX +is an upper limit on the size necessary to hold a +.B Dir +structure and all the associated data. +.PP +.I Dirread +and +.I dirreadall +return the number of +.B Dir +structures filled in +.BR buf . +The file offset is advanced by the number of bytes actually read. +.SH SOURCE +.B /sys/src/libc/9sys/dirread.c +.SH SEE ALSO +.IR intro (2), +.IR open (2), +.IR read (2) +.SH DIAGNOSTICS +.I Dirread +and +.I Dirreadall +return zero for end of file and a negative value for error. +In either case, +.B *buf +is set to +.B nil +so the pointer can always be freed with impunity. +.PP +These functions set +.IR errstr . diff --git a/static/plan9-4e/man2/disk.2 b/static/plan9-4e/man2/disk.2 new file mode 100644 index 00000000..72613139 --- /dev/null +++ b/static/plan9-4e/man2/disk.2 @@ -0,0 +1,172 @@ +.TH DISK 2 +.SH NAME +opendisk, Disk \- generic disk device interface +.SH SYNOPSIS +.nf +.ft L +#include +#include +#include +.ft +.PP +.ft L +typedef struct Disk { + char *prefix; + char part[NAMELEN]; + int fd, wfd, ctlfd, rdonly; + int type; + vlong secs, secsize, size, offset; + int c, h, s; +} Disk; +.ft +.PP +.B +Disk* opendisk(char *file, int rdonly, int noctl) +.SH DESCRIPTION +These routines provide a simple way to gather +and use information about +.IR floppy (3) +and +.IR sd (3) +disks and disk partitions, +as well as plain files. +.PP +.I Opendisk +opens +.I file +for reading and stores the file descriptor in +the +.B fd +field of the +.B Disk +structure. +If +.I rdonly +is not set, +.I opendisk +also opens +.I file +for writing and stores that file descriptor in +.BR wfd . +The two file descriptors are kept separate to +help prevent accidents. +.PP +If +.I noctl +is not set, +.I opendisk +looks for a +.B ctl +file in the same directory as the +disk file; +if it finds one, it declares +the disk to be +an +.I sd +device, +setting the +.B type +field in the +.B Disk +structure +to +.BR Tsd . +If the passed +.I file +is named +.BI fd n disk \fR, +it looks for a file +.BI fd n ctl \fR, +and if it finds that, +declares the disk to be +a floppy disk, of type +.BR Tfloppy . +If either +control +file is found, it is opened for reading +and writing, and the resulting file descriptor +is saved as +.BR ctlfd . +Otherwise the returned disk +has type +.BR Tfile . +.PP +.I Opendisk +then stats the file and stores its length in +.BR size . +If the disk is an +.I sd +partition, +.I opendisk +reads the sector size from the +control +file and stores it in +.BR secsize ; +otherwise the sector size is assumed to be 512, +as is the case for floppy disks. +.I Opendisk +then stores the disk size measured in sectors in +.BR secs . +.PP +If the disk is an +.I sd +partition, +.I opendisk +parses the +control +file to find the partition's offset +within its disk; +otherwise it sets +.B offset +to zero. +If the disk is an ATA disk, +.I opendisk +reads +the disk geometry (number of cylinders, heads, and sectors) +from the +.B geometry +line in the +.I sd +control file; +otherwise it sets these to zero as well. +.B Name +is initialized with the base name of +the disk partition, and is useful for forming messages to the +.I sd +control file. +.B Prefix +is set to the passed filename without +the +.B name +suffix. +.PP +The IBM PC BIOS interface allocates +10 bits for the number of cylinders, 8 for +the number of heads, and 6 for the number of sectors per track. +Disk geometries are not quite so simple +anymore, but to keep the interface useful, +modern disks and BIOSes present geometries +that still fit within these constraints. +These numbers are still used when partitioning +and formatting disks. +.I Opendisk +employs a number of heuristics to discover this +supposed geometry and store it in the +.BR c , +.BR h , +and +.B s +fields. +Disk offsets in partition tables and +in FAT descriptors are stored in a form +dependent upon these numbers, so +.I opendisk +works hard to report numbers that +agree with those used by other operating +systems; the numbers bear little or no resemblance +to reality. +.SH SOURCE +.B /sys/src/libdisk/disk.c +.SH SEE ALSO +.IR floppy (3), +.IR sd (3) diff --git a/static/plan9-4e/man2/draw.2 b/static/plan9-4e/man2/draw.2 new file mode 100644 index 00000000..15d600fc --- /dev/null +++ b/static/plan9-4e/man2/draw.2 @@ -0,0 +1,779 @@ +.TH DRAW 2 +.SH NAME +Image, draw, gendraw, drawreplxy, drawrepl, +replclipr, line, poly, fillpoly, bezier, bezspline, fillbezier, fillbezspline, ellipse, +fillellipse, arc, fillarc, icossin, icossin2, border, string, stringn, +runestring, runestringn, stringbg, stringnbg, runestringbg, +runestringnbg, _string, ARROW, drawsetdebug \- graphics functions +.SH SYNOPSIS +.nf +.B #include +.br +.B #include +.br +.B #include +.br +.PP +.ft L +typedef +struct Image +{ + Display *display; /* display holding data */ + int id; /* id of system-held Image */ + Rectangle r; /* rectangle in data area, local coords */ + Rectangle clipr; /* clipping region */ + ulong chan; /* pixel channel format descriptor */ + int depth; /* number of bits per pixel */ + int repl; /* flag: data replicates to tile clipr */ + Screen *screen; /* 0 if not a window */ + Image *next; /* next in list of windows */ +} Image; +.ft +.PP +.ta \w'\fLPoint 'u +.PP +.B +void draw(Image *dst, Rectangle r, +.br +.B + Image *src, Image *mask, Point p) +.PP +.B +void gendraw(Image *dst, Rectangle r, +.br +.B + Image *src, Point sp, Image *mask, Point mp) +.PP +.B +int drawreplxy(int min, int max, int x) +.PP +.B +Point drawrepl(Rectangle r, Point p) +.PP +.B +void replclipr(Image *i, int repl, Rectangle clipr) +.PP +.B +void line(Image *dst, Point p0, Point p1, int end0, int end1, +.br +.B + int radius, Image *src, Point sp) +.PP +.B +void poly(Image *dst, Point *p, int np, int end0, int end1, +.br +.B + int radius, Image *src, Point sp) +.PP +.B +void fillpoly(Image *dst, Point *p, int np, int wind, +.br +.B + Image *src, Point sp) +.PP +.B +int bezier(Image *dst, Point p0, Point p1, Point p2, Point p3, +.br +.B + int end0, int end1, int radius, Image *src, Point sp) +.PP +.B +int bezspline(Image *dst, Point *pt, int npt, int end0, int end1, +.br +.B + int radius, Image *src, Point sp) +.PP +.B +int fillbezier(Image *dst, Point p0, Point p1, Point p2, Point p3, +.br +.B + int w, Image *src, Point sp) +.PP +.B +int fillbezspline(Image *dst, Point *pt, int npt, int w, +.br +.B + Image *src, Point sp) +.PP +.B +void ellipse(Image *dst, Point c, int a, int b, int thick, +.br +.B + Image *src, Point sp) +.PP +.B +void fillellipse(Image *dst, Point c, int a, int b, +.br +.B + Image *src, Point sp) +.PP +.B +void arc(Image *dst, Point c, int a, int b, int thick, +.br +.B + Image *src, Point sp, int alpha, int phi) +.PP +.B +void fillarc(Image *dst, Point c, int a, int b, Image *src, +.br +.B + Point sp, int alpha, int phi) +.PP +.B +int icossin(int deg, int *cosp, int *sinp) +.PP +.B +int icossin2(int x, int y, int *cosp, int *sinp) +.PP +.B +void border(Image *dst, Rectangle r, int i, Image *color, Point sp) +.br +.PP +.B +Point string(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, char *s) +.PP +.B +Point stringn(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, char *s, int len) +.PP +.B +Point runestring(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, Rune *r) +.PP +.B +Point runestringn(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, Rune *r, int len) +.PP +.B +Point stringbg(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, char *s, Image *bg, Point bgp) +.PP +.B +Point stringnbg(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, char *s, int len, Image *bg, Point bgp) +.PP +.B +Point runestringbg(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, Rune *r, Image *bg, Point bgp) +.PP +.B +Point runestringnbg(Image *dst, Point p, Image *src, Point sp, +.br +.B + Font *f, Rune *r, int len, Image *bg, Point bgp) +.PP +.B +Point _string(Image *dst, Point p, Image *src, +.br +.B + Point sp, Font *f, char *s, Rune *r, int len, +.br +.B + Rectangle clipr, Image *bg, Point bgp) +.PP +.B +void drawsetdebug(int on) +.PP +.ft L +enum +{ + /* line ends */ + Endsquare = 0, + Enddisc = 1, + Endarrow = 2, + Endmask = 0x1F +}; + +#define ARROW(a, b, c) (Endarrow|((a)<<5)|((b)<<14)|((c)<<23)) +.ft P +.fi +.SH DESCRIPTION +The +.B Image +type defines rectangular pictures and the methods to draw upon them; +it is also the building block for higher level objects such as +windows and fonts. +In particular, a window is represented as an +.BR Image ; +no special operators are needed to draw on a window. +.PP +.TP 10 +.B r +The coordinates of the rectangle in the plane for which the +.B Image +has defined pixel values. +It should not be modified after the image is created. +.TP +.B clipr +The clipping rectangle: operations that read or write +the image will not access pixels outside +.BR clipr . +Frequently, +.B clipr +is the same as +.BR r , +but it may differ; see in particular the discussion of +.BR repl . +The clipping region may be modified dynamically using +.I replclipr +.RI ( q.v. ). +.TP +.B chan +The pixel channel format descriptor, as described in +.IR image (6). +The value should not be modified after the image is created. +.TP +.B depth +The +number of bits per pixel in the picture; +it is identically +.B chantodepth(chan) +(see +.IR graphics (2)) +and is provided as a convenience. +The value should not be modified after the image is created. +.TP +.B repl +A boolean value specifying whether the image is tiled to cover +the plane when used as a source for a drawing operation. +If +.B repl +is zero, operations are restricted to the intersection of +.B r +and +.BR clipr . +If +.B repl +is set, +.B r +defines the tile to be replicated and +.B clipr +defines the portion of the plane covered by the tiling, in other words, +.B r +is replicated to cover +.BR clipr ; +in such cases +.B r +and +.B clipr +are independent. +.IP +For example, a replicated image with +.B r +set to ((0,\ 0),\ (1,\ 1)) and +.B clipr +set to ((0,\ 0),\ (100,\ 100)), +with the single pixel of +.B r +set to blue, +behaves identically to an image with +.B r +and +.B clipr +both set to ((0,\ 0),\ (100,\ 100)) and all pixels set to blue. +However, +the first image requires far less memory. +The replication flag may be modified dynamically using +.I replclipr +.RI ( q.v. ). +.TP +.BI draw( dst\fP,\fP\ r\fP,\fP\ src\fP,\fP\ mask\fP,\fP\ p ) +.I Draw +is the standard drawing function. +Only those pixels within the intersection of +.IB dst ->r +and +.IB dst ->clipr +will be affected; +.I draw +ignores +.IB dst ->repl\fR. +The operation proceeds as follows +(this is a description of the behavior, not the implementation): +.RS +.IP 1. +If +.B repl +is set in +.I src +or +.IR mask , +replicate their contents to fill +their clip rectangles. +.IP 2. +Translate +.I src +and +.I mask +so +.I p +is aligned with +.IB r .min\fR. +.IP 3. +Set +.I r +to the intersection of +.I r +and +.IB dst ->r\fR. +.IP 4. +Intersect +.I r +with +.IB src ->clipr\fR. +If +.IB src ->repl +is false, also intersect +.I r +with +.IB src ->r\fR. +.IP 5. +Intersect +.I r +with +.IB mask ->clipr\fR. +If +.IB mask ->repl +is false, also intersect +.I r +with +.IB mask ->r\fR. +.IP 6. +For each location in +.IR r , +combine the +.I dst +pixel with the +.I src +pixel using the alpha value +corresponding to the +.I mask +pixel. +If the +.I mask +has an explicit alpha channel, the alpha value +corresponding to the +.I mask +pixel is simply that pixel's alpha channel. +Otherwise, the alpha value is the NTSC greyscale equivalent +of the color value, with white meaning opaque and black transparent. +In terms of the Porter-Duff compositing algebra, +.I draw +replaces the +.I dst +pixels with +.RI ( src +in +.IR mask ) +over +.IR dst . +.RE +.IP +The various +pixel channel formats +involved need not be identical. +If the channels involved are smaller than 8-bits, they will +be promoted before the calculation by replicating the extant bits; +after the calculation, they will be truncated to their proper sizes. +.TP +\f5gendraw(\f2dst\fP, \f2r\fP, \f2src\fP, \f2p0\fP, \f2mask\fP, \f2p1\f5)\fP +Similar to +.I draw +except that +.I gendraw +aligns the source and mask differently: +.I src +is aligned so +.I p0 +corresponds to +.IB r .min +and +.I mask +is aligned so +.I p1 +corresponds to +.IB r .min . +For most purposes with simple masks and source images, +.B draw +is sufficient, but +.B gendraw +is the general operator and the one all other drawing primitives are built upon. +.TP +.BI drawreplxy( min , max , x\f5) +Clips +.I x +to be in the half-open interval [\fImin\fP, \fImax\fP) by adding +or subtracting a multiple of \fImax-min\fP. +.TP +.BI drawrepl( r , p ) +Clips the point \fIp\fP to be within the rectangle \fIr\fP +by translating the point horizontally by an integer multiple of rectangle width +and vertically by the height. +.TP +.BI replclipr( i , repl , clipr\f5) +Because the image data is stored on the server, local modifications to the +.B Image +data structure itself will have no effect. +.I Repclipr +modifies the local +.B Image +data structure's +.B repl +and +.B clipr +fields, and notifies the server of their modification. +.TP +\f5line(\f2dst\fP, \f2p0\fP, \f2p1\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +Line +draws in +.I dst +a line of width +.RI 1+2* thick +pixels joining points +.I p0 +and +.IR p1 . +The line is drawn using pixels from the +.I src +image aligned so +.I sp +in the source corresponds to +.I p0 +in the destination. +The line touches both +.I p0 +and +.IR p1 , +and +.I end0 +and +.I end1 +specify how the ends of the line are drawn. +.B Endsquare +terminates the line perpendicularly to the direction of the line; a thick line with +.B Endsquare +on both ends will be a rectangle. +.B Enddisc +terminates the line by drawing a disc of diameter +.RI 1+2* thick +centered on the end point. +.B Endarrow +terminates the line with an arrowhead whose tip touches the endpoint. +.IP +The macro +.B ARROW +permits explicit control of the shape of the arrow. +If all three parameters are zero, it produces the default arrowhead, +otherwise, +.I a +sets the distance along line from end of the regular line to tip, +.I b +sets the distance along line from the barb to the tip, +and +.I c +sets the distance perpendicular to the line from edge of line to the tip of the barb, +all in pixels. +.IP +.I Line +and the other geometrical operators are equivalent to calls to +.I gendraw +using a mask produced by the geometric procedure. +.TP +\f5poly(\f2dst\fP, \f2p\fP, \f2np\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.I Poly +draws a general polygon; it +is conceptually equivalent to a series of calls to +.I line +joining adjacent points in the +array of +.B Points +.IR p , +which has +.I np +elements. +The ends of the polygon are specified as in +.IR line ; +interior lines are terminated with +.B Enddisc +to make smooth joins. +The source is aligned so +.I sp +corresponds to +.IB p [0]\f1. +.TP +\f5fillpoly(\f2dst\fP, \f2p\fP, \f2np\fP, \f2wind\fP, \f2src\fP, \f2sp\fP) +.I Fillpoly +is like +.I poly +but fills in the resulting polygon rather than outlining it. +The source is aligned so +.I sp +corresponds to +.IB p [0]\f1. +The winding rule parameter +.I wind +resolves ambiguities about what to fill if the polygon is self-intersecting. +If +.I wind +is +.BR ~0 , +a pixel is inside the polygon if the polygon's winding number about the point +is non-zero. +If +.I wind +is +.BR 1 , +a pixel is inside if the winding number is odd. +Complementary values (0 or ~1) cause outside pixels to be filled. +The meaning of other values is undefined. +The polygon is closed with a line if necessary. +.TP +\f5bezier(\f2dst\fP, \f2a\fP, \f2b\fP, \f2c\fP, \f2d\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.I Bezier +draws the +cubic Bezier curve defined by +.B Points +.IR a , +.IR b , +.IR c , +and +.IR d . +The end styles are determined by +.I end0 +and +.IR end1 ; +the thickness of the curve is +.RI 1+2* thick . +The source is aligned so +.I sp +in +.I src +corresponds to +.I a +in +.IR dst . +.TP +\f5bezspline(\f2dst\fP, \f2p\fP, \f2end0\fP, \f2end1\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.I Bezspline +takes the same arguments as +.I poly +but draws a quadratic B-spline (despite its name) rather than a polygon. +If the first and last points in +.I p +are equal, the spline has periodic end conditions. +.TP +\f5fillbezier(\f2dst\fP, \f2a\fP, \f2b\fP, \f2c\fP, \f2d\fP, \f2wind\fP, \f2src\fP, \f2sp\fP) +.I Fillbezier +is to +.I bezier +as +.I fillpoly +is to +.IR poly . +.TP +\f5fillbezspline(\f2dst\fP, \f2p\fP, \f2wind\fP, \f2src\fP, \f2sp\fP) +.I Fillbezspline +is like +.I fillpoly +but fills the quadratic B-spline rather than the polygon outlined by +.IR p . +The spline is closed with a line if necessary. +.TP +\f5ellipse(\f2dst\fP, \f2c\fP, \f2a\fP, \f2b\fP, \f2thick\fP, \f2src\fP, \f2sp\fP) +.I Ellipse +draws in +.I dst +an ellipse centered on +.I c +with horizontal and vertical semiaxes +.I a +and +.IR b . +The source is aligned so +.I sp +in +.I src +corresponds to +.I c +in +.IR dst . +The ellipse is drawn with thickness +.RI 1+2* thick . +.TP +\f5fillellipse(\f2dst\fP, \f2c\fP, \f2a\fP, \f2b\fP, \f2src\fP, \f2sp\fP) +.I Fillellipse +is like +.I ellipse +but fills the ellipse rather than outlining it. +.TP +\f5arc(\f2dst\fP, \f2c\fP, \f2a\fP, \f2b\fP, \f2thick\fP, \f2src\fP, \f2sp\fP, \f2alpha\fP, \f2phi\fP) +.I Arc +is like +.IR ellipse , +but draws only that portion of the ellipse starting at angle +.I alpha +and extending through an angle of +.IR phi . +The angles are measured in degrees counterclockwise from the positive +.I x +axis. +.TP +\f5fillarc(\f2dst\fP, \f2c\fP, \f2a\fP, \f2b\fP, \f2src\fP, \f2sp\fP, \f2alpha\fP, \f2phi\fP) +.I Fillarc +is like +.IR arc , +but fills the sector with the source color. +.TP +\f5icossin(\f2deg\fP, \f2cosp\fP, \f2sinp\fP) +.I Icossin +stores in +.BI * cosp +and +.BI * sinp +scaled integers representing the cosine and sine of the angle +.IR deg , +measured in integer degrees. +The values are scaled so cos(0) is 1024. +.TP +\f5icossin2(\f2x\fP, \f2y\fP, \f2cosp\fP, \f2sinp\fP) +.I Icossin2 +is analogous to +.IR icossin, +with the angle represented not in degrees but implicitly by the point +.RI ( x , y ). +It is to +.I icossin +what +.B atan2 +is to +.B atan +(see +.IR sin (2)). +.TP +.BI border( dst\fP,\fP\ r\fP,\fP\ i\fP,\fP\ color\fP,\fP\ sp\fP) +.I Border +draws an outline of rectangle +.I r +in the specified +.IR color . +The outline has width +.IR i ; +if positive, the border goes inside the rectangle; negative, outside. +The source is aligned so +.I sp +corresponds to +.IB r .min . +.TP +.BI string( dst\fP,\fP\ p\fP,\fP\ src\fP,\fP\ sp\fP,\fP\ font\fP,\fP\ s ) +.I String +draws in +.I dst +characters specified by the string +.I s +and +.IR font ; +it is equivalent to a series of calls to +.I gendraw +using source +.I src +and masks determined by the character shapes. +The text is positioned with the left of the first character at +.IB p .x +and the top of the line of text at +.IB p .y\f1. +The source is positioned so +.I sp +in +.I src +corresponds to +.I p +in +.IR dst . +.I String +returns a +.B Point +that is the position of the next character that would be drawn if the string were longer. +.IP +For characters with undefined +or zero-width images in the font, the character at font position 0 (NUL) is drawn. +.IP +The other string routines are variants of this basic form, and +have names that encode their variant behavior. +Routines whose names contain +.B rune +accept a string of Runes rather than +.SM UTF\c +-encoded bytes. +Routines ending in +.B n +accept an argument, +.IR n , +that defines the number of characters to draw rather than accepting a NUL-terminated +string. +Routines containing +.B bg +draw the background behind the characters in the specified color +.RI ( bg ) +and +alignment +.RI ( bgp ); +normally the text is drawn leaving the background intact. +.IP +The routine +.I _string +captures all this behavior into a single operator. Whether it draws a +.SM UTF +string +or Rune string depends on whether +.I s +or +.I r +is null (the string length is always determined by +.IR len ). +If +.I bg +is non-null, it is used as a background color. +The +.I clipr +argument allows further management of clipping when drawing the string; +it is intersected with the usual clipping rectangles to further limit the extent of the text. +.TP +.BI drawsetdebug( on ) +Turns on or off debugging output (usually +to a serial line) according to whether +.I on +is non-zero. +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR stringsize (2), +.IR color (6), +.IR utf (6), +.IR addpt (2) +.PP +T. Porter, T. Duff. +``Compositing Digital Images'', +.I "Computer Graphics +(Proc. SIGGRAPH), 18:3, pp. 253-259, 1984. +.SH DIAGNOSTICS +These routines call the graphics error function on fatal errors. +.SH BUGS +Anti-aliased characters can be drawn by defining a font +with multiple bits per pixel, but there are +no anti-aliasing geometric primitives. diff --git a/static/plan9-4e/man2/dup.2 b/static/plan9-4e/man2/dup.2 new file mode 100644 index 00000000..cd341410 --- /dev/null +++ b/static/plan9-4e/man2/dup.2 @@ -0,0 +1,42 @@ +.TH DUP 2 +.SH NAME +dup \- duplicate an open file descriptor +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int dup(int oldfd, int newfd) +.SH DESCRIPTION +Given a file descriptor, +.IR oldfd , +referring to an open file, +.I dup +returns a new file descriptor referring to the same file. +.PP +If +.I newfd +is \-1 the system chooses the lowest available file descriptor. +Otherwise, +.I dup +will use +.I newfd +for the new file descriptor +(closing any old file associated with +.IR newfd ). +File descriptors are allocated dynamically, +so to prevent unwarranted growth of the file descriptor table, +.I dup +requires that +.I newfd +be no greater than 20 more than the highest file descriptor ever used by +the program. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2), +.IR dup (3) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/elgamal.2 b/static/plan9-4e/man2/elgamal.2 new file mode 100644 index 00000000..5fcd8cf7 --- /dev/null +++ b/static/plan9-4e/man2/elgamal.2 @@ -0,0 +1,92 @@ +.TH ELGAMAL 2 +.SH NAME +eggen, egencrypt, egdecrypt, egsign, egverify, egalloc, egfree, egpuballoc, egpubfree, egprivalloc, egprivfree, egsigalloc, egsigfree, egprivtopub - elgamal encryption +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +EGpriv* eggen(int nlen, int nrep) +.PP +.B +mpint* egencrypt(EGpub *k, mpint *in, mpint *out) +.PP +.B +mpint* egdecrypt(EGpriv *k, mpint *in, mpint *out) +.PP +.B +EGsig* egsign(EGpriv *k, mpint *m) +.PP +.B +int egverify(EGpub *k, EGsig *sig, mpint *m) +.PP +.B +EGpub* egpuballoc(void) +.PP +.B +void egpubfree(EGpub*) +.PP +.B +EGpriv* egprivalloc(void) +.PP +.B +void egprivfree(EGpriv*) +.PP +.B +EGsig* egsigalloc(void) +.PP +.B +void egsigfree(EGsig*) +.PP +.B +EGpub* egprivtopub(EGpriv*) +.SH DESCRIPTION +.PP +The corresponding keys for the ElGamal algorithm are: +.EX + struct EGpub + { + mpint *p; // modulus + mpint *alpha; // generator + mpint *key; // (encryption key) alpha**secret mod p + }; +.EE +and +.EX + struct EGpriv + { + EGpub pub; + mpint *secret; // (decryption key) + }; +.EE +.I Egsign +signs message +.I m +using a private key +.I k +yielding a +.EX + struct EGsig + { + mpint *r, *s; + }; +.EE +.I Egverify +returns 0 if the signature is valid and \-1 if not. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2), +.IR aes (2), +.IR blowfish (2), +.IR des (2), +.IR rc4 (2), +.IR rsa (2), +.IR sechash (2), +.IR prime (2), +.IR rand (2) diff --git a/static/plan9-4e/man2/encode.2 b/static/plan9-4e/man2/encode.2 new file mode 100644 index 00000000..10dcdf54 --- /dev/null +++ b/static/plan9-4e/man2/encode.2 @@ -0,0 +1,82 @@ +.TH ENCODE 2 +.SH NAME +dec64, enc64, dec32, enc32, dec16, enc16, encodefmt \- encoding byte arrays as strings +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int dec64(uchar *out, int lim, char *in, int n) +.PP +.B +int enc64(char *out, int lim, uchar *in, int n) +.PP +.B +int dec32(uchar *out, int lim, char *in, int n) +.PP +.B +int enc32(char *out, int lim, uchar *in, int n) +.PP +.B +int dec16(uchar *out, int lim, char *in, int n) +.PP +.B +int enc16(char *out, int lim, uchar *in, int n) +.PP +.B +int encodefmt(Fmt*) +.SH DESCRIPTION +.PP +.IR Enc16 , +.I enc32 +and +.I enc64 +create null terminated strings. They return the size of the +encoded string (without the null) or -1 if the encoding fails. +The encoding fails if +.IR lim , +the length of the output buffer, is too small. +.PP +.IR Dec16 , +.I dec32 +and +.I dec64 +return the number of bytes decoded or -1 if the decoding fails. +The decoding fails if the output buffer is not large enough or, +for base 32, if the input buffer length is not a multiple +of 8. +.PP +.I Encodefmt +can be used with +.IR fmtinstall (2) +and +.IR print (2) +to print encoded representations of byte arrays. +The verbs are +.TP +.B H +base 16 (i.e. hexadecimal) +.TP +.B < +base 32 +.TP +.B [ +base 64 (same as MIME) +.PD +.PP +The length of the array is specified as +.IR f2 . +For example, to display a 15 byte array as hex: +.EX + + char x[15]; + + fmtinstall('H', encodefmt); + print("%.*H\\n", sizeof x, x); + +.EE +.SH SOURCE +.B /sys/src/libc/port/u32.c +.br +.B /sys/src/libc/port/u64.c diff --git a/static/plan9-4e/man2/encrypt.2 b/static/plan9-4e/man2/encrypt.2 new file mode 100644 index 00000000..3f7b41da --- /dev/null +++ b/static/plan9-4e/man2/encrypt.2 @@ -0,0 +1,76 @@ +.TH ENCRYPT 2 +.SH NAME +encrypt, decrypt, netcrypt \- DES encryption +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int encrypt(void *key, void *data, int len) +.PP +.B +int decrypt(void *key, void *data, int len) +.PP +.B +int netcrypt(void *key, void *data) +.SH DESCRIPTION +.I Encrypt +and +.I decrypt +perform DES encryption and decryption. +.I Key +is an array of +.B DESKEYLEN +(defined as 7 in +.BR ) +bytes containing the encryption key. +.I Data +is an array of +.I len +bytes; +it must be at least 8 bytes long. +The bytes are encrypted or decrypted in place. +.PP +The DES algorithm encrypts an individual 8-byte block of data. +.I Encrypt +uses the following method to encrypt data longer than 8 bytes. +The first 8 bytes are encrypted as usual. +The last byte of the encrypted result +is prefixed to the next 7 unencrypted bytes to make the next 8 +bytes to encrypt. +This is repeated until fewer than 7 bytes remain unencrypted. +Any remaining unencrypted bytes are encrypted with enough of the preceding +encrypted bytes to make a full 8-byte block. +.I Decrypt +uses the inverse algorithm. +.PP +.I Netcrypt +performs the same encryption as a SecureNet Key. +.I Data +points to an +.SM ASCII +string of decimal digits with numeric value between 0 and 10000. +These digits are copied into an 8-byte buffer with trailing binary zero fill +and encrypted as one DES block. +The first four bytes are each formatted as two digit +.SM ASCII +hexadecimal numbers, +and the string is copied into +.IR data . +.SH SOURCE +.B /sys/src/libc/port +.SH DIAGNOSTICS +These routines return 1 if the data was encrypted, +and 0 if the encryption fails. +.I Encrypt +and +.I decrypt +fail if the data passed is less than 8 bytes long. +.I Netcrypt +can fail if it is passed invalid data. +.SH SEE ALSO +.IR securenet (8) +.SH BUGS +The implementation is broken in a way that makes +it unsuitable for anything but authentication. diff --git a/static/plan9-4e/man2/errstr.2 b/static/plan9-4e/man2/errstr.2 new file mode 100644 index 00000000..3aa4d74a --- /dev/null +++ b/static/plan9-4e/man2/errstr.2 @@ -0,0 +1,75 @@ +.TH ERRSTR 2 +.SH NAME +errstr, rerrstr, werrstr \- description of last system call error +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int errstr(char *err, uint nerr) +.PP +.B +void rerrstr(char *err, uint nerr) +.PP +.B +void werrstr(char *fmt, ...) +.SH DESCRIPTION +When a system call fails it returns \-1 and +records a string describing the error in a per-process buffer. +.I Errstr +swaps the contents of that buffer with the contents of the array +.IR err . +.I Errstr +will write at most +.I nerr +bytes into +.IR err ; +if the per-process error string does not fit, +it is silently truncated at a UTF character boundary. +The returned string is NUL-terminated. +Usually +.I errstr +will be called with an empty string, +but the exchange property provides a mechanism for +libraries to set the return value for the next call to +.IR errstr . +.PP +If no system call has generated an error since the last call to +.I errstr +with an empty string, +the result is an empty string. +.PP +The verb +.B r +in +.IR print (2) +calls +.I errstr +and outputs the error string. +.PP +.I Rerrstr +reads the error string but does not modify the per-process buffer, so +a subsequent +.I errstr +will recover the same string. +.PP +.I Werrstr +takes a +.I print +style format as its argument and uses it to format +a string to pass to +.IR errstr . +The string returned from +.I errstr +is discarded. +.SH SOURCE +.B /sys/src/libc/9syscall +.br +.B /sys/src/libc/9sys/werrstr.c +.SH DIAGNOSTICS +.I Errstr +always returns 0. +.SH SEE ALSO +.IR intro (2), +.IR perror (2) diff --git a/static/plan9-4e/man2/event.2 b/static/plan9-4e/man2/event.2 new file mode 100644 index 00000000..11324a9a --- /dev/null +++ b/static/plan9-4e/man2/event.2 @@ -0,0 +1,384 @@ +.TH EVENT 2 +.SH NAME +event, einit, estart, estartfn, etimer, eread, emouse, ekbd, ecanread, ecanmouse, ecankbd, ereadmouse, eatomouse, eresized, egetrect, edrawgetrect, emenuhit, emoveto, esetcursor, Event, Mouse, Menu \- graphics events +.SH SYNOPSIS +.nf +.PP +.B +#include +.B +#include +.B +#include +.B +#include +.B +#include +.ta \w'\fLRectangle 'u +.PP +.B +void einit(ulong keys) +.PP +.B +ulong event(Event *e) +.PP +.B +Mouse emouse(void) +.PP +.B +int ekbd(void) +.PP +.B +int ecanmouse(void) +.PP +.B +int ecankbd(void) +.PP +.B +int ereadmouse(Mouse *m) +.PP +.B +int eatomouse(Mouse *m, char *buf, int n) +.PP +.B +ulong estart(ulong key, int fd, int n) +.PP +.B +ulong estartfn(int id, ulong key, int fd, int n, +.B + int (*fn)(Event*, uchar*, int)) +.PP +.B +ulong etimer(ulong key, int n) +.PP +.B +ulong eread(ulong keys, Event *e) +.PP +.B +int ecanread(ulong keys) +.PP +.B +void eresized(int new) +.PP +.B +Rectangle egetrect(int but, Mouse *m) +.PP +.B +void edrawgetrect(Rectangle r, int up) +.PP +.B +int emenuhit(int but, Mouse *m, Menu *menu) +.PP +.PP +.B +int emoveto(Point p) +.PP +.PP +.B +int esetcursor(Cursor *c) +.PP +.B +extern Mouse *mouse +.PP +.B +enum{ +.B + Emouse = 1, +.B + Ekeyboard = 2, +.B +}; +.PP +.SH DESCRIPTION +These routines provide an interface to multiple sources of input for unthreaded +programs. +Threaded programs (see +.IR thread (2)) +should instead use the threaded mouse and keyboard interface described +in +.IR mouse (2) +and +.IR keyboard (2). +.PP +.I Einit +must be called first. +If the argument to +.I einit +has the +.B Emouse +and +.B Ekeyboard +bits set, +the mouse and keyboard events will be enabled; +in this case, +.IR initdraw +(see +.IR graphics (2)) +must have already been called. +The user must provide a function called +.IR eresized +to be called whenever the window in which the process +is running has been resized; the argument +.I new +is a flag specifying whether the program must call +.I getwindow +(see +.IR graphics (2)) +to re-establish a connection to its window. +After resizing (and perhaps calling +.IR getwindow ), +the global variable +.B screen +will be updated to point to the new window's +.B Image +structure. +.PP +As characters are typed on the keyboard, they are read by the +event mechanism and put in a queue. +.I Ekbd +returns the next rune from the queue, blocking until the +queue is non-empty. +The characters are read in raw mode +(see +.IR cons (3)), +so they are available as soon as a complete rune is typed. +.PP +When the mouse moves or a mouse button is pressed or released, +a new mouse event is queued by the event mechanism. +.I Emouse +returns the next mouse event from the queue, blocking until the +queue is non-empty. +.I Emouse +returns a +.B Mouse +structure: +.IP +.EX +.ta 6n +\w'Point 'u +struct Mouse +{ + int buttons; + Point xy; + ulong msec; +}; +.EE +.PP +.B Buttons&1 +is set when the left mouse button is pressed, +.B buttons&2 +when the middle button is pressed, +and +.B buttons&4 +when the right button is pressed. +The current mouse position is always returned in +.BR xy . +.B Msec +is a time stamp in units of milliseconds. +.PP +.I Ecankbd +and +.I ecanmouse +return non-zero when there are keyboard or mouse events available +to be read. +.PP +.I Ereadmouse +reads the next mouse event from the file descriptor connected to the mouse, +converts the textual data into a +.B Mouse +structure by calling +.I eatomouse +with the buffer and count from the read call, +and returns the number of bytes read, or \-1 for an error. +.PP +.I Estart +can be used to register additional file descriptors to scan for input. +It takes as arguments the file descriptor to register, +the maximum length of an event message on that descriptor, +and a key to be used in accessing the event. +The key must be a power of 2 and must not conflict with any previous keys. +If a zero key is given, a key will be allocated and returned. +.I Estartfn +is similar to +.IR estart , +but processes the data received by calling +.I fn +before returning the event to the user. +The function +.I fn +is called with the +.B id +of the event; it should return +.B id +if the event is to be passed to the user, +.B 0 +if it is to be ignored. +The variable +.B Event.v +can be used by +.I fn +to attach an arbitrary data item to the returned +.B Event +structure. +.B +Ekeyboard +and +.B Emouse +are the keyboard and mouse event keys. +.PP +.I Etimer +starts a repeating timer with a period of +.I n +milliseconds; it returns the timer event key, or zero if it fails. +Only one timer can be started. +Extra timer events are not queued and the timer channel has no associated data. +.PP +.I Eread +waits for the next event specified by the mask +.I keys +of event keys submitted to +.IR estart . +It fills in the appropriate field of the argument +.B Event +structure, which looks like: +.IP +.EX +struct Event +{ + int kbdc; + Mouse mouse; + int n; + void *v; + uchar data[EMAXMSG]; +}; +.EE +.PP +.B Data +is an array which is large enough to hold a 9P message. +.I Eread +returns the key for the event which was chosen. +For example, if a mouse event was read, +.B Emouse +will be returned. +.PP +.I Event +waits for the next event of any kind. +The return is the same as for +.IR eread . +.PP +As described in +.IR graphics (2), +the graphics functions are buffered. +.IR Event , +.IR eread , +.IR emouse , +and +.I ekbd +all cause a buffer flush unless there is an event of the +appropriate type already queued. +.PP +.I Ecanread +checks whether a call to +.B eread(keys) +would block, returning 0 if it would, 1 if it would not. +.PP +.I Getrect +prompts the user to sweep a rectangle. +It should be called with +.I m +holding the mouse event that triggered the +.I egetrect +(or, if none, a +.B Mouse +with +.B buttons +set to 7). +It changes to the sweep cursor, +waits for the buttons all to be released, +and then waits for button number +.I but +to be pressed, marking the initial corner. +If another button is pressed instead, +.I egetrect +returns a rectangle +with zero for both corners, after +waiting for all the buttons to be released. +Otherwise, +.I egetrect +continually draws the swept rectangle +until the button is released again, and returns the swept rectangle. +The mouse structure pointed to by +.I m +will contain the final mouse event. +.PP +.I Egetrect +uses successive calls to +.I edrawgetrect +to maintain the red rectangle showing the sweep-in-progress. +The rectangle to be drawn is specified by +.I rc +and the +.I up +parameter says whether to draw (1) or erase (0) the rectangle. +.PP +.I Emenuhit +displays a menu and returns a selected menu item number. +It should be called with +.I m +holding the mouse event that triggered the +.IR emenuhit ; +it will call +.I emouse +to update it. +A +.B Menu +is a structure: +.IP +.EX +struct Menu +{ + char **item; + char *(*gen)(int); + int lasthit; +}; +.EE +.PP +If +.B item +is nonzero, it should be a null-terminated array of the character strings +to be displayed as menu items. +Otherwise, +.B gen +should be a function that, given an item number, returns the character +string for that item, or zero if the number is past the end of the list. +Items are numbered starting at zero. +.I Menuhit +waits until +.I but +is released, and then returns the number of the selection, +or \-1 for no selection. +The +.I m +argument is filled in with the final mouse event. +.PP +.I Emoveto +moves the mouse cursor to the position +.B p +on the screen. +.PP +.I Esetcursor +changes the cursor image to that described by the +.B Cursor +.I c +(see +.IR mouse (2)). +If +.B c +is nil, it restores the image to the default arrow. +.SH SOURCE +.B /sys/src/libdraw +.SH "SEE ALSO" +.IR rio (1), +.IR graphics (2), +.IR plumb (2), +.IR cons (3), +.IR draw (3) diff --git a/static/plan9-4e/man2/exec.2 b/static/plan9-4e/man2/exec.2 new file mode 100644 index 00000000..f190e102 --- /dev/null +++ b/static/plan9-4e/man2/exec.2 @@ -0,0 +1,159 @@ +.TH EXEC 2 +.SH NAME +exec, execl, _clock, _privates, _nprivates \- execute a file +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +int exec(char *name, char* argv[]) +.PP +.B +int execl(char *name, ...) +.PP +.B +long *_clock; +.PP +.B +void **_privates; +.PP +.B +int _nprivates; +.fi +.SH DESCRIPTION +.I Exec +and +.I execl +overlay the calling process with the named file, then +transfer to the entry point of the image of the file. +.PP +.I Name +points to the name of the file +to be executed; it must not be a directory, and the permissions +must allow the current user to execute it +(see +.IR stat (2)). +It should also be a valid binary image, as defined in the +.IR a.out (6) +for the current machine architecture, +or a shell script +(see +.IR rc (1)). +The first line of a +shell script must begin with +.L #! +followed by the name of the program to interpret the file +and any initial arguments to that program, for example +.IP +.EX +#!/bin/rc +ls | mc +.EE +.PP +When a C program is executed, +it is called as follows: +.IP +.EX +void main(int argc, char *argv[]) +.EE +.PP +.I Argv +is a copy of the array of argument pointers passed to +.IR exec ; +that array must end in a null pointer, and +.I argc +is the number of elements before the null pointer. +By convention, the first argument should be the name of +the program to be executed. +.I Execl +is like +.I exec +except that +.I argv +will be an array of the parameters that follow +.I name +in the call. The last argument to +.I execl +must be a null pointer. +.PP +For a file beginning +.BR #! , +the arguments passed to the program +.RB ( /bin/rc +in the example above) will be the name of the file being +executed, any arguments on the +.B #! +line, the name of the file again, +and finally the second and subsequent arguments given to the original +.I exec +call. +The result honors the two conventions of a program accepting as argument +a file to be interpreted and +.B argv[0] +naming the file being +executed. +.PP +Most attributes of the calling process are carried +into the result; in particular, +files remain open across +.I exec +(except those opened with +.B OCEXEC +OR'd +into the open mode; see +.IR open (2)); +and the working directory and environment +(see +.IR env (3)) +remain the same. +However, a newly +.I exec'ed +process has no notification handler +(see +.IR notify (2)). +.PP +When the new program begins, the global cell +.B _clock +is set to the address of a cell that keeps approximate time +expended by the process at user level. +The time is measured in milliseconds but is updated at +a system-dependent lower rate. +This clock is typically used by the profiler but is available +to all programs. +.PP +The global cell +.B _privates +points to an array of +.B _nprivates +elements of per-process private data. +This storage is private for each process, even if the processes share data segments. +.PP +The above conventions apply to C programs; the raw system +interface to the new image is as follows: +the word pointed to by the stack pointer is +.BR argc ; +the words beyond that are the zeroth and subsequent elements +of +.BR argv , +followed by a terminating null pointer; and +the return register (e.g. +.B R0 +on the 68020) contains the address of the clock. +.SH SOURCE +.B /sys/src/libc/9syscall +.br +.B /sys/src/libc/port/execl.c +.SH SEE ALSO +.IR prof (1), +.IR intro (2), +.IR stat (2) +.SH DIAGNOSTICS +If these functions fail, they return and set +.IR errstr . +There can be no return from a successful +.I exec +or +.IR execl ; +the calling image is lost. diff --git a/static/plan9-4e/man2/exits.2 b/static/plan9-4e/man2/exits.2 new file mode 100644 index 00000000..78e3f6d2 --- /dev/null +++ b/static/plan9-4e/man2/exits.2 @@ -0,0 +1,81 @@ +.TH EXITS 2 +.SH NAME +exits, _exits, atexit, atexitdont, terminate \- terminate process, process cleanup +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +void _exits(char *msg) +.B +void exits(char *msg) +.PP +.B +int atexit(void(*)(void)) +.PP +.B +void atexitdont(void(*)(void)) +.fi +.SH DESCRIPTION +.I Exits +is the conventional way to terminate a process. +.I _Exits +is the underlying system call. +They +can never return. +.PP +.I Msg +conventionally includes a brief (maximum length +.BR ERRLEN ) +explanation of the reason for +exiting, or a null pointer or empty string to indicate normal termination. +The string is passed to the parent process, prefixed by the name and process +id of the exiting process, when the parent does a +.IR wait (2). +.PP +Before calling +.I _exits +with +.I msg +as an argument, +.I exits +calls in reverse order all the functions +recorded by +.IR atexit . +.PP +.I Atexit +records +.I fn +as a function to be called by +.IR exits . +It returns zero if it failed, +nonzero otherwise. +A typical use is to register a cleanup routine for an I/O package. +To simplify programs that fork or share memory, +.I exits +only calls those +.IR atexit -registered +functions that were registered by the same +process as that calling +.IR exits . +.PP +Calling +.I atexit +twice (or more) with the same function argument causes +.I exits +to invoke the function twice (or more). +.PP +There is a limit to the number of exit functions +that will be recorded; +.I atexit +returns 0 if that limit has been reached. +.PP +.I Atexitdont +cancels a previous registration of an exit function. +.SH SOURCE +.B /sys/src/libc/port/atexit.c +.SH "SEE ALSO" +.IR fork (2), +.IR wait (2) diff --git a/static/plan9-4e/man2/exp.2 b/static/plan9-4e/man2/exp.2 new file mode 100644 index 00000000..55147ed9 --- /dev/null +++ b/static/plan9-4e/man2/exp.2 @@ -0,0 +1,62 @@ +.TH EXP 2 +.SH NAME +exp, log, log10, pow, pow10, sqrt \- exponential, logarithm, power, square root +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +double exp(double x) +.PP +.B +double log(double x) +.PP +.B +double log10(double x) +.PP +.B +double pow(double x, double y) +.PP +.B +double pow10(int n) +.PP +.B +double sqrt(double x) +.fi +.SH DESCRIPTION +.I Exp +returns the exponential function of +.IR x . +.PP +.I Log +returns the natural logarithm of +.IR x ; +.I log10 +returns the base 10 logarithm. +.PP +.I Pow +returns +.if t .I x\u\s8y\s10\d +.if n x^y, +and +.I pow10 +returns +.if t .I 10\u\s8n\s10\d +.if n 10^n +as a double. +.PP +.I Sqrt +returns the square root of +.IR x . +.SH SOURCE +All these routines have portable C implementations in +.BR /sys/src/libc/port . +Most also have machine-dependent implementations, written either in assembler +or C, in +.BR /sys/src/libc/$objtype . +.SH SEE ALSO +.IR hypot (2), +.IR sinh (2), +.IR intro (2) diff --git a/static/plan9-4e/man2/fauth.2 b/static/plan9-4e/man2/fauth.2 new file mode 100644 index 00000000..4b666ee8 --- /dev/null +++ b/static/plan9-4e/man2/fauth.2 @@ -0,0 +1,66 @@ +.TH FAUTH 2 +.SH NAME +fauth \- set up authentication on a file descriptor to a file server +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +.PP +.ft P +.B +int fauth(int fd, char *aname) +.SH DESCRIPTION +.PP +.I Fauth +is used to establish authentication for the current user to access +the resources available through the 9P connection represented by +.IR fd . +The return value is a file descriptor, conventionally called +.BR afd , +that is subsequently used to negotiate the authentication protocol +for the server, typically using +.IR auth_proxy +or +.IR fauth_proxy +(see +.IR auth (2)). +After successful authentication, +.B afd +may be passed as the second argument to a subsequent +.B mount +call (see +.IR bind (2)), +with the same +.IR aname, +as a ticket-of-entry for the user. +.PP +If +.I fauth +returns -1, the error case, that means the file server does not require +authentication for the connection, and +.B afd +should be set to -1 +in the call to +.BR mount. +.PP +It is rare to use +.IR fauth +directly; more commonly +.I amount +(see +.IR auth (2)) +is used. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR attach (5), +.IR auth (2) +(particularly +.BR amount ), +.IR authsrv (6), +.IR auth (8) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/fcall.2 b/static/plan9-4e/man2/fcall.2 new file mode 100644 index 00000000..bcfe7fe6 --- /dev/null +++ b/static/plan9-4e/man2/fcall.2 @@ -0,0 +1,351 @@ +.TH FCALL 2 +.SH NAME +Fcall, convS2M, convD2M, convM2S, convM2D, fcallfmt, dirfmt, dirmodefmt, read9pmsg, statcheck, sizeD2M \- interface to Plan 9 File protocol +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.br +.B #include +.PP +.B +uint convS2M(Fcall *f, uchar *ap, uint nap) +.PP +.B +uint convD2M(Dir *d, uchar *ap, uint nap) +.PP +.B +uint convM2S(uchar *ap, uint nap, Fcall *f) +.PP +.B +uint convM2D(uchar *ap, uint nap, Dir *d, char *strs) +.PP +.B +int dirfmt(Fmt*) +.PP +.B +int fcallfmt(Fmt*) +.PP +.B +int dirmodefmt(Fmt*) +.PP +.B +int read9pmsg(int fd, uchar *buf, uint nbuf); +.PP +.B +int statcheck(uchar *buf, uint nbuf); +.PP +.B +uint sizeD2M(Dir *d) +.SH DESCRIPTION +These +routines convert messages in the machine-independent format of +the Plan 9 file protocol, +9P, to and from a more convenient form, +an +.B Fcall +structure: +.PP +.EX +.if n .ta 4n +6n +5n +6n +18n +4n +.if t .ta \w'xxxx'u +\w'short 'u +\w'xxxx'u +\w'ushort 'u +\w'ticket[TICKETLEN]; 'u +\w'/* 'u +#define MAXWELEM 16 + +typedef +struct Fcall +{ + uchar type; + u32int fid; + ushort tag; + union { + struct { + u32int msize; /* Tversion, Rversion */ + char *version; /* Tversion, Rversion */ + }; + struct { + u32int oldtag; /* Tflush */ + }; + struct { + char *ename; /* Rerror */ + }; + struct { + Qid qid; /* Rattach, Ropen, Rcreate */ + u32int iounit; /* Ropen, Rcreate */ + ushort nrauth; /* Rattach */ + uchar *rauth; /* Rattach */ + }; + struct { + char *uname; /* Tattach */ + char *aname; /* Tattach */ + ushort nauth; /* Tattach */ + uchar *auth; /* Tattach */ + }; + struct { + char *authid; /* Rsession */ + char *authdom; /* Rsession */ + ushort nchal; /* Tsession/Rsession */ + uchar *chal; /* Tsession/Rsession */ + }; + struct { + u32int perm; /* Tcreate */ + char *name; /* Tcreate */ + uchar mode; /* Tcreate, Topen */ + }; + struct { + u32int newfid; /* Twalk */ + ushort nwname; /* Twalk */ + char *wname[MAXWELEM]; /* Twalk */ + }; + struct { + ushort nwqid; /* Rwalk */ + Qid wqid[MAXWELEM]; /* Rwalk */ + }; + struct { + vlong offset; /* Tread, Twrite */ + u32int count; /* Tread, Twrite, Rread */ + char *data; /* Twrite, Rread */ + }; + struct { + ushort nstat; /* Twstat, Rstat */ + uchar *stat; /* Twstat, Rstat */ + }; + }; +} Fcall; +.EE +.EX + +/* these are implemented as macros */ + +uchar GBIT8(uchar*) +ushort GBIT16(uchar*) +ulong GBIT32(uchar*) +vlong GBIT64(uchar*) + +void PBIT8(uchar*, uchar) +void PBIT16(uchar*, ushort) +void PBIT32(uchar*, ulong) +void PBIT64(uchar*, vlong) + +#define BIT8SZ 1 +#define BIT16SZ 2 +#define BIT32SZ 4 +#define BIT64SZ 8 +.EE +.PP +This structure is defined in +.BR . +See section 5 +for a full description of 9P messages and their encoding. +For all message types, the +.B type +field of an +.B Fcall +holds one of +.BR Tnop , +.BR Rnop , +.BR Tsession , +.BR Rsession , +etc. (defined in an enumerated type in +.BR ). +.B Fid +is used by most messages, and +.B tag +is used by all messages. +The other fields are used selectively by the message types +given in comments. +.PP +.I ConvM2S +takes a 9P message at +.I ap +of length +.IR nap , +and uses it to fill in +.B Fcall +structure +.IR f . +If the passed message +including any data for +.B Twrite +and +.B Rread +messages +is formatted properly, +the return value is the number of bytes the message occupied in the buffer +.IR ap , +which will always be less than or equal to +.IR nap ; +otherwise it is 0. +For +.B Twrite +and +.B Tread +messages, +.B data +is set to a pointer into the argument message, +not a copy. +.PP +.I ConvS2M +does the reverse conversion, turning +.I f +into a message starting at +.IR ap . +The length of the resulting message is returned. +For +.B Twrite +and +.B Rread +messages, +.B count +bytes starting at +.B data +are copied into the message. +.PP +The constant +.B IOHDRSZ +is a suitable amount of buffer to reserve for storing +the 9P header; +the data portion of a +.B Twrite +or +.B Rread +will be no more than the buffer size negotiated in the +.BR Tversion/Rversion +exchange, minus +.BR IOHDRSZ . +.PP +Another structure is +.BR Dir , +used by the routines described in +.IR stat (2). +.I ConvM2D +converts the machine-independent form starting at +.I ap +into +.IR d +and returns the length of the machine-independent encoding. +The strings in the returned +.B Dir +structure are stored at successive locations starting at +.BR strs . +Usually +.B strs +will point to storage immediately after the +.B Dir +itself. +It can also be a +.B nil +pointer, in which case the string pointers in the returned +.B Dir +are all +.BR nil ; +however, the return value still includes their length. +.PP +.I ConvD2M +does the reverse translation, +also returning the length of the encoding. +If the buffer is too short, the return value will be +.B BIT16SZ +and the correct size will be returned in the first +.B BIT16SZ +bytes. +(If the buffer is less that +.BR BIT16SZ , +the return value is zero; therefore a correct test for +complete packing of the message is that the return value is +greater than +.BR BIT16SZ ). +The macro +.B GBIT16 +can be used to extract the correct value. +The related macros with different sizes retrieve the corresponding-sized quantities. +.B PBIT16 +and its brethren place values in messages. +With the exception of handling short buffers in +.IR convD2M , +these macros are not usually needed except by internal routines. +.PP +The routine +.B statcheck +checks whether the +.I nbuf +bytes of +.I buf +contain a validly formatted machine-independent +.B Dir +entry suitable as an argument, for example, for the +.B wstat +(see +.IR stat (2)) +system call. +It checks that the sizes of all the elements of the the entry sum to exactly +.IR nbuf , +which is a simple but effective test of validity. +.I Nbuf +and +.I buf +should include the second two-byte (16-bit) length field that precedes the entry when +formatted in a 9P message (see +.IR stat (5)); +in other words, +.I nbuf +is 2 plus the sum of the sizes of the entry itself. +.I Statcheck +also verifies that the length field has the correct value (that is, +.IB nbuf -2\r1). +It returns +.B 0 +for a valid entry and +.B -1 +for an incorrectly formatted entry. +.PP +The routine +.I sizeD2M +returns the number of bytes required to store the machine-independent representation of the +.B Dir +structure +.IR d , +including its initial 16-bit size field. +In other words, it reports the number of bytes produced +by a successful call to +.IR convD2M . +.PP +.IR Dirfmt , +.IR fcallfmt , +and +.I dirmodefmt +are formatting routines, suitable for +.IR fmtinstall (2). +They convert +.BR Dir* , +.BR Fcall* , +and +.BR long +values into string representations of the directory buffer, +.B Fcall +buffer, +or file mode value. +.I Fcallfmt +assumes that +.I dirfmt +has been installed with format letter +.L D +and +.I dirmodefmt +with format letter +.LR M . +.PP +.I Read9pmsg +calls +.IR read (2) +multiple times, if necessary, to read an entire 9P message into +.BR buf . +The return value is 0 for end of file, or -1 for error; it does not return +partial messages. +.SH SOURCE +.B /sys/src/libc/9sys +.SH SEE ALSO +.IR intro (2), +.IR 9p (2), +.IR stat (2), +.IR intro (5) diff --git a/static/plan9-4e/man2/fd2path.2 b/static/plan9-4e/man2/fd2path.2 new file mode 100644 index 00000000..9876c132 --- /dev/null +++ b/static/plan9-4e/man2/fd2path.2 @@ -0,0 +1,57 @@ +.TH FD2PATH 2 +.SH NAME +fd2path \- return file name associated with file descriptor +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int fd2path(int fd, char *buf, int nbuf) +.SH DESCRIPTION +As described in +.IR intro (2), +the kernel stores a rooted path name with every open file or directory; +typically, it is the name used in the original access of the file. +.I Fd2path +returns the path name associated with open file descriptor +.IR fd . +Up to +.I nbuf +bytes of the name are stored in +.IR buf ; +if the name is too long, it will be silently truncated at a UTF-8 +character boundary. +The name is always null-terminated. +The return value of +.I fd2path +will be zero unless an error occurs. +.PP +Changes to the underlying name space do not update the path name +stored with the file descriptor. +Therefore, +the path returned by +.I fd2path +may no longer refer to the same file (or indeed any file) +after some component directory or file in the path has been removed, renamed +or rebound. +.PP +As an example, +.IR getwd (2) +is implemented by opening +.B . +and executing +.I fd2path +on the resulting file descriptor. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR bind (1), +.IR ns (1), +.IR bind (2), +.IR intro (2), +.IR getwd (2), +.IR proc (3) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/fgetc.2 b/static/plan9-4e/man2/fgetc.2 new file mode 100644 index 00000000..bf68e567 --- /dev/null +++ b/static/plan9-4e/man2/fgetc.2 @@ -0,0 +1,211 @@ +.TH FGETC 2 +.SH NAME +fgetc, getc, getchar, fputc, putc, putchar, ungetc, fgets, gets, fputs, puts, fread, fwrite \- Stdio input and output +.SH SYNOPSIS +.B #include +.ta \w'\fLlong 'u +.PP +.B +int fgetc(FILE *f) +.PP +.B +int getc(FILE *f) +.PP +.B +int getchar(void) +.PP +.B +int fputc(int c, FILE *f) +.PP +.B +int putc(int c, FILE *f) +.PP +.B +int putchar(int c) +.PP +.B +int ungetc(int c, FILE *f) +.PP +.B +char *fgets(char *s, int n, FILE *f) +.PP +.B +char *gets(char *s) +.PP +.B +int fputs(char *s, FILE *f) +.PP +.B +int puts(char *s) +.PP +.B +long fread(void *ptr, long itemsize, long nitems, FILE *stream) +.PP +.B +long fwrite(void *ptr, long itemsize, long nitems, FILE *stream) +.SH DESCRIPTION +The functions described here work on open Stdio streams (see +.IR fopen ). +.PP +.I Fgetc +returns as an +.B int +the next +.B unsigned +.B char +from input stream +.IR f . +If the stream is at end-of-file, the end-of-file indicator for the +stream is set and +.I fgetc +returns +.BR EOF . +If a read error occurs, the error indicator for the stream is set and +.I fgetc +returns +.BR EOF . +.I Getc +is like +.I fgetc +except that it is implemented as a macro. +.I Getchar +is like +.I getc +except that it always reads from +.BR stdin . +.PP +.I Ungetc +pushes character +.I c +back onto the input stream +.BR f . +The pushed-back character will be returned by subsequent reads in +the reverse order of their pushing. +A successful intervening +.IR fseek , +.IR fsetpos , +or +.I rewind +on +.I f +discards any pushed-back characters for +.IR f . +One character of push-back is guaranteed. +.I Ungetc +returns the character pushed back (converted to +.B unsigned +.BR char ), +or +.B EOF +if the operation fails. +A successful call to +.I ungetc +clears the end-of-file indicator for the stream. +The file position indicator for the stream after reading or discarding +all pushed-back characters is the same as it was before the +characters were pushed back. +.PP +.I Fputc +writes character +.I c +(converted to +.B unsigned +.BR char ) +to output stream +.IR f +at the position indicated by the position indicator for the stream +and advances the indicator appropriately. +If the file cannot support positioning requests, or if the stream was +opened with append mode, the character is appended to the output stream. +.I Fputc +returns the character written or +.B EOF +if there was a write error. +.I Putc +is like +.IR fputc +but is implemented as a macro. +.I Putchar +is like +.I putc +except that it always writes to +.BR stdout . +.PP +All other input takes place as if characters were read by successive +calls to +.I fgetc +and all other output takes place as if characters were written by +successive calls to +.IR fputc . +.PP +.I Fgets +reads up to and including the next newline, but not past end-of-file +or more than +.IR n -1 +characters, from stream +.I f +into array +.IR s . +A null character is written immediately after the last character read +into the array (if any characters are read at all). +.I Fgets +returns +.I s +if successful, otherwise a null pointer. +.I Gets +is similar to +.IR fgets +except that it always reads from +.B stdin +and it discards the terminating newline, if any. +.I Gets +does not check for overflow of the receiving array, so its use is deprecated. +.PP +.I Fputs +writes the string +.I s +to stream +.IR f , +returning +.B EOF +if a write error occurred, otherwise a nonnegative value. +The terminating null character is not written. +.I Puts +is the same, writing to +.BR stdout . +.PP +.I Fread +reads from the named input +.IR stream +at most +.I nitems +of data of size +.I itemsize +and the type of +.I *ptr +into a block beginning at +.IR ptr . +It returns the number of items actually read. +.PP +.I Fwrite +appends to the named output +.I stream +at most +.I nitems +of data of size +.I itemsize +and the type of +.I *ptr +from a block beginning at +.IR ptr . +It returns the number of items actually written. +.SH SOURCE +.B /sys/src/libstdio +.SH "SEE ALSO" +.IR read (2), +.IR fopen (2), +.IR bio (2) +.SH BUGS +Stdio does not handle +.SM UTF +or runes; use Bio instead. diff --git a/static/plan9-4e/man2/flate.2 b/static/plan9-4e/man2/flate.2 new file mode 100644 index 00000000..39f4c108 --- /dev/null +++ b/static/plan9-4e/man2/flate.2 @@ -0,0 +1,207 @@ +.TH FLATE 2 +.SH NAME +deflateinit, deflate, deflatezlib, deflateblock, deflatezlibblock, inflateinit, inflate, inflatezlib, inflateblock, inflatezlibblock, flateerr, mkcrctab, blockcrc, adler32 \- deflate compression +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'ulongmm'u +.PP +.B +int deflateinit(void) +.PP +.B +int deflate(void *wr, int (*w)(void*,void*,int), +.br +.B + void *rr, int (*r)(void*,void*,int), +.br +.B + int level, int debug) +.PP +.B +int deflatezlib(void *wr, int (*w)(void*,void*,int), +.br +.B + void *rr, int (*r)(void*,void*,int), +.br +.B + int level, int debug) +.PP +.B +int deflateblock(uchar *dst, int dsize, +.br +.B + uchar *src, int ssize, +.br +.B + int level, int debug) +.PP +.B +int deflatezlibblock(uchar *dst, int dsize, +.br +.B + uchar *src, int ssize, +.br +.B + int level, int debug) +.PP +.B +int inflateinit(void) +.PP +.B +int inflate(void *wr, int (*w)(void*, void*, int), +.br +.B + void *getr, int (*get)(void*)) +.PP +.B +int inflatezlib(void *wr, int (*w)(void*, void*, int), +.br +.B + void *getr, int (*get)(void*)) +.PP +.B +int inflateblock(uchar *dst, int dsize, +.br +.B + uchar *src, int ssize) +.PP +.B +int inflatezlibblock(uchar *dst, int dsize, +.br +.B + uchar *src, int ssize) +.PP +.B +char *flateerr(int error) +.PP +.B +ulong *mkcrctab(ulong poly) +.PP +.B +ulong blockcrc(ulong *tab, ulong crc, void *buf, int n) +.PP +.B +ulong adler32(ulong adler, void *buf, int n) +.SH DESCRIPTION +These routines compress and decompress data using the deflate compression algorithm, +which is used for most gzip, zip, and zlib files. +.PP +.I Deflate +compresses input data retrieved by calls to +.I r +with arguments +.IR rr , +an input buffer, and a count of bytes to read. +.I R +should return the number of bytes read; +end of input is signaled by returning zero, an input error by +returning a negative number. +The compressed output is written to +.I w +with arguments +.IR wr , +the output data, and the number of bytes to write. +.I W +should return the number of bytes written; +writing fewer than the requested number of bytes is an error. +.I Level +indicates the amount of computation deflate should do while compressing the data. +Higher +.I levels +usually take more time and produce smaller outputs. +Valid values are 1 to 9, inclusive; 6 is a good compromise. +If +.I debug +is non-zero, cryptic debugging information is produced on standard error. +.PP +.I Inflate +reverses the process, converting compressed data into uncompressed output. +Input is retrieved one byte at a time by calling +.I get +with the argument +.IR getr . +End of input of signaled by returning a negative value. +The uncompressed output is written to +.IR w , +which has the same interface as for +.IR deflate . +.PP +.I +Deflateblock +and +.I inflateblock +operate on blocks of memory but are otherwise similar to +.I deflate +and +.IR inflate . +.PP +The zlib functions are similar, but operate on files with a zlib header and trailer. +.PP +.I Deflateinit +or +.I inflateinit +must be called once before any call to the corresponding routines. +.PP +If the above routines fail, +they return a negative number indicating the problem. +The possible values are +.IR FlateNoMem , +.IR FlateInputFail , +.IR FlateOutputFail , +.IR FlateCorrupted , +and +.IR FlateInternal . +.I Flateerr +converts the number into a printable message. +.I FlateOk +is defined to be zero, +the successful return value for +.IR deflateinit , +.IR deflate , +.IR deflatezlib , +.IR inflateinit , +.IR inflate , +and +.IR inflatezlib . +The block functions return the number of bytes produced when they succeed. +.PP +.I Mkcrctab +allocates +(using +.IR malloc (2)), +initializes, and returns a table for rapid computation of 32 bit CRC values using the polynomial +.IR poly . +.I Blockcrc +uses +.IR tab , +a table returned by +.IR mkcrctab , +to update +.I crc +for the +.I n +bytes of data in +.IR buf , +and returns the new value. +.I Crc +should initially be zero. +.I Blockcrc +pre-conditions and post-conditions +.I crc +by ones complementation. +.PP +.I Adler32 +updates the Adler 32-bit checksum of the +.I n +butes of data in +.IR buf. +The initial value of +.I adler +(that is, its value after seeing zero bytes) should be 1. +.SH SOURCE +.B /sys/src/libflate diff --git a/static/plan9-4e/man2/floor.2 b/static/plan9-4e/man2/floor.2 new file mode 100644 index 00000000..9205c011 --- /dev/null +++ b/static/plan9-4e/man2/floor.2 @@ -0,0 +1,58 @@ +.TH FLOOR 2 +.SH NAME +fabs, fmod, floor, ceil \- absolute value, remainder, floor, ceiling functions +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +double floor(double x) +.PP +.B +double ceil(double x) +.PP +.B +double fabs(double x) +.PP +.B +double fmod(double x, double y) +.SH DESCRIPTION +.I Fabs +returns the absolute value +.RI | \|x\| |. +.PP +.I Floor +returns the +largest integer +not greater than +.IR x . +.PP +.I Ceil +returns the +smallest integer +not less than +.IR x . +.PP +.I Fmod +returns +.I x +if +.I y +is zero, otherwise the number +.I f +with the same sign as +.IR x , +such that +.I "x = iy + f\|" +for some integer +.IR i , +and +.RI | \|f\| | +< +.RI | \|y\| |. +.SH SOURCE +.B /sys/src/libc/port +.SH SEE ALSO +.IR abs (2), +.IR frexp (2) diff --git a/static/plan9-4e/man2/fmtinstall.2 b/static/plan9-4e/man2/fmtinstall.2 new file mode 100644 index 00000000..7e5df733 --- /dev/null +++ b/static/plan9-4e/man2/fmtinstall.2 @@ -0,0 +1,372 @@ +.TH FMTINSTALL 2 +.SH NAME +fmtinstall, dofmt, dorfmt, fmtprint, fmtvprint, fmtrune, fmtstrcpy, fmtrunestrcpy, fmtfdinit, fmtfdflush, fmtstrinit, fmtstrflush, runefmtstrinit, runefmtstrflush, errfmt \- support for user-defined print formats and output routines +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ft L +.nf +.ta \w' 'u +\w' 'u +\w' 'u +\w' 'u +\w' 'u +typedef struct Fmt Fmt; +struct Fmt{ + uchar runes; /* output buffer is runes or chars? */ + void *start; /* of buffer */ + void *to; /* current place in the buffer */ + void *stop; /* end of the buffer; overwritten if flush fails */ + int (*flush)(Fmt*); /* called when to == stop */ + void *farg; /* to make flush a closure */ + int nfmt; /* num chars formatted so far */ + va_list args; /* args passed to dofmt */ + int r; /* % format Rune */ + int width; + int prec; + ulong flags; +}; + +enum{ + FmtWidth = 1, + FmtLeft = FmtWidth << 1, + FmtPrec = FmtLeft << 1, + FmtSharp = FmtPrec << 1, + FmtSpace = FmtSharp << 1, + FmtSign = FmtSpace << 1, + FmtZero = FmtSign << 1, + FmtUnsigned = FmtZero << 1, + FmtShort = FmtUnsigned << 1, + FmtLong = FmtShort << 1, + FmtVLong = FmtLong << 1, + FmtComma = FmtVLong << 1, + + FmtFlag = FmtComma << 1 +}; +.fi +.PP +.B +.ta \w'\fLchar* 'u + +.PP +.B +int fmtfdinit(Fmt *f, int fd, char *buf, int nbuf); +.PP +.B +int fmtfdflush(Fmt *f); +.PP +.B +int fmtstrinit(Fmt *f); +.PP +.B +char* fmtstrflush(Fmt *f); +.PP +.B +int runefmtstrinit(Fmt *f); +.PP +.B +Rune* runefmtstrflush(Fmt *f); + +.PP +.B +int fmtinstall(int c, int (*fn)(Fmt*)); +.PP +.B +int dofmt(Fmt *f, char *fmt); +.PP +.B +int dorfmt(Fmt*, Rune *fmt); +.PP +.B +int fmtprint(Fmt *f, char *fmt, ...); +.PP +.B +int fmtvprint(Fmt *f, char *fmt, va_list v); +.PP +.B +int fmtrune(Fmt *f, int r); +.PP +.B +int fmtstrcpy(Fmt *f, char *s); +.PP +.B +int fmtrunestrcpy(Fmt *f, Rune *s); +.PP +.B +int errfmt(Fmt *f); +.SH DESCRIPTION +The interface described here allows the construction of custom +.IR print (2) +verbs and output routines. +In essence, they provide access to the workings of the formatted print code. +.PP +The +.IR print (2) +suite maintains its state with a data structure called +.BR Fmt . +A typical call to +.IR print (2) +or its relatives initializes a +.B Fmt +structure, passes it to subsidiary routines to process the output, +and finishes by emitting any saved state recorded in the +.BR Fmt . +The details of the +.B Fmt +are unimportant to outside users, except insofar as the general +design influences the interface. +The +.B Fmt +records whether the output is in runes or bytes, +the verb being processed, its precision and width, +and buffering parameters. +Most important, it also records a +.I flush +routine that the library will call if a buffer overflows. +When printing to a file descriptor, the flush routine will +emit saved characters and reset the buffer; when printing +to an allocated string, it will resize the string to receive more output. +The flush routine is nil when printing to fixed-size buffers. +User code need never provide a flush routine; this is done internally +by the library. +.SS Custom output routines +To write a custom output routine, such as an error handler that +formats and prints custom error messages, the output sequence can be run +from outside the library using the routines described here. +There are two main cases: output to an open file descriptor +and output to a string. +.PP +To write to a file descriptor, call +.I fmtfdinit +to initialize the local +.B Fmt +structure +.IR f , +giving the file descriptor +.IR fd , +the buffer +.IR buf , +and its size +.IR nbuf . +Then call +.IR fmtprint +or +.IR fmtvprint +to generate the output. +These behave just like +.B fprint +(see +.IR print (2)) +or +.B vfprint +except that the characters are buffered until +.I fmtfdflush +is called. +A typical example of this sequence appears in the Examples section. +.PP +The same basic sequence applies when outputting to an allocated string: +call +.I fmtstrinit +to initialize the +.BR Fmt , +then call +.I fmtprint +and +.I fmtvprint +to generate the output. +Finally, +.I fmtstrflush +will return the allocated string, which should be freed after use. +To output to a rune string, use +.I runefmtstrinit +and +.IR runefmtstrflush . +Regardless of the output style or type, +.I fmtprint +or +.I fmtvprint +generates the characters. +.SS Custom format verbs +.I Fmtinstall +is used to install custom verbs and flags labeled by character +.IR c , +which may be any non-zero Unicode character. +.I Fn +should be declared as +.IP +.EX +int fn(Fmt*) +.EE +.PP +.IB Fp ->r +is the flag or verb character to cause +.I fn +to be called. +In +.IR fn , +.IB fp ->width , +.IB fp ->prec +are the width and precision, and +.IB fp ->flags +the decoded flags for the verb (see +.IR print (2) +for a description of these items). +The standard flag values are: +.B FmtSign +.RB ( + ), +.B FmtLeft +.RB ( - ), +.B FmtSpace +.RB ( '\ ' ), +.B FmtSharp +.RB ( # ), +.B FmtComma +.RB ( , ), +.B FmtLong +.RB ( l ), +.B FmtShort +.RB ( h ), +.B FmtUnsigned +.RB ( u ), +and +.B FmtVLong +.RB ( ll ). +The flag bits +.B FmtWidth +and +.B FmtPrec +identify whether a width and precision were specified. +.PP +.I Fn +is passed a pointer to the +.B Fmt +structure recording the state of the output. +If +.IB fp ->r +is a verb (rather than a flag), +.I fn +should use +.B Fmt->args +to fetch its argument from the list, +then format it, and return zero. +If +.IB fp ->r +is a flag, +.I fn +should return a negative value: +the negation of one of the above flag values, or some otherwise unused power of two. +All interpretation of +.IB fp ->width\f1, +.IB fp ->prec\f1, +and +.IB fp-> flags +is left up to the conversion routine. +.I Fmtinstall +returns 0 if the installation succeeds, \-1 if it fails. +.PP +.IR Fmtprint +and +.IR fmtvprint +may be called to +help prepare output in custom conversion routines. +However, these functions clear the width, precision, and flags. +The functions +.I dofmt +and +.I dorfmt +are the underlying formatters; they +use the existing contents of +.B Fmt +and should be called only by sophisticated conversion routines. +All these routines return the number of characters (bytes of UTF or runes) +produced. +.PP +Some internal functions may be useful to format primitive types. +They honor the width, precision and flags as described in +.IR print (2). +.I Fmtrune +formats a single character +.BR r . +.I Fmtstrcpy +formats a string +.BR s ; +.I fmtrunestrcpy +formats a rune string +.BR s . +.I Errfmt +formats the system error string. +All these routines return zero for successful execution. +Conversion routines that call these functions will work properly +regardless of whether the output is bytes or runes. +.PP +.IR 2c (1) +describes the C directive +.B #pragma +.B varargck +that can be used to provide type-checking for custom print verbs and output routines. +.SH EXAMPLES +This function prints an error message with a variable +number of arguments and then quits. +Compared to the corresponding example in +.IR print (2), +this version uses a smaller buffer, will never truncate +the output message, but might generate multiple +.B write +system calls to produce its output. +.IP +.EX +.ta 6n +6n +6n +6n +6n +6n +6n +6n +6n +#pragma varargck argpos error 1 + +void fatal(char *fmt, ...) +{ + Fmt f; + char buf[64]; + va_list arg; + + fmtfdinit(&f, 1, buf, sizeof buf); + fmtprint(&f, "fatal: "); + va_start(arg, fmt); + fmtvprint(&f, fmt, arg); + va_end(arg); + fmtprint(&f, "\en"); + fmtfdflush(&f); + exits("fatal error"); +} +.EE +.PP +This example adds a verb to print complex numbers. +.IP +.EX +typedef +struct { + double r, i; +} Complex; + +#pragma varargck type "X" Complex + +int +Xfmt(Fmt *f) +{ + Complex c; + + c = va_arg(f->args, Complex); + return fmtprint(f, "(%g,%g)", c.r, c.i); +} + +main(...) +{ + Complex x = (Complex){ 1.5, -2.3 }; + + fmtinstall('X', Xfmt); + print("x = %X\en", x); +} +.EE +.SH SOURCE +.B /sys/src/libc/fmt +.SH SEE ALSO +.IR print (2), +.IR utf (6), +.IR errstr (2) +.SH DIAGNOSTICS +These routines return negative numbers or nil for errors and set +.IR errstr . +.SH BUGS diff --git a/static/plan9-4e/man2/fopen.2 b/static/plan9-4e/man2/fopen.2 new file mode 100644 index 00000000..40abf9d7 --- /dev/null +++ b/static/plan9-4e/man2/fopen.2 @@ -0,0 +1,352 @@ +.TH FOPEN 2 +.SH NAME +fopen, freopen, fdopen, fileno, fclose, sopenr, sopenw, sclose, fflush, setvbuf, setbuf, fgetpos, ftell, fsetpos, fseek, rewind, feof, ferror, clearerr \- standard buffered input/output package +.SH SYNOPSIS +.B #include +.PP +.ta \w'\fLFILE 'u +.B +FILE *fopen(char *filename, char *mode) +.PP +.B +FILE *freopen(char *filename, char *mode, FILE *f) +.PP +.B +FILE *fdopen(int fd, char *mode) +.PP +.B +int fileno(FILE *f) +.PP +.B +FILE *sopenr(char *s) +.PP +.B +FILE *sopenw(void) +.PP +.B +char *sclose(FILE *f) +.PP +.B +int fclose(FILE *f) +.PP +.B +int fflush(FILE *f) +.PP +.B +int setvbuf(FILE *f, char *buf, int type, long size) +.PP +.B +void setbuf(FILE *f, char *buf) +.PP +.B +int fgetpos(FILE *f, long *pos) +.PP +.B +long ftell(FILE *f) +.PP +.B +int fsetpos(FILE *f, long *pos) +.PP +.B +int fseek(FILE *f, long offset, int whence) +.PP +.B +void rewind(FILE *f) +.PP +.B +int feof(FILE *f) +.PP +.B +int ferror(FILE *f) +.PP +.B +void clearerr(FILE *f) +.SH DESCRIPTION +The functions described in this and related pages +.RI ( fgetc (2), +.IR fprintf (2), +.IR fscanf (2), +and +.IR tmpfile (2)) +implement the +ANSI C buffered I/O package with extensions. +.PP +A file with associated buffering is called a +.I stream +and is declared to be a pointer to a defined type +.BR FILE . +.IR Fopen (2) +creates certain descriptive data for a stream +and returns a pointer to designate the stream in all +further transactions. +There are three normally open streams with constant +pointers declared in +the include file and associated with the standard open files: +.TP 10n +.BR stdin +standard input file +.br +.ns +.TP +.B stdout +standard output file +.br +.ns +.TP +.B stderr +standard error file +.PP +A constant pointer +.B NULL +designates no stream at all. +.PP +.I Fopen +opens the file named by +.I filename +and associates a stream with it. +.I Fopen +returns a pointer to be used to identify +the stream in subsequent operations, or +.B NULL +if the open fails. +.I Mode +is a character string having one of the following values: +.nf +.ta 8n +\fL"r"\fP open for reading +\fL"w"\fP truncate to zero length or create for writing +\fL"a"\fP append; open or create for writing at end of file +\fL"r+"\fP open for update (reading and writing) +\fL"w+"\fP truncate to zero length or create for update +\fL"a+"\fP append; open or create for update at end of file +.fi +.PP +In addition, each of the above strings can have a +.L b +somewhere after the first character, +meaning `binary file', but this implementation makes no distinction +between binary and text files. +.PP +.I Fclose +causes the stream pointed to by +.I f +to be flushed (see below) and does a +.I close +(see +.IR open (2)) +on the associated file. +It frees any automatically allocated buffer. +.I Fclose +is called automatically on +.IR exits (2) +for all open streams. +.PP +.I Freopen +is like open except that it reuses stream pointer +.IR f . +.I Freopen +first attempts to close any file associated with +.IR f ; +it ignores any errors in that close. +.PP +.I Fdopen +associates a stream with an open Plan 9 file descriptor. +.PP +.I Fileno +returns the number of the Plan 9 file descriptor associated with the stream. +.PP +.I Sopenr +associates a read-only stream with a null-terminated string. +.PP +.I Sopenw +opens a stream for writing. +No file descriptor is associated with the stream; +instead, all output is written to the stream buffer. +.PP +.I Sclose +closes a stream opened with +.I sopenr +or +.IR sopenw . +It returns a pointer to the 0 terminated buffer associated with the stream. +.PP +By default, output to a stream is fully buffered: it is accumulated in +a buffer until the buffer is full, and then +.I write +(see +.IR read (2)) +is used to write the buffer. +An exception is standard error, which is line buffered: +output is accumulated in a buffer until +a newline is written. +Input is also fully buffered by default; this means that +.IR read (2) +is used to fill a buffer as much as it can, and then characters +are taken from that buffer until it empties. +.I Setvbuf +changes the buffering method for file +.I f +according to +.IR type: +either +.B _IOFBF +for fully buffered, +.B _IOLBF +for line buffered, +or +.B _IONBF +for unbuffered (each character causes a +.I read +or +.IR write). +If +.I buf +is supplied, it is used as the buffer and +.I size +should be its size; +If +.I buf +is zero, a buffer of the given size is allocated (except for the unbuffered case) using +.IR malloc (2). +.PP +.I Setbuf +is an older method for changing buffering. If +.I buf +is supplied, it changes to fully buffered with the given buffer, which should +be of size +.B BUFSIZ +(defined in +.BR stdio.h ). +If +.I buf +is zero, the buffering method changes to unbuffered. +.PP +.I Fflush +flushes the buffer of output stream +.IR f , +delivering any unwritten buffered data to the host file. +.PP +There is a +.I file position indicator +associated with each stream. +It starts out pointing at the first character (unless the file is opened +with append mode, in which case the indicator is always ignored). +The file position indicator is maintained by the reading and writing +functions described in +.IR fgetc (2). +.PP +.I Fgetpos +stores the current value of the file position indicator for stream +.I f +in the object pointed to by +.IR pos . +It returns zero on success, nonzero otherwise. +.I Ftell +returns the current value of the file position indicator. +The file position indicator is to +be used only as an argument to +.IR fseek. +.PP +.I Fsetpos +sets the file position indicator for stream +.I f +to the value of the object pointed to by +.IR pos , +which shall be a value returned by an earlier call to +.I fgetpos +on the same stream. +It returns zero on success, nonzero otherwise. +.I Fseek +obtains a new position, measured in characters from the beginning +of the file, by adding +.I offset +to the position specified by +.IR whence : +the beginning of the file if +.I whence +is +.BR SEEK_SET ; +the current value of the file position indicator for +.BR SEEK_CUR ; +and the end-of-file for +.BR SEEK_END . +.I Rewind +sets the file position indicator to the beginning of the file. +.PP +An integer constant +.B EOF +is returned +upon end of file or error by integer-valued functions that +deal with streams. +.I Feof +returns non-zero if and only if +.I f +is at its end of file. +.PP +.I Ferror +returns non-zero if and only if +.I f +is in the error state. It can get into the error state +if a system call failed on the associated file +or a memory allocation failed. +.I Clearerr +takes a stream out of the error state. +.SH SOURCE +.B /sys/src/libstdio +.SH "SEE ALSO" +.IR fprintf (2), +.IR fscanf (2), +.IR fgetc (2) +.br +.IR open (2), +.IR read (2) +.SH DIAGNOSTICS +The value +.B EOF +is returned uniformly to indicate that a +.B FILE +pointer has not been initialized with +.IR fopen , +input (output) has been attempted on an output (input) stream, +or a +.B FILE +pointer designates corrupt or otherwise unintelligible +.B FILE +data. +.br +Some of these functions set +.IR errstr . +.SH BUGS +Buffering of output can prevent output data +from being seen until long after it is computed \- perhaps +never, as when an abort occurs between buffer filling and flushing. +.br +Buffering of input can cause a process to consume +more input than it actually uses. +This can cause trouble across +.IR exec (2). +.br +Buffering may delay the receipt of a write error until a subsequent +.I stdio +writing, seeking, or file-closing call. +.br +ANSI says that a file can be fully buffered only if +the file is not attached to an interactive device. +In Plan 9 all are fully buffered except standard error. +.PP +.IR Fdopen , +.IR fileno , +.IR sopenr , +.IR sopenw , +and +.I sclose +are not ANSI Stdio functions. +.PP +Stdio offers no support for runes or +.SM UTF +characters. +Unless external compatibility is necessary, use +.IR bio (2), +which supports +.SM UTF +and is smaller, faster, and simpler than Stdio. diff --git a/static/plan9-4e/man2/fork.2 b/static/plan9-4e/man2/fork.2 new file mode 100644 index 00000000..6f80e68d --- /dev/null +++ b/static/plan9-4e/man2/fork.2 @@ -0,0 +1,166 @@ +.TH FORK 2 +.SH NAME +fork, rfork \- manipulate process resources +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +int fork(void) +.PP +.B +int rfork(int flags) +.fi +.SH DESCRIPTION +Forking is the only way new processes are created. +The +.I flags +argument to +.I rfork +selects which resources of the +invoking process (parent) are shared +by the new process (child) or initialized to +their default values. +The resources include +the file name space, +the open file descriptor table (which, when shared, permits processes +to open and close files for other processes), +the set of environment variables +(see +.IR env (3)), +the note group +(the set of processes that receive notes written to a member's +.B notepg +file; +see +.IR proc (3)), +the set of rendezvous tags +(see +.IR rendezvous (2)); +and open files. +.I Flags +is the logical OR of some subset of +.TF RFCNAMEG +.TP +.B RFPROC +If set a new process is created; otherwise changes affect the +current process. +.TP +.B RFNOWAIT +If set, the child process will be dissociated from the parent. Upon +exit the child will leave no +.B Waitmsg +(see +.IR wait (2)) +for the parent to collect. +.TP +.B RFNAMEG +If set, the new process inherits a copy of the parent's name space; +otherwise the new process shares the parent's name space. +Is mutually exclusive with +.BR RFCNAMEG . +.TP +.B RFCNAMEG +If set, the new process starts with a clean name space. A new +name space must be built from a mount of an open file descriptor. +Is mutually exclusive with +.BR RFNAMEG . +.TP +.B RFNOMNT +If set, subsequent mounts into the new name space and dereferencing +of pathnames starting with +.B # +are disallowed. +.TP +.B RFENVG +If set, the environment variables are copied; +otherwise the two processes share environment variables. +Is mutually exclusive with +.BR RFCENVG . +.TP +.B RFCENVG +If set, the new process starts with an empty environment. +Is mutually exclusive with +.BR RFENVG . +.TP +.B RFNOTEG +Each process is a member of a group of processes that all +receive notes when a note is written to any of their +.B notepg +files (see +.IR proc (3)). +The group of a new process is by default the same as its parent, but if +.B RFNOTEG +is set (regardless of +.BR RFPROC ), +the process becomes the first in a new group, isolated from +previous processes. +.TP +.B RFFDG +If set, the invoker's file descriptor table (see +.IR intro (2)) +is copied; otherwise the two processes share a +single table. +.TP +.B RFCFDG +If set, the new process starts with a clean file descriptor table. +Is mutually exclusive with +.BR RFFDG . +.TP +.B RFREND +If set, the process will be unable to +.IR rendezvous (2) +with any of its ancestors; its children will, however, be able to +.B rendezvous +with it. In effect, +.B RFREND +makes the process the first in a group of processes that share a space for +.B rendezvous +tags. +.TP +.B RFMEM +If set, the child and the parent will share +.B data +and +.B bss +segments. +Otherwise, the child inherits a copy of those segments. +Other segment types, in particular stack segments, will be unaffected. +May be set only with +.BR RFPROC . +.PD +.PP +File descriptors in a shared file descriptor table are kept +open until either they are explicitly closed +or all processes sharing the table exit. +.PP +If +.B RFPROC +is set, the +value returned in the parent process +is the process id +of the child process; the value returned in the child is zero. +Without +.BR RFPROC , +the return value is zero. +Process ids range from 1 to the maximum integer +.RB ( int ) +value. +.I Rfork +will sleep, if necessary, until required process resources are available. +.PP +.I Fork +is just a call of +.BR rfork(RFFDG|RFREND|RFPROC) . +.SH SOURCE +.B /sys/src/libc/9syscall +.br +.B /sys/src/libc/9sys/fork.c +.SH SEE ALSO +.IR intro (2), +.IR proc (3), +.SH DIAGNOSTICS +These functions set +.IR errstr . diff --git a/static/plan9-4e/man2/fprintf.2 b/static/plan9-4e/man2/fprintf.2 new file mode 100644 index 00000000..934f4554 --- /dev/null +++ b/static/plan9-4e/man2/fprintf.2 @@ -0,0 +1,504 @@ +.TH FPRINTF 2 +.SH NAME +fprintf, printf, sprintf, snprintf, vfprintf, vprintf, vsprintf, vsnprintf \- print formatted output +.SH SYNOPSIS +.B #include +.PP +.B +int fprintf(FILE *f, char *format, ...) +.PP +.B +int printf(char *format, ...) +.PP +.B +int sprintf(char *s, char *format, ...) +.PP +.B +int snprintf(char *s, int n, char *format, ...) +.PP +.B +int vfprintf(FILE *f, char *format, va_list args) +.PP +.B +int vprintf(char *format, va_list args) +.PP +.B +int vsprintf(char *s, char *format, va_list args) +.PP +.B +int vsnprintf(char *s, int n, char *format, va_list args) +.SH DESCRIPTION +.I Fprintf +places output on the named output stream +.I f +(see +.IR fopen (2)). +.I Printf +places output on the standard output stream +.IR stdout . +.I Sprintf +places output +followed by the null character +.RB ( \e0 ) +in consecutive bytes starting at +.IR s ; +it is the user's responsibility to ensure that +enough storage is available. +.I Snprintf +is like +.I sprintf +but writes at most +.I n +bytes (including the null character) +into +.IR s . +.IR Vfprintf , +.IR vprintf , +.IR vsnprintf , +and +.I vsprintf +are the same, except the +.I args +argument is the argument list of the +calling function, and the effect is as if the calling function's +argument list from that point on is passed to the +.I printf +routines. +.PP +Each function returns the number of characters +transmitted (not including the +.B \e0 +in the case of +.IR sprintf +and friends), +or +a negative value if an output error was encountered. +.PP +These functions +convert, format, and print their +trailing arguments +under control of a +.IR format +string. +The +.I format +contains two types of objects: +plain characters, which are simply copied to the +output stream, +and conversion specifications, +each of which results in fetching of +zero or more +arguments. +The results are undefined if there are arguments of the +wrong type or too few +arguments for the format. +If the format is exhausted while +arguments remain, the excess +are ignored. +.PP +Each conversion specification is introduced by +the character +.BR % . +After the +.BR % , +the following +appear in sequence: +.PP +.RS +Zero or more +.IR flags , +which modify the meaning of +the conversion specification. +.PP +An optional decimal digit string specifying a minimum +.IR "field width" . +If the converted value has fewer characters +than the field width, it will be padded with spaces on the +left (or right, if the left adjustment, described later, has been given) +to the field width. +.PP +An optional +.I precision\^ +that gives +the minimum number of digits to appear for the +.BR d , +.BR i , +.BR o , +.BR u , +.BR x , +and +.B X +conversions, +the number of digits to appear after the +decimal point for the +.BR e , +.BR E , +and +.B f +conversions, +the maximum number of significant digits +for the +.B g +and +.B G +conversions, +or the maximum number of characters +to be written from a string in +.B s +conversion. +The precision takes the form of a period +.RB ( \&. ) +followed by an optional decimal integer; +if the integer is omitted, it is treated as zero. +.PP +An optional +.B h +specifying that a following +.BR d , +.BR i , +.BR o , +.BR u , +.BR x +or +.BR X +conversion specifier applies to a +.B short +.B int +or +.B unsigned +.B short +argument (the argument will have been promoted according to the integral +promotions, and its value shall be converted to +.B short +or +.B unsigned +.B short +before printing); +an optional +.B h +specifying that a following +.B n +conversion specifier applies to a pointer to a +.B short +argument; +an optional +.B l +(ell) specifying that a following +.BR d , +.BR i , +.BR o , +.BR u , +.BR x , +or +.B X +conversion character applies to a +.B long +or +.B unsigned +.B long +argument; +an optional +.B l +specifying that a following +.B n +conversion specifier applies to a pointer to a +.B long +.B int +argument; +or an optional +.B L +specifying that a following +.BR e , +.BR E , +.BR f , +.BR g , +or +.B G +conversion specifier applies to a +.B long double +argument. +If an +.BR h , +.BR l , +or +.B L +appears with any other conversion specifier, the behavior is undefined. +.PP +A character that indicates the type of +conversion to be applied. +.RE +.PP +A field width or precision, or both, may be +indicated by an asterisk +.RB ( * ) +instead of a digit string. +In this case, an +.B int +.I arg\^ +supplies +the field width or precision. +The arguments specifying field width or precision, or both, +shall appear (in that order) before the argument (if any) to be converted. +A negative field width argument is taken as a +.B - +flag followed by a positive field width. +A negative precision is taken as if it were missing. +.PP +The flag characters and their meanings are: +.PD 0 +.TP 10 +.B - +The result of the conversion is left-justified within the field. +.TP +.B + +The result of a signed +conversion always begins with a sign +.RB ( + +or +.BR - ). +.TP +blank +If the first character of a signed conversion is not a sign, +or a signed conversion results in no characters, +a blank +is prefixed to the result. +This implies that if the blank and +.B + +flags both appear, the blank flag is ignored. +.TP +.B # +The result is to be converted +to an ``alternate form.'' +For +.B o +conversion, it increases the precision to force +the first digit of the result to be a zero. +For +.B x +or +.B X +conversion, a non-zero result has +.B 0x +or +.B 0X +prefixed to it. +For +.BR e , +.BR E , +.BR f , +.BR g , +and +.B G +conversions, the result always contains a decimal point, +even if no digits follow the point (normally, a decimal point +appears in the result of these conversions only if a digit +follows it). +For +.B g +and +.B G +conversions, trailing zeros are +.I not\^ +be removed from the result +as they normally are. +For other conversions, the behavior is undefined. +.TP +.B 0 +For +.BR d , +.BR i , +.BR o , +.BR u , +.BR x , +.BR X , +.BR e , +.BR E , +.BR f , +.BR g , +and +.B G +conversions, leading zeros (following any indication of sign or base) +are used to pad the field width; no space padding is performed. +If the +.B 0 +and +.B - +flags both appear, the +.B 0 +flag will be ignored. +For +.BR d , +.BR i , +.BR o , +.BR u , +.BR x , +and +.B X +conversions, if a precision is specified, the +.B 0 +flag will be ignored. +For other conversions, the behavior is undefined. +.PD +.PP +The conversion characters +and their meanings are: +.PP +.PD 0 +.TP 10 +\fLd\fP,\fLo\fP,\fLu\fP,\fLx\fP,\fLX\fP +The integer +.I arg\^ +is converted to signed decimal +.RB ( d +or +.BR i ), +unsigned octal +.RB ( o ), +unsigned decimal +.RB ( u ), +or unsigned hexadecimal notation +.RB ( x +or +.BR X ); +the letters +.B abcdef +are used for +.B x +conversion and the letters +.B ABCDEF +for +.B X +conversion. +The precision specifies the minimum number of digits +to appear; if the value being converted can be represented +in fewer digits, it is expanded with leading zeros. +The default precision is 1. +The result of converting a zero value with a precision +of zero is no characters. +.TP +.BR f +The +.B double +argument is converted to decimal notation +in the style +[\-]\fIddd\fL.\fIddd\fR, +where the number of digits after the decimal point +is equal to the precision specification. +If the precision +is missing, +it is taken as 6; +if the precision is explicitly +.LR 0 , +no decimal point appears. +.TP +.BR e , E +The +.B double +argument is converted in the style +[\-]\fId\fL.\fIddd\fLe\fR±\fIdd\fR, +where there is one digit before the decimal point and +the number of digits after it is equal to the +precision; +when the precision is missing, it is taken as 6; +if the precision is zero, no decimal point appears. +The +.B E +format code produces a number with +.B E +instead of +.B e +introducing the exponent. +The exponent always contains at least two digits. +.TP +.BR g , G +The +.B double +argument is printed in style +.BR f +or +.BR e +(or in style +.B E +in the case of a +.B G +conversion specifier), +with the precision specifying the number of significant digits. +If an explicit precision is zero, it is taken as 1. +The style used depends on the value converted: +style +.B e +is used only if the exponent resulting from +the conversion is less than \-4 +or greater than or equal to the precision. +Trailing zeros are removed from the fractional portion of the result; +a decimal point appears only if it is followed by a digit. +.TP +.B c +The +.B int +argument is converted to an +.B unsigned +.BR char , +and the resulting character is written. +.TP +.B s +The +argument is taken to be a string (character pointer) +and characters from the string are printed until +a null character +.RB ( \e0 ) +is encountered or +the number of characters indicated by the precision +specification is reached. +If the precision is missing, it is taken to be infinite, so +all characters up to the first null character are printed. +A +zero +value for +the argument yields undefined results. +.TP +.B P +The +.B void* +argument is printed in an implementation-defined way (for Plan 9: +the address as hexadecimal number). +.TP +.B n +The argument shall be a pointer to an integer into which is +.I written +the number of characters written to the output stream so far by +this call to +.IR fprintf . +No argument is converted. +.TP +.B % +Print a +.BR % ; +no argument is converted. +.PD +.PP +If a conversion specification is invalid, the behavior is undefined. +.PP +If any argument is, or points to, a union or an aggregate +(except for an array of character type using +.B %s +conversion, or a pointer cast to be a pointer to +.B void +using +.B %P +conversion), the behavior is undefined. +.PP +In no case does a nonexistent or small field width cause truncation +of a field; if the result of a conversion is wider than the field width, +the field is expanded to contain the conversion result. +.SH SOURCE +.B /sys/src/libstdio +.SH SEE ALSO +.IR fopen (2), +.IR fscanf (2), +.IR print (2) +.SH BUGS +There is no way to print a wide character (rune); use +.IR print (2) +or +.IR bio (2). diff --git a/static/plan9-4e/man2/frame.2 b/static/plan9-4e/man2/frame.2 new file mode 100644 index 00000000..1ef43dbf --- /dev/null +++ b/static/plan9-4e/man2/frame.2 @@ -0,0 +1,362 @@ +.TH FRAME 2 +.SH NAME +frinit, frsetrects, frinittick, frclear, frcharofpt, frptofchar, frinsert, frdelete, frselect, frtick, frselectpaint, frdrawsel, frdrawsel0, frgetmouse \- frames of text +.SH SYNOPSIS +.nf +.B +#include +.B +#include +.B +#include +.B +#include +.B +#include +.B +#include +.PP +.B +void frinit(Frame *f, Rectangle r, Font *ft, Image *b, Image **cols) +.PP +.B +void frsetrects(Frame *f, Rectangle r, Image *b) +.PP +.B +void frinittick(Frame *f) +.PP +.B +void frclear(Frame *f, int resize) +.PP +.B +ulong frcharofpt(Frame *f, Point pt) +.PP +.B +Point frptofchar(Frame *f, ulong p) +.PP +.B +void frinsert(Frame *f, Rune *r0, Rune *r1, ulong p) +.PP +.B +int frdelete(Frame *f, ulong p0, ulong p1) +.PP +.B +void frselect(Frame *f, Mousectl *m) +.PP +.B +void frtick(Frame *f, Point pt, int up) +.PP +.B +void frselectpaint(Frame *f, Point p0, Point p1, Image *col) +.PP +.B +void frdrawsel(Frame *f, Point pt0, ulong p0, ulong p1, +.B + int highlighted) +.PP +.B +void frdrawsel0(Frame *f, Point pt0, ulong p0, ulong p1, +.B + Image *back, Image *text) +.PP +.ft L +enum{ + BACK, + HIGH, + BORD, + TEXT, + HTEXT, + NCOL +}; +.fi +.SH DESCRIPTION +This library supports +.I frames +of editable text in a single font on raster displays, such as in +.IR sam (1) +and +.IR rio (1). +Frames may hold any character except NUL (0). +Long lines are folded and tabs are at fixed intervals. +.PP +The user-visible data structure, a +.BR Frame , +is defined in +.BR : +.IP +.EX +.ta 6n +\w'Rectangle 'u +\w'lastlinefull; 'u +typedef struct Frame Frame; +struct Frame +{ + Font *font; /* of chars in the frame */ + Display *display; /* on which frame appears */ + Image *b; /* on which frame appears */ + Image *cols[NCOL]; /* text and background colors */ + Rectangle r; /* in which text appears */ + Rectangle entire; /* of full frame */ + Frbox *box; + ulong p0, p1; /* selection */ + ushort nbox, nalloc; + ushort maxtab; /* max size of tab, in pixels */ + ushort nchars; /* # runes in frame */ + ushort nlines; /* # lines with text */ + ushort maxlines; /* total # lines in frame */ + ushort lastlinefull; /* last line fills frame */ + ushort modified; /* changed since frselect() */ + Image *tick; /* typing tick */ + Image *tickback; /* saved image under tick */ + int ticked; /* flag: is tick onscreen? */ +}; +.EE +.PP +.B Frbox +is an internal type and is not used by the interface. +.B P0 +and +.B p1 +may be changed by the application provided the selection routines are called +afterwards to maintain a consistent display. +.I Maxtab +determines the size of tab stops. +.I Frinit +sets it to 8 times the width of a +.B 0 +(zero) +character in the font; +it may be changed before any text is added to the frame. +The other elements of the structure are maintained by the library and +should not be modified directly. +.PP +The text within frames +is not directly addressable; +instead frames are designed to work alongside +another structure that holds the text. +The typical application is to display a section of a longer document such +as a text file or terminal session. +Usually the program will keep its own copy of the +text in the window (probably as +an array of +.BR Runes ) +and pass components of this text to the frame routines to +display the visible portion. +Only the text that is visible is held by the +.BR Frame ; +the application must check +.BR maxlines , +.BR nlines , +and +.B lastlinefull +to determine, for example, whether new text needs to be appended +at the end of the +.B Frame +after calling +.I frdelete +(q.v.). +.PP +There are no routines in the library to allocate +.BR Frames ; +instead the interface assumes that +.B Frames +will be components of larger structures. +.I Frinit +prepares the +.B Frame +.I f +so characters drawn in it will appear +in the single +.B Font +.IR ft . +It then calls +.I frsetrects +and +.I frinittick +to initialize the geometry for the +.BR Frame . +The +.B Image +.I b +is where the +.B Frame +is to be drawn; +.B Rectangle +.I r +defines the limit of the portion of the +.B Image +the text will occupy. +The +.B Image +pointer +may be null, allowing the other routines to be called to maintain the +associated data structure in, for example, an obscured window. +.PP +The array of +.B Images +cols sets the colors in which text and borders will be drawn. The background of the frame will be drawn in +.BR cols[BACK] ; +the background of highlighted text in +.BR cols[HIGH] ; +borders and scroll bar in +.BR cols[BORD] ; +regular text in +.BR cols[TEXT] ; +and highlighted text in +.BR cols[HTEXT] . +.PP +.I Frclear +frees the internal structures associated with +.IR f , +permitting another +.I frinit +or +.I frsetrects +on the +.BR Frame . +It does not clear the associated display. +If +.I f +is to be deallocated, the associated +.B Font +and +.B Image +must be freed separately. +The +.B resize +argument should be non-zero if the frame is to be redrawn with +a different font; otherwise the frame will maintain some +data structures associated with the font. +.PP +To resize a +.BR Frame , +use +.I frclear +and +.I frinit +and then +.I frinsert +(q.v.) to recreate the display. +If a +.B Frame +is being moved but not resized, that is, if the shape of its containing +rectangle is unchanged, it is sufficient to use +.IR draw (2) +to copy the containing rectangle from the old to the new location and then call +.I frsetrects +to establish the new geometry. +(It is unnecessary to call +.I frinittick +unless the font size has changed.) +No redrawing is necessary. +.PP +.B Frames +hold text as runes, +not as bytes. +.I Frptofchar +returns the location of the upper left corner of the +.I p'th +rune, starting from 0, in the +.B Frame +.IR f . +If +.I f +holds fewer than +.I p +runes, +.I frptofchar +returns the location of the upper right corner of the last character in +.IR f . +.I Frcharofpt +is the inverse: it +returns the index of the closest rune whose image's upper left corner +is up and to the left of +.IR pt . +.PP +.I Frinsert +inserts into +.B Frame +.I f +starting at rune index +.I p +the runes between +.I r0 +and +.IR r1 . +If a NUL (0) character +is inserted, chaos will ensue. +Tabs and newlines +are handled by the library, but all other characters, +including control characters, are just displayed. +For example, backspaces are printed; to erase +a character, use +.IR frdelete . +.PP +.I Frdelete +deletes from the +.B Frame +the text between +.I p0 +and +.IR p1 ; +.I p1 +points at the first rune beyond the deletion. +.PP +.I Frselect +tracks the mouse to select a contiguous string of text in the +.BR Frame . +When called, a mouse button is typically down. +.I Frselect +will return when the button state has changed (some buttons may +still be down) and will set +.IB f ->p0 +and +.IB f ->p1 +to the selected range of text. +.PP +Programs that wish to manage the selection themselves have several routines to help. +They involve the maintenance of the `tick', the vertical line indicating a null selection +between characters, and the colored region representing a non-null selection. +.I Frtick +draws (if +.I up +is non-zero) or removes (if +.I up +is zero) the tick at the screen position indicated by +.IR pt . +.I Frdrawsel +repaints a section of the frame, delimited by character positions +.I p0 +and +.IR p1 , +either with plain background or +entirely highlighted, according to the flag +.IR highlighted , +managing the tick appropriately. +The point +.I pt0 +is the geometrical location of +.I p0 +on the screen; like all of the selection-helper routines' +.B Point +arguments, it must be a value generated by +.IR frptofchar . +.I Frdrawsel0 +is a lower-level routine, taking as arguments a background color, +.IR back , +and text color, +.IR text . +It assumes that the tick is being handled (removed beforehand, replaced afterwards, as required) +by its caller. +.I Frselectpaint +uses a solid color, +.IR col , +to paint a region of the frame defined by the +.B Points +.I p0 +and +.IR p1 . +.SH SOURCE +.B /sys/src/libframe +.SH SEE ALSO +.IR graphics (2), +.IR draw (2), +.IR cachechars (2). diff --git a/static/plan9-4e/man2/frexp.2 b/static/plan9-4e/man2/frexp.2 new file mode 100644 index 00000000..b78a57b3 --- /dev/null +++ b/static/plan9-4e/man2/frexp.2 @@ -0,0 +1,47 @@ +.TH FREXP 2 +.SH NAME +frexp, ldexp, modf \- split into mantissa and exponent +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +double frexp(double value, int *eptr) +.PP +.B +double ldexp(double value, int exp) +.PP +.B +double modf(double value, double *iptr) +.SH DESCRIPTION +.I Frexp +returns the mantissa of +.I value +and stores the exponent indirectly through +.IR eptr , +so that +.I value += +.if t .IR frexp ( value )×2\u\s-2 (*eptr) \s0\d +.if n .IR frexp ( value )*2** (*eptr). +.PP +.I Ldexp +returns the quantity +.if t .IR value ×2\u\s-2 exp \s0\d. +.if n .IR value *2** exp. +.PP +.I Modf +returns the positive fractional part of +.I value +and stores the integer part indirectly +through +.IR iptr . +.SH SOURCE +.B /sys/src/libc/port/frexp.c +.SH SEE ALSO +.IR intro (2) +.SH DIAGNOSTICS +.I Ldexp +returns 0 for underflow and the appropriately signed infinity +for overflow. diff --git a/static/plan9-4e/man2/fscanf.2 b/static/plan9-4e/man2/fscanf.2 new file mode 100644 index 00000000..bb94924f --- /dev/null +++ b/static/plan9-4e/man2/fscanf.2 @@ -0,0 +1,402 @@ +.TH FSCANF 2 +.SH NAME +fscanf, scanf, sscanf, vfscanf \- scan formatted input +.SH SYNOPSIS +.B "#include " +.PP +.B +int fscanf(FILE *f, char *format, ...) +.PP +.B +int scanf(char *format, ... ) +.PP +.B +int sscanf(char *s, char *format, ...) +.PP +.B +int vfscanf(FILE *stream, char *format, char *args) +.SH DESCRIPTION +.I Fscanf +reads from the named input stream +.I f +(see +.IR fopen (2)) +under control of the string pointed to by +.I format +that specifies the admissible input sequences and how they are to be converted +for assignment, using subsequent arguments as pointers to the objects +to receive the converted input. +If there are insufficient arguments for the format, the behavior is undefined. +If the format is exhausted while arguments remain, the excess arguments +are evaluated (as always) but are otherwise ignored. +.PP +.I Scanf +and +.I sscanf +are the same, but they read from +.I stdin +and the character string +.IR s , +respectively. +.I Vfscanf +is like +.IR scanf , +except the +.I args +argument is a pointer to an argument in an argument list of the +calling function and the effect is as if the calling function's +argument list from that point on is passed to the scanf routines. +.PP +The format is composed of zero or more directives: +one or more white-space characters; an ordinary character (not +.BR % ); +or a conversion specification. +Each conversion specification is introduced by the character +.BR %. +After the +.BR % , +the following appear in sequence: +.PP +.RS +An optional assignment-suppressing character +.BR * . +.PP +An optional decimal integer that specifies the maximum field width. +.PP +An optional +.BR h , +.B l +(ell) or +.B L +indicating the size of the receiving object. +The conversion specifiers +.BR d , +.BR i , +and +.B n +shall be preceded by +.B h +if the corresponding argument is a pointer to +.B short +rather than a pointer to +.BR int , +or by +.B l +if it is a pointer to +.BR long . +Similarly, the conversion specifiers +.BR o , +.BR u , +and +.B x +shall be preceded by +.B h +if the corresponding argument is a pointer to +.B unsigned +.B short +rather than a pointer to +.BR unsigned , +or by +.B l +if it is a pointer to +.B unsigned +.BR long . +Finally, the conversion specifiers +.BR e , +.BR f , +and +.B g +shall be preceded by +.B l +if the corresponding argument is a pointer to +.B double +rather than a pointer to +.BR float , +or by +.B L +if it is a pointer to +.B long +.BR double . +If an +.BR h , +.BR l , +or +.B L +appears with any other conversion specifier, the behavior is undefined. +.PP +A character that specifies the type of conversion to be applied. +The valid conversion specifiers are described below. +.RE +.PP +.I Fscanf +executes each directive of the format in turn. +If a directive fails, as detailed below, +.I fscanf +returns. +Failures are described as input failures (due to the unavailability +of input), +or matching failures (due to inappropriate input). +.PP +A directive composed of white space is executed by reading input up +to the first non-white-space character (which remains unread), +or until no more characters can be read. +.PP +A directive that is an ordinary character is executed by reading +the next character from the stream. +If if differs from the one comprising the directive, +the directive fails, and the differing and subsequent characters +remain unread. +.PP +A directive that is a conversion specification defines a set of +matching input sequences, as described below for each specifier. +A conversion specification is executed in the following steps: +.PP +Input white-space characters (as specified by +.IR isspace , +see +.IR ctype (2)) +are skipped, unless the specification includes a +.BR [ , +.BR c , +or +.B n +specifier. +.PP +An input item is read from the stream, +unless the specification includes an +.B n +specifier. +An input item is defined as the longest sequence of input characters +(up to any specified maximum field width) which is an initial +subsequence of a matching sequence. +The first character, if any, after the input item remains unread. +If the length of the input item is zero, the execution of +the directive fails: this condition is a matching failure, +unless an error prevented input from the stream, +in which case it is an input failure. +.PP +Except in the case of a +.B % +specifier, the input item (or, in the case of a +.B %n +directive, the count of input characters) +is converted to a type appropriate to the conversion specifier. +If the input item is not a matching sequence, the execution of +the directive fails: this condition is a matching failure. +Unless assignment suppression was indicated by a +.BR * , +the result of the conversion is placed in the object pointed to by the +first argument following the +.I format +argument that has not already received a conversion result. +If this object does not have an appropriate type, +or if the result of the conversion cannot be represented +in the space provided, the behavior is undefined. +.PP +The following conversion specifiers are valid: +.TP 6 +.B d +Matches an optionally signed decimal integer, +whose format is the same as expected for the subject sequence +of the +.I strtol +(see +.IR atof (2)) +function with 10 for the +.B base +argument. +The corresponding argument shall be a pointer to +.BR int . +.TP +.B i +Matches an optionally signed decimal integer, +whose format is the same as expected for the subject sequence +of the +.I strtol +function with 0 for the +.B base +argument. +The corresponding argument shall be a pointer to +.BR int . +.TP +.B o +Matches an optionally signed octal integer, +whose format is the same as expected for the subject sequence +of the +.I strtoul +(see +.IR atof (2)) +function with 8 for the +.B base +argument. +The corresponding argument shall be a pointer to +.B unsigned +.BR int . +.TP +.B u +Matches an optionally signed decimal integer, +whose format is the same as expected for the subject sequence +of the +.I strtoul +function with 10 for the +.B base +argument. +The corresponding argument shall be a pointer to +.B unsigned +.BR int . +.TP +.B x +Matches an optionally signed hexadecimal integer, +whose format is the same as expected for the subject sequence +of the +.I strtoul +function with 16 for the +.B base +argument. +The corresponding argument shall be a pointer to +.B unsigned +.BR int . +.TP +.BR e , f , g +Matches an optionally signed floating-point number, whose format is +the same as expected for the subject string of the +.I strtod +(see +.IR atof (2)) +function. +The corresponding argument shall be a pointer to +.BR float . +.TP +.B s +Matches a sequence of non-white-space characters. +The corresponding argument shall be a pointer to the initial +character of an array large enough to accept the sequence +and a terminating NUL (0) character, which will be added automatically. +.TP +.B [ +Matches a nonempty sequence of characters from a set of expected +characters (the +.IR scanset ). +The corresponding argument shall be a pointer to the initial +character of an array large enough to accept the sequence and a terminating +NUL character, which will be added automatically. +The conversion specifier includes all subsequent characters in the +.I format +string, up to and including the matching right brace +.RB ( ] ). +The characters between the brackets (the +.IR scanlist ) +comprise the scanset, unless the character after the left bracket +is a circumflex +.RB ( ^ ), +in which case the scanset contains all characters that do not appear +in the scanlist between the circumflex and the right bracket. +As a special case, if the conversion specifier begins with +.B [] +or +.BR [^] , +the right bracket character is in the scanlist and the next +right bracket character is the matching right bracket +that ends the specification. +If a +.B - +character is in the scanlist and is not the first, nor the second +where the first character is a +.BR ^ , +nor the last character, the behavior is implementation-defined +(in Plan 9: the scanlist includes all characters in the +.SM ASCII +(sic) +range between the two characters on either side of the +.BR - ). +.TP +.B c +Matches a sequence of characters of the number specified by the field width +(1 if no field width is present in the directive). +The corresponding argument shall be a pointer to the initial character +of an array large enough to accept the sequence. +No NUL character is added. +.TP +.B P +Matches an implementation-defined set of sequences, +which should be the same as the set of sequences that may be +produced by the +.B %P +conversion of the +.IR fprintf (2) +function +(in Plan 9, a hexadecimal number). +The corresponding argument shall be a pointer to a pointer to +.BR void . +The interpretation of the input item is implementation defined; +however, for any input item other than a value converted earlier +during the same program execution, the behavior of the +.B %P +conversion is undefined. +.TP +.B n +No input is consumed. +The corresponding argument shall be a pointer to integer into which +is written the number of characters read from the input stream so far +by this call to +.IR fscanf . +Execution of a +.B %n +directive does not increment the assignment count returned at the +completion of +.IR fscanf . +.TP +.B % +Matches a single +.BR % ; +no conversion or assignment occurs. +The complete conversion specification shall be +.BR %% . +.PD +.PP +If a conversion specification is invalid, the behavior is undefined. +.PP +The conversion specifiers +.BR E , +.BR G , +and +.B X +are also valid and behave the same as, respectively, +.BR e , +.BR g , +and +.BR x . +.PP +If end-of-file is encountered during input, conversion is terminated. +If end-of-file occurs before any characters matching the current +directive have been read (other than leading white space, +where permitted), execution of the current directive terminates with +an input failure; +otherwise, unless execution of the current directive is terminated +with a matching failure, execution of the following directive +(if any) is terminated with an input failure. +.PP +If conversion terminates on a conflicting input character, +the offending input character is left unread in the input stream. +Trailing white space (including newline characters) is left unread +unless matched by a directive. +The success of literal matches and suppressed assignments is not +directly determinable other than via the +.B %n +directive. +.PP +The return value from +.I fscanf +is the number of input items assigned, which can be fewer than +provided for, or even zero, in the event of an early matching failure. +However, if an input failure occurs before any conversion, +.B EOF +is returned. +.SH SOURCE +.B /sys/src/libstdio +.SH "SEE ALSO" +.IR fopen (2), +.IR fgetc (2) +.SH BUGS +Does not know about +.SM UTF. diff --git a/static/plan9-4e/man2/fversion.2 b/static/plan9-4e/man2/fversion.2 new file mode 100644 index 00000000..711cca7b --- /dev/null +++ b/static/plan9-4e/man2/fversion.2 @@ -0,0 +1,72 @@ +.TH FVERSION 2 +.SH NAME +fversion \- initialize 9P connection and negotiate version +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +.PP +.ft P +.B +int fversion(int fd, int bufsize, char *version, int nversion) +.SH DESCRIPTION +.PP +.I Fversion +is used to initialize the 9P connection represented by +.I fd +and to negotiate the version of the protocol to be used. +.PP +The +.I bufsize +determines the size of the I/O buffer used to stage 9P requests to the server, +subject to the constraints of the server itself. +The +.I version +is a text string that represents the highest version level the protocol will support. +The +.I version +will be overwritten with the negotiated, possibly lower, version of the protocol. +The return value of +.I fversion +is the length of the returned version string; the value of +.I nversion +is therefore not the length of the version string presented to the system call, +but the total length of the buffer to accept the final result, in the manner of a read system call. +.PP +Default values of zero for +.I bufsize +and the empty string for +.I version +will negotiate sensible defaults for the connection. +If +.I version +is the empty string, +.I nversion +must still be large enough to receive the returned version string. +.PP +The interpretation of the version strings is defined in +.IR version (5). +.PP +It is rare to use +.IR fversion +directly; usually the default negotiation performed +by the kernel during +.B mount +(see +.IR bind (2)) +or even more commonly +.B amount +(see +.IR auth (2)) +is sufficient. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (5), +.IR version (5), +.IR fauth (2). +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/genrandom.2 b/static/plan9-4e/man2/genrandom.2 new file mode 100644 index 00000000..6cc1475d --- /dev/null +++ b/static/plan9-4e/man2/genrandom.2 @@ -0,0 +1,44 @@ +.TH GENRANDOM 2 +.SH NAME +genrandom, prng \- random number generation +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +void genrandom(uchar *buf, int nbytes) +.PP +.B +void prng(uchar *buf, int nbytes) +.SH DESCRIPTION +.PP +Most security software requires a source of random or, at the +very least, unguessable numbers. +.PP +.I Genrandom +fills a buffer with bytes from the X9.17 pseudo-random +number generator. The X9.17 generator is seeded by 24 +truly random bytes read from +.BR /dev/random . +.PP +.I Prng +uses the native +.IR rand (2) +pseudo-random number generator to fill the buffer. Used with +.IR srand , +this function can produce a reproducible stream of pseudo random +numbers useful in testing. +.PP +Both functions may be passed to +.I mprand +(see +.IR mp (2)). +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2) diff --git a/static/plan9-4e/man2/getcallerpc.2 b/static/plan9-4e/man2/getcallerpc.2 new file mode 100644 index 00000000..f7505ce5 --- /dev/null +++ b/static/plan9-4e/man2/getcallerpc.2 @@ -0,0 +1,38 @@ +.TH GETCALLERPC 2 +.SH NAME +getcallerpc \- fetch return PC of current function +.SH SYNOPSIS +.br +.B #include +.br +.B #include +.PP +.B ulong getcallerpc(void *firstarg) +.SH DESCRIPTION +.I Getcallerpc +is a portable way to discover the PC to which the current function will return. +.I Firstarg +should be a pointer to the first argument to the function in question. +.SH EXAMPLE +.IP +.EX +void +printpc(ulong arg) +{ + print("Called from %.8lux\en", getcallerpc(&arg)); +} + +void +main(int argc, char *argv[]) +{ + printpc(0); + printpc(0); + printpc(0); +} +.EE +.SH SOURCE +.B /sys/src/libc/$objtype/getcallerpc.[cs] +.SH BUGS +The +.I firstarg +parameter should not be necessary. diff --git a/static/plan9-4e/man2/getenv.2 b/static/plan9-4e/man2/getenv.2 new file mode 100644 index 00000000..339acb82 --- /dev/null +++ b/static/plan9-4e/man2/getenv.2 @@ -0,0 +1,44 @@ +.TH GETENV 2 +.SH NAME +getenv, putenv \- access environment variables +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +char* getenv(char *name) +.br +.B +int putenv(char *name, char *val) +.fi +.SH DESCRIPTION +.I Getenv +reads the contents of +.BI /env/ name +(see +.IR env (3)) +into memory allocated with +.IR malloc (2), +0-terminates it, +and returns a pointer to that area. +If no file exists, 0 +is returned. +.PP +.I Putenv +creates the file +.BI /env/ name +and writes the string +.I val +to it. The terminating +.B 0 +is not written. +If the file value cannot be written, \-1 is returned. +.SH SOURCE +.B /sys/src/libc/9sys +.SH SEE ALSO +.IR env (3) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/getfcr.2 b/static/plan9-4e/man2/getfcr.2 new file mode 100644 index 00000000..3f742a8e --- /dev/null +++ b/static/plan9-4e/man2/getfcr.2 @@ -0,0 +1,125 @@ +.TH GETFCR 2 +.SH NAME +getfcr, setfcr, getfsr, setfsr \- control floating point +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +ulong getfcr(void) +.PP +.B +void setfcr(ulong fcr) +.PP +.B +ulong getfsr(void) +.PP +.B +void setfsr(ulong fsr) +.SH DESCRIPTION +These routines provide a fairly portable interface to control the +rounding and exception characteristics of IEEE 754 floating point units. +In effect, they define a pair of pseudo-registers, the floating +point control register, +.BR fcr , +which affects rounding, precision, and exceptions, and the +floating point status register, +.BR fsr , +which holds the accrued exception bits. +Each register has a +.I get +routine to retrieve its value, a +.I set +routine to modify it, +and macros that identify its contents. +.PP +The +.B fcr +contains bits that, when set, halt execution upon exceptions: +.B FPINEX +(enable inexact exceptions), +.B FPOVFL +(enable overflow exceptions), +.B FPUNFL +(enable underflow exceptions), +.B FPZDIV +(enable zero divide exceptions), and +.B FPINVAL +(enable invalid operation exceptions). +Rounding is controlled by installing in +.BR fcr , +under mask +.BR FPRMASK , +one of the values +.B FPRNR +(round to nearest), +.B FPRZ +(round towards zero), +.B FPRPINF +(round towards positive infinity), and +.B FPRNINF +(round towards negative infinity). +Precision is controlled by installing in +.BR fcr , +under mask +.BR FPPMASK , +one of the values +.B FPPEXT +(extended precision), +.B FPPSGL +(single precision), and +.B FPPDBL +(double precision). +.PP +The +.B fsr +holds the accrued exception bits +.BR FPAINEX , +.BR FPAOVFL , +.BR FPAUNFL , +.BR FPAZDIV , +and +.BR FPAINVAL , +corresponding to the +.B fsr +bits without the +.B A +in the name. +.PP +Not all machines support all modes. If the corresponding mask +is zero, the machine does not support the rounding or precision modes. +On some machines it is not possible to clear selective accrued +exception bits; a +.I setfsr +clears them all. +The exception bits defined here work on all architectures. +By default, the initial state is equivalent to +.IP +.EX +setfcr(FPPDBL|FPRNR|FPINVAL|FPZDIV|FPOVFL); +.EE +.PP +The default state of the floating point unit is fixed for a given +architecture but is undefined across Plan 9: the default is +to provide what the hardware does most efficiently. +Use these routines +if you need guaranteed behavior. +Also, gradual underflow is not available on some machines. +.SH EXAMPLE +To enable overflow traps and make sure registers are rounded +to double precision (for example on the MC68020, where the +internal registers are 80 bits long): +.EX +.IP +.ft L +ulong fcr; +fcr = getfcr(); +fcr |= FPOVFL; +fcr &= ~FPPMASK; +fcr |= FPPDBL; +setfcr(fcr); +.ft +.EE +.SH SOURCE +.B /sys/src/libc/$objtype/getfcr.s diff --git a/static/plan9-4e/man2/getfields.2 b/static/plan9-4e/man2/getfields.2 new file mode 100644 index 00000000..9f899773 --- /dev/null +++ b/static/plan9-4e/man2/getfields.2 @@ -0,0 +1,88 @@ +.TH GETFIELDS 2 +.SH NAME +getfields, gettokens, tokenize \- break a string into fields +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLchar* \fP'u +.B +int getfields(char *str, char **args, int maxargs, int multiflag, +.br +.B + char *delims) +.PP +.B +int gettokens(char *str, char **args, int maxargs, char *delims) +.PP +.B +int tokenize(char *str, char **args, int maxargs) +.SH DESCRIPTION +.I Getfields +breaks the null-terminated +.SM UTF +string +.I str +into at most +.I maxargs +null-terminated fields and places pointers to the start of these fields in the array +.IR args . +Some of the bytes in +.I str +are overwritten. +If there are more than +.I maxargs +fields, +only the first +.I maxargs +fields will be set. +.I Delims +is a +.SM UTF +string defining a set of delimiters. +.PP +If +.I multiflag +is zero, +adjacent fields are separated by exactly one delimiter. +A string containing +.I n +delimiter characters +contains +.IR n +1 +fields. +If the +.I multiflag +argument is not zero, +a field is a non-empty string of non-delimiters. +.PP +Getfields +returns the number of tokens processed. +.PP +.I Gettokens +is the same as +.I getfields +with +.I multiflag +non-zero, +except that fields may be quoted using single quotes, in the manner +of +.IR rc (1). +See +.IR quote (2) +for related quote-handling software. +.PP +.I Tokenize +is +.I gettokens +with +.I delims +set to \f5"\et\er\en "\fP. +.SH SOURCE +.B /sys/src/libc/port/tokenize.c +.SH SEE ALSO +.I strtok +in +.IR strcat (2), +.IR quote (2). diff --git a/static/plan9-4e/man2/getpid.2 b/static/plan9-4e/man2/getpid.2 new file mode 100644 index 00000000..1c49f3ab --- /dev/null +++ b/static/plan9-4e/man2/getpid.2 @@ -0,0 +1,41 @@ +.TH GETPID 2 +.SH NAME +getpid, getppid \- get process ids +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int getpid(void) +.PP +.B +int getppid(void) +.SH DESCRIPTION +.I Getpid +reads +.B /dev/pid +(see +.IR cons (3)) +and converts it to get the process id of the current process, +a number guaranteed to be unique among all running processes on the machine +executing +.IR getpid . +.PP +.I Getppid +reads +.B /dev/ppid +(see +.IR cons (3)) +and converts it to get the id of the parent of the current process. +.SH SOURCE +.B /sys/src/libc/9sys +.SH SEE ALSO +.IR intro (2), +.IR cons (3), +.IR proc (3) +.SH DIAGNOSTICS +Returns 0 and +sets +.I errstr +if unsuccessful. diff --git a/static/plan9-4e/man2/getuser.2 b/static/plan9-4e/man2/getuser.2 new file mode 100644 index 00000000..7303fe24 --- /dev/null +++ b/static/plan9-4e/man2/getuser.2 @@ -0,0 +1,37 @@ +.TH GETUSER 2 +.SH NAME +getuser, sysname \- get user or system name +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +char* getuser(void) +.PP +.B +char* sysname(void) +.SH DESCRIPTION +.I Getuser +returns a pointer to static data which contains the +null-terminated +name of the user who +owns the current process. +.I Getuser +reads +.B /dev/user +to find the name. +.PP +.I Sysname +provides the same service for the file +.BR #c/sysname , +which contains the name of the machine. +Unlike +.IR getuser , +.I sysname +caches the string, reading the file only once. +.SH SOURCE +.B /sys/src/libc/port/getuser.c +.SH SEE ALSO +.IR intro (2), +.IR cons (3) diff --git a/static/plan9-4e/man2/getwd.2 b/static/plan9-4e/man2/getwd.2 new file mode 100644 index 00000000..ac99719e --- /dev/null +++ b/static/plan9-4e/man2/getwd.2 @@ -0,0 +1,37 @@ +.TH GETWD 2 +.SH NAME +getwd \- get current directory +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +char* getwd(char *buf, int size) +.SH DESCRIPTION +.I Getwd +fills +.I buf +with a null-terminated string representing the current directory +and returns +.IR buf . +.PP +.I Getwd +places no more than +.I size +bytes in the buffer provided. +.SH SOURCE +.B /sys/src/libc/9sys/getwd.c +.SH "SEE ALSO" +.IR pwd (1), +.IR fd2path (2) +.SH DIAGNOSTICS +On error, zero is returned. +.IR Errstr (2) +may be consulted for more information. +.SH BUGS +Although the name returned by +.I getwd +is guaranteed to be the path used to reach the directory, +if the name space has changed underfoot, the name may be +incorrect. diff --git a/static/plan9-4e/man2/graphics.2 b/static/plan9-4e/man2/graphics.2 new file mode 100644 index 00000000..e318967f --- /dev/null +++ b/static/plan9-4e/man2/graphics.2 @@ -0,0 +1,632 @@ +.TH GRAPHICS 2 +.SH NAME +Display, Point, Rectangle, Cursor, initdraw, geninitdraw, drawerror, initdisplay, closedisplay, getdefont, getwindow, gengetwindow, flushimage, bufimage, lockdisplay, unlockdisplay, cursorswitch, cursorset, openfont, buildfont, freefont, Pfmt, Rfmt, strtochan, chantostr, chantodepth \- interactive graphics +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +#include +#include +.ft P +.PP +.ta \w'\fLFont* 'u +.B +int initdraw(void (*errfun)(Display*, char*), char *font, +.B + char *label) +.PP +.B +int geninitdraw(char *devdir, void(*errfun)(Display*, char*), +.PP +.B + char *font, char *label, char *mousedir, char *windir, +.B + int ref) +.PP +.B +void drawerror(Display *d, char *msg) +.PP +.B +Display* initdisplay(char *devdir, char *win, void(*errfun)(Display*, char*)) +.PP +.B +void closedisplay(Display *d) +.PP +.B +Font* getdefont(Display *d) +.PP +.B +int flushimage(Display *d, int vis) +.PP +.B +int bufimage(Display *d, int n) +.PP +.B +int lockdisplay(Display *d) +.PP +.B +int unlockdisplay(Display *d) +.PP +.B +int getwindow(Display *d, int ref) +.PP +.B +int gengetwindow(Display *d, char *winname, +.br +.B + Image **ip, Screen **sp, int ref) +.PP +.B +void cursorswitch(Cursor *curs) +.PP +.B +void cursorset(Point p) +.PP +.B +Font* openfont(Display *d, char *name) +.PP +.B +Font* buildfont(Display *d, char *desc, char *name) +.PP +.B +void freefont(Font *f) +.PP +.B +int Pfmt(Fmt*) +.PP +.B +int Rfmt(Fmt*) +.PP +.B +ulong strtochan(char *s) +.PP +.B +char* chantostr(char *s, ulong chan) +.PP +.B +int chantodepth(ulong chan) +.PP +.B +extern Display *display +.PP +.B +extern Image *screen +.PP +.B +extern Screen *_screen +.PP +.B +extern Font *font +.fi +.SH DESCRIPTION +A +.B Display +structure represents a connection to the graphics device, +.IR draw (3), +holding all graphics resources associated with the connection, +including in particular raster image data in use by the client program. +The structure is defined (in part) as: +.IP +.EX +.ta 6n +10n +typedef +struct Display +{ + ... + ulong chan; + int depth; + void (*error)(Display*, char*); + ... + Image *black; + Image *white; + Image *opaque; + Image *transparent; + Image *image; + Font *defaultfont; + Subfont *defaultsubfont; + ... +}; +.EE +.PP +A +.B Point +is a location in an Image +(see below and +.IR draw (2)), +such as the display, and is defined as: +.IP +.EX +.ta 6n +typedef +struct Point { + int x; + int y; +} Point; +.EE +.PP +The coordinate system has +.I x +increasing to the right and +.I y +increasing down. +.PP +A +.B Rectangle +is a rectangular area in an image. +.IP +.EX +.ta 6n +typedef +struct Rectangle { + Point min; /* upper left */ + Point max; /* lower right */ +} Rectangle; +.EE +.PP +By definition, +.BR min.x ≤ max.x +and +.BR min.y ≤ max.y . +By convention, the right (maximum +.IR x ) +and bottom (maximum +.IR y ) +edges are +excluded from the represented rectangle, so abutting rectangles have no +points in common. +Thus, +.B max +contains the coordinates of the first point beyond the rectangle. +.PP +The +.B Image +data structure is defined in +.IR draw (2). +.PP +A +.B Font +is a set of character images, indexed by runes (see +.IR utf (6)). +The images are organized into +.BR Subfonts , +each containing the images for a small, contiguous set of runes. +The detailed format of these data structures, +which are described in detail in +.IR cachechars (2), +is immaterial for most applications. +.B Font +and +.B Subfont +structures contain two interrelated fields: +.LR ascent , +the distance from the top of the highest character +(actually the top of the image holding all the characters) +to the baseline, +and +.LR height , +the distance from the top of the highest character to the bottom of +the lowest character (and hence, the interline spacing). +See +.IR cachechars (2) +for more details. +.PP +.I Buildfont +parses the font description in the buffer +.BR desc , +returning a +.B Font* +pointer that can be used by +.B string +(see +.IR draw (2)) +to draw characters from the font. +.I Openfont +does the same, but reads the description +from the named file. +.I Freefont +frees a font. +The convention for naming font files is: +.IP +.B /lib/font/bit/\fIname\fP/\fIrange\fP.\fIsize\fP.font +.PD +.PP +where +.I size +is approximately the height in pixels of the lower case letters +(without ascenders or descenders). +.I Range +gives some indication of which characters will be available: for example +.BR ascii , +.BR latin1 , +.BR euro , +or +.BR unicode . +.B Euro +includes most European languages, punctuation marks, the International Phonetic +Alphabet, etc., but no Oriental languages. +.B Unicode +includes every character for which appropriate-sized images exist on the system. +.PP +A +.I Cursor +is defined: +.IP +.EX +.ta 6n +\w'Point 'u +typedef struct +Cursor { + Point offset; + uchar clr[2*16]; + uchar set[2*16]; +} Cursor; +.EE +.PP +The arrays are arranged in rows, two bytes per row, left to +right in big-endian order to give 16 rows +of 16 bits each. +A cursor is displayed on the screen by adding +.B offset +to the current mouse position, using +.B clr +as a mask to draw white at the pixels where +.B clr +is one, and then drawing black at the pixels where +.B set +is one. +.PP +The routine +.I initdraw +connects to the display; it returns \-1 if it fails and sets the error string. +.I Initdraw +sets up the global variables +.B display +(the +.B Display +structure representing the connection), +.B screen +(an +.B Image +representing the display memory itself or, if +.IR rio (1) +is running, the client's window), +and +.B font +(the default font for text). +The arguments to +.I initdraw +include a +.IR label , +which is written to +.B /dev/label +if non-nil +so that it can be used to identify the window when hidden (see +.IR rio (1)). +The font is created by reading the named +.I font +file. If +.B font +is null, +.I initdraw +reads the file named in the environment variable +.BR $font ; +if +.B $font +is not set, it imports the default (usually minimal) +font from the operating system. +The global +.I font +will be set to point to the resulting +.B Font +structure. +The +.I errfun +argument is a +.I graphics error function +to call in the event of a fatal error in the library; it must never return. +Its arguments are the +display pointer and an error string. +If +.I errfun +is nil, the library provides a default, called +.IR drawerror . +Another effect of +.I initdraw +is that it installs +.IR print (2) +formats +.I Pfmt +and +.I Rfmt +as +.L %P +and +.L %R +for printing +.B Points +and +.BR Rectangles . +.PP +The +.I geninitdraw +function provides a less automated way to establish a connection, for programs +that wish to connect to multiple displays. +.I Devdir +is the name of the directory containing the device files for the display +(if nil, default +.BR /dev ); +.IR errfun , +.IR font , +and +.I label +are as in +.IR initdraw ; +.I mousedir +and +.I windir +are the directories holding the +.B mouse +and +.B winname +files; and +.I ref +specifies the refresh function to be used to create the window, if running under +.IR rio (1) +(see +.IR window (2)). +.PP +.I Initdisplay +is part of +.IR geninitdraw ; +it sets up the display structures but does not allocate any fonts or call +.IR getwindow . +The arguments are similar to those of +.IR initdraw ; +.I win +names the directory, default +.BR /dev , +in which the files associated with the window reside. +.I Closedisplay +disconnects the display and frees the associated data structures. +.I Getdefont +builds a +.B Font +structure from in-core data describing a default font. +None of these routines is needed by most programs, since +.I initdraw +calls them as needed. +.PP +The data structures associated with the display must be protected in a multi-process program, +because they assume only one process will be using them at a time. +Multi-process programs should set +.B display->locking +to +.BR 1 , +to notify the library to use a locking protocol for its own accesses, +and call +.I lockdisplay +and +.I unlockdisplay +around any calls to the graphics library that will cause messages to be sent to the display device. +.I Initdraw +and +.I geninitdraw +initialize the display to the locked state. +.PP +.I Getwindow +returns a pointer to the window associated with the application; it is called +automatically by +.I initdraw +to establish the +.B screen +pointer but must be called after each resizing of the window to restore +the library's connection to the window. +If +.B rio +is not running, it returns +.BR display->image ; +otherwise it negotiates with +.B rio +by looking in +.B /dev/winname +to find the name of the window and opening it using +.B namedimage +(see +.IR allocimage (2)). +The resulting window will be created using the refresh method +.I ref +(see +.IR window (2)); +this should almost always be +.B Refnone +because +.B rio +provides backing store for the window. +.PP +.I Getwindow +overwrites the global variables +.BR screen , +a pointer to the +.B Image +defining the window (or the overall display, if no window system is running); and +.BR _screen , +a pointer to the +.B Screen +representing the root of the window's hierarchy. (See +.IR window (2). +The overloading of the +.B screen +word is an unfortunate historical accident.) +.I Getwindow +arranges that +.B screen +point to the portion of the window inside the border; +sophisticated clients may use +.B _screen +to make further subwindows. +Programs desiring multiple independent windows +may use the mechanisms of +.IR rio (4) +to create more windows (usually by a fresh mount of the window sytem +in a directory other than +.BR /dev ), +then use +.I gengetwindow +to connect to them. +.IR Gengetwindow 's +extra arguments are the full path of the window's +.B winname +file and pointers to be overwritten with the values of the `global' +.B Image +and +.B Screen +variables for the new window. +.PP +The mouse cursor is always displayed. +The initial cursor is an arrow. +.I Cursorswitch +causes the argument cursor to be displayed instead. +A zero argument causes a switch back to the arrow cursor. +.I Cursorset +moves the mouse cursor to position +.IR p , +provided (if in a window) that the requesting program is +executing in the current window and the mouse is within +the window boundaries; otherwise +.I cursorset +is a no-op. +.PP +The graphics functions described in +.IR draw (2), +.IR allocimage (2), +.IR cachechars (2), +and +.IR subfont (2) +are implemented by writing commands to files under +.B /dev/draw +(see +.IR draw (3)); +the writes are buffered, so the functions may not take effect immediately. +.I Flushimage +flushes the buffer, doing all pending graphics operations. +If +.I vis +is non-zero, any changes are also copied from the `soft screen' (if any) in the +driver to the visible frame buffer. +The various allocation routines in the library flush automatically, as does the event +package (see +.IR event (2)); +most programs do not need to call +.IR flushimage . +It returns \-1 on error. +.PP +.I Bufimage +is used to allocate space for +.I n +bytes in the display buffer. +It is used by all the graphics routines to send messages to the display. +.PP +The functions +.I strtochan +and +.I chantostr +convert between the channel descriptor strings +used by +.IR image (6) +and the internal +.B ulong +representation +used by the graphics protocol +(see +.IR draw (3)'s +.B b +message). +.B Chantostr +writes at most nine bytes into the buffer pointed at by +.I s +and returns +.I s +on success, +0 +on failure. +.B Chantodepth +returns the number of bits per pixel used by the +format specified by +.IR chan . +Both +.B chantodepth +and +.B strtochan +return 0 when presented +with bad input. +.SH EXAMPLES +To reconnect to the window after a resize event, +.IP +.EX +if(getwindow(display, Refnone) < 0) + sysfatal("resize failed: %r"); +.EE +.PP +To create and set up a new +.IR rio (1) +window, +.IP +.EX +Image *screen2; +Screen *_screen2; + +srvwsys = getenv("wsys"); +if(srvwsys == nil) + sysfatal("can't find $wsys: %r"); +rfork(RFNAMEG); /* keep mount of rio private */ + +fd = open(srvwsys, ORDWR); +if(fd < 0) + sysfatal("can't open $wsys: %r"); + +/* mount creates window; see \f2rio\fP(4) */ +if(mount(fd, "/tmp", MREPL, "new -dx 300-dy 200") < 0) + sysfatal("can't mount new window: %r"); +if(gengetwindow(display, "/tmp/winname", + &screen2, &_screen2, Refnone) < 0) + sysfatal("resize failed: %r"); + +/* now open /tmp/cons, /tmp/mouse */ +\&... +.EE +.SH FILES +.BR /lib/font/bit " directory of fonts +.SH SOURCE +.B /sys/src/libdraw +.SH "SEE ALSO" +.IR rio (1), +.IR addpt (2), +.IR allocimage (2), +.IR cachechars (2), +.IR subfont (2), +.IR draw (2), +.IR event (2), +.IR frame (2), +.IR print (2), +.IR window (2), +.IR draw (3), +.IR rio (4), +.IR image (6), +.IR font (6) +.SH DIAGNOSTICS +An error function may call +.IR errstr (2) +for further diagnostics. +.SH BUGS +The names +.B clr +and +.B set +in the +.B Cursor +structure are reminders of an archaic color map +and might be more appropriately called +.B white +and +.BR black . diff --git a/static/plan9-4e/man2/html.2 b/static/plan9-4e/man2/html.2 new file mode 100644 index 00000000..ef641e41 --- /dev/null +++ b/static/plan9-4e/man2/html.2 @@ -0,0 +1,1420 @@ +.TH HTML 2 +.SH NAME +parsehtml, +printitems, +validitems, +freeitems, +freedocinfo, +dimenkind, +dimenspec, +targetid, +targetname, +fromStr, +toStr +\- HTML parser +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +#include +.ft P +.PP +.ta \w'\fLToken* 'u +.B +Item* parsehtml(uchar* data, int datalen, Rune* src, int mtype, +.B + int chset, Docinfo** pdi) +.PP +.B +void printitems(Item* items, char* msg) +.PP +.B +int validitems(Item* items) +.PP +.B +void freeitems(Item* items) +.PP +.B +void freedocinfo(Docinfo* d) +.PP +.B +int dimenkind(Dimen d) +.PP +.B +int dimenspec(Dimen d) +.PP +.B +int targetid(Rune* s) +.PP +.B +Rune* targetname(int targid) +.PP +.B +uchar* fromStr(Rune* buf, int n, int chset) +.PP +.B +Rune* toStr(uchar* buf, int n, int chset) +.SH DESCRIPTION +.PP +This library implements a parser for HTML 4.0 documents. +The parsed HTML is converted into an intermediate representation that +describes how the formatted HTML should be laid out. +.PP +.I Parsehtml +parses an entire HTML document contained in the buffer +.I data +and having length +.IR datalen . +The URL of the document should be passed in as +.IR src . +.I Mtype +is the media type of the document, which should be either +.B TextHtml +or +.BR TextPlain . +The character set of the document is described in +.IR chset , +which can be one of +.BR US_Ascii , +.BR ISO_8859_1 , +.B UTF_8 +or +.BR Unicode . +The return value is a linked list of +.B Item +structures, described in detail below. +As a side effect, +.BI * pdi +is set to point to a newly created +.B Docinfo +structure, containing information pertaining to the entire document. +.PP +The library expects two allocation routines to be provided by the +caller, +.B emalloc +and +.BR erealloc . +These routines are analogous to the standard malloc and realloc routines, +except that they should not return if the memory allocation fails. +In addition, +.B emalloc +is required to zero the memory. +.PP +For debugging purposes, +.I printitems +may be called to display the contents of an item list; individual items may +be printed using the +.B %I +print verb, installed on the first call to +.IR parsehtml . +.I validitems +traverses the item list, checking that all of the pointers are valid. +It returns +.B 1 +is everything is ok, and +.B 0 +if an error was found. +Normally, one would not call these routines directly. +Instead, one sets the global variable +.I dbgbuild +and the library calls them automatically. +One can also set +.IR warn , +to cause the library to print a warning whenever it finds a problem with the +input document, and +.IR dbglex , +to print debugging information in the lexer. +.PP +When an item list is finished with, it should be freed with +.IR freeitems . +Then, +.I freedocinfo +should be called on the pointer returned in +.BI * pdi\f1. +.PP +.I Dimenkind +and +.I dimenspec +are provided to interpret the +.B Dimen +type, as described in the section +.IR "Dimension Specifications" . +.PP +Frame target names are mapped to integer ids via a global, permanent mapping. +To find the value for a given name, call +.IR targetid , +which allocates a new id if the name hasn't been seen before. +The name of a given, known id may be retrieved using +.IR targetname . +The library predefines +.BR FTtop , +.BR FTself , +.B FTparent +and +.BR FTblank . +.PP +The library handles all text as Unicode strings (type +.BR Rune* ). +Character set conversion is provided by +.I fromStr +and +.IR toStr . +.I FromStr +takes +.I n +Unicode characters from +.I buf +and converts them to the character set described by +.IR chset . +.I ToStr +takes +.I n +bytes from +.IR buf , +interpretted as belonging to character set +.IR chset , +and converts them to a Unicode string. +Both routines null-terminate the result, and use +.B emalloc +to allocate space for it. +.SS Items +The return value of +.I parsehtml +is a linked list of variant structures, +with the generic portion described by the following definition: +.PP +.EX +.ta 6n +\w'Genattr* 'u +typedef struct Item Item; +struct Item +{ + Item* next; + int width; + int height; + int ascent; + int anchorid; + int state; + Genattr* genattr; + int tag; +}; +.EE +.PP +The field +.B next +points to the successor in the linked list of items, while +.BR width , +.BR height , +and +.B ascent +are intended for use by the caller as part of the layout process. +.BR Anchorid , +if non-zero, gives the integer id assigned by the parser to the anchor that +this item is in (see section +.IR Anchors ). +.B State +is a collection of flags and values described as follows: +.PP +.EX +.ta 6n +\w'IFindentshift = 'u +enum +{ + IFbrk = 0x80000000, + IFbrksp = 0x40000000, + IFnobrk = 0x20000000, + IFcleft = 0x10000000, + IFcright = 0x08000000, + IFwrap = 0x04000000, + IFhang = 0x02000000, + IFrjust = 0x01000000, + IFcjust = 0x00800000, + IFsmap = 0x00400000, + IFindentshift = 8, + IFindentmask = (255< +element. +.B Background +is as described in the section +.IR "Background Specifications" , +and +.B backgrounditem +is set to be an image item for the document's background image (if given as a URL), +or else nil. +.B Text +gives the default foregound text color of the document, +.B link +the unvisited hyperlink color, +.B vlink +the visited hyperlink color, and +.B alink +the color for highlighting hyperlinks (all in 24-bit RGB format). +.B Target +is the default target frame id. +.B Chset +and +.B mediatype +are as for the +.I chset +and +.I mtype +parameters to +.IR parsehtml . +.B Scripttype +is the type of any scripts contained in the document, and is always +.BR TextJavascript . +.B Hasscripts +is set if the document contains any scripts. +Scripting is currently unsupported. +.B Refresh +is the contents of a +.B "" +tag, if any. +.B Kidinfo +is set if this document is a frameset (see section +.IR Frames ). +.B Frameid +is this document's frame id. +.PP +.B Anchors +is a list of hyperlinks contained in the document, +and +.B dests +is a list of hyperlink destinations within the page (see the following section for details). +.BR Forms , +.B tables +and +.B maps +are lists of the various forms, tables and client-side maps contained +in the document, as described in subsequent sections. +.B Images +is a list of all the image items in the document. +.SS Anchors +.PP +The library builds two lists for all of the +.B +elements (anchors) in a document. +Each anchor is assigned a unique anchor id within the document. +For anchors which are hyperlinks (the +.B href +attribute was supplied), the following structure is defined: +.PP +.EX +.ta 6n +\w'Anchor* 'u +typedef struct Anchor Anchor; +struct Anchor +{ + Anchor* next; + int index; + Rune* name; + Rune* href; + int target; +}; +.EE +.PP +.B Next +points to the next anchor in the list (the head of this list is +.BR Docinfo.anchors ). +.B Index +is the anchor id; each item within this hyperlink is tagged with this value +in its +.B anchorid +field. +.B Name +and +.B href +are the values of the correspondingly named attributes of the anchor +(in particular, href is the URL to go to). +.B Target +is the value of the target attribute (if provided) converted to a frame id. +.PP +Destinations within the document (anchors with the name attribute set) +are held in the +.B Docinfo.dests +list, using the following structure: +.PP +.EX +.ta 6n +\w'DestAnchor* 'u +typedef struct DestAnchor DestAnchor; +struct DestAnchor +{ + DestAnchor* next; + int index; + Rune* name; + Item* item; +}; +.EE +.PP +.B Next +is the next element of the list, +.B index +is the anchor id, +.B name +is the value of the name attribute, and +.B item +is points to the item within the parsed document that should be considered +to be the destination. +.SS Forms +.PP +Any forms within a document are kept in a list, headed by +.BR Docinfo.forms . +The elements of this list are as follows: +.PP +.EX +.ta 6n +\w'Formfield* 'u +typedef struct Form Form; +struct Form +{ + Form* next; + int formid; + Rune* name; + Rune* action; + int target; + int method; + int nfields; + Formfield* fields; +}; +.EE +.PP +.B Next +points to the next form in the list. +.B Formid +is a serial number for the form within the document. +.B Name +is the value of the form's name or id attribute. +.B Action +is the value of any action attribute. +.B Target +is the value of the target attribute (if any) converted to a frame target id. +.B Method +is one of +.B HGet +or +.BR HPost . +.B Nfields +is the number of fields in the form, and +.B fields +is a linked list of the actual fields. +.PP +The individual fields in a form are described by the following structure: +.PP +.EX +.ta 6n +\w'Formfield* 'u +typedef struct Formfield Formfield; +struct Formfield +{ + Formfield* next; + int ftype; + int fieldid; + Form* form; + Rune* name; + Rune* value; + int size; + int maxlength; + int rows; + int cols; + uchar flags; + Option* options; + Item* image; + int ctlid; + SEvent* events; +}; +.EE +.PP +Here, +.B next +points to the next field in the list. +.B Ftype +is the type of the field, which can be one of +.BR Ftext , +.BR Fpassword , +.BR Fcheckbox , +.BR Fradio , +.BR Fsubmit , +.BR Fhidden , +.BR Fimage , +.BR Freset , +.BR Ffile , +.BR Fbutton , +.B Fselect +or +.BR Ftextarea . +.B Fieldid +is a serial number for the field within the form. +.B Form +points back to the form containing this field. +.BR Name , +.BR value , +.BR size , +.BR maxlength , +.B rows +and +.B cols +each contain the values of corresponding attributes of the field, if present. +.B Flags +contains per-field flags, of which +.B FFchecked +and +.B FFmultiple +are defined. +.B Image +is only used for fields of type +.BR Fimage ; +it points to an image item containing the image to be displayed. +.B Ctlid +is reserved for use by the caller, typically to store a unique id +of an associated control used to implement the field. +.B Events +is the same as the corresponding field of the generic attributes +associated with the item containing this field. +.B Options +is only used by fields of type +.BR Fselect ; +it consists of a list of possible options that may be selected for that +field, using the following structure: +.PP +.EX +.ta 6n +\w'Option* 'u +typedef struct Option Option; +struct Option +{ + Option* next; + int selected; + Rune* value; + Rune* display; +}; +.EE +.PP +.B Next +points to the next element of the list. +.B Selected +is set if this option is to be displayed initially. +.B Value +is the value to send when the form is submitted if this option is selected. +.B Display +is the string to display on the screen for this option. +.SS Tables +.PP +The library builds a list of all the tables in the document, +headed by +.BR Docinfo.tables . +Each element of this list has the following format: +.PP +.EX +.ta 6n +\w'Tablecell*** 'u +typedef struct Table Table; +struct Table +{ + Table* next; + int tableid; + Tablerow* rows; + int nrow; + Tablecol* cols; + int ncol; + Tablecell* cells; + int ncell; + Tablecell*** grid; + Align align; + Dimen width; + int border; + int cellspacing; + int cellpadding; + Background background; + Item* caption; + uchar caption_place; + Lay* caption_lay; + int totw; + int toth; + int caph; + int availw; + Token* tabletok; + uchar flags; +}; +.EE +.PP +.B Next +points to the next element in the list of tables. +.B Tableid +is a serial number for the table within the document. +.B Rows +is an array of row specifications (described below) and +.B nrow +is the number of elements in this array. +Similarly, +.B cols +is an array of column specifications, and +.B ncol +the size of this array. +.B Cells +is a list of all cells within the table (structure described below) +and +.B ncell +is the number of elements in this list. +Note that a cell may span multiple rows and/or columns, thus +.B ncell +may be smaller than +.BR nrow*ncol . +.B Grid +is a two-dimensional array of cells within the table; the cell +at row +.B i +and column +.B j +is +.BR Table.grid[i][j] . +A cell that spans multiple rows and/or columns will +be referenced by +.B grid +multiple times, however it will only occur once in +.BR cells . +.B Align +gives the alignment specification for the entire table, +and +.B width +gives the requested width as a dimension specification. +.BR Border , +.B cellspacing +and +.B cellpadding +give the values of the corresponding attributes for the table, +and +.B background +gives the requested background for the table. +.B Caption +is a linked list of items to be displayed as the caption of the +table, either above or below depending on whether +.B caption_place +is +.B ALtop +or +.BR ALbottom . +Most of the remaining fields are reserved for use by the caller, +except +.BR tabletok , +which is reserved for internal use. +The type +.B Lay +is not defined by the library; the caller can provide its +own definition. +.PP +The +.B Tablecol +structure is defined for use by the caller. +The library ensures that the correct number of these +is allocated, but leaves them blank. +The fields are as follows: +.PP +.EX +.ta 6n +\w'Point 'u +typedef struct Tablecol Tablecol; +struct Tablecol +{ + int width; + Align align; + Point pos; +}; +.EE +.PP +The rows in the table are specified as follows: +.PP +.EX +.ta 6n +\w'Background 'u +typedef struct Tablerow Tablerow; +struct Tablerow +{ + Tablerow* next; + Tablecell* cells; + int height; + int ascent; + Align align; + Background background; + Point pos; + uchar flags; +}; +.EE +.PP +.B Next +is only used during parsing; it should be ignored by the caller. +.B Cells +provides a list of all the cells in a row, linked through their +.B nextinrow +fields (see below). +.BR Height , +.B ascent +and +.B pos +are reserved for use by the caller. +.B Align +is the alignment specification for the row, and +.B background +is the background to use, if specified. +.B Flags +is used by the parser; ignore this field. +.PP +The individual cells of the table are described as follows: +.PP +.EX +.ta 6n +\w'Background 'u +typedef struct Tablecell Tablecell; +struct Tablecell +{ + Tablecell* next; + Tablecell* nextinrow; + int cellid; + Item* content; + Lay* lay; + int rowspan; + int colspan; + Align align; + uchar flags; + Dimen wspec; + int hspec; + Background background; + int minw; + int maxw; + int ascent; + int row; + int col; + Point pos; +}; +.EE +.PP +.B Next +is used to link together the list of all cells within a table +.RB ( Table.cells ), +whereas +.B nextinrow +is used to link together all the cells within a single row +.RB ( Tablerow.cells ). +.B Cellid +provides a serial number for the cell within the table. +.B Content +is a linked list of the items to be laid out within the cell. +.B Lay +is reserved for the user to describe how these items have +been laid out. +.B Rowspan +and +.B colspan +are the number of rows and columns spanned by this cell, +respectively. +.B Align +is the alignment specification for the cell. +.B Flags +is some combination of +.BR TFparsing , +.B TFnowrap +and +.B TFisth +or'd together. +Here +.B TFparsing +is used internally by the parser, and should be ignored. +.B TFnowrap +means that the contents of the cell should not be +wrapped if they don't fit the available width, +rather, the table should be expanded if need be +(this is set when the nowrap attribute is supplied). +.B TFisth +means that the cell was created by the +.B +element (rather than the +.B +element), +indicating that it is a header cell rather than a data cell. +.B Wspec +provides a suggested width as a dimension specification, +and +.B hspec +provides a suggested height in pixels. +.B Background +gives a background specification for the individual cell. +.BR Minw , +.BR maxw , +.B ascent +and +.B pos +are reserved for use by the caller during layout. +.B Row +and +.B col +give the indices of the row and column of the top left-hand +corner of the cell within the table grid. +.SS Client-side Maps +.PP +The library builds a list of client-side maps, headed by +.BR Docinfo.maps , +and having the following structure: +.PP +.EX +.ta 6n +\w'Rune* 'u +typedef struct Map Map; +struct Map +{ + Map* next; + Rune* name; + Area* areas; +}; +.EE +.PP +.B Next +points to the next element in the list, +.B name +is the name of the map (use to bind it to an image), and +.B areas +is a list of the areas within the image that comprise the map, +using the following structure: +.PP +.EX +.ta 6n +\w'Dimen* 'u +typedef struct Area Area; +struct Area +{ + Area* next; + int shape; + Rune* href; + int target; + Dimen* coords; + int ncoords; +}; +.EE +.PP +.B Next +points to the next element in the map's list of areas. +.B Shape +describes the shape of the area, and is one of +.BR SHrect , +.B SHcircle +or +.BR SHpoly . +.B Href +is the URL associated with this area in its role as +a hypertext link, and +.B target +is the target frame it should be loaded in. +.B Coords +is an array of coordinates for the shape, and +.B ncoords +is the size of this array (number of elements). +.SS Frames +.PP +If the +.B Docinfo.kidinfo +field is set, the document is a frameset. +In this case, it is typical for +.I parsehtml +to return nil, as a document which is a frameset should have no actual +items that need to be laid out (such will appear only in subsidiary documents). +It is possible that items will be returned by a malformed document; the caller +should check for this and free any such items. +.PP +The +.B Kidinfo +structure itself reflects the fact that framesets can be nested within a document. +If is defined as follows: +.PP +.EX +.ta 6n +\w'Kidinfo* 'u +typedef struct Kidinfo Kidinfo; +struct Kidinfo +{ + Kidinfo* next; + int isframeset; + + // fields for "frame" + Rune* src; + Rune* name; + int marginw; + int marginh; + int framebd; + int flags; + + // fields for "frameset" + Dimen* rows; + int nrows; + Dimen* cols; + int ncols; + Kidinfo* kidinfos; + Kidinfo* nextframeset; +}; +.EE +.PP +.B Next +is only used if this structure is part of a containing frameset; it points to the next +element in the list of children of that frameset. +.B Isframeset +is set when this structure represents a frameset; if clear, it is an individual frame. +.PP +Some fields are used only for framesets. +.B Rows +is an array of dimension specifications for rows in the frameset, and +.B nrows +is the length of this array. +.B Cols +is the corresponding array for columns, of length +.BR ncols . +.B Kidinfos +points to a list of components contained within this frameset, each +of which may be a frameset or a frame. +.B Nextframeset +is only used during parsing, and should be ignored. +.PP +The remaining fields are used if the structure describes a frame, not a frameset. +.B Src +provides the URL for the document that should be initially loaded into this frame. +Note that this may be a relative URL, in which case it should be interpretted +using the containing document's URL as the base. +.B Name +gives the name of the frame, typically supplied via a name attribute in the HTML. +If no name was given, the library allocates one. +.BR Marginw , +.B marginh +and +.B framebd +are the values of the marginwidth, marginheight and frameborder attributes, respectively. +.B Flags +can contain some combination of the following: +.B FRnoresize +(the frame had the noresize attribute set, and the user should not be allowed to resize it), +.B FRnoscroll +(the frame should not have any scroll bars), +.B FRhscroll +(the frame should have a horizontal scroll bar), +.B FRvscroll +(the frame should have a vertical scroll bar), +.B FRhscrollauto +(the frame should be automatically given a horizontal scroll bar if its contents +would not otherwise fit), and +.B FRvscrollauto +(the frame gets a vertical scrollbar only if required). +.SH SOURCE +.B /sys/src/libhtml +.SH SEE ALSO +.IR fmt (1) +.PP +W3C World Wide Web Consortium, +``HTML 4.01 Specification''. +.SH BUGS +The entire HTML document must be loaded into memory before +any of it can be parsed. diff --git a/static/plan9-4e/man2/httpd.2 b/static/plan9-4e/man2/httpd.2 new file mode 100644 index 00000000..d39ca58e --- /dev/null +++ b/static/plan9-4e/man2/httpd.2 @@ -0,0 +1,307 @@ +.TH HTTPD 2 +.SH NAME +HConnect, +HContent, +HContents, +HETag, +HFields, +Hio, +Htmlesc, +HttpHead, +HttpReq, +HRange, +HSPairs, +hmydomain, +hversion, +htmlesc, +halloc, +hbodypush, +hbuflen, +hcheckcontent, +hclose, +hdate2sec, +hdatefmt, +hfail, +hflush, +hgetc, +hgethead, +hinit, +hiserror, +hload, +hlower, +hmkcontent, +hmkhfields, +hmkmimeboundary, +hmkspairs, +hmoved, +hokheaders, +hparseheaders, +hparsequery, +hparsereq, +hprint, +hputc, +hreadbuf, +hredirected, +hreqcleanup, +hrevhfields, +hrevspairs, +hstrdup, +http11, +httpfmt, +httpunesc, +hunallowed, +hungetc, +hunload, +hurlfmt, +hurlunesc, +hwrite, +hxferenc, + \- routines for creating an http server +.SH SYNOPSIS +.nf +.B #include +.nf +.B #include +.B #include +.B #include +.PP +.ft L +typedef struct HConnect HConnect; +typedef struct HContent HContent; +typedef struct HContents HContents; +typedef struct HETag HETag; +typedef struct HFields HFields; +typedef struct Hio Hio; +typedef struct Htmlesc Htmlesc; +typedef struct HttpHead HttpHead; +typedef struct HttpReq HttpReq; +typedef struct HRange HRange; +typedef struct HSPairs HSPairs; + +typedef struct Bin Bin; +.ta \w'\fLHContents 'u +\w'\fLHContentsxx 'u +\w'\fLheader[HBufSize + 2]; 'u + +struct Htmlesc +{ + char *name; + Rune value; +}; + +struct HContent +{ + HContent *next; + char *generic; + char *specific; + float q; /* desirability of this kind of file */ + int mxb; /* max uchars until worthless */ +}; + +struct HContents +{ + HContent *type; + HContent *encoding; +}; + +/* + * generic http header with a list of tokens, + * each with an optional list of parameters + */ +struct HFields +{ + char *s; + HSPairs *params; + HFields *next; +}; + +/* + * list of pairs a strings + * used for tag=val pairs for a search or form submission, + * and attribute=value pairs in headers. + */ +struct HSPairs +{ + char *s; + char *t; + HSPairs *next; +}; + +/* + * byte ranges within a file + */ +struct HRange +{ + int suffix; /* is this a suffix request? */ + ulong start; + ulong stop; /* ~0UL -> not given */ + HRange *next; +}; + +/* + * list of http/1.1 entity tags + */ +struct HETag +{ + char *etag; + int weak; + HETag *next; +}; + +/* + * HTTP custom IO + * supports chunked transfer encoding + * and initialization of the input buffer from a string. + */ +enum +{ + Hnone, + Hread, + Hend, + Hwrite, + Herr, + + Hsize = HBufSize +}; + +struct Hio { + Hio *hh; /* next lower layer Hio, or nil if reads from fd */ + int fd; /* associated file descriptor */ + ulong seek; /* of start */ + uchar state; /* state of the file */ + uchar xferenc; /* chunked transfer encoding state */ + uchar *pos; /* current position in the buffer */ + uchar *stop; /* last character active in the buffer */ + uchar *start; /* start of data buffer */ + ulong bodylen; /* remaining length of message body */ + uchar buf[Hsize+32]; +}; + +/* + * request line + */ +struct HttpReq +{ + char *meth; + char *uri; + char *urihost; + char *search; + int vermaj; + int vermin; +}; + +/* + * header lines + */ +struct HttpHead +{ + int closeit; /* http1.1 close connection after this request? */ + uchar persist; /* http/1.1 requests a persistent connection */ + + uchar expectcont; /* expect a 100-continue */ + uchar expectother; /* expect anything else; should reject with ExpectFail */ + ulong contlen; /* if != ~0UL, length of included message body */ + HFields *transenc; /* if present, encoding of included message body */ + char *client; + char *host; + HContent *okencode; + HContent *oklang; + HContent *oktype; + HContent *okchar; + ulong ifmodsince; + ulong ifunmodsince; + ulong ifrangedate; + HETag *ifmatch; + HETag *ifnomatch; + HETag *ifrangeetag; + HRange *range; + char *authuser; /* authorization info */ + char *authpass; + + /* + * experimental headers + */ + int fresh_thresh; + int fresh_have; +}; + +/* + * all of the state for a particular connection + */ +struct HConnect +{ + void *private; /* for the library clients */ + void (*replog)(HConnect*, char*, ...); /* called when reply sent */ + + HttpReq req; + HttpHead head; + + Bin *bin; + + ulong reqtime; /* time at start of request */ + char xferbuf[HBufSize]; /* buffer for making up or transferring data */ + uchar header[HBufSize + 2]; /* room for \\n\\0 */ + uchar *hpos; + uchar *hstop; + Hio hin; + Hio hout; +}; + +/* + * configuration for all connections within the server + */ +extern char *hmydomain; +extern char *hversion; +extern Htmlesc htmlesc[]; + +void *halloc(HConnect *c, ulong size); +Hio *hbodypush(Hio *hh, ulong len, HFields *te); +int hbuflen(Hio *h, void *p); +int hcheckcontent(HContent*, HContent*, char*, int); +void hclose(Hio*); +ulong hdate2sec(char*); +int hdatefmt(Fmt*); +int hfail(HConnect*, int, ...); +int hflush(Hio*); +int hgetc(Hio*); +int hgethead(HConnect *c, int many); +int hinit(Hio*, int, int); +int hiserror(Hio *h); +int hload(Hio*, char*); +char *hlower(char*); +HContent *hmkcontent(HConnect *c, char *generic, char *specific, HContent *next); +HFields *hmkhfields(HConnect *c, char *s, HSPairs *p, HFields *next); +char *hmkmimeboundary(HConnect *c); +HSPairs *hmkspairs(HConnect *c, char *s, char *t, HSPairs *next); +int hmoved(HConnect *c, char *uri); +void hokheaders(HConnect *c); +int hparseheaders(HConnect*, int timeout); +HSPairs *hparsequery(HConnect *c, char *search); +int hparsereq(HConnect *c, int timeout); +int hprint(Hio*, char*, ...); +int hputc(Hio*, int); +void *hreadbuf(Hio *h, void *vsave); +int hredirected(HConnect *c, char *how, char *uri); +void hreqcleanup(HConnect *c); +HFields *hrevhfields(HFields *hf); +HSPairs *hrevspairs(HSPairs *sp); +char *hstrdup(HConnect *c, char *s); +int http11(HConnect*); +int httpfmt(Fmt*); +char *httpunesc(HConnect *c, char *s); +int hunallowed(HConnect *, char *allowed); +int hungetc(Hio *h); +char *hunload(Hio*); +int hurlfmt(Fmt*); +char *hurlunesc(HConnect *c, char *s); +int hwrite(Hio*, void*, int); +int hxferenc(Hio*, int); +.ft R +.SH DESCRIPTION +For now, look at the source, or +.IR httpd (8). +.SH SOURCE +.B /sys/src/libhttpd +.SH SEE ALSO +.IR bin (2) +.SH BUGS +This is a rough implementation and many details are going to change. + diff --git a/static/plan9-4e/man2/hypot.2 b/static/plan9-4e/man2/hypot.2 new file mode 100644 index 00000000..dc25ed2d --- /dev/null +++ b/static/plan9-4e/man2/hypot.2 @@ -0,0 +1,21 @@ +.TH HYPOT 2 +.SH NAME +hypot \- Euclidean distance +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +double hypot(double x, double y) +.fi +.SH DESCRIPTION +.I Hypot +returns +.EX + sqrt(x*x + y*y) +.EE +taking precautions against unwarranted overflows. +.SH SOURCE +.B /sys/src/libc/port/hypot.c diff --git a/static/plan9-4e/man2/intmap.2 b/static/plan9-4e/man2/intmap.2 new file mode 100644 index 00000000..22dec998 --- /dev/null +++ b/static/plan9-4e/man2/intmap.2 @@ -0,0 +1,126 @@ +.TH INTMAP 2 +.SH NAME +Intmap, allocmap, freemap, insertkey, caninsertkey, lookupkey, +deletekey \- integer to data structure maps +.SH SYNOPSIS +.ft L +.nf +#include +#include +#include +#include +#include <9p.h> +.fi +.PP +.ft L +.nf +.ta \w'\fLIntmap* 'u +Intmap* allocmap(void (*inc)(void*)) +void freemap(Intmap *map, void (*dec)(void*)) +void* lookupkey(Intmap *map, ulong key) +void* insertkey(Intmap *map, ulong key, void *val) +int caninsertkey(Intmap *map, ulong key, void *val) +void* lookupkey(Intmap *map, ulong key) +void* deletekey(Intmap *map, ulong key) +.fi +.SH DESCRIPTION +An +.B Intmap +is an arbitrary mapping from integers to pointers. +.I Allocmap +creates a new map, and +.I freemap +destroys it. +The +.I inc +function is called each time a new pointer is added +to the map; similarly, +.I dec +is called on each pointer left in the map +when it is being freed. +Typically these functions maintain reference counts. +New entries are added to the map by calling +.IR insertkey , +which will return the previous value +associated with the given +.IR key , +or zero if there was no previous value. +.I Caninsertkey +is like +.I insertkey +but only inserts +.I val +if there is no current mapping. +It returns 1 if +.I val +was inserted, 0 otherwise. +.I Lookupkey +returns the pointer associated with +.IR key , +or zero if there is no such pointer. +.I Deletekey +removes the entry for +.I id +from the map, returning the +associated pointer, if any. +.PP +Concurrent access to +.BR Intmap s +is safe, +moderated via a +.B QLock +stored in the +.B Intmap +structure. +.PP +In anticipation of the storage of reference-counted +structures, an increment function +.I inc +may be specified +at map creation time. +.I Lookupkey +calls +.I inc +(if non-zero) +on pointers before returning them. +If the reference count adjustments were +left to the caller (and thus not protected by the lock), +it would be possible to accidentally reclaim a structure +if, for example, it was deleted from the map and its +reference count decremented between the return +of +.I insertkey +and the external increment. +.IR Insertkey +and +.IR caninsertkey +do +.I not +call +.I inc +when inserting +.I val +into the map, nor do +.I insertkey +or +.I deletekey +call +.I inc +when returning old map entries. +The rationale is that calling +an insertion function transfers responsibility for the reference +to the map, and responsibility is given back via the return value of +.I deletekey +or the next +.IR insertkey . +.PP +.BR Intmap s +are used by the 9P library to implement +.BR Fidpool s +and +.BR Reqpool s. +.SH SOURCE +.B /sys/src/lib9p/intmap.c +.SH SEE ALSO +.IR 9p (2), +.IR 9pfid (2). diff --git a/static/plan9-4e/man2/iounit.2 b/static/plan9-4e/man2/iounit.2 new file mode 100644 index 00000000..a31d7079 --- /dev/null +++ b/static/plan9-4e/man2/iounit.2 @@ -0,0 +1,37 @@ +.TH IOUNIT 2 +.SH NAME +iounit \- return size of atomic I/O unit for file descriptor +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int iounit(int fd) +.SH DESCRIPTION +Reads and writes of files are transmitted using the 9P protocol (see +.IR intro (5)) +and in general, operations involving large amounts of data must be +broken into smaller pieces by the operating system. +The `I/O unit' associated with each file descriptor records the maximum +size, in bytes, that may be read or written without breaking up the transfer. +.PP +The +.I iounit +routine uses the +.IR dup (3) +interface to discover the I/O unit size for the file descriptor +.I fd +and returns its value. +Certain file descriptors, particularly those associated with devices, may +have no specific I/O unit, in which case +.I iounit +will return +.BR 0 . +.SH SOURCE +.B /sys/src/libc/9sys +.SH SEE ALSO +.IR dup (3), +.IR read (5) +.SH DIAGNOSTICS +Returns zero if any error occurs or if the I/O unit size of the fd is unspecified or unknown. diff --git a/static/plan9-4e/man2/ip.2 b/static/plan9-4e/man2/ip.2 new file mode 100644 index 00000000..dc4c86fd --- /dev/null +++ b/static/plan9-4e/man2/ip.2 @@ -0,0 +1,335 @@ +.TH IP 2 +.SH NAME +eipfmt, parseip, parseipmask, v4parseip, v4parsecidr, parseether, myipaddr, myetheraddr, maskip, equivip, defmask, isv4, v4tov6, v6tov4, nhgetl, nhgets, hnputl, hnputs, ptclbsum, readipifc \- Internet protocol +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.B +int eipfmt(Fmt*) +.PP +.B +ulong parseip(uchar *ipaddr, char *str) +.PP +.B +ulong parseipmask(uchar *ipaddr, char *str) +.PP +.B +char* v4parseip(uchar *ipaddr, char *str) +.PP +.B +ulong v4parsecidr(uchar *addr, uchar *mask, char *str) +.PP +.B +int parseether(uchar *eaddr, char *str) +.PP +.B +int myetheraddr(uchar *eaddr, char *dev) +.PP +.B +int myipaddr(uchar *ipaddr, char *net) +.PP +.B +void maskip(uchar *from, uchar *mask, uchar *to) +.PP +.B +int equivip(uchar *ipaddr1, uchar *ipaddr2) +.PP +.B +uchar* defmask(uchar *ipaddr) +.PP +.B +int isv4(uchar *ipaddr) +.PP +.B +void v4tov6(uchar *ipv6, uchar *ipv4) +.PP +.B +void v6tov4(uchar *ipv4, uchar *ipv6) +.PP +.B +ushort nhgets(void *p) +.PP +.B +uint nhgetl(void *p) +.PP +.B +void hnputs(void *p, ushort v) +.PP +.B +void hnputl(void *p, uint v) +.PP +.B +ushort ptclbsum(uchar *a, int n) +.PP +.B +Ipifc* readipifc(char *net, Ipifc *ifc, int index) +.PP +.B +uchar IPv4bcast[IPaddrlen]; +.PP +.B +uchar IPv4allsys[IPaddrlen]; +.PP +.B +uchar IPv4allrouter[IPaddrlen]; +.PP +.B +uchar IPallbits[IPaddrlen]; +.PP +.B +uchar IPnoaddr[IPaddrlen]; +.PP +.B +uchar v4prefix[IPaddrlen]; +.SH DESCRIPTION +These routines are used by Internet Protocol (IP) programs to +manipulate IP and Ethernet addresses. +Plan 9, by default, uses V6 format IP addresses. Since V4 +addresses fit into the V6 space, all IP addresses can be represented. +IP addresses are stored as a string of 16 +.B unsigned +.BR chars , +Ethernet +addresses as 6 +.B unsigned +.BR chars . +Either V4 or V6 string representation can be used for IP addresses. +For V4 addresses, the representation can be (up to) 4 decimal +integers from 0 to 255 separated by periods. +For V6 addresses, the representation is (up to) 8 hex integers +from 0x0 to 0xFFFF separated by colons. +Strings of 0 integers can be elided using two colons. +For example, +.B FFFF::1111 +is equivalent to +.BR FFFF:0:0:0:0:0:0:1111 . +The string representation for IP masks is a superset of the +address representation. It includes slash notation that indicates +the number of leading 1 bits in the mask. Thus, a +V4 class C mask can be represented as +.BR FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FF00 , +.BR 255.255.255.0 , +or +.BR /120. +The string representation of Ethernet addresses is exactly +12 hexadecimal digits. +.PP +.I Eipfmt +is a +.IR print (2) +formatter for Ethernet (verb +.BR E ) +addresses, +IP V6 (verb +.BR I ) +addresses, +IP V4 (verb +.BR V ) +addresses, +and IP V6 (verb +.BR M ) +masks. +.PP +.I Parseip +converts a string pointed to by +.I str +to a 16-byte IP address starting at +.IR ipaddr . +As a concession to backwards compatibility, +if the string is a V4 address, the return value +is an unsigned long integer containing the big-endian V4 address. +If not, the return value is 6. +.I Parseipmask +converts a string pointed to by +.I str +to a 6-byte IP mask starting at +.IR ipaddr . +It too returns an unsigned long big-endian V4 address or 6. +Both routines return -1 on errors. +.PP +.I V4parseip +converts a string pointed to by +.I str +to a 4-byte V4 IP address starting at +.IR ipaddr . +.PP +.I V4parsecidr +converts a string of the form +addr/mask, pointed to by +.IR str , +to a 4-byte V4 IP address starting at +.I ipaddr +and a 4-byte V4 IP mask starting at +.IR mask . +.PP +.I Myipaddr +returns the first valid IP address in +the IP stack rooted at +.IR net . +.PP +.I Parseether +converts a string pointed to by +.I str +to a 6-byte Ethernet address starting at +.IR eaddr . +.I Myetheraddr +reads the Ethernet address string from file +.IB dev /1/stats +and parses it into +.IR eaddr . +Both routines return a negative number on errors. +.PP +.I Maskip +places the bit-wise AND of the IP addresses pointed +to by its first two arguments into the buffer pointed +to by the third. +.PP +.I Equivip +returns non-zero if the IP addresses pointed to by its two +arguments are equal. +.PP +.I Defmask +returns the standard class A, B, or C mask for +.IR ipaddr . +.PP +.I Isv4 +returns non-zero if the V6 address is in the V4 space, that is, +if it starts with +.BR 0:0:0:0:0:0:FFFF . +.I V4tov6 +converts the V4 address, +.IR v4ip , +to a V6 address and puts the result in +.IR v6ip . +.I V6tov4 +converts the V6 address, +.IR v6ip , +to a V4 address and puts the result in +.IR v4ip . +.PP +.I Hnputs +and +.I hnputl +are used to store 16-bit and 32-bit integers into IP big-endian form. +.I Nhgets +and +.I nhgetl +convert big-endian 2 and 4 byte quantities into integers. +.PP +.I Pctlbsum +returns the one's complement checksum used in IP protocols, typically invoked as +.EX +hnputs(hdr->cksum, ~ptclbsum(data, len) & 0xffff); +.EE +.PP +A number of standard IP addresses in V6 format are also defined. They +are: +.IP \f5IPv4bcast +the V4 broadcast address +.IP \f5IPv4allsys +the V4 all systems multicast address +.IP \f5IPv4allrouter +the V4 all routers multicast address +.IP \f5IPallbits +the V6 all bits on address +.IP \f5IPnoaddr +the V6 null address, all zeros +.IP \f5v4prefix +the IP V6 prefix to all embedded V4 addresses +.PP +.I Readipifc +returns information about +a particular interface (\fIindex\fP >= 0) +or all IP interfaces (\fIindex\fP < 0) +configured under a +mount point +.IR net , +default +.BR /net . +Each interface is described by one +.I Ipifc +structure which in turn points to a linked list of +.IR Iplifc +structures describing the addresses assigned +to this interface. +If the list +.IR ifc +is supplied, +that list is freed. +Thus, subsequent calls can be used +to free the list returned by the previous call. +.I Ipifc +is: +.PP +.EX +typedef struct Ipifc +{ + Ipifc *next; + Iplifc *lifc; /* local addressses */ + + /* per ip interface */ + int index; /* number of interface in ipifc dir */ + char dev[64]; /* associated physical device */ + int mtu; /* max transfer unit */ + + long validlt; /* valid life time */ + long preflt; /* preferred life time */ + uchar sendra6; /* on == send router adv */ + uchar recvra6; /* on == rcv router adv */ + + ulong pktin; /* packets read */ + ulong pktout; /* packets written */ + ulong errin; /* read errors */ + ulong errout; /* write errors */ + Ipv6rp rp; /* route advertisement params */ +} Ipifc; +.EE +.PP +.I Iplifc +is: +.PP +.EX +struct Iplifc +{ + Iplifc *next; + + uchar ip[IPaddrlen]; + uchar mask[IPaddrlen]; + uchar net[IPaddrlen]; /* ip & mask */ + ulong preflt; /* preferred lifetime */ + ulong validlt; /* valid lifetime */ +}; +.EE +.PP +.I Ipv6rp +is: +struct Ipv6rp +{ + int mflag; + int oflag; + int maxraint; /* max route adv interval */ + int minraint; /* min route adv interval */ + int linkmtu; + int reachtime; + int rxmitra; + int ttl; + int routerlt; +}; +.PP +.I Dev +contains the first 64 bytes of the device configured with this +interface. +.I Net +is +.IB ip & mask +if the network is multipoint or +the remote address if the network is +point to point. +.SH SOURCE +.B /sys/src/libip +.SH SEE ALSO +.IR print (2) diff --git a/static/plan9-4e/man2/isalpharune.2 b/static/plan9-4e/man2/isalpharune.2 new file mode 100644 index 00000000..a6a7507f --- /dev/null +++ b/static/plan9-4e/man2/isalpharune.2 @@ -0,0 +1,51 @@ +.TH ISALPHARUNE 2 +.SH NAME +isalpharune, islowerrune, isspacerune, istitlerune, isupperrune, tolowerrune, totitlerune, toupperrune \- Unicode character classes and cases +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int isalpharune(Rune c) +.PP +.B +int islowerrune(Rune c) +.PP +.B +int isspacerune(Rune c) +.PP +.B +int istitlerune(Rune c) +.PP +.B +int isupperrune(Rune c) +.PP +.B +Rune tolowerrune(Rune c) +.PP +.B +Rune totitlerune(Rune c) +.PP +.B +Rune toupperrune(Rune c) +.SH DESCRIPTION +These routines examine and operate on Unicode characters, +in particular a subset of their properties as defined in the Unicode standard. +Unicode defines some characters as alphabetic and specifies three cases: +upper, lower, and title. +Analogously to +.IR ctype (2) +for +.SM ASCII\c +, +these routines +test types and modify cases for Unicode characters. +The names are self-explanatory. +.PP +The case-conversion routines return the character unchanged if it has no case. +.SH SOURCE +.B /sys/src/libc/port/runetype.c +.SH "SEE ALSO +.IR ctype (2) , +.IR "The Unicode Standard" . diff --git a/static/plan9-4e/man2/keyboard.2 b/static/plan9-4e/man2/keyboard.2 new file mode 100644 index 00000000..d0463f78 --- /dev/null +++ b/static/plan9-4e/man2/keyboard.2 @@ -0,0 +1,104 @@ +.TH KEYBOARD 2 +.SH NAME +initkeyboard, ctlkeyboard, closekeyboard \- keyboard control +.SH SYNOPSIS +.nf +.B +#include +.B +#include +.B +#include +.B +#include +.PP +.B +Keyboardctl *initkeyboard(char *file) +.PP +.B +int ctlkeyboard(Keyboardctl *kc, char *msg) +.PP +.B +void closekeyboard(Keyboard *kc) +.SH DESCRIPTION +These functions access and control a keyboard interface +for character-at-a-time I/O in a multi-threaded environment, usually in combination with +.IR mouse (2). +They use the message-passing +.B Channel +interface in the threads library +(see +.IR thread (2)); +programs that wish a more event-driven, single-threaded approach should use +.IR event (2). +.PP +.I Initkeyboard +opens a connection to the keyboard and returns a +.B Keyboardctl +structure: +.IP +.EX +.ta 6n +\w'Channel 'u +\w'consfd; 'u +typedef struct Keyboardct Keyboardctl; +struct Keyboardctl +{ + Channel *c; /* chan(Rune[20]) */ + + char *file; + int consfd; /* to cons file */ + int ctlfd; /* to ctl file */ + int pid; /* of slave proc */ +}; +.EE +.PP +The argument to +.I initkeyboard +is a +.I file +naming the device file from which characters may be read, +typically +.BR /dev/cons . +If +.I file +is nil, +.B /dev/cons +is assumed. +.PP +Once the +.B Keyboardctl +is set up a +message containing a +.BR Rune +will be sent on the +.B Channel +.B Keyboardctl.c +to report each character read from the device. +.PP +.I Ctlkeyboard +is used to set the state of the interface, typically to turn raw mode on and off +(see +.IR cons (3)). +It writes the string +.I msg +to the control file associated with the device, which is assumed to be the regular device file name +with the string +.B ctl +appended. +.PP +.I Closekeyboard +closes the file descriptors associated with the keyboard, kills the slave processes, +and frees the +.B Keyboardctl +structure. +.PP +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR draw (2), +.IR event (2), +.IR thread (2). +.SH BUGS +Because the interface delivers complete runes, +there is no way to report lesser actions such as +shift keys or even individual bytes. diff --git a/static/plan9-4e/man2/lock.2 b/static/plan9-4e/man2/lock.2 new file mode 100644 index 00000000..ef36d37a --- /dev/null +++ b/static/plan9-4e/man2/lock.2 @@ -0,0 +1,180 @@ +.TH LOCK 2 +.SH NAME +lock, canlock, unlock, +qlock, canqlock, qunlock, +rlock, runlock, canrlock, +wlock, wunlock, canwlock, +incref, decref +\- shared memory spin locks, rendez-vous locks, reader-writer locks, and +atomic increment and decrement +.SH SYNOPSIS +.B +#include +.br +.B +#include +.PP +.B +void lock(Lock *l) +.PP +.B +int canlock(Lock *l) +.PP +.B +void unlock(Lock *l) +.PP +.B +void qlock(QLock *l) +.PP +.B +void qunlock(QLock *l) +.PP +.B +int canqlock(QLock *l) +.PP +.B +void rlock(RWLock *l) +.PP +.B +void runlock(RWLock *l) +.PP +.B +int canrlock(RWLock *l) +.PP +.B +void wlock(RWLock *l) +.PP +.B +void wunlock(RWLock *l) +.PP +.B +int canwlock(RWLock *l) +.PP +.PP +.B +#include +.PP +.B +typedef struct Ref { +.br +.B + long ref; +.br +.B +} Ref; +.PP +.B +void incref(Ref*) +.PP +.B +long decref(Ref*) +.SH DESCRIPTION +These routines are used to synchronize processes sharing memory. +.PP +The first group +.RI ( lock , +.IR canlock , +.IR unlock ) +uses spin locks in shared memory. +The second group +.RI ( qlock , +.IR canqlock , +.IR qunlock ), +uses rendezvous locks in shared +memory. +The third group +.RI ( rlock , +.IR runlock , +.IR canrlock , +.IR wlock , +.IR wunlock , +.IR canwlock ), +also uses rendezvous locks but has slightly different +semantics. +.PP +Locks work in regular programs as well as programs that use the thread library +(see +.IR thread (2)). +The thread library replaces the +.B rendezvous +system call +(see +.IR rendezvous (2)) +with its own implementation, +.BR threadrendezvous , +so that threads as well as processes may be synchronized by locking calls +in threaded programs. +.PP +Used carelessly, spin locks can be expensive and can easily generate deadlocks. +Their use is discouraged, especially in programs that use the +thread library because they prevent context switches between threads. +.PP +.I Lock +blocks until the lock has been obtained. +.I Canlock +is non-blocking. +It tries to obtain a lock and returns a non-zero value if it +was successful, 0 otherwise. +.I Unlock +releases a lock. +.PP +.B QLocks +have the same interface but are not spin locks; instead if the lock is taken +.I qlock +will suspend execution of the calling task until it is released. +.PP +Although +.B Locks +are the more primitive lock, they have limitations; for example, +they cannot synchronize between tasks in the same +.IR proc . +Use +.B QLocks +instead. +.PP +.B RWLocks +manage access to a data structure that has distinct readers and writers. +.I Rlock +grants read access; +.I runlock +releases it. +.I Wlock +grants write access; +.I wunlock +releases it. +.I Canrlock +and +.I canwlock +are the non-blocking versions. +There may be any number of simultaneous readers, +but only one writer. +Moreover, +if write access is granted no one may have +read access until write access is released. +.PP +All types of lock should be initialized to all zeros before use; this +puts them in the unlocked state. +.PP +A +.B Ref +contains a +.B long +that can be incremented and decremented atomically: +.I Incref +increments the +.I Ref +in one atomic operation. +.I Decref +atomically decrements the +.B Ref +and returns zero if the resulting value is zero, non-zero otherwise. +.SH SOURCE +.B /sys/src/libc/port/lock.c +.br +.B /sys/src/libc/9sys/qlock.c +.br +.B /sys/src/libthread/ref.c +.SH SEE ALSO +.I rfork +in +.IR fork (2) diff --git a/static/plan9-4e/man2/mach.2 b/static/plan9-4e/man2/mach.2 new file mode 100644 index 00000000..b75b1d86 --- /dev/null +++ b/static/plan9-4e/man2/mach.2 @@ -0,0 +1,393 @@ +.TH MACH 2 +.SH NAME +crackhdr, machbytype, machbyname, newmap, setmap, findseg, unusemap, +loadmap, attachproc, get1, get2, get4, get8, put1, put2, put4, put8, +beswab, beswal, beswav, leswab, leswal, leswav \- machine-independent access to executable files +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLmachines 'u +.B +int crackhdr(int fd, Fhdr *fp) +.PP +.B +void machbytype(int type) +.PP +.B +int machbyname(char *name) +.PP +.B +Map *newmap(Map *map, int n) +.PP +.B +int setmap(Map *map, int fd, ulong base, ulong end, +.PP +.B + ulong foffset, char *name) +.PP +.B +int findseg(Map *map, char *name) +.PP +.B +void unusemap(Map *map, int seg) +.PP +.B +Map *loadmap(Map *map, int fd, Fhdr *fp) +.PP +.B +int attachproc(int pid, int kflag, int corefd, Fhdr *fp) +.PP +.B +int get1(Map *map, ulong addr, uchar *buf, int n) +.PP +.B +int get2(Map *map, ulong addr, ushort *val) +.PP +.B +int get4(Map *map, ulong addr, long *val) +.PP +.B +int get8(Map *map, ulong addr, vlong *val) +.PP +.B +int put1(Map *map, ulong addr, uchar *buf, int n) +.PP +.B +int put2(Map *map, ulong addr, ushort val) +.PP +.B +int put4(Map *map, ulong addr, long val) +.PP +.B +int put8(Map *map, ulong addr, vlong val) +.PP +.B +ushort beswab(ushort val) +.PP +.B +long beswal(long val) +.PP +.B +long beswav(vlong val) +.PP +.B +ushort leswab(ushort val) +.PP +.B +long leswal(long val) +.PP +.B +long leswav(vlong val) +.PP +.B +extern Mach mach; +.PP +.B +extern Machdata machdata; +.SH DESCRIPTION +These functions provide +a processor-independent interface for accessing +the executable files or executing images of all +architectures. +Related library functions described in +.IR symbol (2) +and +.IR object (2) +provide similar access to symbol tables and object files. +.PP +An +.I executable +is a file containing an executable program or the +.B text +file of the +.B /proc +file system associated with an executing process as +described in +.IR proc (3). +After opening an executable, an application +invokes a library function which parses the +file header, +determines the target architecture and +initializes data structures with parameters +and pointers to functions appropriate for +that architecture. Next, the application +invokes functions to construct one or more +.IR maps , +data structures that translate references +in the address space of the executable +to offsets in the file. Each +.I map +comprises one or more +.BR segments , +each associating a non-overlapping range of +memory addresses with a logical section of +the executable. +Other library functions then use a map +and the architecture-specific data structures +to provide a generic interface to the +processor-dependent data. +.PP +.I Crackhdr +interprets the header of the executable +associated with +the open file descriptor +.IR fd . +It loads the data structure +.I fp +with a machine-independent description +of the header information and +points global variable +.I mach +to the +.B Mach +data structure containing processor-dependent parameters +of the target architecture. +.PP +.I Machbytype +selects architecture-specific data structures and parameter +values based on +the code stored in the +field named +.I type +in the +.B Fhdr +data structure. +.I Machbyname +performs the same selection based +on the name of a processor class; see +.IR 2c (1) +for a list of valid names. +Both functions point global variables +.I mach +and +.I machdata +to the +.I Mach +and +.I Machdata +data structures appropriate for the +target architecture and load global variable +.I asstype +with the proper disassembler type code. +.PP +.I Newmap +creates an empty map with +.I n +segments. +If +.I map +is zero, the new map is dynamically +allocated, otherwise it is assumed to +point to an existing dynamically allocated map whose +size is adjusted, as necessary. +A zero return value indicates an allocation error. +.PP +.I Setmap +loads the first unused segment in +.I map +with the +segment mapping parameters. +.I Fd +is an open file descriptor associated with +an executable. +.I Base +and +.I end +contain the lowest and highest virtual addresses +mapped by the segment. +.I Foffset +is the offset to the start of the segment in the file. +.I Name +is a name to be attached to the segment. +.PP +.I Findseg +returns the index of the the +segment named +.I name +in +.IR map . +A return of -1 indicates that no +segment matches +.IR name . +.PP +.I Unusemap +marks segment number +.I seg +in map +.I map +unused. Other +segments in the map remain unaffected. +.PP +.I Loadmap +initializes a default map containing +segments named `text' and `data' that +map the instruction and data segments +of the executable described in the +.B Fhdr +structure pointed to by +.IR fp . +Usually that structure was loaded by +.IR crackhdr +and can be passed to this function without +modification. +If +.I map +is non-zero, that map, which must have been +dynamically allocated, is resized to contain two segments; +otherwise a new map is allocated. +This function returns zero if allocation fails. +.I Loadmap +is usually used to build a map for accessing +a static executable, for example, an executable +program file. +.PP +.I Attachproc +constructs a map for accessing a +running process. It +returns the address of a +.I Map +containing segments mapping the +address space of the running process +whose process ID is +.BR pid . +If +.B kflag +is non-zero, the process is assumed to be +a kernel process. +.B Corefd +is an file descriptor opened to +.BR /proc/\fIpid\fP/mem . +.B Fp +points to the +.I Fhdr +structure describing the header +of the executable. For most architectures +the resulting +.I Map +contains four segments named `text', `data', +`regs' and `fpregs'. The latter two provide access to +the general and floating point registers, respectively. +If the executable is a kernel process (indicated by a +non-zero +.B kflag +argument), the data segment extends to the maximum +supported address, currently 0xffffffff, and the +register sets are read-only. In user-level programs, +the data segment extends to the +top of the stack or 0x7fffffff if the stack top +cannot be found, and the register sets are readable +and writable. +.I Attachproc +returns zero if it is unable to build the map +for the specified process. +.PP +.IR Get1 , +.IR get2 , +.IR get4 , +and +.I get8 +retrieve the data stored at address +.I addr +in the executable associated +with +.IR map . +.I Get1 +retrieves +.I n +bytes of data beginning at +.I addr +into +.IR buf . +.IR Get2 , +.I get4 +and +.I get8 +retrieve 16-bit, 32-bit and 64-bit values respectively, +into the location pointed to by +.IR val . +The value is byte-swapped if the source +byte order differs from that of the current architecture. +This implies that the value returned by +.IR get2 , +.IR get4 , +and +.I get8 +may not be the same as the byte sequences +returned by +.I get1 +when +.I n +is two, four or eight; the former may be byte-swapped, the +latter reflects the byte order of the target architecture. +If the file descriptor associated with the applicable segment in +.I map +is negative, the address itself is placed in the +return location. These functions return the number +of bytes read or a \-1 when there is an error. +.PP +.IR Put1 , +.IR put2 , +.IR put4 , +and +.I put8 +write to +the executable associated with +.IR map . +The address is translated using the +map parameters and multi-byte quantities are +byte-swapped, if necessary, before they are written. +.I Put1 +transfers +.I n +bytes stored at +.IR buf ; +.IR put2 , +.IR put4 , +and +.I put8 +write the 16-bit, 32-bit or 64-bit quantity contained in +.IR val , +respectively. The number of bytes transferred is returned. +A \-1 return value indicates an error. +.PP +.IR Beswab , +.IR beswal , +and +.I beswav +return the +.BR ushort , +.BR long , +and +.B vlong +big-endian representation of +.IR val , +respectively. +.IR Leswab , +.IR leswal , +and +.I leswav +return the little-endian representation of the +.BR ushort , +.BR long , +and +.B vlong +contained in +.IR val . +.SH SOURCE +.B /sys/src/libmach +.SH "SEE ALSO" +.IR 2c (1), +.IR symbol (2), +.IR object (2), +.IR errstr (2), +.IR proc (3), +.IR a.out (6) +.SH DIAGNOSTICS +These routines set +.IR errstr . diff --git a/static/plan9-4e/man2/malloc.2 b/static/plan9-4e/man2/malloc.2 new file mode 100644 index 00000000..52183079 --- /dev/null +++ b/static/plan9-4e/man2/malloc.2 @@ -0,0 +1,198 @@ +.TH MALLOC 2 +.SH NAME +malloc, mallocz, free, realloc, calloc, msize, setmalloctag, setrealloctag, getmalloctag, getrealloctag, malloctopoolblock \- memory allocator +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLvoid* 'u +.B +void* malloc(ulong size) +.PP +.B +void* mallocz(ulong size, int clr) +.PP +.B +void free(void *ptr) +.PP +.B +void* realloc(void *ptr, ulong size) +.PP +.B +void* calloc(ulong nelem, ulong elsize) +.PP +.B +ulong msize(void *ptr) +.PP +.B +void setmalloctag(void *ptr, ulong tag) +.PP +.B +ulong getmalloctag(void *ptr, ulong tag) +.PP +.B +void setrealloctag(void *ptr, ulong tag) +.PP +.B +ulong getrealloctag(void *ptr, ulong tag) +.PP +.SH DESCRIPTION +.I Malloc +and +.I free +provide a simple memory allocation package. +.I Malloc +returns a pointer to a new block of at least +.I size +bytes. +The block is suitably aligned for storage of any type of object. +No two active pointers from +.I malloc +will have the same value. +Incompatibly with ANSI C, +the call +.B malloc(0) +returns a valid pointer rather than null. +.PP +The argument to +.I free +is a pointer to a block previously allocated by +.IR malloc ; +this space is made available for further allocation. +It is legal to free a null pointer; the effect is a no-op. +The contents of the space returned by +.I malloc +are undefined. +.I Mallocz +behaves as +.IR malloc , +except that if +.I clr +is non-zero, the memory returned will be zeroed. +.PP +.I Realloc +changes the size of the block pointed to by +.I ptr +to +.I size +bytes and returns a pointer to the (possibly moved) +block. +The contents will be unchanged up to the +lesser of the new and old sizes. +The call +.B "realloc(0,\ size) +means the same as +.LR malloc(size) . +Further, +the call +.B "realloc(ptr,\ 0) +means the same as +.LR free(ptr) . +.PP +.I Calloc +allocates space for +an array of +.I nelem +elements of size +.IR elsize . +The space is initialized to zeros. +.I Free +frees such a block. +.PP +When a block is allocated, sometimes there is some extra unused space at the end. +.I Msize +grows the block to encompass this unused space and returns the new number +of bytes that may be used. +.PP +The memory allocator maintains two word-sized fields +associated with each block, the ``malloc tag'' and the ``realloc tag''. +By convention, the malloc tag is the PC that allocated the block, +and the realloc tag the PC that last reallocated the block. +These may be set or examined with +.IR setmalloctag , +.IR getmalloctag , +.IR setrealloctag , +and +.IR getrealloctag . +When allocating blocks directly with +.I malloc +and +.IR realloc , +these tags will be set properly. +If a custom allocator wrapper is used, +the allocator wrapper can set the tags +itself (usually by passing the result of +.IR getcallerpc (2) +to +.IR setmalloctag ) +to provide more useful information about +the source of allocation. +.PP +.I Malloctopoolblock +takes the address of a block returned by +.I malloc +and returns the address of the corresponding +block allocated by the +.IR pool (2) +routines. +.SH SOURCE +.B /sys/src/libc/port/malloc.c +.SH SEE ALSO +.IR leak (1), +.I trump +(in +.IR acid (1)), +.IR brk (2), +.IR getcallerpc (2), +.IR pool (2) +.SH DIAGNOSTICS +.I Malloc, realloc +and +.I calloc +return 0 if there is no available memory. +.I Errstr +is likely to be set. +If the allocated blocks have no malloc or realloc tags, +.I getmalloctag +and +.I getrealloctag +return +.BR ~0 . +.PP +After including +.BR pool.h , +the call +.B poolcheck(mainmem) +can be used to scan the storage arena for inconsistencies +such as data written beyond the bounds of allocated blocks. +It is often useful to combine this with with setting +.EX + mainmem->flags |= POOL_NOREUSE; +.EE +at the beginning of your program. +This will cause malloc not to reallocate blocks even +once they are freed; +.B poolcheck(mainmem) +will then detect writes to freed blocks. +.PP +The +.I trump +library for +.I acid +can be used to obtain traces of malloc execution; see +.IR acid (1). +.SH BUGS +The different specification of +.I calloc +is bizarre. +.PP +User errors can corrupt the storage arena. +The most common gaffes are (1) freeing an already freed block, +(2) storing beyond the bounds of an allocated block, and (3) +freeing data that was not obtained from the allocator. +When +.I malloc +and +.I free +detect such corruption, they abort. diff --git a/static/plan9-4e/man2/matrix.2 b/static/plan9-4e/man2/matrix.2 new file mode 100644 index 00000000..6291aa6d --- /dev/null +++ b/static/plan9-4e/man2/matrix.2 @@ -0,0 +1,350 @@ +.TH MATRIX 2 +.SH NAME +ident, matmul, matmulr, determinant, adjoint, invertmat, xformpoint, xformpointd, xformplane, pushmat, popmat, rot, qrot, scale, move, xform, ixform, persp, look, viewport \- Geometric transformations +.SH SYNOPSIS +.PP +.B +#include +.PP +.B +#include +.PP +.B +void ident(Matrix m) +.PP +.B +void matmul(Matrix a, Matrix b) +.PP +.B +void matmulr(Matrix a, Matrix b) +.PP +.B +double determinant(Matrix m) +.PP +.B +void adjoint(Matrix m, Matrix madj) +.PP +.B +double invertmat(Matrix m, Matrix inv) +.PP +.B +Point3 xformpoint(Point3 p, Space *to, Space *from) +.PP +.B +Point3 xformpointd(Point3 p, Space *to, Space *from) +.PP +.B +Point3 xformplane(Point3 p, Space *to, Space *from) +.PP +.B +Space *pushmat(Space *t) +.PP +.B +Space *popmat(Space *t) +.PP +.B +void rot(Space *t, double theta, int axis) +.PP +.B +void qrot(Space *t, Quaternion q) +.PP +.B +void scale(Space *t, double x, double y, double z) +.PP +.B +void move(Space *t, double x, double y, double z) +.PP +.B +void xform(Space *t, Matrix m) +.PP +.B +void ixform(Space *t, Matrix m, Matrix inv) +.PP +.B +int persp(Space *t, double fov, double n, double f) +.PP +.B +void look(Space *t, Point3 eye, Point3 look, Point3 up) +.PP +.B +void viewport(Space *t, Rectangle r, double aspect) +.SH DESCRIPTION +These routines manipulate 3-space affine and projective transformations, +represented as 4\(mu4 matrices, thus: +.IP +.EX +.ta 6n +typedef double Matrix[4][4]; +.EE +.PP +.I Ident +stores an identity matrix in its argument. +.I Matmul +stores +.I a\(mub +in +.IR a . +.I Matmulr +stores +.I b\(mua +in +.IR b . +.I Determinant +returns the determinant of matrix +.IR m . +.I Adjoint +stores the adjoint (matrix of cofactors) of +.I m +in +.IR madj . +.I Invertmat +stores the inverse of matrix +.I m +in +.IR minv , +returning +.IR m 's +determinant. +Should +.I m +be singular (determinant zero), +.I invertmat +stores its +adjoint in +.IR minv . +.PP +The rest of the routines described here +manipulate +.I Spaces +and transform +.IR Point3s . +A +.I Point3 +is a point in three-space, represented by its +homogeneous coordinates: +.IP +.EX +typedef struct Point3 Point3; +struct Point3{ + double x, y, z, w; +}; +.EE +.PP +The homogeneous coordinates +.RI ( x , +.IR y , +.IR z , +.IR w ) +represent the Euclidean point +.RI ( x / w , +.IR y / w , +.IR z / w ) +if +.IR w ≠0, +and a ``point at infinity'' if +.IR w =0. +.PP +A +.I Space +is just a data structure describing a coordinate system: +.IP +.EX +typedef struct Space Space; +struct Space{ + Matrix t; + Matrix tinv; + Space *next; +}; +.EE +.PP +It contains a pair of transformation matrices and a pointer +to the +.IR Space 's +parent. The matrices transform points to and from the ``root +coordinate system,'' which is represented by a null +.I Space +pointer. +.PP +.I Pushmat +creates a new +.IR Space . +Its argument is a pointer to the parent space. Its result +is a newly allocated copy of the parent, but with its +.B next +pointer pointing at the parent. +.I Popmat +discards the +.B Space +that is its argument, returning a pointer to the stack. +Nominally, these two functions define a stack of transformations, +but +.B pushmat +can be called multiple times +on the same +.B Space +multiple times, creating a transformation tree. +.PP +.I Xformpoint +and +.I Xformpointd +both transform points from the +.B Space +pointed to by +.I from +to the space pointed to by +.IR to . +Either pointer may be null, indicating the root coordinate system. +The difference between the two functions is that +.B xformpointd +divides +.IR x , +.IR y , +.IR z , +and +.I w +by +.IR w , +if +.IR w ≠0, +making +.RI ( x , +.IR y , +.IR z ) +the Euclidean coordinates of the point. +.PP +.I Xformplane +transforms planes or normal vectors. A plane is specified by the +coefficients +.RI ( a , +.IR b , +.IR c , +.IR d ) +of its implicit equation +.IR ax+by+cz+d =0. +Since this representation is dual to the homogeneous representation of points, +.B libgeometry +represents planes by +.B Point3 +structures, with +.RI ( a , +.IR b , +.IR c , +.IR d ) +stored in +.RI ( x , +.IR y , +.IR z , +.IR w ). +.PP +The remaining functions transform the coordinate system represented +by a +.BR Space . +Their +.B Space * +argument must be non-null \(em you can't modify the root +.BR Space . +.I Rot +rotates by angle +.I theta +(in radians) about the given +.IR axis , +which must be one of +.BR XAXIS , +.B YAXIS +or +.BR ZAXIS . +.I Qrot +transforms by a rotation about an arbitrary axis, specified by +.B Quaternion +.IR q . +.PP +.I Scale +scales the coordinate system by the given scale factors in the directions of the three axes. +.IB Move +translates by the given displacement in the three axial directions. +.PP +.I Xform +transforms the coordinate system by the given +.BR Matrix . +If the matrix's inverse is known +.I a +.IR priori , +calling +.I ixform +will save the work of recomputing it. +.PP +.I Persp +does a perspective transformation. +The transformation maps the frustum with apex at the origin, +central axis down the positive +.I y +axis, and apex angle +.I fov +and clipping planes +.IR y = n +and +.IR y = f +into the double-unit cube. +The plane +.IR y = n +maps to +.IR y '=-1, +.IR y = f +maps to +.IR y '=1. +.PP +.I Look +does a view-pointing transformation. The +.B eye +point is moved to the origin. +The line through the +.I eye +and +.I look +points is aligned with the y axis, +and the plane containing the +.BR eye , +.B look +and +.B up +points is rotated into the +.IR x - y +plane. +.PP +.I Viewport +maps the unit-cube window into the given screen viewport. +The viewport rectangle +.I r +has +.IB r .min +at the top left-hand corner, and +.IB r .max +just outside the lower right-hand corner. +Argument +.I aspect +is the aspect ratio +.RI ( dx / dy ) +of the viewport's pixels (not of the whole viewport). +The whole window is transformed to fit centered inside the viewport with equal +slop on either top and bottom or left and right, depending on the viewport's +aspect ratio. +The window is viewed down the +.I y +axis, with +.I x +to the left and +.I z +up. The viewport +has +.I x +increasing to the right and +.I y +increasing down. The window's +.I y +coordinates are mapped, unchanged, into the viewport's +.I z +coordinates. +.SH SOURCE +.B /sys/src/libgeometry/matrix.c +.SH "SEE ALSO +.IR arith3 (2) diff --git a/static/plan9-4e/man2/memdraw.2 b/static/plan9-4e/man2/memdraw.2 new file mode 100644 index 00000000..a349cd3b --- /dev/null +++ b/static/plan9-4e/man2/memdraw.2 @@ -0,0 +1,450 @@ +.TH MEMDRAW 2 +.SH NAME +Memimage, +Memdata, +Memdrawparam, +memimageinit, +wordaddr, +byteaddr, +memimagemove, +allocmemimage, +allocmemimaged, +readmemimage, +creadmemimage, +writememimage, +freememimage, +memsetchan, +loadmemimage, +cloadmemimage, +unloadmemimage, +memfillcolor, +memarc, +mempoly, +memellipse, +memfillpoly, +memimageline, +memimagedraw, +drawclip, +memlinebbox, +memlineendsize, +allocmemsubfont, +openmemsubfont, +freememsubfont, +memsubfontwidth, +getmemdefont, +memimagestring, +iprint, +hwdraw \- drawing routines for memory-resident images +.SH SYNOPSIS +.nf +.B #include +.nf +.B #include +.B #include +.B #include +.B #include +.PP +.ft L +typedef struct Memdata +{ + ulong *base; /* allocated data pointer */ + uchar *bdata; /* first byte of actual data; word-aligned */ + int ref; /* number of Memimages using this data */ + void* imref; /* last image that pointed at this */ + int allocd; /* is this malloc'd? */ +} Memdata; + +enum { + Frepl = 1<<0, /* is replicated */ + Fsimple = 1<<1, /* is 1x1 */ + Fgrey = 1<<2, /* is grey */ + Falpha = 1<<3, /* has explicit alpha */ + Fcmap = 1<<4, /* has cmap channel */ + Fbytes = 1<<5, /* has only 8-bit channels */ +}; + +typedef struct Memimage +{ + Rectangle r; /* rectangle in data area, local coords */ + Rectangle clipr; /* clipping region */ + int depth; /* number of bits of storage per pixel */ + int nchan; /* number of channels */ + ulong chan; /* channel descriptions */ + + Memdata *data; /* pointer to data */ + int zero; /* data->bdata+zero==&byte containing (0,0) */ + ulong width; /* width in words of a single scan line */ + Memlayer *layer; /* nil if not a layer*/ + ulong flags; + \fI...\fP +} Memimage; + +typedef struct Memdrawparam +{ + Memimage *dst; + Rectangle r; + Memimage *src; + Rectangle sr; + Memimage *mask; + Rectangle mr; + \fI...\fP +} Memdrawparam; + +.ta \w'\fLMemsubfont* 'u +int drawdebug; +.ft +.PP +.ft L +.nf +void memimageinit(void) +ulong* wordaddr(Memimage *i, Point p) +uchar* byteaddr(Memimage *i, Point p) +void memimagemove(void *from, void *to) +.PP +.ft L +.nf +Memimage* allocmemimage(Rectangle r, ulong chan) +Memimage* allocmemimaged(Rectangle r, ulong chan, Memdata *data) +Memimage* readmemimage(int fd) +Memimage* creadmemimage(int fd) +int writememimage(int fd, Memimage *i) +void freememimage(Memimage *i) +int memsetchan(Memimage*, ulong) +.PP +.ft L +.nf +int loadmemimage(Memimage *i, Rectangle r, + uchar *buf, int nbuf) +int cloadmemimage(Memimage *i, Rectangle r, + uchar *buf, int nbuf) +int unloadmemimage(Memimage *i, Rectangle r, + uchar *buf, int nbuf) +void memfillcolor(Memimage *i, ulong color) +.PP +.ft L +.nf +void memarc(Memimage *dst, Point c, int a, int b, int thick, + Memimage *src, Point sp, int alpha, int phi) +void mempoly(Memimage *dst, Point *p, int np, int end0, + int end1, int radius, Memimage *src, Point sp) +void memellipse(Memimage *dst, Point c, int a, int b, + int thick, Memimage *src, Point sp) +void memfillpoly(Memimage *dst, Point *p, int np, int wind, + Memimage *src, Point sp) +void memimageline(Memimage *dst, Point p0, Point p1, int end0, + int end1, int radius, Memimage *src, Point sp) +void memimagedraw(Memimage *dst, Rectangle r, Memimage *src, + Point sp, Memimage *mask, Point mp) +.PP +.ft L +.nf +int drawclip(Memimage *dst, Rectangle *dr, Memimage *src, + Point *sp, Memimage *mask, Point *mp, + Rectangle *sr, Rectangle *mr) +Rectangle memlinebbox(Point p0, Point p1, int end0, int end1, + int radius) +int memlineendsize(int end) +.PP +.ft L +.nf +Memsubfont* allocmemsubfont(char *name, int n, int height, + int ascent, Fontchar *info, Memimage *i) +Memsubfont* openmemsubfont(char *name) +void freememsubfont(Memsubfont *f) +Point memsubfontwidth(Memsubfont *f, char *s) +Memsubfont* getmemdefont(void) +Point memimagestring(Memimage *dst, Point p, Memimage *color, + Point cp, Memsubfont *f, char *cs) +.PP +.ft L +.nf +int iprint(char *fmt, ...) +int hwdraw(Memdrawparam *param) +.ft R +.SH DESCRIPTION +The +.B Memimage +type defines memory-resident rectangular pictures and the methods to draw upon them; +.BR Memimage s +differ from +.BR Image s +(see +.IR draw (2)) +in that they are manipulated directly in user memory rather than by +RPCs to the +.B /dev/draw +hierarchy. +The +.Bmemdraw +library is the basis for the kernel +.IR draw (3) +driver and also used by a number of programs that must manipulate +images without a display. +.PP +The +.BR r, +.BR clipr , +.BR depth , +.BR nchan , +and +.BR chan +structure elements are identical to +the ones of the same name +in the +.B Image +structure. +.PP +The +.B flags +element of the +.B Memimage +structure holds a number of bits of information about the image. +In particular, it subsumes the +purpose of the +.B repl +element of +.B Image +structures. +.PP +.I Memimageinit +initializes various static data that the library depends on, +as well as the replicated solid color images +.BR memopaque , +.BR memtransparent , +.BR memblack , +and +.BR memwhite . +It should be called before referring to any of these images +and before calling any of the other library functions. +.PP +Each +.B Memimage +points at a +.B Memdata +structure that in turn points at the actual pixel data for the image. +This allows multiple images to be associated with the same +.BR Memdata . +The first word of the data pointed at by +the +.B base +element of +.B Memdata +points back at the +.B Memdata +structure, so that the +memory allocator (see +.IR pool (2)) +can compact image memory +using +.IR memimagemove . +.PP +Because images can have different coordinate systems, +the +.B zero +element of the +.B Memimage +structure contains the offset that must be added +to the +.B bdata +element of the corresponding +.B Memdata +structure in order to yield a pointer to the data for the pixel (0,0). +Adding +.BR width +machine words +to this pointer moves it down one scan line. +The +.B depth +element can be used to determine how to move the +pointer horizontally. +Note that this method works even for images whose rectangles +do not include the origin, although one should only dereference +pointers corresponding to pixels within the image rectangle. +.I Wordaddr +and +.IR byteaddr +perform these calculations, +returning pointers to the word and byte, respectively, +that contain the beginning of the data for a given pixel. +.PP +.I Allocmemimage +allocages +images with a given rectangle and channel descriptor +(see +.B strtochan +in +.IR graphics (2)), +creating a fresh +.B Memdata +structure and associated storage. +.I Allocmemimaged +is similar but uses the supplied +.I Memdata +structure rather than a new one. +The +.I readmemimage +function reads an uncompressed bitmap +from the given file descriptor, +while +.I creadmemimage +reads a compressed bitmap. +.I Writememimage +writes a compressed representation of +.I i +to file descriptor +.IR fd . +For more on bitmap formats, see +.IR image (6). +.I Freememimage +frees images returned by any of these routines. +The +.B Memimage +structure contains some tables that are used +to store precomputed values depending on the channel descriptor. +.I Memsetchan +updates the +.B chan +element of the structure as well as these tables, +returning \-1 if passed a bad channel descriptor. +.PP +.I Loadmemimage +and +.I cloadmemimage +replace the pixel data for a given rectangle of an image +with the given buffer of uncompressed or compressed +data, respectively. +When calling +.IR cloadmemimage , +the buffer must contain an +integral number of +compressed chunks of data that exactly cover the rectangle. +.I Unloadmemimage +retrieves the uncompressed pixel data for a given rectangle of an image. +All three return the number of bytes consumed on success, +and \-1 in case of an error. +.PP +.I Memfillcolor +fills an image with the given color, a 32-bit number as +described in +.IR color (2). +.PP +.IR Memarc , +.IR mempoly , +.IR memellipse , +.IR memfillpoly , +.IR memimageline , +and +.I memimagedraw +are identical to the +.IR arc , +.IR poly , +.IR ellipse , +.IR fillpoly , +.IR line , +and +.IR gendraw , +routines described in +.IR draw (2), +except that they operate on +.BR Memimage s +rather than +.BR Image s. +Similarly, +.IR allocmemsubfont , +.IR openmemsubfont , +.IR freememsubfont , +.IR memsubfontwidth , +.IR getmemdefont , +and +.I memimagestring +are the +.B Memimage +analogues of +.IR allocsubfont , +.IR openfont , +.IR freesubfont , +.IR strsubfontwidth , +.IR getdefont , +and +.B string +(see +.IR subfont (2) +and +.IR graphics (2)), +except that they operate +only on +.BR Memsubfont s +rather than +.BR Font s. +.PP +.I Drawclip +takes the images involved in a draw operation, +together with the destination rectangle +.B dr +and source +and mask alignment points +.B sp +and +.BR mp , +and +clips them according to the clipping rectangles of the images involved. +It also fills in the rectangles +.B sr +and +.B mr +with rectangles congruent to the returned destination rectangle +but translated so the upper left corners are the returned +.B sp +and +.BR mp . +.I Drawclip +returns zero when the clipped rectangle is empty. +.I Memlinebbox +returns a conservative bounding box containing a line between +two points +with given end styles +and radius. +.I Memlineendsize +calculates the extra length added to a line by attaching +an end of a given style. +.PP +The +.I hwdraw +and +.I iprint +functions are no-op stubs that may be overridden by clients +of the library. +.I Hwdraw +is called at each call to +.I memimagedraw +with the current request's parameters. +If it can satisfy the request, it should do so +and return 1. +If it cannot satisfy the request, it should return 0. +This allows (for instance) the kernel to take advantage +of hardware acceleration. +.I Iprint +should format and print its arguments; +it is given much debugging output when +the global integer variable +.B drawdebug +is non-zero. +In the kernel, +.I iprint +prints to a serial line rather than the screen, for obvious reasons. +.SH SOURCE +.B /sys/src/libmemdraw +.SH SEE ALSO +.IR addpt (2), +.IR color (2), +.IR draw (2), +.IR graphics (2), +.IR memlayer (2), +.IR stringsize (2), +.IR subfont (2), +.IR color (6), +.IR utf (6) +.SH BUGS +.I Memimagestring +is unusual in using a subfont rather than a font, +and in having no parameter to align the source. diff --git a/static/plan9-4e/man2/memlayer.2 b/static/plan9-4e/man2/memlayer.2 new file mode 100644 index 00000000..6c3cd9f3 --- /dev/null +++ b/static/plan9-4e/man2/memlayer.2 @@ -0,0 +1,305 @@ +.TH MEMLAYER 2 +.SH NAME +memdraw, memlalloc, memldelete, memlexpose, memlfree, memlhide, memline, memlnorefresh, memload, memunload, memlorigin, memlsetrefresh, memltofront, memltofrontn, memltorear, memltorearn \- windows of memory-resident images +.SH SYNOPSIS +.nf +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.ft L +typedef struct Memscreen Memscreen; +typedef struct Memlayer Memlayer; +typedef void (*Refreshfn)(Memimage*, Rectangle, void*); +.ta 4n +\w'\fLRefreshfn 'u +\w'\fL*frontmost; 'u + +struct Memscreen +{ + Memimage *frontmost; /* frontmost layer on screen */ + Memimage *rearmost; /* rearmost layer on screen */ + Memimage *image; /* upon which all layers are drawn */ + Memimage *fill; /* if non-zero, picture to use when repainting */ +}; + +struct Memlayer +{ + Rectangle screenr; /* true position of layer on screen */ + Point delta; /* add delta to go from image coords to screen */ + Memscreen *screen; /* screen this layer belongs to */ + Memimage *front; /* window in front of this one */ + Memimage *rear; /* window behind this one*/ + int clear; /* layer is fully visible */ + Memimage *save; /* save area for obscured parts */ + Refreshfn refreshfn; /* fn to refresh obscured parts if save==nil */ + void *refreshptr; /* argument to refreshfn */ +}; +.ft +.ta \w'\fLMemimage* 'u +.PP +.B +Memimage* memlalloc(Memscreen *s, Rectangle r, Refreshfn fn, void *arg, ulong col) +.PP +.B void memlnorefresh(Memimage *i, Rectangle r, void *arg) +.PP +.B +int memlsetrefresh(Memimage *i, Refreshfn fn, void *arg) +.PP +.B +int memldelete(Memimage *i) +.PP +.B +int memlfree(Memimage *i) +.PP +.B +int memlexpose(Memimage *i, Rectangle r) +.PP +.B +int memlhide(Memimage *i, Rectangle r) +.PP +.B +void memltofront(Memimage *i) +.PP +.B +void memltofrontn(Memimage**ia, int n) +.PP +.B +void memltorear(Memimage *i) +.PP +.B +void memltorearn(Memimage **ia , int n) +.PP +.B +int memlorigin(Memimage *i, Point log, Point phys) +.PP +.B +void memdraw(Image *dst, Rectangle r, +.br +.B + Image *src, Point sp, Image *mask, Point mp) +.fi +.B +int memload(Memimage *i, Rectangle r, +.br +.B + uchar *buf, int n, int iscompressed) +.PP +.B +int memunload(Memimage *i, Rectangle r, +.br +.B + uchar *buf, int n) +.PP +.SH DESCRIPTION +These functions build upon the +.IR memdraw (2) +interface to maintain overlapping graphical windows on in-memory images. +They are used by the kernel to implement the windows interface presented by +.IR draw (3) +and +.IR window (2) +and probably have little use outside of the kernel. +.PP +The basic function is to extend the definition of a +.B Memimage +(see +.IR memdraw (2)) +to include overlapping windows defined by the +.B Memlayer +type. +The first fields of the +.B Memlayer +structure are identical to those in +.BR Memimage , +permitting a function that expects a +.B Memimage +to be passed a +.BR Memlayer , +and vice versa. +Both structures have a +.B save +field, which is nil in a +.B Memimage +and points to `backing store' in a +.BR Memlayer . +The layer routines accept +.B Memimages +or +.BR Memlayers ; +if the image is a +.B Memimage +the underlying +.B Memimage +routine is called; otherwise the layer routines recursively +subdivide the geometry, reducing the operation into a smaller +component that ultimately can be performed on a +.BR Memimage , +either the display on which the window appears, or the backing store. +.PP +.B Memlayers +are associated with a +.B Memscreen +that holds the data structures to maintain the windows and connects +them to the associated +.BR image . +The +.B fill +color is used to paint the background when a window is deleted. +There is no function to establish a +.BR Memscreen ; +to create one, allocate the memory, zero +.B frontmost +and +.BR rearmost , +set +.B fill +to a valid fill color or image, and set +.B image +to the +.B Memimage +(or +.BR Memlayer ) +on which the windows will be displayed. +.PP +.I Memlalloc +allocates a +.B Memlayer +of size +.I r +on +.B Memscreen +.IR s . +If +.I col +is not +.BR DNofill , +the new window will be initialized by painting it that color. +.PP +The refresh function +.I fn +and associated argument +.I arg +will be called by routines in the library to restore portions of the window +uncovered due to another window being deleted or this window being pulled to the front of the stack. +The function, when called, +receives a pointer to the image (window) being refreshed, the rectangle that has been uncovered, +and the +.I arg +recorded when the window was created. +A couple of predefined functions provide built-in management methods: +.I memlnorefresh +does no backup at all, useful for making efficient temporary windows; +while a +.I nil +function specifies that the backing store +.RB ( Memlayer.save ) +will be used to keep the obscured data. +Other functions may be provided by the client. +.I Memlsetrefresh +allows one to change the function associated with the window. +.PP +.I Memldelete +deletes the window +.IR i , +restoring the underlying display. +.I Memlfree +frees the data structures without unlinking the window from the associated +.B Memscreen +or doing any graphics. +.PP +.I Memlexpose +restores rectangle +.I r +within the window, using the backing store or appropriate refresh method. +.I Memlhide +goes the other way, backing up +.I r +so that that portion of the screen may be modified without losing the data in this window. +.PP +.I Memltofront +pulls +.I i +to the front of the stack of windows, making it fully visible. +.I Memltofrontn +pulls the +.I n +windows in the array +.I ia +to the front as a group, leaving their internal order unaffected. +.I Memltorear +and +.I memltorearn +push the windows to the rear. +.PP +.I Memlorigin +changes the coordinate systems associated with the window +.IR i . +The points +.I log +and +.I phys +represent the upper left corner +.RB ( min ) +of the window's internal coordinate system and its physical location on the screen. +Changing +.I log +changes the interpretation of coordinates within the window; for example, setting it to +(0,\ 0) makes the upper left corner of the window appear to be the origin of the coordinate +system, regardless of its position on the screen. +Changing +.I phys +changes the physical location of the window on the screen. +When a window is created, its logical and physical coordinates are the same, so +.EX + memlorigin(i, i->r.min, i->r.min) +.EE +would be a no-op. +.PP +.I Memdraw +and +.I memline +are implemented in the layer library but provide the main entry points for drawing on +memory-resident windows. +They have the signatures of +.I memimagedraw +and +.I memimageline +(see +.IR memdraw (2)) +but accept +.B Memlayer +or +.B Memimage +arguments both. +.PP +.I Memload +and +.I memunload +are similarly layer-savvy versions of +.I loadmemimage +and +.IR unloadmemimage . +The +.I iscompressed +flag to +.I memload +specifies whether the +.I n +bytes of data in +.I buf +are in compressed image format +(see +.IR image (6)). +.SH SOURCE +.B /sys/src/libmemlayer +.SH SEE ALSO +.IR graphics (2), +.IR memdraw (2), +.IR stringsize (2), +.IR window (2), +.IR draw (3) diff --git a/static/plan9-4e/man2/memory.2 b/static/plan9-4e/man2/memory.2 new file mode 100644 index 00000000..1548e9ac --- /dev/null +++ b/static/plan9-4e/man2/memory.2 @@ -0,0 +1,126 @@ +.TH MEMORY 2 +.SH NAME +memccpy, memchr, memcmp, memcpy, memmove, memset \- memory operations +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLvoid* 'u +.B +void* memccpy(void *s1, void *s2, int c, long n) +.PP +.B +void* memchr(void *s, int c, long n) +.PP +.B +int memcmp(void *s1, void *s2, long n) +.PP +.B +void* memcpy(void *s1, void *s2, long n) +.PP +.B +void* memmove(void *s1, void *s2, long n) +.PP +.B +void* memset(void *s, int c, long n) +.SH DESCRIPTION +These functions operate efficiently on memory areas +(arrays of bytes bounded by a count, not terminated by a zero byte). +They do not check for the overflow of any receiving memory area. +.PP +.I Memccpy +copies bytes from memory area +.I s2 +into +.IR s1 , +stopping after the first occurrence of byte +.I c +has been copied, or after +.I n +bytes have been copied, whichever comes first. +It returns a pointer to the byte after +the copy of +.I c +in +.IR s1 , +or zero if +.I c +was not found in the first +.I n +bytes of +.IR s2 . +.PP +.I Memchr +returns a pointer to the first +occurrence of byte +.I c +in the first +.I n +bytes of memory area +.IR s, +or zero if +.I c +does not occur. +.PP +.I Memcmp +compares its arguments, looking at the first +.I n +bytes only, and returns an integer +less than, equal to, or greater than 0, +according as +.I s1 +is lexicographically less than, equal to, or +greater than +.IR s2 . +The comparison is bytewise unsigned. +.PP +.I Memcpy +copies +.I n +bytes from memory area +.I s2 +to +.IR s1 . +It returns +.IR s1 . +.PP +.I Memmove +works like +.IR memcpy , +except that it is guaranteed to work if +.I s1 +and +.IR s2 +overlap. +.PP +.I Memset +sets the first +.I n +bytes in memory area +.I s +to the value of byte +.IR c . +It returns +.IR s . +.SH SOURCE +All these routines have portable C implementations in +.BR /sys/src/libc/port . +Most also have machine-dependent assembly language implementations in +.BR /sys/src/libc/$objtype . +.SH SEE ALSO +.IR strcat (2) +.SH BUGS +ANSI C does not require +.I memcpy +to handle overlapping source and destination; on Plan 9, it does, so +.I memmove +and +.I memcpy +behave identically. +.PP +If +.I memcpy +and +.I memmove +are handed a negative count, they abort. diff --git a/static/plan9-4e/man2/mktemp.2 b/static/plan9-4e/man2/mktemp.2 new file mode 100644 index 00000000..683620ac --- /dev/null +++ b/static/plan9-4e/man2/mktemp.2 @@ -0,0 +1,40 @@ +.TH MKTEMP 2 +.SH NAME +mktemp \- make a unique file name +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +char* mktemp(char *template) +.fi +.SH DESCRIPTION +.I Mktemp +replaces +.I template +by a unique file name, and returns the +address of the template. +The template should look like a file name with eleven trailing +.LR X s. +The +.LR X s +are replaced by a letter followed by the current process id. +Letters from +.L a +to +.L z +are tried until a name that can be accessed +(see +.IR access (2)) +is generated. +If no such name can be generated, +.I mktemp +returns +\f5"/"\f1 . +.SH SOURCE +.B /sys/src/libc/port/mktemp.c +.SH "SEE ALSO" +.IR getpid (2), +.IR access (2) diff --git a/static/plan9-4e/man2/mouse.2 b/static/plan9-4e/man2/mouse.2 new file mode 100644 index 00000000..196a156e --- /dev/null +++ b/static/plan9-4e/man2/mouse.2 @@ -0,0 +1,249 @@ +.TH MOUSE 2 +.SH NAME +initmouse, readmouse, closemouse, moveto, cursorswitch, getrect, drawgetrect, menuhit, setcursor \- mouse control +.SH SYNOPSIS +.nf +.B +#include +.B +#include +.B +#include +.B +#include +.B +#include +.B +#include +.PP +.B +Mousectl *initmouse(char *file, Image *i) +.PP +.B +int readmouse(Mousectl *mc) +.PP +.B +int atomouse(); +.PP +.B +void closemouse(Mousectl *mc) +.PP +.B +void moveto(Mousectl *mc, Point pt) +.PP +.B +void setcursor(Mousectl *mc, Cursor *c) +.PP +.B +Rectangle getrect(int but, Mousectl *mc) +.PP +.B +void drawgetrect(Rectangle r, int up) +.PP +.B +int menuhit(int but, Mousectl *mc, Menu *menu, Screen *scr) +.fi +.SH DESCRIPTION +These functions access and control a mouse in a multi-threaded environment. +They use the message-passing +.B Channel +interface in the threads library +(see +.IR thread (2)); +programs that wish a more event-driven, single-threaded approach should use +.IR event (2). +.PP +The state of the mouse is recorded in a structure, +.BR Mouse , +defined in +.BR : +.IP +.EX +.ta 6n +\w'Rectangle 'u +\w'buttons; 'u +typedef struct Mouse Mouse; +struct Mouse +{ + int buttons; /* bit array: LMR=124 */ + Point xy; + ulong msec; +}; +.EE +.PP +The +.B Point +.B xy +records the position of the cursor, +.B buttons +the state of the buttons (three bits representing, from bit 0 up, the buttons from left to right, +0 if the button is released, 1 if it is pressed), +and +.BR msec , +a millisecond time stamp. +.PP +The routine +.B initmouse +returns a structure through which one may access the mouse: +.IP +.EX +typedef struct Mousectl Mousectl; +struct Mousectl +{ + Mouse; + Channel *c; /* chan(Mouse)[16] */ + Channel *resizec; /* chan(int)[2] */ + + char *file; + int mfd; /* to mouse file */ + int cfd; /* to cursor file */ + int pid; /* of slave proc */ + Image* image; /* of associated window/display */ +}; +.EE +.PP +The arguments to +.I initmouse +are a +.I file +naming the device file connected to the mouse and an +.I Image +(see +.IR draw (2)) +on which the mouse will be visible. +Typically the file is +nil, +which requests the default +.BR /dev/mouse ; +and the image is the window in which the program is running, held in the variable +.B screen +after a call to +.IR initdraw . +.PP +Once the +.B Mousectl +is set up, +mouse motion will be reported by messages of type +.B Mouse +sent on the +.B Channel +.BR Mousectl.c . +Typically, a message will be sent every time a read of +.B /dev/mouse +succeeds, which is every time the state of the mouse changes. +.PP +When the window is resized, a message is sent on +.BR Mousectl.resizec . +The actual value sent may be discarded; the receipt of the message +tells the program that it should call +.B getwindow +(see +.IR graphics (2)) +to reconnect to the window. +.PP +.I Readmouse +updates the +.B Mouse +structure held in the +.BR Mousectl , +blocking if the state has not changed since the last +.I readmouse +or message sent on the channel. +It calls +.B flushimage +(see +.IR graphics (2)) +before blocking, so any buffered graphics requests are displayed. +.PP +.I Closemouse +closes the file descriptors associated with the mouse, kills the slave processes, +and frees the +.B Mousectl +structure. +.PP +.I Moveto +moves the mouse cursor on the display to the position specified by +.IR pt . +.PP +.I Setcursor +sets the image of the cursor to that specified by +.IR c . +If +.I c +is nil, the cursor is set to the default. +The format of the cursor data is spelled out in +.B +and described in +.IR graphics (2). +.PP +.I Getrect +returns the dimensions of a rectangle swept by the user, using the mouse, +in the manner +.IR rio (1) +or +.IR sam (1) +uses to create a new window. +The +.I but +argument specifies which button the user must press to sweep the window; +any other button press cancels the action. +The returned rectangle is all zeros if the user cancels. +.PP +.I Getrect +uses successive calls to +.I drawgetrect +to maintain the red rectangle showing the sweep-in-progress. +The rectangle to be drawn is specified by +.I rc +and the +.I up +parameter says whether to draw (1) or erase (0) the rectangle. +.PP +.I Menuhit +provides a simple menu mechanism. +It uses a +.B Menu +structure defined in +.BR : +.IP +.EX +typedef struct Menu Menu; +struct Menu +{ + char **item; + char *(*gen)(int); + int lasthit; +}; +.EE +.PP +.IR Menuhit +behaves the same as its namesake +.I emenuhit +described in +.IR event (2), +with two exceptions. +First, it uses a +.B Mousectl +to access the mouse rather than using the event interface; +and second, +it creates the menu as a true window on the +.B Screen +.I scr +(see +.IR window (2)), +permitting the menu to be displayed in parallel with other activities on the display. +If +.I scr +is null, +.I menuhit +behaves like +.IR emenuhit , +creating backing store for the menu, writing the menu directly on the display, and +restoring the display when the menu is removed. +.PP +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR draw (2), +.IR event (2), +.IR keyboard (2), +.IR thread (2). diff --git a/static/plan9-4e/man2/mp.2 b/static/plan9-4e/man2/mp.2 new file mode 100644 index 00000000..01be7c3c --- /dev/null +++ b/static/plan9-4e/man2/mp.2 @@ -0,0 +1,568 @@ +.TH MP 2 +.SH NAME + +mpsetminbits, mpnew, mpfree, mpbits, mpnorm, mpcopy, mpassign, mprand, strtomp, mpfmt,mptoa, betomp, mptobe, letomp, mptole, mptoui, uitomp, mptoi, itomp, uvtomp, mptouv, vtomp, mptov, mpdigdiv, mpadd, mpsub, mpleft, mpright, mpmul, mpexp, mpmod, mpdiv, mpcmp, mpextendedgcd, mpinvert, mpsignif, mplowbits0, mpvecdigmuladd, mpvecdigmulsub, mpvecadd, mpvecsub, mpveccmp, mpvecmul, mpmagcmp, mpmagadd, mpmagsub, crtpre, crtin, crtout, crtprefree, crtresfree \- extended precision arithmetic +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.B +mpint* mpnew(int n) +.PP +.B +void mpfree(mpint *b) +.PP +.B +void mpsetminbits(int n) +.PP +.B +void mpbits(mpint *b, int n) +.PP +.B +void mpnorm(mpint *b) +.PP +.B +mpint* mpcopy(mpint *b) +.PP +.B +void mpassign(mpint *old, mpint *new) +.PP +.B +mpint* mprand(int bits, void (*gen)(uchar*, int), mpint *b) +.PP +.B +mpint* strtomp(char *buf, char **rptr, int base, mpint *b) +.PP +.B +char* mptoa(mpint *b, int base, char *buf, int blen) +.PP +.B +int mpfmt(Fmt*) +.PP +.B +mpint* betomp(uchar *buf, uint blen, mpint *b) +.PP +.B +int mptobe(mpint *b, uchar *buf, uint blen, uchar **bufp) +.PP +.B +mpint* letomp(uchar *buf, uint blen, mpint *b) +.PP +.B +int mptole(mpint *b, uchar *buf, uint blen, uchar **bufp) +.PP +.B +uint mptoui(mpint*) +.PP +.B +mpint* uitomp(uint, mpint*) +.PP +.B +int mptoi(mpint*) +.PP +.B +mpint* itomp(int, mpint*) +.PP +.B +mpint* vtomp(vlong, mpint*) +.PP +.B +vlong mptov(mpint*) +.PP +.B +mpint* uvtomp(uvlong, mpint*) +.PP +.B +uvlong mptouv(mpint*) +.PP +.B +void mpadd(mpint *b1, mpint *b2, mpint *sum) +.PP +.B +void mpmagadd(mpint *b1, mpint *b2, mpint *sum) +.PP +.B +void mpsub(mpint *b1, mpint *b2, mpint *diff) +.PP +.B +void mpmagsub(mpint *b1, mpint *b2, mpint *diff) +.PP +.B +void mpleft(mpint *b, int shift, mpint *res) +.PP +.B +void mpright(mpint *b, int shift, mpint *res) +.PP +.B +void mpmul(mpint *b1, mpint *b2, mpint *prod) +.PP +.B +void mpexp(mpint *b, mpint *e, mpint *m, mpint *res) +.PP +.B +void mpmod(mpint *b, mpint *m, mpint *remainder) +.PP +.B +void mpdiv(mpint *dividend, mpint *divisor, mpint *quotient, mpint *remainder) +.PP +.B +int mpcmp(mpint *b1, mpint *b2) +.PP +.B +int mpmagcmp(mpint *b1, mpint *b2) +.PP +.B +void mpextendedgcd(mpint *a, mpint *b, mpint *d, mpint *x, mpint *y) +.PP +.B +void mpinvert(mpint *b, mpint *m, mpint *res) +.PP +.B +int mpsignif(mpint *b) +.PP +.B +int mplowbits0(mpint *b) +.PP +.B +void mpdigdiv(mpdigit *dividend, mpdigit divisor, mpdigit *quotient) +.PP +.B +void mpvecadd(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *sum) +.PP +.B +void mpvecsub(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *diff) +.PP +.B +void mpvecdigmuladd(mpdigit *b, int n, mpdigit m, mpdigit *p) +.PP +.B +int mpvecdigmulsub(mpdigit *b, int n, mpdigit m, mpdigit *p) +.PP +.B +void mpvecmul(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *p) +.PP +.B +int mpveccmp(mpdigit *a, int alen, mpdigit *b, int blen) +.PP +.B +CRTpre* crtpre(int nfactors, mpint **factors) +.PP +.B +CRTres* crtin(CRTpre *crt, mpint *x) +.PP +.B +void crtout(CRTpre *crt, CRTres *r, mpint *x) +.PP +.B +void crtprefree(CRTpre *cre) +.PP +.B +void crtresfree(CRTres *res) +.PP +.B +mpint *mpzero, *mpone, *mptwo +.SH DESCRIPTION +.PP +These routines perform extended precision integer arithmetic. +The basic type is +.BR mpint , +which points to an array of +.BR mpdigit s, +stored in little-endian order: +.sp +.EX +typedef struct mpint mpint; +struct mpint +{ + int sign; /* +1 or -1 */ + int size; /* allocated digits */ + int top; /* significant digits */ + mpdigit *p; + char flags; +}; +.EE +.PP +The sign of 0 is +1. +.PP +The size of +.B mpdigit +is architecture-dependent and defined in +.BR /$cputype/include/u.h . +.BR Mpint s +are dynamically allocated and must be explicitly freed. Operations +grow the array of digits as needed. +.PP +In general, the result parameters are last in the +argument list. +.PP +Routines that return an +.B mpint +will allocate the +.B mpint +if the result parameter is +.BR nil . +This includes +.IR strtomp , +.IR itomp , +.IR uitomp , +and +.IR btomp . +These functions, in addition to +.I mpnew +and +.IR mpcopy , +will return +.B nil +if the allocation fails. +.PP +Input and result parameters may point to the same +.BR mpint . +The routines check and copy where necessary. +.PP +.I Mpnew +creates an +.B mpint +with an initial allocation of +.I n +bits. +If +.I n +is zero, the allocation will be whatever was specified in the +last call to +.I mpsetminbits +or to the initial value, 1056. +.I Mpfree +frees an +.BR mpint . +.I Mpbits +grows the allocation of +.I b +to fit at least +.I n +bits. If +.B b->top +doesn't cover +.I n +bits it increases it to do so. +Unless you are writing new basic operations, you +can restrict yourself to +.B mpnew(0) +and +.BR mpfree(b) . +.PP +.I Mpnorm +normalizes the representation by trimming any high order zero +digits. All routines except +.B mpbits +return normalized results. +.PP +.I Mpcopy +creates a new +.B mpint +with the same value as +.I b +while +.I mpassign +sets the value of +.I new +to be that of +.IR old . +.PP +.I Mprand +creates an +.I n +bit random number using the generator +.IR gen . +.I Gen +takes a pointer to a string of uchar's and the number +to fill in. +.PP +.I Strtomp +and +.I mptoa +convert between +.SM ASCII +and +.B mpint +representations using the base indicated. +Only the bases 10, 16, 32, and 64 are +supported. Anything else defaults to 16. +.IR Strtomp +skips any leading spaces or tabs. +.IR Strtomp 's +scan stops when encountering a digit not valid in the +base. If +.I rptr +is not zero, +.I *rptr +is set to point to the character immediately after the +string converted. +If the parse pterminates before any digits are found, +.I strtomp +return +.BR nil . +.I Mptoa +returns a pointer to the filled buffer. +If the parameter +.I buf +is +.BR nil , +the buffer is allocated. +.I Mpfmt +can be used with +.IR fmtinstall (2) +and +.IR print (2) +to print hexadecimal representations of +.BR mpint s. +.PP +.I Mptobe +and +.I mptole +convert an +.I mpint +to a byte array. The former creates a big endian representation, +the latter a little endian one. +If the destination +.I buf +is not +.BR nil , +it specifies the buffer of length +.I blen +for the result. If the representation +is less than +.I blen +bytes, the rest of the buffer is zero filled. +If +.I buf +is +.BR nil , +then a buffer is allocated and a pointer to it is +deposited in the location pointed to by +.IR bufp . +.PP +.IR Betomp , +and +.I letomp +convert from a big or little endian byte array at +.I buf +of length +.I blen +to an +.IR mpint . +If +.I b +is not +.IR nil , +it refers to a preallocated +.I mpint +for the result. +If +.I b +is +.BR nil , +a new integer is allocated and returned as the result. +.PP +The integer conversions are: +.TF Mptouv +.TP +.I mptoui +.BR mpint -> "unsigned int" +.TP +.I uitomp +.BR "unsigned int" -> mpint +.TP +.I mptoi +.BR mpint -> "int" +.TP +.I itomp +.BR "int" -> mpint +.TP +.I mptouv +.BR mpint -> "unsigned vlong" +.TP +.I uvtomp +.BR "unsigned vlong" -> mpint +.TP +.I mptov +.BR mpint -> "vlong" +.TP +.I vtomp +.BR "vlong" -> mpint +.PD +.PP +When converting to the base integer types, if the integer is too large, +the largest integer of the appropriate sign +and size is returned. +.PP +The mathematical functions are: +.TF mpmagadd +.TP +.I mpadd +.BR "sum = b1 + b2" . +.TP +.I mpmagadd +.BR "sum = abs(b1) + abs(b2)" . +.TP +.I mpsub +.BR "diff = b1 - b2" . +.TP +.I mpmagsub +.BR "diff = abs(b1) - abs(b2)" . +.TP +.I mpleft +.BR "res = b<>shift" . +.TP +.I mpmul +.BR "prod = b1*b2" . +.TP +.I mpexp +if +.I m +is nil, +.BR "res = b**e" . +Otherwise, +.BR "res = b**e mod m" . +.TP +.I mpmod +.BR "remainder = b % m" . +.TP +.I mpdiv +.BR "quotient = dividend/divisor" . +.BR "remainder = dividend % divisor" . +.TP +.I mpcmp +returns -1, 0, or +1 as +.I b1 +is less than, equal to, or greater than +.IR b2 . +.TP +.I mpmagcmp +the same as +.I mpcmp +but ignores the sign and just compares magnitudes. +.PD +.PP +.I Mpextendedgcd +computes the greatest common denominator, +.IR d , +of +.I a +and +.IR b . +It also computes +.I x +and +.I y +such that +.BR "a*x + b*y = d" . +.PP +.I Mpinverse +computes the multiplicative inverse of +.I b +.B mod +.IR m . +.PP +.I Mpsignif +returns the bit offset of the left most 1 bit in +.IR b . +.I Mplowbits0 +returns the bit offset of the right most 1 bit. +For example, for 0x14, +.I mpsignif +would return 4 and +.I mplowbits0 +would return 2. +.PP +The remaining routines all work on arrays of +.B mpdigit +rather than +.BR mpint 's. +They are the basis of all the other routines. They are separated out +to allow them to be rewritten in assembler for each architecture. There +is also a portable C version for each one. +.TF mpvecdigmuladd +.TP +.I mpdigdiv +.BR "quotient = dividend[0:1] / divisor" . +.TP +.I mpvecadd +.BR "sum[0:alen] = a[0:alen-1] + b[0:blen-1]" . +We assume alen >= blen and that sum has room for alen+1 digits. +.TP +.I mpvecsub +.BR "diff[0:alen-1] = a[0:alen-1] - b[0:blen-1]" . +We assume that alen >= blen and that diff has room for alen digits. +.TP +.I mpvecdigmuladd +.BR "p[0:n] += m * b[0:n-1]" . +This multiplies a an array of digits times a scalar and adds it to another array. +We assume p has room for n+1 digits. +.TP +.I mpvecdigmulsub +.BR "p[0:n] -= m * b[0:n-1]" . +This multiplies a an array of digits times a scalar and subtracts it fromo another array. +We assume p has room for n+1 digits. It returns +1 is the result is positive and +-1 if negative. +.TP +.I mpvecmul +.BR "p[0:alen*blen] = a[0:alen-1] * b[0:blen-1]" . +We assume that p has room for alen*blen+1 digits. +.TP +.I mpveccmp +This returns -1, 0, or +1 as a - b is negative, 0, or positive. +.PD +.PP +.IR mptwo , +.I mpone +and +.I mpzero +are the constants 2, 1 and 0. These cannot be freed. +.SS "Chinese remainder theorem +.PP +When computing in a non-prime modulus, +.IR n, +it is possible to perform the computations on the residues modulo the prime +factors of +.I n +instead. Since these numbers are smaller, multiplication and exponentiation +can be much faster. +.PP +.I Crtin +computes the residues of +.I x +and returns them in a newly allocated structure: +.EX + typedef struct CRTres CRTres; + { + int n; // number of residues + mpint *r[n]; // residues + }; +.EE +.PP +.I Crtout +takes a residue representation of a number and converts it back into +the number. It also frees the residue structure. +.PP +.I Crepre +saves a copy of the factors and precomputes the constants necessary +for converting the residue form back into a number modulo +the product of the factors. It returns a newly allocated structure +containing values. +.PP +.I Crtprefree +and +.I crtresfree +free +.I CRTpre +and +.I CRTres +structures respectively. +.SH SOURCE +.B /sys/src/libmp diff --git a/static/plan9-4e/man2/muldiv.2 b/static/plan9-4e/man2/muldiv.2 new file mode 100644 index 00000000..93444bd5 --- /dev/null +++ b/static/plan9-4e/man2/muldiv.2 @@ -0,0 +1,31 @@ +.TH MULDIV 2 +.SH NAME +muldiv, umuldiv \- high-precision multiplication and division +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +long muldiv(long a, long b, long c) +.PP +.B +ulong umuldiv(ulong a, ulong b, ulong c) +.SH DESCRIPTION +.I Muldiv +returns +.BR a*b/c , +using a +.B vlong +to hold the intermediate result. +.I Umuldiv +is the equivalent for unsigned integers. +They can be used to scale integer values without worry about +overflowing the intermediate result. +.PP +On some architectures, these routines can generate a trap if the +final result does not fit in a +.B long +or +.BR ulong ; +on others they will silently truncate. diff --git a/static/plan9-4e/man2/nan.2 b/static/plan9-4e/man2/nan.2 new file mode 100644 index 00000000..84ede0db --- /dev/null +++ b/static/plan9-4e/man2/nan.2 @@ -0,0 +1,44 @@ +.TH NAN 2 +.SH NAME +NaN, Inf, isNaN, isInf \- not-a-number and infinity functions +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLdouble 'u +.B +double NaN(void) +.PP +.B +double Inf(int) +.PP +.B +int isNaN(double) +.PP +.B +int isInf(double, int) +.SH DESCRIPTION +The IEEE floating point standard defines values called +`not-a-number' and positive and negative `infinity'. +These values can be produced by such things as overflow +and division by zero. +Also, the library functions sometimes return them when +the arguments are not in the domain, or the result is +out of range. +.PP +.I NaN +returns a double that is not-a-number. +.I IsNaN +returns true if its argument is not-a-number. +.PP +.IR Inf ( i ) +returns positive infinity if +.I i +is greater than or equal to zero, +else negative infinity. +.I IsInf +returns true if its first argument is infinity +with the same sign as the second argument. +.SH SOURCE +.B /sys/src/libc/port/nan.c diff --git a/static/plan9-4e/man2/ndb.2 b/static/plan9-4e/man2/ndb.2 new file mode 100644 index 00000000..9386686e --- /dev/null +++ b/static/plan9-4e/man2/ndb.2 @@ -0,0 +1,366 @@ +.TH NDB 2 +.SH NAME +ndbopen, ndbcat, ndbclose, ndbreopen, ndbsearch, ndbsnext, ndbgetval, ndbfree, ipattr, ndbipinfo, csipinfo, ndbhash, ndbparse, csgetval, ndblookval, dnsquery \- network database +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.ta \w'\fLNdbtuplexx 'u +.PP +.B +Ndb* ndbopen(char *file) +.PP +.B +Ndb* ndbcat(Ndb *db1, Ndb *db2) +.PP +.B +int ndbreopen(Ndb *db) +.PP +.B +void ndbclose(Ndb *db) +.PP +.B +Ndbtuple* ndbsearch(Ndb *db, Ndbs *s, char *attr, char *val) +.PP +.B +Ndbtuple* ndbsnext(Ndbs *s, char *attr, char *val) +.PP +.B +Ndbtuple* ndbgetval(Ndb *db, Ndbs *s, char *attr, char *val, +.br +.B + char *rattr, char *buf) +.PP +.B +Ndbtuple* csgetval(char *netroot, char *attr, char *val, char *rattr, char *buf) +.PP +.B +void ndbfree(Ndbtuple *db) +.PP +.B +char* ipattr(char *name) +.PP +.B +Ndbtuple* ndbipinfo(Ndb *db, char *attr, char *val, char **attrs, +.br +.B int nattr) +.PP +.B +Ndbtuple* csipinfo(char *netroot, char *attr, char *val, char **attrs, +.br +.B int nattr) +.PP +.B +ulong ndbhash(char *val, int hlen) +.PP +.B +Ndbtuple* ndbparse(Ndb *db) +.PP +.B +Ndbtuple* dnsquery(char *netroot, char *domainname, char *type) +.PP +.B +Ndbtuple* ndblookval(Ndbtuple *entry, Ndbtuple *line, char *attr, char *to) +.SH DESCRIPTION +These routines are used by network administrative programs to search +the network database. +They operate on the database files described in +.IR ndb (6). +.PP +.I Ndbopen +opens the database +.I file +and calls +.IR malloc (2) +to allocate a buffer for it. +If +.I file +is zero, all network database files are opened. +.PP +.I Ndbcat +concatenates two open databases. Either argument may be +nil. +.PP +.I Ndbreopen +checks if the database files associated with +.I db +have changed and if so throws out any cached information and reopens +the files. +.PP +.I Ndbclose +closes any database files associated with +.I db +and frees all storage associated with them. +.PP +.I Ndbsearch +and +.I ndbsnext +search a database for an entry containing the +attribute/value pair, +.IR attr = val . +.I Ndbsearch +is used to find the first match and +.I ndbsnext +is used to find each successive match. +On a successful search both return a linked list of +.I Ndbtuple +structures acquired by +.IR malloc (2) +that represent the attribute/value pairs in the +entry. +On failure they return zero. +.IP +.EX +typedef struct Ndbtuple Ndbtuple; +struct Ndbtuple { + char attr[Ndbalen]; + char val[Ndbvlen]; + Ndbtuple *entry; + Ndbtuple *line; + ulong ptr; /* for the application; starts 0 */ +}; +.EE +.LP +The +.I entry +pointers chain together all pairs in the entry in a null-terminated list. +The +.I line +pointers chain together all pairs on the same line +in a circular list. +Thus, a program can implement 2 levels of binding for +pairs in an entry. +In general, pairs on the same line are bound tighter +than pairs on different lines. +.PP +The argument +.I s +of +.I ndbsearch +has type +.I Ndbs +and should be pointed to valid storage before calling +.IR ndbsearch , +which will fill it with information used by +.I ndbsnext +to link successive searches. +The structure +.I Ndbs +looks like: +.IP +.EX +typedef struct Ndbs Ndbs; +struct Ndbs { + Ndb *db; /* data base file being searched */ + ... + Ndbtuple *t; /* last attribute value pair found */ +}; +.EE +.LP +The +.I t +field points to the pair within the entry matched by the +.I ndbsearch +or +.IR ndbsnext . +.PP +.I Ndbgetval +searches the database for an entry containing not only an +attribute/value pair, +.IR attr = val , +but also a pair with the attribute +.IR rattr . +If successful, it copies the value associated with +.I rattr +into +.IR buf . +.I Buf +must point to an area at least +.I Ndbvlen +long. +.I Csgetval +is like +.I ndbgetval +but queries the connection server +instead of looking directly at the database. +It's first argument specifies the network root to use. +If the argument is 0, it defaults to +\f5"/net"\f1. +.PP +.I Ndbfree +frees a list of tuples returned by one of the other +routines. +.PP +.I Ipattr +takes the name of an IP system and returns the attribute +it corresponds to: +.RS +.TP +.B dom +domain name +.TP +.B ip +Internet number +.TP +.B sys +system name +.RE +.PP +.I Ndbipinfo +looks up Internet protocol information about a system. +This is an IP aware search. It looks first for information +in the system's database entry and then in the database entries +for any IP subnets or networks containing the system. +The system is identified by the +attribute/value pair, +.IR attr = val . +.I Ndbipinfo +returns a list of tuples whose attributes match the +attributes in the +.I n +element array +.IR attrs . +For example, consider the following database entries describing a network, +a subnetwork, and a system. +.PP +.EX +ipnet=big ip=10.0.0.0 ipsubmask=255.255.255.0 + dns=dns.big.com + smtp=smtp.big.com +ipnet=dept ip=10.1.1.0 ipmask=255.255.255.0 + smtp=smtp1.big.com +ip=10.1.1.4 dom=x.big.com + bootf=/386/9pc +.EE +.PP +Calling +.PP +.EX + ndbipinfo(db, "dom", "x.big.com", ["bootf" "smtp" "dns"], 3) +.EE +.PP +will return the tuples +.BR bootf=/386/9pc , +.BR smtp=smtp1.big.com , +and +.BR dns=dns.big.com . +.PP +.I Csipinfo +is to +.I ndbipinfo +as +.I csgetval +is to +.IR ndbgetval . +.PP +The last three calls are used by programs that create the +hash tables and database files. +.I Ndbhash +computes a hash offset into a table of length +.I hlen +for the string +.IR val . +.I Ndbparse +reads and parses the next entry from the database file. +Multiple calls to +.IR ndbparse +parse sequential entries in the database file. +A zero is returned at end of file. +.PP +.I Dnsquery +submits a query about +.I domainname +to the +.I ndb/dns +mounted at +.IB netroot /dns. +It returns a linked list of +.I Ndbtuple's +representing a single database entry. +The tuples are logicly arranged into lines using the +.B line +fieldin the structure. +The possible +.IR type 's +of query are and the attributes on each returned tuple line is: +.TP +.B ip +find the IP addresses. Returns +domain name +.RI ( dom ) +and ip address +.RI ( ip ) +.TP +.B mx +look up the mail exchangers. Returns preference +.RI ( pref ) +and exchanger +.RI ( mx ) +.TP +.B ptr +do a reverse query. Here +.I domainname +must be an +.SM ASCII +IP address. Returns reverse name +.RI ( ptr ) +and domain name +.RI ( dom ) +.TP +.B cname +get the system that this name is a nickname for. Returns the nickname +.RI ( dom ) +and the real name +.RI ( cname ) +.TP +.B soa +return the start of area record for this field. Returns +area name +.RI ( dom ), +primary name server +.RI ( ns ), +serial number +.RI ( serial ), +refresh time in seconds +.RI ( refresh ), +retry time in seconds +.RI ( retry ), +expiration time in seconds +.RI ( expire ), +and minimum time to lie +.RI ( ttl ). +.TP +.B ns +name servers. Returns domain name +.RI ( dom ) +and name server +.RI ( ns ) +.PP +.I Ndblookval +searches +.I entry +for the tuple +with attribute +.IR attr , +copies the value into +.IR to , +and returns a pointer to the tuple. +If +.I line +points to a particular line in the entry, the +search starts there and then wraps around to the beginning +of the entry. +.SH FILES +.BR /lib/ndb " directory of network database files +.SH SOURCE +.B /sys/src/libndb +.SH SEE ALSO +.IR ndb (6) +.IR ndb (8) +.SH DIAGNOSTICS +These routines set +.IR errstr . diff --git a/static/plan9-4e/man2/notify.2 b/static/plan9-4e/man2/notify.2 new file mode 100644 index 00000000..e5ea81ac --- /dev/null +++ b/static/plan9-4e/man2/notify.2 @@ -0,0 +1,243 @@ +.TH NOTIFY 2 +.SH NAME +notify, noted, atnotify \- handle asynchronous process notification +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int notify(void (*f)(void*, char*)) +.PP +.B +int noted(int v) +.PP +.B +int atnotify(int (*f)(void*, char*), int in) +.SH DESCRIPTION +When a process raises an exceptional condition such as dividing by zero +or writing on a closed pipe, a +.I note +is posted to communicate the exception. +A note may also be posted by a +.I write +(see +.IR read (2)) +to the process's +.BI /proc/ n /note +file or to the +.BI /proc/ m /notepg +file of a process in the same process group (see +.IR proc (3)). +When the note is received +the behavior of the process depends on the origin of the note. +If the note was posted by an external process, +the process receiving the note exits; +if generated by the system the note string, +preceded by the name +and id of the process and the string +\fL"suicide: "\fP, +is printed on the process's standard error file +and the +process is suspended in the +.B Broken +state for debugging. +.PP +These default actions may be overridden. +The +.I notify +function registers a +.I "notification handler +to be called within the process when a note is received. +The argument to +.I notify +replaces the previous handler, if any. +An argument of zero cancels a previous handler, +restoring the default action. +A +.IR fork (2) +system call leaves the handler registered in +both the parent and the child; +.IR exec (2) +restores the default behavior. +.PP +After a note is posted, +the handler is called with two arguments: +the first is a pointer to a +.B Ureg +structure (defined in +.BR /$objtype/include/ureg.h ) +giving the current values of registers; +the second is a pointer to the note itself, +a null-terminated string with no more than +.L ERRLEN +characters in it including the terminal NUL. +The +.B Ureg +argument is usually not needed; it is provided to help recover from traps such +as floating point exceptions. +Its use and layout are machine- and system-specific. +.PP +A notification handler must finish either by exiting the program or by calling +.IR noted ; +if the handler returns the behavior +is undefined and probably erroneous. +Until the program calls +.IR noted , +any further externally-generated notes +(e.g., +.B hangup +or +.BR alarm ) +will be held off, and any further notes generated by +erroneous behavior by the program +(such as divide by zero) will kill the program. +The argument to +.I noted +defines the action to take: +.B NDFLT +instructs the system to perform the default action +as if the handler had never been registered; +.B NCONT +instructs the system to resume the process +at the point it was notified. +In neither case does +.I noted +return to the handler. +If the note interrupted an incomplete system call, +that call returns an error (with error string +.BR interrupted ) +after the process resumes. +A notification handler can also jump out to an environment +set up with +.I setjmp +using the +.I notejmp +function (see +.IR setjmp (2)), +which is implemented by modifying the saved state and calling +.BR noted(NCONT) . +.PP +Regardless of the origin of the note or the presence of a handler, +if the process is being debugged +(see +.IR proc (3)) +the arrival of a note puts the process in the +.B Stopped +state and awakens the debugger. +.PP +Rather than using the system calls +.I notify +and +.IR noted , +most programs should use +.I atnotify +to register notification handlers. +The parameter +.I in +is non-zero to register the function +.IR f , +and zero to cancel registration. +A handler must return a non-zero number +if the note was recognized (and resolved); +otherwise it must return zero. +When the system posts a note to the process, +each handler registered with +.I atnotify +is called with arguments as +described above +until one of the handlers returns non-zero. +Then +.I noted +is called with argument +.BR NCONT . +If no registered function returns non-zero, +.I atnotify +calls +.I noted +with argument +.BR NDFLT . +.PP +.I Noted +has two other possible values for its argument. +.B NSAVE +returns from the handler and clears the note, enabling the receipt of another, +but does not return to the program. +Instead it starts a new handler with the same stack, stack pointer, +and arguments as the +original, at the address recorded in the program counter of the +.B Ureg +structure. Typically, the program counter will be overridden by the +first note handler to be the address of a separate function; +.B NSAVE +is then a `trampoline' to that handler. +That handler may executed +.B noted(NRSTR) +to return to the original program, usually after restoring the original program +counter. +.B NRSTR +is identical to +.BR NCONT +except that it can only be executed after an +.BR NSAVE . +.B NSAVE +and +.B NRSTR +are designed to improve the emulation of signals by the ANSI C/POSIX +environment; their use elsewhere is discouraged. +.PP +The set of notes a process may receive is system-dependent, but there +is a common set that includes: +.PP +.RS 3n +.nf +.ta \w'\fLsys: write on closed pipe \fP'u +\fINote\fP \fIMeaning\fP +\fLinterrupt\fP user interrupt (DEL key) +\fLhangup\fP I/O connection closed +\fLalarm\fP alarm expired +\fLsys: breakpoint\fP breakpoint instruction +\fLsys: bad address\fP system call address argument out of range +\fLsys: odd address\fP system call address argument unaligned +\fLsys: bad sys call\fP system call number out of range +\fLsys: odd stack\fP system call user stack unaligned +\fLsys: write on closed pipe\fP write on closed pipe +\fLsys: fp: \fIfptrap\f1 floating point exception +\fLsys: trap: \fItrap\f1 other exception (see below) +.fi +.RE +.PP +The notes prefixed +.B sys: +are generated by the operating system. +They are suffixed by the user program counter in format +.BR pc=0x1234 . +If the note is due to a floating point exception, just before the +.BR pc +is the address of the offending instruction in format +.BR fppc=0x1234 . +Notes are limited to +.B ERRLEN +bytes; if they would be longer they are truncated but the +.B pc +is always reported correctly. +.PP +The types and syntax of the +.I trap +and +.I fptrap +portions of the notes are machine-dependent. +.SH SOURCE +.B /sys/src/libc/9syscall +.br +.B /sys/src/libc/port/atnotify.c +.SH SEE ALSO +.IR intro (2), +.I notejmp +in +.IR setjmp (2) +.SH BUGS +Since +.IR exec (2) +discards the notification handler, there is a window +of vulnerability to notes in a new process. diff --git a/static/plan9-4e/man2/object.2 b/static/plan9-4e/man2/object.2 new file mode 100644 index 00000000..29a6bde3 --- /dev/null +++ b/static/plan9-4e/man2/object.2 @@ -0,0 +1,150 @@ +.TH OBJECT 2 +.SH NAME +objtype, readobj, objtraverse, isar, nextar, readar \- object file interpretation functions +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLmachines 'u +.B +int objtype(Biobuf *bp, char **name) +.PP +.B +int readobj(Biobuf *bp, int objtype) +.PP +.B +void objtraverse(void(*)(Sym*, void*), void*) +.PP +.B +int isar(Biobuf *bp) +.PP +.B +int nextar(Biobuf *bp, int offset, char *buf) +.PP +.B +int readar(Biobuf *bp, int objtype, int end) +.SH DESCRIPTION +These functions provide machine-independent access to object files +in a directory or an archive. +.IR Mach (2) +and +.IR symbol (2) +describe additional library functions +for interpreting executable files and executing images. +.PP +Object files contain no formal symbol table; instead, references +to symbols must be extracted from the encoded object representation +and resolved. The resulting symbol information is loaded +into a dummy symbol table where it is available for processing by an +application. The organization of the dummy symbol +table is identical +to that produced by the loader and described in +.IR symbol (2) +and +.IR a.out (6): +a vector of +.B Sym +data structures defining the name, type and relative offset of +each symbol. +.PP +.I Objtype +reads the header at the current position of the +file associated with +.I bp +(see +.IR Bio (2)) +to see if it is an intermediate object file. +If it is, a code indicating the architecture type of the file +is returned and the second argument, if it is non-zero, +is set pointing to a string describing the type of the file. +If the header does not indicate an object file, +\-1 is returned. +The header may be at the start of an object +file or at the beginning of an archive member. The +file is rewound to its starting +position after decoding the header. +.PP +.I Readobj +constructs a symbol table for the object file associated with +.IR bp . +The second argument contains the type code produced by +function +.IR objtype . +The file must be positioned at the start of the object file. +Each invocation of +.I readobj +destroys the symbol definitions for any previous file. +.PP +.I Objtraverse +scans the symbol table previously built by +.I readobj +or +.IR readar . +.I Objtraverse +requires two arguments: +the address of a call-back function and a +generic pointer. The call-back function +is invoked once for each symbol in the symbol table with +the address of a +.I Sym +data structure as the first argument and the +generic pointer as the second. +.PP +.I Isar +reads the header at the current point in the file +associated with +.I bp +and returns 1 if it is an archive or zero otherwise. +The file is positioned at the end of the archive +header and at the beginning of the first member of the archive. +.PP +.I Nextar +extracts information describing the archive member stored +at +.I offset +in the file associated with +.IR bp . +If the header describing the member can be +extracted and decoded, the size of the member is +returned. Adding this value to +.I offset +yields the offset of the beginning of the next member +in the archive. On return the input file is positioned +at the end of the member header +and the name of the member is stored in +.IR buf , +a buffer of +.B SARNAME +characters. +If there are no more members, +.I nextar +returns zero; a negative return indicates a missing +or malformed header. +.PP +.I Readar +constructs the symbol table of the object file stored +at the current position in the archive associated with +.IR bp . +This function operates exactly as +.IR readobj ; +the only difference is the extra argument, +.IR end , +specifying the offset to the beginning of the +next member in the archive. +.I Readar +leaves the file positioned at that point. +.SH SOURCE +.B /sys/src/libmach +.SH "SEE ALSO" +.IR mach (2), +.IR symbol (2), +.IR bio (2), +.IR a.out (6) +.SH DIAGNOSTICS +These routines set +.IR errstr . diff --git a/static/plan9-4e/man2/open.2 b/static/plan9-4e/man2/open.2 new file mode 100644 index 00000000..10852cff --- /dev/null +++ b/static/plan9-4e/man2/open.2 @@ -0,0 +1,148 @@ +.TH OPEN 2 +.SH NAME +open, create, close \- open a file for reading or writing, create file +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int open(char *file, int omode) +.PP +.B +int create(char *file, int omode, ulong perm) +.PP +.B +int close(int fd) +.SH DESCRIPTION +.I Open +opens the +.I file +for I/O and returns an associated file descriptor. +.I Omode +is one of +.BR OREAD , +.BR OWRITE , +.BR ORDWR , +or +.BR OEXEC , +asking for permission to read, write, read and write, or execute, respectively. +In addition, there are three values that can be ORed with the +.IR omode : +.B OTRUNC +says to truncate the file +to zero length before opening it; +.B OCEXEC +says to close the file when an +.IR exec (2) +or +.I execl +system call is made; +and +.B ORCLOSE +says to remove the file when it is closed (by everyone who has a copy of the file descriptor). +.I Open +fails if the file does not exist or the user does not have +permission to open it for the requested purpose +(see +.IR stat (2) +for a description of permissions). +The user must have write permission on the +.I file +if the +.B OTRUNC +bit is set. +For the +.I open +system call +(unlike the implicit +.I open +in +.IR exec (2)), +.B OEXEC +is actually identical to +.BR OREAD . +.PP +.I Create +creates a new +.I file +or prepares to rewrite an existing +.IR file , +opens it according to +.I omode +(as described for +.IR open ), +and returns an associated file descriptor. +If the file is new, +the owner is set to the userid of the creating process group; +the group to that of the containing directory; +the permissions to +.I perm +ANDed with the permissions of the containing directory. +If the file already exists, +it is truncated to 0 length, +and the permissions, owner, and group remain unchanged. +The created file is a directory if the +.B DMDIR +bit is set in +.IR perm , +an exclusive-use file if the +.B DMEXCL +bit is set, and an append-only file if the +.B DMAPPEND +bit is set. +Exclusive-use files may be open for I/O by only one client at a time, +but the file descriptor may become invalid if no I/O is done +for an extended period; see +.IR open (5). +.PP +.I Create +fails if the path up to the last element of +.I file +cannot be evaluated, if the user doesn't have write permission +in the final directory, if the file already exists and +does not permit the access defined by +.IR omode , +of if there there are no free file descriptors. +In the last case, the file may be created even when +an error is returned. +If the file is new and the directory in which it is created is +a union directory (see +.IR intro (2)) +then the constituent directory where the file is created +depends on the structure of the union: see +.IR bind (2). +.PP +Since +.I create +may succeed even if the file exists, a special mechanism is necessary +for those applications that require an atomic create operation. +If the +.B OEXCL +.RB ( 0x1000 ) +bit is set in the +.I mode +for a +.IR create, +the call succeeds only if the file does not already exist; +see +.IR open (5) +for details. +.PP +.I Close +closes the file associated with a file descriptor. +Provided the file descriptor is a valid open descriptor, +.I close +is guaranteed to close it; there will be no error. +Files are closed automatically upon termination of a process; +.I close +allows the file descriptor to be reused. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2), +.IR bind (2), +.IR stat (2) +.SH DIAGNOSTICS +These functions set +.IR errstr . diff --git a/static/plan9-4e/man2/perror.2 b/static/plan9-4e/man2/perror.2 new file mode 100644 index 00000000..9d2856cb --- /dev/null +++ b/static/plan9-4e/man2/perror.2 @@ -0,0 +1,92 @@ +.TH PERROR 2 +.SH NAME +perror, syslog, sysfatal \- system error messages +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +void perror(char *s) +.PP +.B +void syslog(int cons, char *logname, char *fmt, ...) +.PP +.B +void sysfatal(char *fmt, ...) +.SH DESCRIPTION +.I Perror +produces a short error message +on the standard error file +describing the last error encountered during a call +to the system. +First the argument string +.I s +is printed, then a colon, then the message and a newline. +If +.I s +is nil, only the error message and newline are printed. +.PP +.I Syslog +logs messages in the file named by +.I logname +in the directory +.BR /sys/log ; +the file must already exist and should be append-only. +.I Logname +must contain no slashes. +The message is a line with several fields: +the name of the machine writing the message; +the date and time; +the message specified by the +.IR print (2) +format +.I fmt +and any following arguments; +and a final newline. +If +.I cons +is set or the log file cannot be opened, the message is also printed +on the system console. +.I Syslog +can be used safely in multi-threaded programs. +.PP +.I Sysfatal +prints to standard error the name of the running program, +a colon and a space, +the message described by the +.IR print (2) +format string +.I fmt +and subsequent arguments, and a newline. +It then calls +.IR exits (2) +with the formatted message as argument. +The program's name is the value of +.BR argv0 , +which will be set if the program uses the +.IR arg (2) +interface to process its arguments. +If +.B argv0 +is null, it is ignored and the following colon and space are suppressed. +.SH SOURCE +.B /sys/src/libc/port/perror.c +.br +.B /sys/src/libc/9sys/syslog.c +.br +.B /sys/src/libc/9sys/sysfatal.c +.SH "SEE ALSO" +.IR intro (2), +.IR errstr (2), +the +.B %r +format in +.IR print (2) +.SH BUGS +.I Perror +is a holdover; the +.B %r +format in +.IR print (2) +is preferred. diff --git a/static/plan9-4e/man2/pipe.2 b/static/plan9-4e/man2/pipe.2 new file mode 100644 index 00000000..d91fc081 --- /dev/null +++ b/static/plan9-4e/man2/pipe.2 @@ -0,0 +1,74 @@ +.TH PIPE 2 +.SH NAME +pipe \- create an interprocess channel +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int pipe(int fd[2]) +.SH DESCRIPTION +.I Pipe +creates a buffered channel for interprocess I/O communication. +Two file descriptors are returned in +.IR fd . +Data written to +.B fd[1] +is available for reading from +.B fd[0] +and data written to +.B fd[0] +is available for reading from +.BR fd[1] . +.PP +After the pipe has been established, +cooperating processes +created by subsequent +.IR fork (2) +calls may pass data through the +pipe with +.I read +and +.I write +calls. +The bytes placed on a pipe +by one +.I write +are contiguous even if many processes are writing. +Write boundaries are preserved: each read terminates +when the read buffer is full or after reading the last byte +of a write, whichever comes first. +.PP +The number of bytes available to a +.IR read (2) +is reported +in the +.B Length +field returned by +.I fstat +or +.I dirfstat +on a pipe (see +.IR stat (2)). +.PP +When all the data has been read from a pipe and the writer has closed the pipe or exited, +.IR read (2) +will return 0 bytes. Writes to a pipe with no reader will generate a note +.BR "sys: write on closed pipe" . +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2), +.IR read (2), +.IR pipe (3) +.SH DIAGNOSTICS +Sets +.IR errstr . +.SH BUGS +If a read or a write of a pipe is interrupted, some unknown +number of bytes may have been transferred. +.br +When a read from a pipe returns 0 bytes, it usually means end of file +but is indistinguishable from reading the result of an explicit +write of zero bytes. diff --git a/static/plan9-4e/man2/plumb.2 b/static/plan9-4e/man2/plumb.2 new file mode 100644 index 00000000..c9d52165 --- /dev/null +++ b/static/plan9-4e/man2/plumb.2 @@ -0,0 +1,240 @@ +.TH PLUMB 2 +.SH NAME +eplumb, plumbfree, plumbopen, plumbsend, plumbsendtext, plumblookup, plumbpack, plumbpackattr, plumbaddattr, plumbdelattr, plumbrecv, plumbunpack, plumbunpackpartial, plumbunpackattr, Plumbmsg \- plumb messages +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLPlumbattr* 'u +.PP +.B +int plumbopen(char *port, int omode) +.PP +.B +int plumbsend(int fd, Plumbmsg *m) +.PP +.B +int plumbsendtext(int fd, char *src, char *dst, char *wdir, char *data) +.PP +.B +void plumbfree(Plumbmsg *m) +.PP +.B +Plumbmsg* plumbrecv(int fd) +.PP +.B +char* plumbpack(Plumbmsg *m, int *np) +.PP +.B +Plumbmsg* plumbunpack(char *buf, int n) +.PP +.B +Plumbmsg* plumbunpackpartial(char *buf, int n, int *morep) +.PP +.B +char* plumbpackattr(Plumbattr *a) +.PP +.B +Plumbattr* plumbunpackattr(char *a) +.PP +.B +char* plumblookup(Plumbattr *a, char *name) +.PP +.B +Plumbattr* plumbaddattr(Plumbattr *a, Plumbattr *new) +.PP +.B +Plumbattr* plumbdelattr(Plumbattra *a, char *name) +.PP +.B +int eplumb(int key, char *port) +.SH DESCRIPTION +These routines manipulate +.IR plumb (6) +messages, transmitting them, receiving them, and +converting them between text and these data structures: +.IP +.EX +.ta 6n +\w'\fLPlumbattr 'u +\w'ndata; 'u +typedef +struct Plumbmsg +{ + char *src; + char *dst; + char *wdir; + char *type; + Plumbattr *attr; + int ndata; + char *data; +} Plumbmsg; + +typedef +struct Plumbattr +{ + char *name; + char *value; + Plumbattr *next; +} Plumbattr; +.EE +.PP +.I Plumbopen +opens the named plumb +.IR port , +using +.IR open (2) +mode +.IR omode . +If +.I port +begins with a slash, it is taken as a literal file name; +otherwise +.I plumbopen +searches for the location of the +.IR plumber (4) +service and opens the port there. +.PP +For programs using the +.IR event (2) +interface, +.I eplumb +registers, using the given +.IR key , +receipt of messages from the named +.IR port . +.PP +.I Plumbsend +formats and writes message +.I m +to the file descriptor +.IR fd , +which will usually be the result of +.B plumbopen("send", +.BR OWRITE) . +.I Plumbsendtext +is a simplified version for text-only messages; it assumes +.B type +is +.BR text , +sets +.B attr +to nil, +and sets +.B ndata +to +.BI strlen( data )\f1. +.PP +.I Plumbfree +frees all the data associated with the message +.IR m , +all the components of which must therefore have been allocated with +.IR malloc (2). +.PP +.I Plumbrecv +returns the next message available on the file descriptor +.IR fd , +or nil for error. +.PP +.I Plumbpack +encodes message +.I m +as a character string in the format of +.IR plumb (6) , +setting +.BI * np +to the length in bytes of the string. +.I Plumbunpack +does the inverse, translating the +.I n +bytes of +.I buf +into a +.BR Plumbmsg . +.PP +.I Plumbunpackpartial +enables unpacking of messages that arrive in pieces. +The first call to +.I plumbunpackpartial +for a given message must be sufficient to unpack the header; +subsequent calls permit unpacking messages with long data sections. +For each call, +.I buf +points to the beginning of the complete message received so far, and +.I n +reports the total number of bytes received for that message. +If the message is complete, the return value will be as in +.IR plumbunpack . +If not, and +.I morep +is not null, the return value will be +.B nil +and +.BR * morep +will be set to the number of bytes remaining to be read for this message to be complete +(recall that the byte count is in the header). +Those bytes should be read by the caller, placed at location +.IB buf + n \f1, +and the message unpacked again. +If an error is encountered, the return value will be +.B nil +and +.BI * morep +will be zero. +.PP +.I Plumbpackattr +converts the list +.I a +of +.B Plumbattr +structures into a null-terminated string. +If an attribute value contains white space, quote characters, or equal signs, +the value will be quoted appropriately. +A newline character will terminate processing. +.I Plumbunpackattr +converts the null-terminated string +.I a +back into a list of +.I Plumbattr +structures. +.PP +.I Plumblookup +searches the +.B Plumbattr +list +.I a +for an attribute with the given +.I name +and returns the associated value. +The returned string is the original value, not a copy. +If the attribute has no value, the returned value will be the empty string; +if the attribute does not occur in the list at all, the value will be nil. +.PP +.I Plumbaddattr +appends the +.I new +.B Plumbattr +(which may be a list) to the attribute list +.IR a +and returns the new list. +.I Plumbattr +searches the list +.I a +for the first attribute with name +.I name +and deletes it from the list, returning the resulting list. +.I Plumbdelattr +is a no-op if no such attribute exists. +.SH SOURCE +.B /sys/src/libplumb +.SH SEE ALSO +.IR plumb (1), +.IR event (2), +.IR plumber (4), +.IR plumb (6) +.SH DIAGNOSTICS +When appropriate, including when a +.I plumbsend +fails, these routine set +.IR errstr . diff --git a/static/plan9-4e/man2/pool.2 b/static/plan9-4e/man2/pool.2 new file mode 100644 index 00000000..d4b46a08 --- /dev/null +++ b/static/plan9-4e/man2/pool.2 @@ -0,0 +1,329 @@ +.TH POOL 2 +.SH NAME +poolalloc, poolfree, poolmsize, poolrealloc, poolcompact, poolcheck, poolblockcheck, +pooldump \- general memory management routines +.SH SYNOPSIS +.B #include +.PP +.B #include +.PP +.B #include +.PP +.B +void* poolalloc(Pool* pool, ulong size) +.PP +.B +void poolfree(Pool* pool, void* ptr) +.PP +.B +ulong poolmsize(Pool* pool, void* ptr) +.PP +.B +void* poolrealloc(Pool* pool, void* ptr, ulong size) +.PP +.B +void poolcompact(Pool* pool) +.PP +.B +void poolcheck(Pool *pool) +.PP +.B +void poolblockcheck(Pool *pool, void *ptr) +.PP +.B +void pooldump(Pool *pool); +.SH DESCRIPTION +These routines provide a general memory management facility. +Memory is retrieved from a coarser allocator (e.g. +.I sbrk +or the kernel's +.IR xalloc ) +and then allocated to callers. +The routines are locked and thus may safely be used in +multiprocess programs. +.PP +.I Poolalloc +attempts to allocate a block of size +.BR size ; +it returns a pointer to the block when successful and nil otherwise. +The call +.B "poolalloc(0) +returns a non-nil pointer. +.I Poolfree +returns an allocated block to the pool. +It is an error to free a block more than once or to free a +pointer not returned by +.IR poolalloc . +The call +.B "poolfree(nil) +is legal and is a no-op. +.I Poolrealloc +attempts to resize to +.B nsize +bytes the block associated with +.BR ptr , +which must have been previously returned by +.I poolalloc +or +.IR poolrealloc . +If the block's size can be adjusted, a (possibly different) pointer to the new block is returned. +The contents up to the lesser of the old and new sizes are unchanged. +After a successful call to +.IR poolrealloc , +the return value should be used rather than +.B ptr +to access the block. +If the request cannot be satisfied, +.I poolrealloc +returns nil, and the old pointer remains valid. +.PP +When blocks are allocated, there is often some extra space left at the end +that would usually go unused. +.IR Poolmsize +grows the block to encompass this extra space and returns the new size. +.PP +The +.I poolblockcheck +and +.I poolcheck +routines validate a single allocated block or the entire pool, respectively. +They call +.B panic +(see below) +if corruption is detected. +.I Pooldump +prints a summary line for every block in the +pool, using the +.B print +function (see below). +.PP +The +.B Pool +structure itself provides much of the setup interface. +.IP +.EX +.ta \w'\fL 'u +\w'\fLulong 'u +\w'\fLlastcompact; 'u +typedef struct Pool Pool; +struct Pool { + char* name; + ulong maxsize; /* of entire Pool */ + ulong cursize; /* of Pool */ + ulong curfree; /* total free bytes in Pool */ + ulong curalloc; /* total allocated bytes in Pool */ + ulong minarena; /* smallest size of new arena */ + ulong quantum; /* allocated blocks should be multiple of */ + ulong minblock; /* smallest newly allocated block */ + int flags; + int nfree; /* number of calls to free */ + int lastcompact; /* nfree at time of last poolcompact */ + void* (*alloc)(ulong); + int (*merge)(void*, void*); + void (*move)(void* from, void* to); + void (*lock)(Pool*); + void (*unlock)(Pool*); + void (*print)(Pool*, char*, ...); + void (*panic)(Pool*, char*, ...); + void (*logstack)(Pool*); + void* private; +}; +.ta \w'\fL 'u +\w'POOL_ANTAGONISM 'u +enum { /* flags */ + POOL_ANTAGONISM = 1<<0, + POOL_PARANOIA = 1<<1, + POOL_VERBOSITY = 1<<2, + POOL_DEBUGGING = 1<<3, + POOL_LOGGING = 1<<4, + POOL_TOLERANCE = 1<<5, + POOL_NOREUSE = 1<<6, +}; +.EE +.PP +The pool obtains arenas of memory to manage by calling the the given +.B alloc +routine. +The total number of requested bytes will not exceed +.BR maxsize . +Each allocation request will be for at least +.B minarena +bytes. +.PP +When a new arena is allocated, the pool routines try to +merge it with the surrounding arenas, in an attempt to combat fragmentation. +If +.B merge +is non-nil, it is called with the addresses of two blocks from +.B alloc +that the pool routines suspect might be adjacent. +If they are not mergeable, +.B merge +must return zero. +If they are mergeable, +.B merge +should merge them into one block in its own bookkeeping +and return non-zero. +.PP +To ease fragmentation and make +block reuse easier, the sizes requested of the pool routines are rounded up to a multiple of +.B quantum +before +the carrying out requests. +If, after rounding, the block size is still less than +.B minblock +bytes, +.B minblock +will be used as the block size. +.PP +.I Poolcompact +defragments the pool, moving blocks in order to aggregate +the free space. +Each time it moves a block, it notifies the +.B move +routine that the contents have moved. +At the time that +.B move +is called, the contents have already moved, +so +.B from +should never be dereferenced. +If no +.B move +routine is supplied (i.e. it is nil), then calling +.I poolcompact +is a no-op. +.PP +When the pool routines need to allocate a new arena but cannot, +either because +.B alloc +has returned nil or because doing so would use more than +.B maxsize +bytes, +.I poolcompact +is called once to defragment the memory +and the request is retried. +.PP +.I Pools +are protected by the pool routines calling +.B lock +(when non-nil) +before modifying the pool, and +calling +.B unlock +when finished. +.PP +When internal corruption is detected, +.B panic +is called with a +.IR print (2) +style argument that specifies what happened. +It is assumed that +.B panic +never returns. +When the pool routines wish to convey a message +to the caller (usually because logging is turned on; see below), +.B print +is called, also with a +.IR print (2) +style argument. +.PP +.B Flags +is a bit vector that tweaks the behavior of the pool routines +in various ways. +Most are useful for debugging in one way or another. +When +.B POOL_ANTAGONISM +is set, +.I poolalloc +fills blocks with non-zero garbage before releasing them to the user, +and +.I poolfree +fills the blocks on receipt. +This tickles both user programs and the innards of the allocator. +Specifically, each 32-bit word of the memory is marked with a pointer value exclusive-or'ed +with a constant. +The pointer value is the pointer to the beginning of the allocated block +and the constant varies in order to distinguish different markings. +Freed blocks use the constant +.BR 0xF7000000 , +newly allocated blocks +.BR 0xF9000000 , +and newly created unallocated blocks +.BR 0xF1000000 . +For example, if +.B POOL_ANTAGONISM +is set and +.I poolalloc +returns a block starting at +.BR 0x00012345 , +each word of the block will contain the value +.BR 0xF90012345 . +Recognizing these numbers in memory-related crashes can +help diagnose things like double-frees or dangling pointers. +.PP +Setting +.B POOL_PARANOIA +causes the allocator to walk the entire pool whenever locking or unlocking itself, +looking for corruption. +This slows runtime by a few orders of magnitude +when many blocks are in use. +If +.B POOL_VERBOSITY +is set, +the entire pool structure is printed +(via +.BR print ) +each time the pool is locked or unlocked. +.B POOL_DEBUGGING +enables internal +debugging output, +whose format is unspecified and volatile. +It should not be used by most programs. +When +.B POOL_LOGGING +is set, a single line is printed via +.B print +at the beginning and end of each pool call. +If +.B logstack +is not nil, +it will be called as well. +This provides a mechanism for external programs to search for leaks. +(See +.IR leak (1) +for one such program.) +.PP +The pool routines are strict about the amount of space callers use. +If even a single byte is written past the end of the allotted space of a block, they +will notice when that block is next used in a call to +.I poolrealloc +or +.I free +(or at the next entry into the allocator, when +.B POOL_PARANOIA +is set), +and +.B panic +will be called. +Since forgetting to allocate space for the +terminating NUL on strings is such a common error, +if +.B POOL_TOLERANCE +is set and a single NUL is found written past the end of a block, +.B print +will be called with a notification, but +.B panic +will not be. +.PP +When +.B POOL_NOREUSE +is set, +.B poolfree +fills the passed block with garbage rather than +return it to the free pool. +.SH SOURCE +.B /sys/src/libc/port/pool.c +.SH SEE ALSO +.IR malloc (2), +.IR brk (2) +.PP +.B /sys/src/libc/port/malloc.c +is a complete example. diff --git a/static/plan9-4e/man2/postnote.2 b/static/plan9-4e/man2/postnote.2 new file mode 100644 index 00000000..6b4de1d4 --- /dev/null +++ b/static/plan9-4e/man2/postnote.2 @@ -0,0 +1,49 @@ +.TH POSTNOTE 2 +.SH NAME +postnote \- send a note to a process or process group +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +int postnote(int who, int pid, char *note) +.fi +.SH DESCRIPTION +.I Postnote +sends a note to a process or process group. +If +.I who +is +.BR PNPROC , +then +.I note +is written to +.BI /proc/ pid /note\f1. +If +.I who +is +.BI PNGROUP , +the note is delivered to the +process group by writing +.I note +to +.BI /proc/ pid /notepg\f1. +For +.B PNGROUP +only, if the calling process is in the target group, the note is +.I not +delivered to that process. +.PP +If the write is successful, zero is returned. +Otherwise \-1 is returned. +.SH SOURCE +.B /sys/src/libc/9sys/postnote.c +.SH "SEE ALSO" +.IR notify (2), +.IR intro (2), +.IR proc (3) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/prime.2 b/static/plan9-4e/man2/prime.2 new file mode 100644 index 00000000..13afd872 --- /dev/null +++ b/static/plan9-4e/man2/prime.2 @@ -0,0 +1,104 @@ +.TH PRIME 2 +.SH NAME +genprime, gensafeprime, genstrongprime, DSAprimes, probably_prime, smallprimetest \- prime number generation +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +int smallprimetest(mpint *p) +.PP +.B +int probably_prime(mpint *p, int nrep) +.PP +.B +void genprime(mpint *p, int n, int nrep) +.PP +.B +void gensafeprime(mpint *p, mpint *alpha, int n, int accuracy) +.PP +.B +void genstrongprime(mpint *p, int n, int nrep) +.PP +.B +void DSAprimes(mpint *q, mpint *p, uchar seed[SHA1dlen]) +.SH DESCRIPTION +.PP +Public key algorithms abound in prime numbers. The following routines +generate primes or test numbers for primality. +.PP +.I Smallprimetest +checks for divisibility by the first 10000 primes. It returns 0 +if +.I p +is not divisible by the primes and \-1 if it is. +.PP +.I Probably_prime +uses the Miller-Rabin test to test +.IR p . +It returns non-zero if +.I P +is probably prime. The probability of it not being prime is +1/4**\fInrep\fR. +.PP +.I Genprime +generates a random +.I n +bit prime. Since it uses the Miller-Rabin test, +.I nrep +is the repetition count passed to +.IR probably_prime . +.I Gensafegprime +generates an +.IR n -bit +prime +.I p +and a generator +.I alpha +of the multiplicative group of integers mod \fIp\fR; +there is a prime \fIq\fR such that \fIp-1=2*q\fR. +.I Genstrongprime +generates a prime, +.IR p , +with the following properties: +.IP \- +.IR p -1 +has a large prime factor, +.IR p '. +A large factor is one close to 1/2 +the bit length of +.IR p . +.IP \- +.IR p '-1 +has a large prime factor +.IP \- +.IR p +1 +has a large prime factor +.IP \- +(\fIp\fR-1)/2 is prime +.PP +.I DSAprimes +generates two primes, +.I q +and +.IR p, +using the NIST recommended algorithm for DSA primes. +.I q +divides +.IR p -1. +The random seed used is also returned, so that skeptics +can later confirm the computation. Be patient; this is a +slow algorithm. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR aes (2) +.IR blowfish (2), +.IR des (2), +.IR elgamal (2), +.IR rsa (2), diff --git a/static/plan9-4e/man2/print.2 b/static/plan9-4e/man2/print.2 new file mode 100644 index 00000000..881b8dee --- /dev/null +++ b/static/plan9-4e/man2/print.2 @@ -0,0 +1,445 @@ +.TH PRINT 2 +.SH NAME +print, fprint, sprint, snprint, seprint, smprint, runesprint, runesnprint, runeseprint, runesmprint, vfprint, vsnprint, vseprint, vsmprint, runevsnprint, runevseprint, runevsmprint \- print formatted output +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLchar* 'u +.B +int print(char *format, ...) +.PP +.B +int fprint(int fd, char *format, ...) +.PP +.B +int sprint(char *s, char *format, ...) +.PP +.B +int snprint(char *s, int len, char *format, ...) +.PP +.B +char* seprint(char *s, char *e, char *format, ...) +.PP +.B +char* smprint(char *format, ...) +.PP +.B +int runesprint(Rune *s, char *format, ...) +.PP +.B +int runesnprint(Rune *s, int len, char *format, ...) +.PP +.B +Rune* runeseprint(Rune *s, Rune *e, char *format, ...) +.PP +.B +Rune* runesmprint(char *format, ...) +.PP +.B +int vfprint(int fd, char *format, va_list v) +.PP +.B +int vsnprint(char *s, int len, char *format, va_list v) +.PP +.B +char* vseprint(char *s, char *e, char *format, va_list v) +.PP +.B +char* vsmprint(char *format, va_list v) +.PP +.B +int runevsnprint(Rune *s, int len, char *format, va_list v) +.PP +.B +Rune* runevseprint(Rune *s, Rune *e, char *format, va_list v) +.PP +.B +Rune* runevsmprint(Rune *format, va_list v) +.PP +.B +.SH DESCRIPTION +.I Print +writes text to the standard output. +.I Fprint +writes to the named output +file descriptor; +a buffered form +is described in +.IR bio (2). +.I Sprint +places text +followed by the NUL character +.RB ( \e0 ) +in consecutive bytes starting at +.IR s ; +it is the user's responsibility to ensure that +enough storage is available. +Each function returns the number of bytes +transmitted (not including the NUL +in the case of +.IR sprint ), +or +a negative value if an output error was encountered. +.PP +.I Snprint +is like +.IR sprint , +but will not place more than +.I len +bytes in +.IR s . +Its result is always NUL-terminated and holds the maximal +number of complete UTF-8 characters that can fit. +.I Seprint +is like +.IR snprint , +except that the end is indicated by a pointer +.I e +rather than a count and the return value points to the terminating NUL of the +resulting string. +.I Smprint +is like +.IR sprint , +except that it prints into and returns a string of the required length, which is +allocated by +.IR malloc (2). +.PP +The routines +.IR runesprint , +.IR runesnprint , +.IR runeseprint , +and +.I runesmprint +are the same as +.IR sprint , +.IR snprint , +.IR seprint +and +.I smprint +except that their output is rune strings instead of byte strings. +.PP +Finally, the routines +.IR vfprint , +.IR vsnprint , +.IR vseprint , +.IR vsmprint , +.IR runevsnprint , +.IR runevseprint , +and +.IR runevsmprint +are like their +.BR v-less +relatives except they take as arguments a +.B va_list +parameter, so they can be called within a variadic function. +The Example section shows a representative usage. +.PP +Each of these functions +converts, formats, and prints its +trailing arguments +under control of a +.IR format +string. +The +format +contains two types of objects: +plain characters, which are simply copied to the +output stream, +and conversion specifications, +each of which results in fetching of +zero or more +arguments. +The results are undefined if there are arguments of the +wrong type or too few +arguments for the format. +If the format is exhausted while +arguments remain, the excess +is ignored. +.PP +Each conversion specification has the following format: +.IP +.B "% [flags] verb +.PP +The verb is a single character and each flag is a single character or a +(decimal) numeric string. +Up to two numeric strings may be used; +the first is called +.IR width , +the second +.IR precision . +A period can be used to separate them, and if the period is +present then +.I width +and +.I precision +are taken to be zero if missing, otherwise they are `omitted'. +Either or both of the numbers may be replaced with the character +.BR * , +meaning that the actual number will be obtained from the argument list +as an integer. +The flags and numbers are arguments to +the +.I verb +described below. +.PP +The numeric verbs +.BR d , +.BR o , +.BR b , +.BR x , +and +.B X +format their arguments in decimal, +octal, binary, hexadecimal, and upper case hexadecimal. +Each interprets the flags +.BR 0 , +.BR h , +.BR hh , +.BR l , +.BR u , +.BR + , +.BR - , +.BR , , +and +.B # +to mean pad with zeros, +short, byte, long, unsigned, always print a sign, left justified, commas every three digits, +and alternate format. +Also, a space character in the flag +position is like +.BR + , +but prints a space instead of a plus sign for non-negative values. +If neither +short nor long is specified, +then the argument is an +.BR int . +If unsigned is specified, +then the argument is interpreted as a +positive number and no sign is output. +If two +.B l +flags are given, +then the argument is interpreted as a +.B vlong +(usually an 8-byte, sometimes a 4-byte integer). +If +.I precision +is not omitted, the number is padded on the left with zeros +until at least +.I precision +digits appear. +Then, if alternate format is specified, +for +.B o +conversion, the number is preceded by a +.B 0 +if it doesn't already begin with one; +for +.B x +conversion, the number is preceded by +.BR 0x ; +for +.B X +conversion, the number is preceded by +.BR 0X . +Finally, if +.I width +is not omitted, the number is padded on the left (or right, if +left justification is specified) with enough blanks to +make the field at least +.I width +characters long. +.PP +The floating point verbs +.BR f , +.BR e , +.BR E , +.BR g , +and +.B G +take a +.B double +argument. +Each interprets the flags +.BR + , +.BR - , +and +.B # +to mean +always print a sign, +left justified, +and +alternate format. +.I Width +is the minimum field width and, +if the converted value takes up less than +.I width +characters, it is padded on the left (or right, if `left justified') +with spaces. +.I Precision +is the number of digits that are converted after the decimal place for +.BR e , +.BR E , +and +.B f +conversions, +and +.I precision +is the maximum number of significant digits for +.B g +and +.B G +conversions. +The +.B f +verb produces output of the form +.RB [ - ] digits [ .digits\fR]. +.B E +conversion appends an exponent +.BR E [ - ] digits , +and +.B e +conversion appends an exponent +.BR e [ - ] digits . +The +.B g +verb will output the argument in either +.B e +or +.B f +with the goal of producing the smallest output. +Also, trailing zeros are omitted from the fraction part of +the output, and a trailing decimal point appears only if it is followed +by a digit. +The +.B G +verb is similar, but uses +.B E +format instead of +.BR e . +When alternate format is specified, the result will always contain a decimal point, +and for +.B g +and +.B G +conversions, trailing zeros are not removed. +.PP +The +.B s +verb copies a string +(pointer to +.BR char ) +to the output. +The number of characters copied +.RI ( n ) +is the minimum +of the size of the string and +.IR precision . +These +.I n +characters are justified within a field of +.I width +characters as described above. +The +.B S +verb is similar, but it interprets its pointer as an array +of runes (see +.IR utf (6)); +the runes are converted to +.SM UTF +before output. +.PP +The +.B c +verb copies a single +.B char +(promoted to +.BR int ) +justified within a field of +.I width +characters as described above. +The +.B C +verb is similar, but works on runes. +.PP +The +.B p +verb formats a pointer value. +At the moment, it is a synonym for +.BR ux , +but that will change once pointers and integers are different sizes. +.PP +The +.B r +verb takes no arguments; it copies the error string returned by a call to +.IR errstr (2). +.PP +Custom verbs may be installed using +.IR fmtinstall (2). +.SH EXAMPLE +This function prints an error message with a variable +number of arguments and then quits. +.IP +.EX +.ta 6n +6n +6n +void fatal(char *msg, ...) +{ + char buf[1024], *out; + va_list arg; + + out = vseprint(buf, buf+sizeof(buf), "Fatal error: "); + va_start(arg, msg); + out = vseprint(out, buf+sizeof(buf), msg, arg); + va_end(arg); + write(2, buf, out-buf); + exits("fatal error"); +} +.EE +.SH SOURCE +.B /sys/src/libc/fmt +.SH SEE ALSO +.IR fmtinstall (2), +.IR fprintf (2), +.IR utf (6), +.IR errstr (2) +.SH DIAGNOSTICS +Routines that write to a file descriptor or call +.IR malloc +set +.IR errstr . +.SH BUGS +The formatting is close to that specified for ANSI +.IR fprintf (2); +the main difference is that +.B b +is not in ANSI and +.B u +is a flag here instead of a verb. +Also, and distinctly not a bug, +.I print +and friends generate +.SM UTF +rather than +.SM ASCII. +.PP +There is no +.BR runeprint , +.BR runefprint , +etc. because runes are byte-order dependent and should not be written directly to a file; use the +UTF output of +.I print +or +.I fprint +instead. +Also, +.I sprint +is deprecated for safety reasons; use +.IR snprint , +.IR seprint , +or +.I smprint +instead. +Safety also precludes the existence of +.IR runesprint . diff --git a/static/plan9-4e/man2/privalloc.2 b/static/plan9-4e/man2/privalloc.2 new file mode 100644 index 00000000..20dd0bf2 --- /dev/null +++ b/static/plan9-4e/man2/privalloc.2 @@ -0,0 +1,36 @@ +.TH PRIVALLOC 2 +.SH NAME +privalloc, privfree \- per-process private storage management +.SH SYNOPSIS +.B #include +.br +.B #include +.ta \w'voidmmm'u +.PP +.B +void** privalloc(void) +.PP +.B +void privfree(void **p) +.SH DESCRIPTION +.I Privalloc +returns a pointer to a per-process private storage location. +The location is not shared among processes, +even if they share the same data segments. +It returns +.B nil +if there are no free slots available. +.PP +.I Privfree +releases a location allocated with +.IR privalloc . +It is legal to call +.I privfree +with +.I p +set to +.BR nil . +.SH SOURCE +.B /sys/src/libc/9sys/privalloc.c +.SH SEE ALSO +.IR exec (2) diff --git a/static/plan9-4e/man2/proto.2 b/static/plan9-4e/man2/proto.2 new file mode 100644 index 00000000..563a1917 --- /dev/null +++ b/static/plan9-4e/man2/proto.2 @@ -0,0 +1,131 @@ +.TH PROTO 2 +.SH NAME +rdproto \- parse and process a proto file listing +.SH SYNOPSIS +.nf +.ft L +#include +#include +#include +.ft +.PP +.B +typedef void Protoenum(char *new, char *old, Dir *d, void *a) +.PP +.B +typedef void Protowarn(char *msg, void *a) +.PP +.B +int rdproto(char *proto, char *root, Protoenum *enm, +.br +.B + Protowarn *warn, void *a) +.SH DESCRIPTION +.I Rdproto +reads and interprets the named +.I proto +file relative to the +root directory +.IR root . +.PP +Each line of the +.I proto +file specifies a file to copy. +Blank lines and lines beginning with +.B # +are ignored. +Indentation (usually tabs) is significant, +with each level of indentation corresponding to a level in the file tree. +Fields within a line are separated by white space. +The first field is the last path element in the destination file tree. +The second field specifies the permissions. +The third field is the owner of the file, +and the fourth is the group owning the file. +The fifth field is the name of the file from which to copy; +this file is read from the current name space, +not the source file tree. +All fields except the first are optional. +Specifying +.B - +for permissions, owner, or group +causes +.I rdproto +to fetch the corresponding information +from the file rather than override it. +(This is the default behavior when the fields +are not present; explicitly specifying +.B - +is useful when one wishes to set, say, +the file owner without setting the permissions.) +.PP +Names beginning with a +.L $ +are expanded as environment variables. +If the first file specified in a directory is +.LR * , +all of the files in that directory are considered listed. +If the first file is +.LR + , +all of the files are copied, and all subdirectories +are recursively considered listed. +All files are considered relative to +.IR root . +.PP +For each file named by the +.IR proto , +.I enm +is called with +.I new +pointing at the name of the file (without the root prefix), +.I old +pointing at the name of the source file (with the root prefix, +when applicable), +and +.I Dir +at the desired directory information for the new file. +Only the +.BR name , +.BR uid , +.BR gid , +.BR mode , +.BR mtime , +and +.B length +fields are guaranteed to be valid. +The argument +.I a +is the same argument passed to +.IR rdproto ; +typically it points at some extra state +used by the enumeration function. +.PP +When files or directories do not exist or +cannot be read by +.IR rdproto , +it formats a warning message, calls +.IR warn , +and continues processing; +if +.I warn +is nil, +.I rdproto +prints the warning message to standard error. +.PP +.I Rdproto +returns zero +if +.I proto +was processed, \-1 if it could not be opened. +.SH FILES +.TF /sys/lib/sysconfig/proto/portproto +.TP +.B /sys/lib/sysconfig/proto/ +directory of prototype files. +.TP +.B /sys/lib/sysconfig/proto/portproto +generic prototype file. +.SH SOURCE +.B /sys/src/libdisk/proto.c +.SH SEE ALSO +.IR mk9660 (8), +.IR mkfs (8) diff --git a/static/plan9-4e/man2/pushssl.2 b/static/plan9-4e/man2/pushssl.2 new file mode 100644 index 00000000..efd55294 --- /dev/null +++ b/static/plan9-4e/man2/pushssl.2 @@ -0,0 +1,45 @@ +.TH PUSHSSL 2 +.SH NAME +pushssl \- attach SSL version 2 encryption to a communication channel +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int pushssl(int fd, char *alg, char *secin, char *secout, int *cfd) +.SH DESCRIPTION +.I Pushssl +opens an +.IR ssl (3) +device, connects it to the communications channel +.IR fd , +and starts up encryption and message authentication as specified +in +.IR alg . +The algorithms are separated by a space and either can be first. +See +.IR ssl (3) +for the possible algorithms. +.I Secin +and +.I secout +contain the encryption keys for the two directions. +If either is nil, the other is used in both directions. +If +.I cfd +is non-nil, the SSL control channel is opened and its fd +returned. +.PP +.I Pushssl +returns a file descriptor for the SSL data channel. Anything written to this +descriptor will get encrypted and authenticated and then written to the +file descriptor, +.IR fd . +.SH SOURCE +.B /sys/src/libc/9sys +.SH "SEE ALSO" +.IR dial (2), +.IR ssl (3), +.SH DIAGNOSTICS +return \-1 on failure. diff --git a/static/plan9-4e/man2/pushtls.2 b/static/plan9-4e/man2/pushtls.2 new file mode 100644 index 00000000..0671e7c7 --- /dev/null +++ b/static/plan9-4e/man2/pushtls.2 @@ -0,0 +1,177 @@ +.TH PUSHTLS 2 +.SH NAME +pushtls, tlsClient, tlsServer, initThumbprints, freeThumbprints, okThumbprint, readcert \- attach TLS1 or SSL3 encryption to a communication channel +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int pushtls(int fd, char *hashalg, char *encalg, +.br +.B + int isclient, char *secret, char *dir) +.PP +.B #include +.br +.B #include +.PP +.B +int tlsClient(int fd, TLSconn *conn) +.PP +.B +int tlsServer(int fd, TLSconn *conn) +.PP +.B +uchar *readcert(char *filename, int *pcertlen) +.PP +.B +Thumbprint* initThumbprints(char *ok, char *crl) +.PP +.B +void freeThumbprints(Thumbprint *table) +.PP +.B +int okThumbprint(uchar *hash, Thumbprint *table) +.SH DESCRIPTION +Transport Layer Security (TLS) comprises a record layer protocol, +doing message digesting and encrypting in the kernel, +and a handshake protocol, +doing initial authentication and secret creation at +user level and then starting a data channel in the record protocol. +TLS is nearly the same as SSL 3.0, and the software should interoperate +with implementations of either standard. +.PP +To use just the record layer, as described in +.IR tls (3), +call +.I pushtls +to open the record layer device, connect to the communications channel +.IR fd , +and start up encryption and message authentication as specified +in +.IR hashalg , +.IR encalg , +and +.IR secret . +These parameters must have been arranged at the two ends of the +conversation by other means. +For example, +.I hashalg +could be +.BR sha1 , +.I encalg +could be +.BR rc4_128 , +and +.I secret +could be the base-64 encoding of two (client-to-server and server-to-client) +20-byte digest keys and two corresponding 16-byte encryption keys. +.I Pushtls +returns a file descriptor for the TLS data channel. Anything written to this +descriptor will get encrypted and authenticated and then written to the +file descriptor, +.IR fd . +If +.I dir +is non-zero, the path name of the connection directory is copied into +.IR dir . +This path name is guaranteed to be less than 40 bytes long. +.PP +Alternatively, call +.I tlsClient +to speak the full handshake protocol, +negotiate the algorithms and secrets, +and return a new data file descriptor for the data channel. +.I Conn +points to a (caller-allocated) struct +.EX + typedef struct TLSconn{ + char dir[40]; // OUT connection directory + uchar *cert; // IN/OUT certificate + uchar *sessionID; // IN/OUT sessionID + int certlen, sessionIDlen; + void (*trace)(char*fmt, ...); + } TLSconn; +.EE +defined in +.IR tls.h . +On input, the caller can provide options such as +.IR cert , +the local certificate, and +.IR sessionID , +used by a client to resume a previously negotiated security association. +On output, the connection directory is set, as with +.B listen +(see +.IR dial (2)). +The input +.I cert +is freed and a freshly allocated copy of the remote's certificate +is returned in +.IR conn , +to be checked by the caller +according to its needs. One mechanism is supplied by +.I initThumbprints +and +.I freeThumbprints +which allocate and free, respectively, a table of hashes +from files of known trusted and revoked certificates. +.I okThumbprint +confirms that a particular hash is in the table, as computed by +.PP +.EX + uchar hash[SHA1dlen]; + conn = (TLSconn*)mallocz(sizeof *conn, 1); + fd = tlsClient(fd, conn); + sha1(conn->cert, conn->certlen, hash, nil); + if(!okThumbprint(hash,table)) + exits("suspect server"); + ...application begins... +.EE +.PP +Call +.I tlsServer +to perform the corresponding function on the server side: +.PP +.EX + fd = accept(lcfd, ldir); + conn = (TLSconn*)mallocz(sizeof *conn, 1); + conn->cert = readcert("cert.pem", &conn->certlen); + fd = tlsServer(fd, conn); + ...application begins... +.EE +The private key corresponding to +.I cert.pem +should have been previously loaded into factotum, for example by +.EX + auth/secretpem key.pem > /mnt/factotum/ctl +.EE +.PP +.I Conn +is not required for the ongoing conversation and may +be freed by the application whenever convenient. +.SH FILES +.TP +.B /sys/lib/tls +thumbprints of trusted services, maintained manually +.SH SOURCE +.B /sys/src/libc/9sys/pushtls.c +.br +.B /sys/src/libsec/port +.SH "SEE ALSO" +.IR dial (2), +.IR tls (3), +.IR factotum (4), +.IR thumbprint (6) +.SH DIAGNOSTICS +return \-1 on failure. +.SH BUGS +.PP +Client certificates and client sessionIDs are not yet +implemented. +.PP +Note that in the TLS protocol +.I sessionID +itself is public; it is used as a pointer to +secrets stored in factotum. diff --git a/static/plan9-4e/man2/qball.2 b/static/plan9-4e/man2/qball.2 new file mode 100644 index 00000000..1e919708 --- /dev/null +++ b/static/plan9-4e/man2/qball.2 @@ -0,0 +1,76 @@ +.TH QBALL 2 +.SH NAME +qball \- 3-d rotation controller +.SH SYNOPSIS +.PP +.B +#include +.PP +.B +#include +.PP +.B +void qball(Rectangle r, Mouse *mousep, +.br +.B + Quaternion *orientation, +.br +.B + void (*redraw)(void), Quaternion *ap) +.SH DESCRIPTION +.I Qball +is an interactive controller that allows arbitrary 3-space rotations to be specified with +the mouse. Imagine a sphere with its center at the midpoint of rectangle +.IR r , +and diameter the smaller of +.IR r 's +dimensions. Dragging from one point on the sphere to another specifies the endpoints of a +great-circle arc. (Mouse points outside the sphere are projected to the nearest point +on the sphere.) The axis of rotation is normal to the plane of the arc, and the +angle of rotation is twice the angle of the arc. +.PP +Argument +.I mousep +is a pointer to the mouse event that triggered the interaction. It should +have some button set. +.I Qball +will read more events into +.IR mousep , +and return when no buttons are down. +.PP +While +.I qball +is reading mouse events, it calls out to the caller-supplied routine +.IR redraw , +which is expected to update the screen to reflect the changing orientation. +Argument +.I orientation +is the orientation that +.I redraw +should examine, represented as a unit Quaternion (see +.IR quaternion(9.2)). +The caller may set it to any orientation. +It will be updated before each call to +.I redraw +(and on return) by multiplying by the rotation specified with the mouse. +.PP +It is possible to restrict +.I qball's +attention to rotations about a particular axis. +If +.I ap +is null, the rotation is unconstrained. +Otherwise, the rotation will be about the same axis as +.IR *ap . +This is accomplished by projecting points on the sphere to +the nearest point also on the plane through the sphere's center +and normal to the axis. +.SH SOURCE +.B /sys/src/libgeometry/qball.c +.SH SEE ALSO +.IR quaternion (2) +.br +Ken Shoemake, +``Animating Rotation with Quaternion Curves'', +.I +SIGGRAPH '85 Conference Proceedings. diff --git a/static/plan9-4e/man2/qsort.2 b/static/plan9-4e/man2/qsort.2 new file mode 100644 index 00000000..9f0aedae --- /dev/null +++ b/static/plan9-4e/man2/qsort.2 @@ -0,0 +1,33 @@ +.TH QSORT 2 +.SH NAME +qsort \- quicker sort +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +.nf +void qsort(void *base, long nel, long width, +.B + int (*compar)(void*, void*)) +.fi +.SH DESCRIPTION +.I Qsort +(quicker sort) +sorts an array into nondecreasing order. +The first argument is a pointer to the base of the data; +the second is the number of elements; +the third is the width of an element +in bytes; +the last is the name of a comparison routine +to be called with pointers +to elements being compared. +The routine must return +an integer less than, equal to, or greater than 0 +according as the first argument is to be considered +less than, equal to, or greater than the second. +.SH SOURCE +.B /sys/src/libc/port/qsort.c +.SH "SEE ALSO" +.IR sort (1) diff --git a/static/plan9-4e/man2/quaternion.2 b/static/plan9-4e/man2/quaternion.2 new file mode 100644 index 00000000..3e3de98d --- /dev/null +++ b/static/plan9-4e/man2/quaternion.2 @@ -0,0 +1,152 @@ +.TH QUATERNION 2 +.SH NAME +qtom, mtoq, qadd, qsub, qneg, qmul, qdiv, qunit, qinv, qlen, slerp, qmid, qsqrt \- Quaternion arithmetic +.SH SYNOPSIS +.PP +.B +#include +.PP +.B +#include +.PP +.B +Quaternion qadd(Quaternion q, Quaternion r) +.PP +.B +Quaternion qsub(Quaternion q, Quaternion r) +.PP +.B +Quaternion qneg(Quaternion q) +.PP +.B +Quaternion qmul(Quaternion q, Quaternion r) +.PP +.B +Quaternion qdiv(Quaternion q, Quaternion r) +.PP +.B +Quaternion qinv(Quaternion q) +.PP +.B +double qlen(Quaternion p) +.PP +.B +Quaternion qunit(Quaternion q) +.PP +.B +void qtom(Matrix m, Quaternion q) +.PP +.B +Quaternion mtoq(Matrix mat) +.PP +.B +Quaternion slerp(Quaternion q, Quaternion r, double a) +.PP +.B +Quaternion qmid(Quaternion q, Quaternion r) +.PP +.B +Quaternion qsqrt(Quaternion q) +.SH DESCRIPTION +The Quaternions are a non-commutative extension field of the Real numbers, designed +to do for rotations in 3-space what the complex numbers do for rotations in 2-space. +Quaternions have a real component +.I r +and an imaginary vector component \fIv\fP=(\fIi\fP,\fIj\fP,\fIk\fP). +Quaternions add componentwise and multiply according to the rule +(\fIr\fP,\fIv\fP)(\fIs\fP,\fIw\fP)=(\fIrs\fP-\fIv\fP\v'-.3m'.\v'.3m'\fIw\fP, \fIrw\fP+\fIvs\fP+\fIv\fP×\fIw\fP), +where \v'-.3m'.\v'.3m' and × are the ordinary vector dot and cross products. +The multiplicative inverse of a non-zero quaternion (\fIr\fP,\fIv\fP) +is (\fIr\fP,\fI-v\fP)/(\fIr\^\fP\u\s-22\s+2\d-\fIv\fP\v'-.3m'.\v'.3m'\fIv\fP). +.PP +The following routines do arithmetic on quaternions, represented as +.IP +.EX +.ta 6n +typedef struct Quaternion Quaternion; +struct Quaternion{ + double r, i, j, k; +}; +.EE +.TF qunit +.TP +Name +Description +.TP +.B qadd +Add two quaternions. +.TP +.B qsub +Subtract two quaternions. +.TP +.B qneg +Negate a quaternion. +.TP +.B qmul +Multiply two quaternions. +.TP +.B qdiv +Divide two quaternions. +.TP +.B qinv +Return the multiplicative inverse of a quaternion. +.TP +.B qlen +Return +.BR sqrt(q.r*q.r+q.i*q.i+q.j*q.j+q.k*q.k) , +the length of a quaternion. +.TP +.B qunit +Return a unit quaternion +.RI ( length=1 ) +with components proportional to +.IR q 's. +.PD +.PP +A rotation by angle \fIθ\fP about axis +.I A +(where +.I A +is a unit vector) can be represented by +the unit quaternion \fIq\fP=(cos \fIθ\fP/2, \fIA\fPsin \fIθ\fP/2). +The same rotation is represented by \(mi\fIq\fP; a rotation by \(mi\fIθ\fP about \(mi\fIA\fP is the same as a rotation by \fIθ\fP about \fIA\fP. +The quaternion \fIq\fP transforms points by +(0,\fIx',y',z'\fP) = \%\fIq\fP\u\s-2-1\s+2\d(0,\fIx,y,z\fP)\fIq\fP. +Quaternion multiplication composes rotations. +The orientation of an object in 3-space can be represented by a quaternion +giving its rotation relative to some `standard' orientation. +.PP +The following routines operate on rotations or orientations represented as unit quaternions: +.TF slerp +.TP +.B mtoq +Convert a rotation matrix (see +.IR matrix (2)) +to a unit quaternion. +.TP +.B qtom +Convert a unit quaternion to a rotation matrix. +.TP +.B slerp +Spherical lerp. Interpolate between two orientations. +The rotation that carries +.I q +to +.I r +is \%\fIq\fP\u\s-2-1\s+2\d\fIr\fP, so +.B slerp(q, r, t) +is \fIq\fP(\fIq\fP\u\s-2-1\s+2\d\fIr\fP)\u\s-2\fIt\fP\s+2\d. +.TP +.B qmid +.B slerp(q, r, .5) +.TP +.B qsqrt +The square root of +.IR q . +This is just a rotation about the same axis by half the angle. +.PD +.SH SOURCE +.B /sys/src/libgeometry/quaternion.c +.SH SEE ALSO +.IR matrix (2), +.IR qball (2) diff --git a/static/plan9-4e/man2/quote.2 b/static/plan9-4e/man2/quote.2 new file mode 100644 index 00000000..8b223dd0 --- /dev/null +++ b/static/plan9-4e/man2/quote.2 @@ -0,0 +1,159 @@ +.TH QUOTE 2 +.SH NAME +quotestrdup, quoterunestrdup, unquotestrdup, unquoterunestrdup, quotestrfmt, quoterunestrfmt, quotefmtinstall, doquote \- quoted character strings +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +char *quotestrdup(char *s) +.PP +.B +Rune *quoterunestrdup(Rune *s) +.PP +.B +char *unquotestrdup(char *s) +.PP +.B +Rune *unquoterunestrdup(Rune *s) +.PP +.B +int quotestrfmt(Fmt*) +.PP +.B +int quoterunestrfmt(Fmt*) +.PP +.B +void quotefmtinstall(void) +.PP +.B +int (*doquote)(int c) +.PP +.SH DESCRIPTION +These routines manipulate character strings, either adding or removing +quotes as necessary. +In the quoted form, the strings are in the style of +.IR rc (1) , +with single quotes surrounding the string. +Embedded single quotes are indicated by a doubled single quote. +For instance, +.IP +.EX +Don't worry! +.EE +.PP +when quoted becomes +.IP +.EX +\&'Don''t worry!' +.EE +.PP +The empty string is represented by two quotes, +.BR '' . +.PP +The first four functions act as variants of +.B strdup +(see +.IR strcat (2)). +Each returns a +freshly allocated copy of the string, created using +.IR malloc (2). +.I Quotestrdup +returns a quoted copy of +.IR s , +while +.I unquotestrdup +returns a copy of +.IR s +with the quotes evaluated. +The +.I rune +versions of these functions do the same for +.CW Rune +strings (see +.IR runestrcat (2)). +.PP +The string returned by +.I quotestrdup +or +.I quoterunestrdup +has the following properties: +.TP +1. +If the original string +.IR s +is empty, the returned string is +.BR '' . +.TP +2. +If +.I s +contains no quotes, blanks, or control characters, +the returned string is identical to +.IR s . +.TP +3. +If +.I s +needs quotes to be added, the first character of the returned +string will be a quote. +For example, +.B hello\ world +becomes +.B \&'hello\ world' +not +.BR hello'\ 'world . +.PP +The function pointer +.I doquote +is +.B nil +by default. +If it is non-nil, characters are passed to that function to see if they should +be quoted. +This mechanism allows programs to specify that +characters other than blanks, control characters, or quotes be quoted. +Regardless of the return value of +.IR *doquote , +blanks, control characters, and quotes are always quoted. +.PP +.I Quotestrfmt +and +.I quoterunestrfmt +are +.IR print (2) +formatting routines that produce quoted strings as output. +They may be installed by hand, but +.I quotefmtinstall +installs them under the standard format characters +.B q +and +.BR Q . +(They are not installed automatically.) +If the format string includes the alternate format character +.BR # , +for example +.BR %#q , +the printed string will always be quoted; otherwise quotes will only be provided if necessary +to avoid ambiguity. +In +.B +there are +.B #pragma +statements so the compiler can type-check uses of +.B %q +and +.B %Q +in +.IR print (2) +format strings. +.SH SOURCE +.B /sys/src/libc/port/quote.c +.br +.B /sys/src/libc/fmt/fmtquote.c +.SH "SEE ALSO +.IR rc (1), +.IR malloc (2), +.IR print (2), +.IR strcat (2) diff --git a/static/plan9-4e/man2/rand.2 b/static/plan9-4e/man2/rand.2 new file mode 100644 index 00000000..2f46885a --- /dev/null +++ b/static/plan9-4e/man2/rand.2 @@ -0,0 +1,172 @@ +.TH RAND 2 +.SH NAME +rand, lrand, frand, nrand, lnrand, srand, truerand, ntruerand, fastrand, nfastrand \- random number generator +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLdouble 'u +.B +int rand(void) +.PP +.B +long lrand(void) +.PP +.B +double frand(void) +.PP +.B +int nrand(int val) +.PP +.B +long lnrand(long val) +.PP +.B +void srand(long seed) +.PP +.B +ulong truerand(void) +.PP +.B +ulong ntruerand(ulong val) +.PP +.B +ulong fastrand(void) +.PP +.B +ulong nfastrand(ulong val) +.sp +.B #include +.br +.B #include +.PP +.B +void genrandom(uchar *buf, int nbytes) +.PP +.B +void prng(uchar *buf, int nbytes) +.SH DESCRIPTION +.I Rand +returns a uniform pseudo-random +number +.IR x , +.RI 0≤ x <2\u\s715\s10\d. +.PP +.I Lrand +returns a uniform +.B long +.IR x , +.RI 0≤ x <2\u\s731\s10\d. +.PP +.I Frand +returns a uniform +.B double +.IR x , +.RI 0.0≤ x <1.0, +This function calls +.I lrand +twice to generate a number with as many as 62 significant bits of mantissa. +.PP +.I Nrand +returns a uniform integer +.IR x , +.RI 0≤ x < val. +.I Lnrand +is the same, but returns a +.BR long . +.PP +The algorithm is additive feedback with: +.IP +x[n] = (x[n\(mi273] + x[n\(mi607]) mod +.if t 2\u\s731\s0\d +.if n 2^31 +.LP +giving a period of +.if t 2\u\s730\s10\d \(mu (2\u\s7607\s10\d \- 1). +.if n 2^30 × (2^607 - 1). +.PP +The generators are initialized by calling +.I srand +with whatever you like as argument. +To get a different starting value each time, +.IP +.L +srand(time(0)) +.LP +will work as long as it is not called more often +than once per second. +Calling +.IP +.L +srand(1) +.LP +will initialize the generators to their +starting state. +.PP +.I Truerand +returns a random unsigned long read from +.BR /dev/random . +Due to the nature of +.BR /dev/random , +truerand can only return a few hundred bits a +second. +.PP +.I Ntruerand +returns a uniform random integer +.IR x , +.RI 0≤ x < val ≤ 2\u\s732\s10\d-1. +.PP +.I Fastrand +is a pseudo random number generator which is seeded +and periodically scrambled using +.IR truerand . +It returns a uniform random integer +.IR x , +.RI 0≤ x < 2\u\s731\s10\d-1. +It is approximately 1000 times faster than +.I truerand +and is intended for security software that requires a +larger stream of unguessable data. +.PP +.I Nfastrand +returns a uniform pseudo random integer +.IR x , +.RI 0≤ x < val ≤ 2\u\s731\s10\d-1, +using +.IR fastrand . +.PP +.I Genrandom +fills a buffer with bytes from the X9.17 pseudo-random +number generator. The X9.17 generator is seeded by 24 +truly random bytes read from +.BR /dev/random . +.PP +.I Prng +uses the native +.IR rand (2) +pseudo-random number generator to fill the buffer. Used with +.IR srand , +this function can produce a reproducible stream of pseudo random +numbers useful in testing. +.PP +Both functions may be passed to +.I mprand +(see +.IR mp (2)). +.SH SOURCE +.B /sys/src/libc/port/rand.c +.br +.B /sys/src/libc/9sys/truerand.c +.br +.B /sys/src/libsec/port/genrandom.c +.br +.B /sys/src/libsec/port/prng.c +.SH "SEE ALSO +.IR cons (3), +.IR mp (2), +.SH BUGS +.I Truerand +and +.I ntruerand +maintain a static file descriptor. diff --git a/static/plan9-4e/man2/rc4.2 b/static/plan9-4e/man2/rc4.2 new file mode 100644 index 00000000..c450c73c --- /dev/null +++ b/static/plan9-4e/man2/rc4.2 @@ -0,0 +1,54 @@ +.TH RC4 2 +.SH NAME +setupRC4state, rc4, rc4skip, rc4back - alleged rc4 encryption +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +void setupRC4state(RC4state *s, uchar *seed, int slen) +.PP +.B +void rc4(RC4state *s, uchar *data, int dlen) +.PP +.B +void rc4skip(RC4state *s, int nbytes) +.PP +.B +void rc4back(RC4state *s, int nbytes) +.SH DESCRIPTION +.PP +This is an algorithm alleged to be Rivest's RC4 encryption function. It is +a pseudo-random number generator with a 256 byte state and a long +cycle. The input buffer is XOR'd with the output of the +generator both to encrypt and to decrypt. The seed, entered +using +.IR setupRC4state , +can be any length. The generator can be run forward using +.IR rc4 , +skip over bytes using +.I rc4skip +to account lost transmissions, +or run backwards using +.I rc4back +to cover retransmitted data. +The +.I RC4state +structure keeps track of the algorithm. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2), +.IR aes (2), +.IR blowfish (2), +.IR des (2), +.IR elgamal (2), +.IR rsa (2), +.IR sechash (2), +.IR prime (2), +.IR rand (2) diff --git a/static/plan9-4e/man2/read.2 b/static/plan9-4e/man2/read.2 new file mode 100644 index 00000000..6c207e70 --- /dev/null +++ b/static/plan9-4e/man2/read.2 @@ -0,0 +1,95 @@ +.TH READ 2 +.SH NAME +read, readn, write, pread, pwrite \- read or write file +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +long read(int fd, void *buf, long nbytes) +.PP +.B +long readn(int fd, void *buf, long nbytes) +.PP +.B +long write(int fd, void *buf, long nbytes) +.PP +.B +long pread(int fd, void *buf, long nbytes, vlong offset) +.PP +.B +long pwrite(int fd, void *buf, long nbytes, vlong offset) +.SH DESCRIPTION +.I Read +reads +.I nbytes +bytes of data +from the offset in the file associated with +.I fd +into memory at +.IR buf . +The offset is advanced by the number of bytes read. +It is not guaranteed +that all +.I nbytes +bytes will be read; for example +if the file refers to the console, at most one line +will be returned. +In any event the number of bytes read is returned. +A return value of +0 is conventionally interpreted as end of file. +.PP +.I Readn +is just like read, but does successive +.I read +calls until +.I nbytes +have been read, or a read system call +returns a non-positive count. +.PP +.I Write +writes +.I nbytes +bytes of data starting at +.I buf +to the file associated with +.I fd +at the file offset. +The offset is advanced by the number of bytes written. +The number of characters actually written is returned. +It should be regarded as an error +if this is not the same as requested. +.PP +.I Pread +and +.I Pwrite +equivalent to a +.IR seek (2) +to +.I offset +followed by a +.I read +or +.IR write . +By combining the operations in a single atomic call, they more closely +match the 9P protocol +(see +.IR intro (5)) +and, more important, +permit multiprocess programs to execute multiple concurrent +read and write operations on the same file descriptor +without interference. +.SH SOURCE +.B /sys/src/libc/9syscall +.br +.B /sys/src/libc/port/readn.c +.SH SEE ALSO +.IR intro (2), +.IR open (2), +.IR dup (2), +.IR pipe (2), +.IR readv (2) +.SH DIAGNOSTICS +These functions set +.IR errstr . diff --git a/static/plan9-4e/man2/readcolmap.2 b/static/plan9-4e/man2/readcolmap.2 new file mode 100644 index 00000000..5ea74cb3 --- /dev/null +++ b/static/plan9-4e/man2/readcolmap.2 @@ -0,0 +1,76 @@ +.TH READCOLMAP 2 +.SH NAME +RGB, readcolmap, writecolmap \- access display color map +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.PP +.ta \w'\fLvoid 'u +.PP +.B +int readcolmap(Display *d, RGB *map) +.PP +.B +int writecolmap(Display *d, RGB *map) +.fi +.SH DESCRIPTION +Colors are described by their red, green, and blue +light intensities, in an +.B RGB +datum: +.IP +.EX +.ta 6n +typedef +struct RGB { + ulong red; + ulong green; + ulong blue; +} RGB; +.EE +.PP +Black is represented by zero in all three positions and +white has the maximum +.B unsigned +.B long +value in all three positions. +.PP +A color map is an array of +.BR RGB s, +of length +.if t \x'-.8n'2\u\s-1\fIdepth\fP\s+1\d, +.if n 2^\fIdepth\fP, +giving the colors for pixels 0, 1, 2, etc. +On displays with color mapped pixels +(typically 8-bit displays), +one retrieves RGB color information +by treating the pixel data as an offset +into the color map. +.PP +.I Readcolmap +reads the color map for the given display into the provided +.IR map , +which must have enough space to hold it. +.I Writecolmap +associates the given color map with the given display, if possible. +(The hardware might not allow this.) +Both return 0 on success, or \-1 on error, setting +.IR errstr . +.PP +Changing the hardware color map does not change +the color map used by the +.IR draw (2) +operator to convert between +mapped and true color or greyscale images, +which is described in +.IR color (6). +.SH SOURCE +.B /sys/src/libdraw +.SH "SEE ALSO" +.IR graphics (2), +.IR draw (3), +.IR color (6) diff --git a/static/plan9-4e/man2/readv.2 b/static/plan9-4e/man2/readv.2 new file mode 100644 index 00000000..31dcb884 --- /dev/null +++ b/static/plan9-4e/man2/readv.2 @@ -0,0 +1,82 @@ +.TH READV 2 +.SH NAME +readv, writev, preadv, pwritev \- scatter/gather read and write +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.ft L +typedef +struct IOchunk +{ + void *addr; + ulong len; +} IOchunk; +.fi +.PP +.B +long readv(int fd, IOchunk *io, int nio) +.PP +.B +long preadv(int fd, IOchunk *io, int nio, vlong off) +.PP +.B +long writev(int fd, IOchunk *io, int nio) +.PP +.B +long pwritev(int fd, IOchunk *io, int nio, vlong off) +.SH DESCRIPTION +These functions supplement the standard read and write operations of +.IR read (2) +with facilities for scatter/gather I/O. +The set of I/O buffers is collected into an array of +.B IOchunk +structures passed as an argument. +.PP +.I Readv +reads data from +.I fd +and returns the total number of bytes received. +The received data is stored in the successive +.I nio +elements of the +.B IOchunk +array, storing +.IB io [0].len +bytes at +.IB io [0].addr\f1, +the next +.IB io [1].len +at +.IB io [1].addr\f1, +and so on. +.I Preadv +does the same, but implicitly seeks to I/O offset +.I off +by analogy with +.IR readv . +.PP +.I Writev +and +.I pwritev +are the analogous write routines. +.SH SOURCE +.B /sys/src/libc/9sys/readv.c +.br +.B /sys/src/libc/9sys/writev.c +.SH SEE ALSO +.IR intro (2), +.IR read (2) +.SH DIAGNOSTICS +These functions set +.IR errstr . +.SH BUGS +The implementations use +.IR malloc (2) +to build a single buffer for a standard call to +.B read +or +.BR write . +They are placeholders for possible future system calls. diff --git a/static/plan9-4e/man2/regexp.2 b/static/plan9-4e/man2/regexp.2 new file mode 100644 index 00000000..6558dc71 --- /dev/null +++ b/static/plan9-4e/man2/regexp.2 @@ -0,0 +1,212 @@ +.TH REGEXP 2 +.SH NAME +regcomp, regcomplit, regcompnl, regexec, regsub, rregexec, rregsub, regerror \- regular expression +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLRegprog 'u +.B +Reprog *regcomp(char *exp) +.PP +.B +Reprog *regcomplit(char *exp) +.PP +.B +Reprog *regcompnl(char *exp) +.PP +.nf +.B +int regexec(Reprog *prog, char *string, Resub *match, int msize) +.PP +.nf +.B +void regsub(char *source, char *dest, int dlen, Resub *match, int msize) +.PP +.nf +.B +int rregexec(Reprog *prog, Rune *string, Resub *match, int msize) +.PP +.nf +.B +void rregsub(Rune *source, Rune *dest, int dlen, Resub *match, int msize) +.PP +.B +void regerror(char *msg) +.SH DESCRIPTION +.I Regcomp +compiles a +regular expression and returns +a pointer to the generated description. +The space is allocated by +.IR malloc (2) +and may be released by +.IR free . +Regular expressions are exactly as in +.IR regexp (6). +.PP +.I Regcomplit +is like +.I regcomp +except that all characters are treated literally. +.I Regcompnl +is like +.I regcomp +except that the +.B . +metacharacter matches all characters, including newlines. +.PP +.I Regexec +matches a null-terminated +.I string +against the compiled regular expression in +.IR prog . +If it matches, +.I regexec +returns +.B 1 +and fills in the array +.I match +with character pointers to the substrings of +.I string +that correspond to the +parenthesized subexpressions of +.IR exp : +.BI match[ i ].sp +points to the beginning and +.BI match[ i ].ep +points just beyond +the end of the +.IR i th +substring. +(Subexpression +.I i +begins at the +.IR i th +left parenthesis, counting from 1.) +Pointers in +.B match[0] +pick out the substring that corresponds to +the whole regular expression. +Unused elements of +.I match +are filled with zeros. +Matches involving +.LR * , +.LR + , +and +.L ? +are extended as far as possible. +The number of array elements in +.I match +is given by +.IR msize . +The structure of elements of +.I match +is: +.IP +.EX +typedef struct { + union { + char *sp; + Rune *rsp; + }; + union { + char *ep; + Rune *rep; + }; +} Resub; +.EE +.LP +If +.B match[0].sp +is nonzero on entry, +.I regexec +starts matching at that point within +.IR string . +If +.B match[0].ep +is nonzero on entry, +the last character matched is the one +preceding that point. +.PP +.I Regsub +places in +.I dest +a substitution instance of +.I source +in the context of the last +.I regexec +performed using +.IR match . +Each instance of +.BI \e n\f1, +where +.I n +is a digit, is replaced by the +string delimited by +.BI match[ n ].sp +and +.BI match[ n ].ep\f1. +Each instance of +.L & +is replaced by the string delimited by +.B match[0].sp +and +.BR match[0].ep . +The substitution will always be null terminated and +trimmed to fit into dlen bytes. +.PP +.IR Regerror , +called whenever an error is detected in +.IR regcomp , +writes the string +.I msg +on the standard error file and exits. +.I Regerror +can be replaced to perform +special error processing. +If the user supplied +.I regerror +returns rather than exits, +.I regcomp +will return 0. +.PP +.I Rregexec +and +.I rregsub +are variants of +.I regexec +and +.I regsub +that use strings of +.B Runes +instead of strings of +.BR chars . +With these routines, the +.I rsp +and +.I rep +fields of the +.I match +array elements should be used. +.SH SOURCE +.B /sys/src/libregexp +.SH "SEE ALSO" +.IR grep (1) +.SH DIAGNOSTICS +.I Regcomp +returns +.B 0 +for an illegal expression +or other failure. +.I Regexec +returns 0 +if +.I string +is not matched. +.SH BUGS +There is no way to specify or match a NUL character; NULs terminate patterns and strings. diff --git a/static/plan9-4e/man2/remove.2 b/static/plan9-4e/man2/remove.2 new file mode 100644 index 00000000..7547e46a --- /dev/null +++ b/static/plan9-4e/man2/remove.2 @@ -0,0 +1,31 @@ +.TH REMOVE 2 +.SH NAME +remove \- remove a file +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int remove(char *file) +.SH DESCRIPTION +.I Remove +removes +.I file +from the directory containing it and discards the contents of the file. +The user must have write permission in the containing directory. +If +.I file +is a directory, it must be empty. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2), +.IR remove (5), +the description of +.B ORCLOSE +in +.IR open (2). +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/rendezvous.2 b/static/plan9-4e/man2/rendezvous.2 new file mode 100644 index 00000000..70564d97 --- /dev/null +++ b/static/plan9-4e/man2/rendezvous.2 @@ -0,0 +1,57 @@ +.TH RENDEZVOUS 2 +.SH NAME +rendezvous \- user level process synchronization +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +ulong rendezvous(ulong tag, ulong value) +.SH DESCRIPTION +The rendezvous system call allows two processes to synchronize and +exchange a value. +In conjunction with the shared memory system calls +(see +.IR segattach (2) +and +.IR fork (2)), +it enables parallel programs to control their scheduling. +.PP +Two processes wishing to synchronize call +.I rendezvous +with a common +.IR tag , +typically an address in +memory they share. +One process will arrive at the rendezvous first; +it suspends execution until a second arrives. +When a second process meets the rendezvous +the +.I value +arguments are exchanged between the processes and returned +as the result of the respective +.I rendezvous +system calls. +Both processes are awakened when +the rendezvous succeeds. +.PP +The set of tag values which two processes may use to rendezvous\(emtheir tag space\(emis +inherited when a process forks, unless +.B RFREND +is set in the argument to +.BR rfork ; +see +.IR fork (2). +.PP +If a rendezvous is interrupted the return value is +.BR ~0 , +so that value should not be used in normal communication. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR segattach (2), +.IR fork (2) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/rsa.2 b/static/plan9-4e/man2/rsa.2 new file mode 100644 index 00000000..a67dbb40 --- /dev/null +++ b/static/plan9-4e/man2/rsa.2 @@ -0,0 +1,149 @@ +.TH RSA 2 +.SH NAME + - +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +RSApriv* rsagen(int nlen, int elen, int nrep) +.PP +.B +mpint* rsaencrypt(RSApub *k, mpint *in, mpint *out) +.PP +.B +mpint* rsadecrypt(RSApriv *k, mpint *in, mpint *out) +.PP +.B +RSApub* rsapuballoc(void) +.PP +.B +void rsapubfree(RSApub*) +.PP +.B +RSApriv* rsaprivalloc(void) +.PP +.B +void rsaprivfree(RSApriv*) +.PP +.B +RSApub* rsaprivtopub(RSApriv*) +.PP +.B +RSApub* X509toRSApub(uchar *cert, int ncert, char *name, int nname) +.PP +.B +RSApriv* asn1toRSApriv(uchar *priv, int npriv) +.PP +.B +uchar* decodepem(char *s, char *type, uchar *len) +.SH DESCRIPTION +.PP +RSA is a public key encryption algorithm. The owner of a key publishes +the public part of the key: +.EX + struct RSApub + { + mpint *n; // modulus + mpint *ek; // exp (encryption key) + }; +.EE +This part can be used for encrypting data (with +.IR rsaencrypt ) +to be sent to the owner. +The owner decrypts (with +.IR rsadecrypt ) +using his private key: +.EX + struct RSApriv + { + RSApub pub; + mpint *dk; // exp (decryption key) + + // precomputed crt values + mpint *p; + mpint *q; + mpint *kp; // k mod p-1 + mpint *kq; // k mod q-1 + mpint *c2; // for converting residues to number + }; +.EE +.PP +Keys are generated using +.IR rsagen . +.I Rsagen +takes both bit length of the modulus, the bit length of the +public key exponent, and the number of repetitions of the Miller-Rabin +primality test to run. If the latter is 0, it does the default number +of rounds. +.I Rsagen +returns a newly allocated structure containing both +public and private keys. +.I Rsaprivtopub +returns a newly allocated copy of the public key +corresponding to the private key. +.PP +The routines +.IR rsaalloc , +.IR rsafree , +.IR rsapuballoc , +.IR rsapubfree , +.IR rsaprivalloc , +and +.I rsaprivfree +are provided to aid in user provided key I/O. +.PP +Given a binary X.509 +.IR cert , +the routine +.I X509toRSApub +returns the public key and, if +.I name +is not nil, the CN part of the Distinguished Name of the +certificate's Subject. +(This is conventionally a userid or a host DNS name.) +No verification is done of the certificate signature; the +caller should check the fingerprint, +.IR sha1(cert) , +against a table or check the certificate by other means. +X.509 certificates are often stored in PEM format; use +.I dec64 +to convert to binary before computing the fingerprint or calling +.IR X509toRSApub . +.PP +.I Asn1toRSApriv +converts an ASN1 formatted RSA private key into the corresponding +.B RSApriv +structure. +.PP +.I Decodepem +takes a zero terminated string, +.IR s , +and decodes the PEM (privacy-enhanced mail) formatted section for +.I type +within it. +If successful, it returns the decoded section and sets +.BI * len +to its decoded length. +If not, it returns +.BR nil , +and +.BI * len +is undefined. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR mp (2), +.IR aes (2), +.IR blowfish (2), +.IR des (2), +.IR elgamal (2), +.IR rc4 (2), +.IR sechash (2), +.IR prime (2), +.IR rand (2) diff --git a/static/plan9-4e/man2/rune.2 b/static/plan9-4e/man2/rune.2 new file mode 100644 index 00000000..a1643858 --- /dev/null +++ b/static/plan9-4e/man2/rune.2 @@ -0,0 +1,190 @@ +.TH RUNE 2 +.SH NAME +runetochar, chartorune, runelen, runenlen, fullrune, utfecpy, utflen, utfnlen, utfrune, utfrrune, utfutf \- rune/UTF conversion +.SH SYNOPSIS +.ta \w'\fLchar*xx'u +.B #include +.br +.B #include +.PP +.B +int runetochar(char *s, Rune *r) +.PP +.B +int chartorune(Rune *r, char *s) +.PP +.B +int runelen(long r) +.PP +.B +int runenlen(Rune *r, int n) +.PP +.B +int fullrune(char *s, int n) +.PP +.B +char* utfecpy(char *s1, char *es1, char *s2) +.PP +.B +int utflen(char *s) +.PP +.B +int utfnlen(char *s, long n) +.PP +.B +char* utfrune(char *s, long c) +.PP +.B +char* utfrrune(char *s, long c) +.PP +.B +char* utfutf(char *s1, char *s2) +.SH DESCRIPTION +These routines convert to and from a +.SM UTF +byte stream and runes. +.PP +.I Runetochar +copies one rune at +.I r +to at most +.B UTFmax +bytes starting at +.I s +and returns the number of bytes copied. +.BR UTFmax , +defined as +.B 3 +in +.BR , +is the maximum number of bytes required to represent a rune. +.PP +.I Chartorune +copies at most +.B UTFmax +bytes starting at +.I s +to one rune at +.I r +and returns the number of bytes copied. +If the input is not exactly in +.SM UTF +format, +.I chartorune +will convert to 0x80 and return 1. +.PP +.I Runelen +returns the number of bytes +required to convert +.I r +into +.SM UTF. +.PP +.I Runenlen +returns the number of bytes +required to convert the +.I n +runes pointed to by +.I r +into +.SM UTF. +.PP +.I Fullrune +returns 1 if the string +.I s +of length +.I n +is long enough to be decoded by +.I chartorune +and 0 otherwise. +This does not guarantee that the string +contains a legal +.SM UTF +encoding. +This routine is used by programs that +obtain input a byte at +a time and need to know when a full rune +has arrived. +.PP +The following routines are analogous to the +corresponding string routines with +.B utf +substituted for +.B str +and +.B rune +substituted for +.BR chr . +.PP +.I Utfecpy +copies UTF sequences until a null sequence has been copied, but writes no +sequences beyond +.IR es1 . +If any sequences are copied, +.I s1 +is terminated by a null sequence, and a pointer to that sequence is returned. +Otherwise, the original +.I s1 +is returned. +.PP +.I Utflen +returns the number of runes that +are represented by the +.SM UTF +string +.IR s . +.PP +.I Utfnlen +returns the number of complete runes that +are represented by the first +.I n +bytes of +.SM UTF +string +.IR s . +If the last few bytes of the string contain an incompletely coded rune, +.I utfnlen +will not count them; in this way, it differs from +.IR utflen , +which includes every byte of the string. +.PP +.I Utfrune +.RI ( utfrrune ) +returns a pointer to the first (last) +occurrence of rune +.I c +in the +.SM UTF +string +.IR s , +or 0 if +.I c +does not occur in the string. +The NUL byte terminating a string is considered to +be part of the string +.IR s . +.PP +.I Utfutf +returns a pointer to the first occurrence of +the +.SM UTF +string +.I s2 +as a +.SM UTF +substring of +.IR s1 , +or 0 if there is none. +If +.I s2 +is the null string, +.I utfutf +returns +.IR s1 . +.SH SOURCE +.B /sys/src/libc/port/rune.c +.br +.B /sys/src/libc/port/utfrune.c +.SH SEE ALSO +.IR utf (6), +.IR tcs (1) diff --git a/static/plan9-4e/man2/runestrcat.2 b/static/plan9-4e/man2/runestrcat.2 new file mode 100644 index 00000000..043de093 --- /dev/null +++ b/static/plan9-4e/man2/runestrcat.2 @@ -0,0 +1,67 @@ +.TH RUNESTRCAT 2 +.SH NAME +runestrcat, +runestrncat, +runestrcmp, +runestrncmp, +runestrcpy, +runestrncpy, +runestrecpy, +runestrlen, +runestrchr, +runestrrchr, +runestrdup, +runestrstr \- rune string operations +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLRune* \fP'u +.B +Rune* runestrcat(Rune *s1, Rune *s2) +.PP +.B +Rune* runestrncat(Rune *s1, Rune *s2, long n) +.PP +.B +int runestrcmp(Rune *s1, Rune *s2) +.PP +.B +int runestrncmp(Rune *s1, Rune *s2, long n) +.PP +.B +Rune* runestrcpy(Rune *s1, Rune *s2) +.PP +.B +Rune* runestrncpy(Rune *s1, Rune *s2, long n) +.PP +.B +Rune* runestrecpy(Rune *s1, Rune *es1, Rune *s2) +.PP +.B +long runestrlen(Rune *s) +.PP +.B +Rune* runestrchr(Rune *s, Rune c) +.PP +.B +Rune* runestrrchr(Rune *s, Rune c) +.PP +.B +Rune* runestrdup(Rune *s) +.PP +.B +Rune* runestrstr(Rune *s1, Rune *s2) +.SH DESCRIPTION +These functions are rune string analogues of +the corresponding functions in +.IR strcat (2). +.SH SOURCE +.B /sys/src/libc/port +.SH SEE ALSO +.IR memory (2), +.IR rune (2), +.IR strcat (2) +.SH BUGS +The outcome of overlapping moves varies among implementations. diff --git a/static/plan9-4e/man2/scribble.2 b/static/plan9-4e/man2/scribble.2 new file mode 100644 index 00000000..6f394add --- /dev/null +++ b/static/plan9-4e/man2/scribble.2 @@ -0,0 +1,162 @@ +.TH SCRIBBLE 2 +.SH NAME +scribblealloc, +recognize \- character recognition +.SH SYNOPSIS +.PP +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +4n +4n +4n +#include +#include +#include +#include + +Scribble *scribblealloc(void); +Rune recognize(Scribble *); +.EE +.SH DESCRIPTION +.PP +The scribble library implements simple character recognition. +All characters are drawn using a single stroke of the pen (mouse button 1) +as on a palmtop computer. +A reference card is in +.BR /sys/src/libscribble/quickref.gif . +.PP +The library is not really intended for standalone use. Its primary +use is by the scribble graphical control (see +.IR control (2)). +.PP +.B Scribblealloc +allocates and returns an appropriately initialized +.B Scribble +structure: +.IP +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +4n +4n +4n +#define CS_LETTERS 0 +#define CS_DIGITS 1 +#define CS_PUNCTUATION 2 + +struct Scribble { + /* private state */ + Point *pt; + int ppasize; + Stroke ps; + Graffiti *graf; + int capsLock; + int puncShift; + int tmpShift; + int ctrlShift; + int curCharSet; +}; +.EE +.PP +This structure encodes the points making up the stroke +to be recognized, as well as the \f2character group\fP in which +the stroke should be searched. +.PP +There are three such groups: +.IR letters , +.IR digits , +and +.IR punctuation . +The current group is encoded in the +.B curCharSet +field of the +.B Scribble +structure. +Special strokes are recognized to switch between groups. +In addition, the charater recognized is influenced by +.I mode +parameters and modifies them. +These are identified by the +.BR capsLock , +.BR puncShift , +.BR tmpShift , +and +.B ctrlShift +fields of the +.B Scribble +structure. +When +.B puncShift +is non-zero, the character is recognized in the punctuation +character set. +Similarly, +when the character recognized is printable and +.B ctrlShift +is set, the associated control character is returned as if the +control key were depressed, +and when the character is a letter and +.B capsLock +or +.B tmpShift +is set, the upper-case version is returned. +The +.B puncShift +and +.B tmpShift +flags are turned off +once a character has been recognized; the others are left set. +.PP +The character to be recognized is encoded as an array of pen_points in the +.B ps +field. +To allow easy drawing of the stroke as it is drawn, +the +.I pt +and +.I ppasize +fields are available to the application code for storing an array +of points for a call to +.B poly +(see +.IR draw (2)). +.PP +.I Recognize +recognizes the character provided in the +.B ps +field of the +.B Scribble +structure; it +returns the rune or zero if nothing was recognized. +.SH FILES +.B /sys/src/libscribble/quickref.gif +serves as a quick reference card. +.PP +.B /sys/lib/scribble/classifiers +contains the stroke definitions. +.SH SOURCE +.B /sys/src/libscribble +.PP +This library is adapted from software reproduced by permission: +.PP +.B Graffiti.c +is based on the file +.B Scribble.c +copyrighted +by Keith Packard: +.IP +Copyright © 1999 Keith Packard +.PP +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of Keith Packard not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. Keith Packard makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. +.PP +Portions of the software Copyright © 1994 by Sun Microsystems Computer Company. +.PP +Portions of the software Copyright © 2000 by Compaq Computer Corporation. +.SH SEE ALSO +.B Keyboard +and +.B prompter +in +.IR bitsyload (1), +.IR draw (2), +.IR control (2) diff --git a/static/plan9-4e/man2/scsi.2 b/static/plan9-4e/man2/scsi.2 new file mode 100644 index 00000000..081fe7a7 --- /dev/null +++ b/static/plan9-4e/man2/scsi.2 @@ -0,0 +1,184 @@ +.TH SCSI 2 +.SH NAME +openscsi, scsiready, scsi, scsicmd, scsierror \- SCSI device operations +.SH SYNOPSIS +.nf +.ft L +#include +#include +#include +.ft +.PP +.ft L +typedef struct Scsi { + char *inquire; + int rawfd; + int nchange; + ulong changetime; +}; +.ft +.PP +.B +Scsi* openscsi(char *devdir) +.PP +.B +void closescsi(Scsi *s) +.PP +.B +int scsiready(Scsi *s) +.PP +.B +int scsi(Scsi *s, uchar *cmd, int ncmd, +.br + void *data, int ndata, int dir) +.PP +.B +int scsicmd(Scsi *s, uchar *cmd, int ncmd, +.br + void *data, int ndata, int dir) +.PP +.B +char* scsierror(int asc, int ascq) +.PP +.B +int scsiverbose; +.SH DESCRIPTION +These routines provide an interface +to a SCSI or ATAPI device via +.IR sd (3). +.PP +.I Openscsi +attempts to open the file +.IB devdir /raw +and use it to send raw SCSI commands. +On success, it reads the device's inquiry +string and stores it in in returned +.B Scsi +structure. +.I Closescsi +closes the connection and frees the +.B Scsi +structure. +.PP +.I Scsiready +sends the ``unit ready'' command up to three times, +returning zero if the unit responds that it is ready, +or \-1 on error. +.PP +.I Scsierror +returns a textual description of the SCSI status +denoted by the ASC and ASCQ sense codes. +The description is found by consulting +.BR /sys/lib/scsicodes . +The returned string will be overwritten by +the next call to +.IR scsierror . +.PP +.I Scsi +and +.I scsicmd +execute a single SCSI command on the named device. +There should be +.I ncmd +bytes of +command data in +.IR cmd ; +if +.I dir +is +.BR Sread , +a successful operation +will store up to +.I ndata +bytes into +.IR data , +returning the number of bytes stored. +If +.I dir +is +.BR Swrite , +the +.I ndata +bytes beginning at +.I data +are transmitted as the data argument to +the command, and the +number of bytes written is returned. +If +.I dir +is +.BR Snone , +.I data +and +.I ndata +are ignored. +On error, +.I scsi +and +.I scsicmd +return \-1. +.I Scsicmd +simply issues the command and +returns the result; +.I scsi +works a bit harder and +is the more commonly used routine. +.I Scsi +attempts to send the command; +if it is successful, +.I scsi +returns what +.I scsicmd +returned. +Otherwise, +.I scsi +sends a request sense command to +obtain the reason for the failure, +sends a unit ready command in +an attempt to bring the unit out of any +inconsistent states, and tries again. +If the second try fails, +.I scsi +sends the request +sense and unit ready commands +again +and then uses +.I scsierror +to set +.I errstr +with a reason for failure. +.PP +The +.B nchange +and +.B changetime +fields +in the +.B Scsi +structure +record the number of times a media +change has been detected, and the +time when the current media was +inserted into the drive (really the +first time a SCSI command was issued +after it was inserted). +They are maintained by +.IR scsi . +.PP +If +.I scsiverbose +is set, +these commands will produce a fair +amount of debugging output on file descriptor 2 +when SCSI commands fail. +.SH FILES +.TP +.B /sys/lib/scsicodes +List of textual messages corresponding to SCSI error codes; +consulted by +.BR scsierror . +.SH SOURCE +.B /sys/src/libdisk/scsi.c +.SH SEE ALSO +.IR sd (3), +.IR scuzz (8) diff --git a/static/plan9-4e/man2/sechash.2 b/static/plan9-4e/man2/sechash.2 new file mode 100644 index 00000000..da9f3341 --- /dev/null +++ b/static/plan9-4e/man2/sechash.2 @@ -0,0 +1,150 @@ +.TH SECHASH 2 +.SH NAME +md4, md5, sha1, hmac_md5, hmac_sha1, md5pickle, md5unpickle, sha1pickle, sha1unpickle \- cryptographically secure hashes +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.B +DigestState* md4(uchar *data, ulong dlen, uchar *digest, +.B + DigestState *state) +.PP +.B +DigestState* md5(uchar *data, ulong dlen, uchar *digest, +.B + DigestState *state) +.PP +.B +char* md5pickle(MD5state *state) +.PP +.B +MD5state* md5unpickle(char *p); +.PP +.B +DigestState* sha1(uchar *data, ulong dlen, uchar *digest, +.B + DigestState *state) +.PP +.B +char* sha1pickle(MD5state *state) +.PP +.B +MD5state* sha1unpickle(char *p); +.PP +.B +DigestState* hmac_md5(uchar *data, ulong dlen, +.br +.B + uchar *key, ulong klen, +.br +.B + uchar *digest, DigestState *state) +.PP +.B +DigestState* hmac_sha1(uchar *data, ulong dlen, +.br +.B + uchar *key, ulong klen, +.br +.B + uchar *digest, DigestState *state) +.SH DESCRIPTION +.PP +We support several secure hash functions. The output of the +hash is called a +.IR digest . +A hash is secure if, given the hashed data and the digest, +it is difficult to predict the change to the digest resulting +from some change to the data without rehashing +the whole data. Therefore, if a secret is part of the hashed +data, the digest can be used as an integrity check of the data by anyone +possessing the secret. +.PP +The routines +.IR md4 , +.IR md5 , +.IR sha1 , +.IR hmac_md5 , +and +.I hmac_sha1 +differ only in the length of the resulting digest +and in the security of the hash. Usage for each is the same. +The first call to the routine should have +.B nil +as the +.I state +parameter. This call returns a state which can be used to chain +subsequent calls. +The last call should have digest non-\fBnil\fR. +.I Digest +must point to a buffer of at least the size of the digest produced. +This last call will free the state and copy the result into +.IR digest . +For example, to hash a single buffer using +.IR md5 : +.EX + + uchar digest[MD5dlen]; + + md5(data, len, digest, nil); +.EE +.PP +To chain a number of buffers together, +bounded on each end by some secret: +.EX + + char buf[256]; + uchar digest[MD5dlen]; + DigestState *s; + + s = md5("my password", 11, nil, nil); + while((n = read(fd, buf, 256)) > 0) + md5(buf, n, nil, s); + md5("drowssap ym", 11, digest, s); +.EE +.PP +The constants +.IR MD4dlen , +.IR MD5dlen , +and +.I SHA1dlen +define the lengths of the digests. +.PP +.I Hmac_md5 +and +.I hmac_sha1 +are used slightly differently. These hash algorithms are keyed and require +a key to be specified on every call. +The digest lengths for these hashes are +.I MD5dlen +and +.I SHA1dlen +respectively. +.PP +The functions +.I md5pickle +and +.I sha1pickle +marshal the state of a digest for transmission. +.I Md5unpickle +and +.I sha1unpickle +unmarshal a pickled digest. +All four routines return a pointer to a newly +.IR malloc (2)'d +object. +.SH SOURCE +.B /sys/src/libsec +.SH SEE ALSO +.IR aes (2) +.IR blowfish (2), +.IR des (2), +.IR elgamal (2), +.IR rc4 (2), +.IR rsa (2) diff --git a/static/plan9-4e/man2/seek.2 b/static/plan9-4e/man2/seek.2 new file mode 100644 index 00000000..8597376e --- /dev/null +++ b/static/plan9-4e/man2/seek.2 @@ -0,0 +1,46 @@ +.TH SEEK 2 +.SH NAME +seek \- change file offset +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +vlong seek(int fd, vlong n, int type) +.SH DESCRIPTION +.I Seek +sets the offset for the file +associated with +.I fd +as follows: +.IP +If +.I type +is 0, the offset is set to +.I n +bytes. +.IP +If +.I type +is 1, the pointer is set to its current location plus +.IR n . +.IP +If +.I type +is 2, the pointer is set to the size of the +file plus +.IR n . +.PP +The new file offset value is returned. +.PP +Seeking in a directory is not allowed. +Seeking in a pipe is a no-op. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2), +.IR open (2) +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/segattach.2 b/static/plan9-4e/man2/segattach.2 new file mode 100644 index 00000000..208ab327 --- /dev/null +++ b/static/plan9-4e/man2/segattach.2 @@ -0,0 +1,173 @@ +.TH SEGATTACH 2 +.SH NAME +segattach, segdetach, segfree \- map/unmap a segment in virtual memory +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLlong 'u +.B +long segattach(int attr, char *class, void *va, ulong len) +.PP +.B +int segdetach(void *addr) +.PP +.B +int segfree(void *va, ulong len) +.PP +.SH DESCRIPTION +.I Segattach +creates a new memory segment, adds it +to the calling process's address space, and returns its lowest address (as an integer). +Segments belong to system-dependent classes. +Segment classes +.B memory +(plain memory) +and +.B shared +(shared memory) +are available on all systems. +.PP +Shared segments are inherited by the children of the attaching process +and remain untouched across a +.IR fork (2). +An +.IR exec (2) +will release a shared segment if it overlaps the segments +in the file being +.IR exec'ed ; +otherwise the segment will be inherited. +.PP +Some machines provide a segment class +.BR lock . +Lock segments allow access to special lock hardware provided +by some multiprocessors, in particular the SGI Power Series machines. +.PP +Systems may also provide interfaces to special hardware devices like +frame buffers through the +.I segattach +interface. +Device memory mapped by this method is typically uncached by default. +.PP +If the specified +.I class +is unknown, +.I segattach +draws an error. +.PP +.I Attr +specifies the new segment's attributes. +The only attributes implemented on all classes of segment is +.BR SG_RONLY , +which allows only read access on the segment, and +.BR SG_CEXEC , +which causes the segment to be detached when the process does an +.IR exec (2). +Specific devices may implement +attributes to control caching and allocation, but these will vary +between devices. +.PP +.I Va +and +.I len +specify the position of the segment in the process's address space. +.I Va +is rounded down to the nearest page boundary and +.IB va + len +is rounded up. +The system does not permit segments to overlap. +If +.I va +is zero, the system will choose a suitable address. +.PP +.I Segdetach +removes a segment from a process's address space. Memory used by +the segment is freed. +.I Addr +may be any address within the bounds of the segment. +.PP +The system will not permit the text and stack segments to be detached +from the address space. +.PP +.I Segfree +tells the system that it may free any physical memory within the span +.RI [ va , +.IR va+len ), +but leaves that portion of the process's address space valid. +The system will not free any memory outside that span, +and may not free all or even any of the specified memory. +If free'd memory is later referenced, +it will be initialized as appropriate for the segment type. +For example data and text segments will be read from the executable file, +and bss segments will be filled with zero bytes. +.PP +The MIPS R2000 and R3000 have no hardware instructions +to implement locks. The following method can be used +to build them from software. +First, try to +.I segattach +a segment of class +.BR lock . +If this succeeds, the machine is an SGI Power Series and +the memory contains hardware locks. +Each 4096-byte page has 64 +.B long +words at its beginning; each word implements +a test-and-set semaphore when read; the low bit of the word +is zero on success, one on failure. +If the +.I segattach +fails, there is no hardware support but the operating system +helps: +Any +.B COP3 +instruction will be trapped by the kernel and interpreted +as a test-and-set. +In the trap, +.B R1 +points to a +.BR long ; +on return, +.B R1 +is greater or equal zero on success, negative on failure. +The following assembly language implements such a test-and-set. +.IP +.EX +.ta 8n +8n +8n +8n +8n +8n +8n +/* + * MIPS test and set + */ + TEXT tas(SB), $0 + MOVW R1, sema+0(FP) /* save arg on stack */ +btas: + MOVW sema+0(FP), R1 + MOVB R0, 1(R1) + NOR R0, R0, R0 /* NOP */ + WORD $(023<<26) /* MFC3 R0, R0 */ + BLTZ R1, btas + RET +.EE +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR lock (2), +.IR segbrk (2), +.IR segflush (2) +.br +.BR /proc/*/segment +.SH DIAGNOSTICS +These functions set +.IR errstr . +.SH BUGS +The return type of +.I segattach +is peculiar. +Also, +.I segattach +returns -1 on error; +beware that on some systems other negative +values might be legal addresses. +.br +There is a small fixed limit on the number of segments that may be attached, +as well as a maximum segment size. diff --git a/static/plan9-4e/man2/segbrk.2 b/static/plan9-4e/man2/segbrk.2 new file mode 100644 index 00000000..b6cf3bac --- /dev/null +++ b/static/plan9-4e/man2/segbrk.2 @@ -0,0 +1,43 @@ +.TH SEGBRK 2 +.SH NAME +segbrk \- change memory allocation +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLvoid* 'u +.B +int segbrk(void *saddr, void *addr) +.PP +.SH DESCRIPTION +.I Segbrk +sets the system's idea of the lowest unused location of a segment +to +.I addr +rounded up to the next multiple of a page size, typically 4096 bytes. +The segment is identified by +.I saddr +which may be any valid address within the segment. +.PP +A call to +.I segbrk +with a zero +.I addr +argument returns the address +of the top of bss. +.PP +The system will prevent segments from overlapping and will not allow the +length of the +text, data, or stack segment to be altered. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR brk (2), +.IR segattach (2), +.IR segflush (2) +.br +.BR /proc/*/segment +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/segflush.2 b/static/plan9-4e/man2/segflush.2 new file mode 100644 index 00000000..53682548 --- /dev/null +++ b/static/plan9-4e/man2/segflush.2 @@ -0,0 +1,42 @@ +.TH SEGFLUSH 2 +.SH NAME +segflush \- flush instruction and data caches +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int segflush(void *va, ulong len) +.PP +.SH DESCRIPTION +.I Segflush +invalidates any instruction cache and writes back any data +cache associated with pages contained in a segment. +All subsequent new pages in the segment will also be flushed when first referenced. +.PP +.I Va +is an address within the segment to be flushed; +it is rounded down to the nearest page boundary. +.I Len +specifies the length in bytes of +the memory to flush; +.IB va + len +is rounded up to the nearest page boundary. +.I Segflush +works correctly when the memory straddles multiple segments. +.PP +Correct use of +.I segflush +depends on an understanding of the cache architecture of the specific +machine. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR segattach (2), +.IR segbrk (2) +.br +.BR /proc/*/segment +.SH DIAGNOSTICS +Sets +.IR errstr . diff --git a/static/plan9-4e/man2/setjmp.2 b/static/plan9-4e/man2/setjmp.2 new file mode 100644 index 00000000..4baa67f5 --- /dev/null +++ b/static/plan9-4e/man2/setjmp.2 @@ -0,0 +1,98 @@ +.TH SETJMP 2 +.SH NAME +setjmp, longjmp, notejmp \- non-local goto +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLvoid 'u +.B +int setjmp(jmp_buf env) +.PP +.B +void longjmp(jmp_buf env, int val) +.PP +.B +void notejmp(void *uregs, jmp_buf env, int val) +.SH DESCRIPTION +These routines are useful for dealing with errors +and interrupts encountered in +a low-level subroutine of a program. +.PP +.I Setjmp +saves its stack environment in +.I env +for later use by +.IR longjmp . +It returns value 0. +.PP +.I Longjmp +restores the environment saved by the last call of +.IR setjmp . +It then causes execution to +continue as if the call of +.I setjmp +had just returned with value +.IR val . +The invoker of +.I setjmp +must not itself have returned in the interim. +All accessible data have values as of the time +.I longjmp +was called. +.PP +.I Notejmp +is the same as +.I longjmp +except that it is to be called from within a note handler (see +.IR notify (2)). +The +.I uregs +argument should be the first argument passed to the note handler. +.PP +.I Setjmp +and +.I longjmp +can also be used to switch stacks. +Defined in +.B +are several macros that can be used to build +.B jmp_bufs +by hand. The following code establishes a +.B jmp_buf +.i label +that may be called by +.I longjmp +to begin execution in a function +.BR f +with 1024 bytes of stack: +.IP +.EX +#include +#include + +jmp_buf label; +#define NSTACK 1024 +char stack[NSTACK]; + +void +setlabel(void) +{ + label[JMPBUFPC] = ((ulong)f+JMPBUFDPC); + /* -2 leaves room for old pc and new pc in frame */ + label[JMPBUFSP = + (ulong)(&stack[NSTACK-2*sizeof(ulong*)]); +} +.EE +.SH SOURCE +.B /sys/src/libc/$objtype/setjmp.s +.br +.B /sys/src/libc/$objtype/notejmp.c +.SH SEE ALSO +.IR notify (2) +.SH BUGS +.PP +.I Notejmp +cannot recover from an address trap or bus error (page fault) on the 680x0 +architectures. diff --git a/static/plan9-4e/man2/sin.2 b/static/plan9-4e/man2/sin.2 new file mode 100644 index 00000000..ac2c2c50 --- /dev/null +++ b/static/plan9-4e/man2/sin.2 @@ -0,0 +1,64 @@ +.TH SIN 2 +.SH NAME +sin, cos, tan, asin, acos, atan, atan2 \- trigonometric functions +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +double sin(double x) +.PP +.B +double cos(double x) +.PP +.B +double tan(double x) +.PP +.B +double asin(double x) +.PP +.B +double acos(double x) +.PP +.B +double atan(double x) +.PP +.B +double atan2(double y, double x) +.SH DESCRIPTION +.I Sin, cos +and +.I tan +return trigonometric functions of radian arguments. +The magnitude of the argument should be checked +by the caller to make sure the result is meaningful. +.PP +.I Asin +returns the arc sine in the range +\-π/2 to π/2. +.PP +.I Acos +returns the arc cosine in the range +0 to π. +.PP +.I Atan +returns the arc tangent in the range +\-π/2 to π/2. +.PP +.I Atan2 +returns the arc tangent of +.I y/x +in the range +\-π to π. +.SH SOURCE +.B /sys/src/libc/port +.SH SEE ALSO +.IR intro (2) +.SH BUGS +The value of +.I tan +for arguments greater than about +.if t 2\u\s-231\s+2\d +.if n 2^31 +is garbage. diff --git a/static/plan9-4e/man2/sinh.2 b/static/plan9-4e/man2/sinh.2 new file mode 100644 index 00000000..7dd4184b --- /dev/null +++ b/static/plan9-4e/man2/sinh.2 @@ -0,0 +1,23 @@ +.TH SINH 2 +.SH NAME +sinh, cosh, tanh \- hyperbolic functions +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +double sinh(double x) +.PP +.B +double cosh(double x) +.PP +.B +double tanh(double x) +.SH DESCRIPTION +These functions compute the designated hyperbolic functions +for real arguments. +.SH SOURCE +.B /sys/src/libc/port +.SH SEE ALSO +.IR intro (2) diff --git a/static/plan9-4e/man2/sleep.2 b/static/plan9-4e/man2/sleep.2 new file mode 100644 index 00000000..013df3c5 --- /dev/null +++ b/static/plan9-4e/man2/sleep.2 @@ -0,0 +1,45 @@ +.TH SLEEP 2 +.SH NAME +sleep, alarm \- delay, ask for delayed note +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int sleep(long millisecs) +.PP +.B +long alarm(unsigned long millisecs) +.SH DESCRIPTION +.I Sleep +suspends the current process for the number +of milliseconds specified by the argument. +The actual suspension time may be a little more or less than +the requested time. If +.I millisecs +is 0, the process +gives up the CPU if another process is waiting to run, returning +immediately if not. +Sleep returns \-1 if interrupted, 0 otherwise. +.PP +.I Alarm +causes an +.B alarm +note (see +.IR notify (2)) +to be sent to the invoking process after the number of milliseconds +given by the argument. +Successive calls to +.I alarm +reset the alarm clock. +A zero argument clears the alarm. +The return value is the amount of time previously remaining in +the alarm clock. +.SH SOURCE +.B /sys/src/libc/9syscall +.SH SEE ALSO +.IR intro (2) +.SH DIAGNOSTICS +These functions set +.IR errstr . diff --git a/static/plan9-4e/man2/stat.2 b/static/plan9-4e/man2/stat.2 new file mode 100644 index 00000000..26823e10 --- /dev/null +++ b/static/plan9-4e/man2/stat.2 @@ -0,0 +1,326 @@ +.TH STAT 2 +.SH NAME +stat, fstat, wstat, fwstat, dirstat, dirfstat, dirwstat, dirfwstat, nulldir \- get and put file status +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int stat(char *name, uchar *edir, int nedir) +.PP +.B +int fstat(int fd, uchar *edir, int nedir) +.PP +.B +int wstat(char *name, uchar *edir, int nedir) +.PP +.B +int fwstat(int fd, uchar *edir, int nedir) +.PP +.B +Dir* dirstat(char *name) +.PP +.B +Dir* dirfstat(int fd) +.PP +.B +int dirwstat(char *name, Dir *dir) +.PP +.B +int dirfwstat(int fd, Dir *dir) +.PP +.B +void nulldir(Dir *d) +.SH DESCRIPTION +Given a file's +.IR name , +or an open file descriptor +.IR fd , +these routines retrieve or modify file status information. +.IR Stat , +.IR fstat , +.IR wstat , +and +.I fwstat +are the system calls; they deal with machine-independent +.IR "directory entries" . +Their format is defined by +.IR stat (5). +.I Stat +and +.I fstat +retrieve information about +.I name +or +.I fd +into +.IR edir , +a buffer of length +.IR nedir , +defined in +.BR . +.I Wstat +and +.I fwstat +write information back, thus changing file attributes according to the contents of +.IR edir . +The data returned from the kernel includes its leading 16-bit length field +as described in +.IR intro (5). +For symmetry, this field must also be present when passing data to the kernel in a call to +.I wstat +and +.IR fwstat , +but its value is ignored. +.PP +.IR Dirstat , +.IR dirfstat , +.IR dirwstat , +and +.I dirfwstat +are similar to their counterparts, except that they +operate on +.I Dir +structures: +.IP +.EX +.ta 6n +\w'ulong 'u +\w'mtime; 'u +typedef +struct Dir { + /* system-modified data */ + uint type; /* server type */ + uint dev; /* server subtype */ + /* file data */ + Qid qid; /* unique id from server */ + ulong mode; /* permissions */ + ulong atime; /* last read time */ + ulong mtime; /* last write time */ + vlong length; /* file length: see */ + char *name; /* last element of path */ + char *uid; /* owner name */ + char *gid; /* group name */ + char *muid; /* last modifier name */ +} Dir; +.EE +.PP +The returned structure is allocated by +.IR malloc (2); +freeing it also frees the associated strings. +.PP +This structure and +the +.B Qid +structure +are defined in +.BR . +If the file resides on permanent storage and is not a directory, +the length returned by +.I stat +is the number of bytes in the file. +For directories, the length returned is zero. +For files that are streams (e.g., pipes and network connections), +the length is the number of bytes that can be read without blocking. +.PP +Each file is the responsibility of some +.IR server : +it could be a file server, a kernel device, or a user process. +.B Type +identifies the server type, and +.B dev +says which of a group of servers of the same type is the one +responsible for this file. +.B Qid +is a structure containing +.B path +and +.B vers +fields: +.B path +is guaranteed to be +unique among all path names currently on the file server, and +.B vers +changes each time the file is modified. +The +.B path +is a +.B long +.B long +(64 bits, +.BR vlong ) +and the +.B vers +is an +.B unsigned long +(32 bits, +.BR ulong ). +Thus, if two files have the same +.BR type , +.BR dev , +and +.B qid +they are the same file. +.PP +The bits in +.B mode +are defined by +.PP +.ta 6n +\w'\fL0x80000000 'u +.nf +\fL 0x80000000\fP directory +\fL 0x40000000\fP append only +\fL 0x20000000\fP exclusive use (locked) + +\fL 0400\fP read permission by owner +\fL 0200\fP write permission by owner +\fL 0100\fP execute permission (search on directory) by owner +\fL 0070\fP read, write, execute (search) by group +\fL 0007\fP read, write, execute (search) by others +.fi +.PP +There are constants defined in +.B +for these bits: +.BR DMDIR , +.BR DMAPPEND , +and +.B DMEXCL +for the first three; and +.BR DMREAD , +.BR DMWRITE , +and +.B DMEXEC +for the read, write, and execute bits for others. +.PP +The two time fields are measured in seconds since the epoch +(Jan 1 00:00 1970 GMT). +.B Mtime +is the time of the last change of content. +Similarly, +.B atime +is set whenever the contents are accessed; +also, it is set whenever +.B mtime +is set. +.PP +.B Uid +and +.B gid +are the names of the owner and group of the file; +.B muid +is the name of the user that last modified the file (setting +.BR mtime ). +Groups are also users, but each server is free to associate +a list of users with any user name +.IR g , +and that list is the +set of users in the group +.IR g . +When an initial attachment is made to a server, +the user string in the process group is communicated to the server. +Thus, the server knows, for any given file access, whether the accessing +process is the owner of, or in the group of, the file. +This selects which sets of three bits in +.B mode +is used to check permissions. +.PP +Only some of the fields may be changed with the +.I wstat +calls. +The +.B name +can be changed by anyone with write permission in the parent directory. +The +.B mode +and +.B mtime +can be changed by the owner or the group leader of the file's current +group. +The +.I gid +can be changed: by the owner if also a member of the new group; or +by the group leader of the file's current group +if also leader of the new group +(see +.IR intro (5) +for more information about permissions and +.IR users (6) +for users and groups). +The +.B length +can be changed by anyone with write permission, provided the operation +is implemented by the server. +(See +.IR intro (5) +for permission information, and +.IR users (6) +for user and group information). +.PP +Special values in the fields of the +.B Dir +passed to +.I wstat +indicate that the field is not intended to be changed by the call. +The values are the maximum unsigned integer of appropriate size +for integral values (usually +.BR ~0 , +but beware of conversions and size mismatches +when comparing values) and the empty or nil string for string values. +The routine +.I nulldir +initializes all the elements of +.I d +to these ``don't care'' values. +Thus one may change the mode, for example, by using +.I nulldir +to initialize a +.BR Dir , +then setting the mode, and then doing +.IR wstat ; +it is not necessary to use +.I stat +to retrieve the initial values first. +.SH SOURCE +.TF /sys/src/libc/9syscall +.TP +.B /sys/src/libc/9syscall +for the +.RB non- dir +routines +.TP +.B /sys/src/libc/9sys +for the routines prefixed +.B dir +.SH SEE ALSO +.IR intro (2), +.IR fcall (2), +.IR dirread (2), +.IR stat (5) +.SH DIAGNOSTICS +The +.I dir +functions return a pointer to the data for a successful call, or +.B nil +on error. +The others +return the number of bytes copied on success, or \-1 on error. +All set +.IR errstr . +.PP +If the buffer for +.I stat +or +.I fstat +is too short for the returned data, the return value will be +.B BIT16SZ +(see +.IR fcall (2)) +and the two bytes +returned will contain the initial count field of the +returned data; +retrying with +.B nedir +equal to +that value plus +.B BIT16SZ +(for the count itself) should succeed. diff --git a/static/plan9-4e/man2/strcat.2 b/static/plan9-4e/man2/strcat.2 new file mode 100644 index 00000000..22ba8fb0 --- /dev/null +++ b/static/plan9-4e/man2/strcat.2 @@ -0,0 +1,268 @@ +.TH STRCAT 2 +.SH NAME +strcat, strncat, strcmp, strncmp, cistrcmp, cistrncmp, strcpy, strncpy, strecpy, strlen, strchr, strrchr, strpbrk, strspn, strcspn, strtok, strdup, strstr, cistrstr \- string operations +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.ta \w'\fLchar* \fP'u +.B +char* strcat(char *s1, char *s2) +.PP +.B +char* strncat(char *s1, char *s2, long n) +.PP +.B +int strcmp(char *s1, char *s2) +.PP +.B +int strncmp(char *s1, char *s2, long n) +.PP +.B +int cistrcmp(char *s1, char *s2) +.PP +.B +int cistrncmp(char *s1, char *s2, long n) +.PP +.B +char* strcpy(char *s1, char *s2) +.PP +.B +char* strecpy(char *s1, char *es1, char *s2) +.PP +.B +char* strncpy(char *s1, char *s2, long n) +.PP +.B +long strlen(char *s) +.PP +.B +char* strchr(char *s, char c) +.PP +.B +char* strrchr(char *s, char c) +.PP +.B +char* strpbrk(char *s1, char *s2) +.PP +.B +long strspn(char *s1, char *s2) +.PP +.B +long strcspn(char *s1, char *s2) +.PP +.B +char* strtok(char *s1, char *s2) +.PP +.B +char* strdup(char *s) +.PP +.B +char* strstr(char *s1, char *s2) +.PP +.B +char* cistrstr(char *s1, char *s2) +.SH DESCRIPTION +The arguments +.I s1, s2 +and +.I s +point to null-terminated strings. +The functions +.IR strcat , +.IR strncat , +.IR strcpy , +.IR strecpy , +and +.I strncpy +all alter +.IR s1 . +.I Strcat +and +.I strcpy +do not check for overflow of +the array pointed to by +.IR s1 . +.PP +.I Strcat +appends a copy of string +.I s2 +to the end of string +.IR s1 . +.I Strncat +appends at most +.I n +bytes. +Each returns a pointer to the null-terminated result. +.PP +.I Strcmp +compares its arguments and returns an integer +less than, equal to, or greater than 0, +according as +.I s1 +is lexicographically less than, equal to, or +greater than +.IR s2 . +.I Strncmp +makes the same comparison but examines at most +.I n +bytes. +.I Cistrcmp +and +.I cistrncmp +ignore ASCII case distictions when comparing strings. +The comparisons are made with unsigned bytes. +.PP +.I Strcpy +copies string +.I s2 +to +.IR s1 , +stopping after the null byte has been copied. +.I Strncpy +copies exactly +.I n +bytes, +truncating +.I s2 +or adding +null bytes to +.I s1 +if necessary. +The result will not be null-terminated if the length +of +.I s2 +is +.I n +or more. +Each function returns +.IR s1 . +.PP +.I Strecpy +copies bytes until a null byte has been copied, but writes no bytes beyond +.IR es1 . +If any bytes are copied, +.I s1 +is terminated by a null byte, and a pointer to that byte is returned. +Otherwise, the original +.I s1 +is returned. +.PP +.I Strlen +returns the number of bytes in +.IR s , +not including the terminating null byte. +.PP +.I Strchr +.RI ( strrchr ) +returns a pointer to the first (last) +occurrence of byte +.I c +in string +.IR s , +or +.L 0 +if +.I c +does not occur in the string. +The null byte terminating a string is considered to +be part of the string. +.PP +.I Strpbrk +returns a pointer to the first occurrence in string +.I s1 +of any byte from string +.IR s2 , +.L 0 +if no byte from +.I s2 +exists in +.IR s1 . +.PP +.I Strspn +.RI ( strcspn ) +returns the length of the initial segment of string +.I s1 +which consists entirely of bytes from (not from) string +.IR s2 . +.PP +.I Strtok +considers the string +.I s1 +to consist of a sequence of zero or more text tokens separated +by spans of one or more bytes from the separator string +.IR s2 . +The first call, with pointer +.I s1 +specified, returns a pointer to the first byte of the first +token, and will have written a +null byte into +.I s1 +immediately following the returned token. +The function +keeps track of its position in the string +between separate calls; subsequent calls, +signified by +.I s1 +being +.LR 0 , +will work through the string +.I s1 +immediately following that token. +The separator string +.I s2 +may be different from call to call. +When no token remains in +.IR s1 , +.L 0 +is returned. +.PP +.I Strdup +returns a pointer to a distinct copy of the null-terminated string +.I s +in space obtained from +.IR malloc (2) +or +.L 0 +if no space can be obtained. +.PP +.I Strstr +returns a pointer to the first occurrence of +.I s2 +as a substring of +.IR s1 , +or 0 if there is none. +If +.I s2 +is the null string, +.I strstr +returns +.IR s1 . +.I Cistrstr +operates analogously, but ignores ASCII case differences when comparing strings. +.SH SOURCE +All these routines have portable C implementations in +.BR /sys/src/libc/port . +Many also have machine-dependent assembly language +implementations in +.BR /sys/src/libc/$objtype . +.SH SEE ALSO +.IR memory (2), +.IR rune (2), +.IR runestrcat (2) +.SH BUGS +These routines know nothing about +.SM UTF. +Use the routines in +.IR rune (2) +as appropriate. +Note, however, that the definition of +.SM UTF +guarantees that +.I strcmp +compares +.SM UTF +strings correctly. +.PP +The outcome of overlapping moves varies among implementations. diff --git a/static/plan9-4e/man2/string.2 b/static/plan9-4e/man2/string.2 new file mode 100644 index 00000000..a69103b3 --- /dev/null +++ b/static/plan9-4e/man2/string.2 @@ -0,0 +1,231 @@ +.TH STRING 2 +.SH NAME +s_alloc, s_append, s_array, s_copy, s_error, s_free, s_incref, s_memappend, s_nappend, s_new, s_newalloc, s_parse, s_reset, s_restart, s_terminate, s_tolower, s_putc, s_unique, s_grow, s_read, s_read_line, s_getline \- extensible strings +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.B +String* s_new(void) +.br +.B +void s_free(String *s) +.br +.B +String* s_newalloc(int n) +.br +.B +String* s_array(char *p, int n) +.br +.B +String* s_grow(String *s, int n) +.PP +.B +void s_putc(String *s, int c) +.br +.B +void s_terminate(String *s) +.br +.B +String* s_reset(String *s) +.br +.B +String* s_restart(String *s) +.br +.B +String* s_append(String *s, char *p) +.br +.B +String* s_nappend(String *s, char *p, int n) +.br +.B +String* s_memappend(String *s, char *p, int n) +.br +.B +String* s_copy(char *p) +.br +.B +String* s_parse(String *s1, String *s2) +.br +.PP +.B +void s_tolower(String *s) +.PP +.B +String* s_incref(String *s) +.br +.B +String* s_unique(String *s) +.PP +.B +#include +.PP +.B +int s_read(Biobuf *b, String *s, int n) +.br +.B +char* s_read_line(Biobuf *b, String *s) +.br +.B +char* s_getline(Biobuf *b, String *s) +.SH DESCRIPTION +.PP +These routines manipulate extensible strings. +The basic type is +.BR String , +which points to an array of characters. The string +maintains pointers to the beginning and end of the allocated +array. In addition a finger pointer keeps track of where +parsing will start (for +.IR s_parse ) +or new characters will be added (for +.IR s_putc , +.IR s_append , +and +.IR s_nappend ). +The structure, and a few useful macros are: +.sp +.EX +typedef struct String { + Lock; + char *base; /* base of String */ + char *end; /* end of allocated space+1 */ + char *ptr; /* ptr into String */ + ... +} String; + +#define s_to_c(s) ((s)->base) +#define s_len(s) ((s)->ptr-(s)->base) +#define s_clone(s) s_copy((s)->base) +.EE +.PP +.I S_to_c +is used when code needs a reference to the character array. +Using +.B s->base +directly is frowned upon since it exposes too much of the implementation. +.SS "allocation and freeing +.PP +A string must be allocated before it can be used. +One normally does this using +.IR s_new , +giving the string an initial allocation of +128 bytes. +If you know that the string will need to grow much +longer, you can use +.I s_newalloc +instead, specifying the number of bytes in the +initial allocation. +.PP +.I S_free +causes both the string and its character array to be freed. +.PP +.I S_grow +grows a string's allocation by a fixed amount. It is useful if +you are reading directly into a string's character array but should +be avoided if possible. +.PP +.I S_array +is used to create a constant array, that is, one whose contents +won't change. It points directly to the character array +given as an argument. Tread lightly when using this call. +.SS "Filling the string +After its initial allocation, the string points to the beginning +of an allocated array of characters starting with +.SM NUL. +.PP +.I S_putc +writes a character into the string at the +pointer and advances the pointer to point after it. +.PP +.I S_terminate +writes a +.SM NUL +at the pointer but doesn't advance it. +.PP +.I S_restart +resets the pointer to the begining of the string but doesn't change the contents. +.PP +.I S_reset +is equivalent to +.I s_restart +followed by +.IR s_terminate . +.PP +.I S_append +and +.I s_nappend +copy characters into the string at the pointer and +advance the pointer. They also write a +.SM NUL +at +the pointer without advancing the pointer beyond it. +Both routines stop copying on encountering a +.SM NUL. +.I S_memappend +is like +.I s_nappend +but doesn't stop at a +.SM NUL. +.PP +If you know the initial character array to be copied into a string, +you can allocate a string and copy in the bytes using +.IR s_copy . +This is the equivalent of a +.I s_new +followed by an +.IR s_append . +.PP +.I S_parse +copies the next white space terminated token from +.I s1 +to +the end of +.IR s2 . +White space is defined as space, tab, +and newline. Both single and double quoted strings are treated as +a single token. The bounding quotes are not copied. +There is no escape mechanism. +.PP +.I S_tolower +converts all +.SM ASCII +characters in the string to lower case. +.SS Multithreading +.PP +.I S_incref +is used by multithreaded programs to avoid having the string memory +released until the last user of the string performs an +.IR s_free . +.I S_unique +returns a unique copy of the string: if the reference count it +1 it returns the string, otherwise it returns an +.I s_clone +of the string. +.SS "Bio interaction +.PP +.I S_read +reads the requested number of characters through a +.I Biobuf +into a string. The string is grown as necessary. +An eof or error terminates the read. +The number of bytes read is returned. +The string is null terminated. +.PP +.I S_read_line +reads up to and including the next newline and returns +a pointer to the beginning of the bytes read. +An eof or error terminates the read. +The string is null terminated. +.PP +.I S_getline +reads up to the next newline and returns +a pointer to the beginning of the bytes read. Leading +spaces and tabs and the trailing newline are all discarded. +.SH SOURCE +.B /sys/src/libString +.SH SEE ALSO +.IR bio (2) diff --git a/static/plan9-4e/man2/stringsize.2 b/static/plan9-4e/man2/stringsize.2 new file mode 100644 index 00000000..12852815 --- /dev/null +++ b/static/plan9-4e/man2/stringsize.2 @@ -0,0 +1,69 @@ +.TH STRINGSIZE 2 +.SH NAME +stringsize, stringwidth, stringnwidth, runestringsize, runestringwidth, runestringnwidth \- graphical size of strings +.SH SYNOPSIS +.nf +.PP +.ft L +#include +#include +#include +.ft P +.ta \w'\fLPoint 'u +.PP +.B +Point stringsize(Font *f, char *s) +.PP +.B +int stringwidth(Font *f, char *s) +.PP +.B +int stringnwidth(Font *f, char *s, int n) +.PP +.B +Point runestringsize(Font *f, Rune *s) +.PP +.B +int runestringwidth(Font *f, Rune *s) +.PP +.B +int runestringnwidth(Font *f, Rune *s, int n) +.SH DESCRIPTION +These routines compute the geometrical extent of character strings when drawn on the display. The most straightforward, +.BR stringsize , +returns a +.B Point +representing the vector from upper left to lower right of the NUL-terminated string +.I s +drawn in font +.IR f . +.B Stringwidth +returns just the +.I x +component. +.B Stringnwidth +returns the width of the first +.I n +characters of +.IR s . +.PP +The routines beginning with +.B rune +are analogous, but accept an array of runes rather than +.SM UTF\c +-encoded bytes. +.SH FILES +.BR /lib/font/bit " directory of fonts +.SH SOURCE +.B /sys/src/libdraw +.SH "SEE ALSO" +.IR addpt (2), +.IR cachechars (2), +.IR subfont (2), +.IR draw (2), +.IR draw (3), +.IR image (6), +.IR font (6) +.SH DIAGNOSTICS +Because strings are loaded dynamically, these routines may generate I/O +to the server and produce calls to the graphics error function. diff --git a/static/plan9-4e/man2/subfont.2 b/static/plan9-4e/man2/subfont.2 new file mode 100644 index 00000000..fb43b2a3 --- /dev/null +++ b/static/plan9-4e/man2/subfont.2 @@ -0,0 +1,235 @@ +.TH SUBFONT 2 +.SH NAME +allocsubfont, freesubfont, installsubfont, lookupsubfont, uninstallsubfont, subfontname, readsubfont, readsubfonti, writesubfont, stringsubfont, strsubfontwidth, mkfont \- subfont manipulation +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLSubfont* 'u +.B +Subfont* allocsubfont(char *name, int n, int height, int ascent, +.br +.B + Fontchar *info, Image *i) +.PP +.B +void freesubfont(Subfont *f) +.PP +.B +void installsubfont(char *name, Subfont *f) +.PP +.B +Subfont* lookupsubfont(Subfont *f) +.PP +.B +void uninstallsubfont(Subfont *f) +.PP +.B +Subfont* readsubfont(Display *d, char *name, int fd, int dolock) +.PP +.B +Subfont* readsubfonti(Display *d, char *name, int fd, Image *im, +.br +.B + int dolock) +.PP +.B +int writesubfont(int fd, Subfont *f) +.PP +.B +Point stringsubfont(Image *dst, Point p, Image *src, +.br +.B + Subfont *f, char *str) +.PP +.B +Point strsubfontwidth(Subfont *f, char *s) +.PP +.B +Font* mkfont(Subfont *f, Rune min) +.SH DESCRIPTION +Subfonts are the components of fonts that hold the character images. +A font comprises an array of subfonts; see +.IR cachechars (2). +A new +.B Subfont +is allocated and initialized with +.IR allocsubfont . +See +.IR cachechars (2) +for the meaning of +.IR n , +.IR height , +.IR ascent , +and +.IR info , +and the arrangement of characters in +image +.IR i . +The +.I name +is used to identify the subfont in the subfont cache; see the descriptions +.I lookupsubfont +and +.IR installsubfont +.RI ( q.v. ). +The appropriate fields of the returned +.B Subfont +structure are set to +the passed arguments, and the image is registered as a subfont +with the graphics device +.IR draw (3). +.I Allocsubfont +returns 0 on failure. +.PP +.I Freesubfont +frees a subfont and all its associated structure including the +associated image. +Since +.I freesbufont +calls +.I free +on +.BR f->info , +if +.B f->info +was not allocated by +.IR malloc (2) +it should be zeroed before calling +.IR subffree . +.PP +A number of subfonts are kept in external files. +The convention for naming subfont files is: +.IP +.B /lib/font/bit/\fIname\fP/\fIclass\fP.\fIsize\fP.\fIdepth +.PD +.PP +where +.I size +is approximately the height in pixels of the lower case letters +(without ascenders or descenders). +If there is only one version of the subfont, the +.BI \&. depth +extension is elided. +.I Class +describes the range of runes encoded in the subfont: +.BR ascii , +.BR latin1 , +.BR greek , +etc. +.PP +Subfonts are cached within the program, so a subfont shared between fonts will be loaded only once. +.I Installsubfont +stores subfont +.I f +under the given +.IR name , +typically the file name from which it was read. +.I Uninstallsubfont +removes the subfont from the cache. +Finally, +.I lookupsubfont +searches for a subfont with the given +.I name +in the cache and returns it, or nil if no such subfont exists. +.PP +.I Subfontname +is used to locate subfonts given their names within the fonts. +The default version constructs a name given the +.IR cfname , +its name within the font, +.IR fname , +the name of the font, and the maximum depth suitable for this subfont. +This interface allows a partially specified name within a font to be resolved +at run-time to the name of a file holding a suitable subfont. +Although it is principally a routine internal to the library, +.I subfontname +may be substituted by the application to provide a less file-oriented subfont naming scheme. +.PP +The format of a subfont file is described in +.IR font (6). +Briefly, it contains a image with all the characters in it, +followed by a subfont header, followed by character information. +.I Readsubfont +reads a subfont from the file descriptor +.IR fd . +The +.I name +is used to identify the font in the cache. +The +.I dolock +argument specifies whether the routine should synchronize +use of the +.I Display +with other processes; for single-threaded applications it may +always be zero. +.I Readsubfonti +does the same for a subfont whose associated image is already in memory; it is passed as the +argument +.IR im . +In other words, +.I readsubfonti +reads only the header and character information from the file descriptor. +.PP +.I Writesubfont +writes on +.I fd +the part of a subfont file that comes after the image. It should be preceded by +a call to +.IR writeimage +(see +.IR allocimage (2)). +.PP +.I Stringsubfont +is analogous to +.B string +(see +.IR draw (2)) +for subfonts. Rather than use the underlying font caching primitives, +it calls +.B draw +for each character. +It is intended for stand-alone environments such as operating system kernels. +.I Strsubfontwidth +returns the width of the string +.I s +in +as it would appear if drawn with +.I stringsubfont +in +.B Subfont +.BR f . +.PP +.I Mkfont +takes as argument a +.B Subfont +.I s +and returns a pointer to a +.B Font +that maps the character images in +.I s +into the +.B Runes +.I min +to +.IB min + s ->n-1\f1. +.SH FILES +.TF /lib/font/bit +.TP +.B /lib/font/bit +bitmap font file tree +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR allocimage (2), +.IR draw (2), +.IR cachechars (2), +.IR image (6), +.IR font (6) +.SH DIAGNOSTICS +All of the functions use the graphics error function (see +.IR graphics (2)). diff --git a/static/plan9-4e/man2/symbol.2 b/static/plan9-4e/man2/symbol.2 new file mode 100644 index 00000000..a25e7359 --- /dev/null +++ b/static/plan9-4e/man2/symbol.2 @@ -0,0 +1,436 @@ +.TH SYMBOL 2 +.SH NAME +syminit, getsym, symbase, pc2sp, pc2line, textseg, line2addr, lookup, findlocal, +getauto, findsym, localsym, globalsym, textsym, file2pc, fileelem, filesym, +fileline, fnbound \- symbol table access functions +.SH SYNOPSIS +.B #include +.br +.B #include +.br +.B #include +.br +.B #include +.PP +.ta \w'\fLmachines 'u +.B +int syminit(int fd, Fhdr *fp) +.PP +.B +Sym *getsym(int index) +.PP +.B +Sym *symbase(long *nsyms) +.PP +.B +int fileelem(Sym **fp, uchar *encname, char *buf, int n) +.PP +.B +int filesym(int index, char *buf, int n) +.PP +.B +long pc2sp(ulong pc) +.PP +.B +long pc2line(ulong pc) +.PP +.B +void textseg(ulong base, Fhdr *fp) +.PP +.B +long line2addr(ulong line, ulong basepc) +.PP +.B +int lookup(char *fn, char *var, Symbol *s) +.PP +.B +int findlocal(Symbol *s1, char *name, Symbol *s2) +.PP +.B +int getauto(Symbol *s1, int off, int class, Symbol *s2) +.PP +.B +int findsym(long addr, int class, Symbol *s) +.PP +.B +int localsym(Symbol *s, int index) +.PP +.B +int globalsym(Symbol *s, int index) +.PP +.B +int textsym(Symbol *s, int index) +.PP +.B +long file2pc(char *file, ulong line) +.PP +.B +int fileline(char *str, int n, ulong addr) +.PP +.B +int fnbound(long addr, ulong *bounds) +.SH DESCRIPTION +These functions provide machine-independent access to the +symbol table of an executable file or executing process. +The latter is accessible by opening the device +.B /proc/\fIpid\fP/text +as described in +.IR proc (3). +.IR Mach (2) +and +.IR object (2) +describe additional library functions +for processing executable and object files. +.PP +.IR Syminit , +.IR getsym , +.IR symbase , +.IR fileelem , +.IR pc2sp , +.IR pc2line , +and +.I line2addr +process the symbol table contained in an executable file +or the +.B text +image of an executing program. +The symbol table is stored internally as an array of +.B Sym +data structures as defined in +.IR a.out (6). +.PP +.I Syminit +uses the data in the +.B Fhdr +structure filled by +.I crackhdr +(see +.IR mach (2)) +to read the raw symbol tables from the open file descriptor +.IR fd . +It returns the count of the number of symbols +or \-1 if an error occurs. +.PP +.I Getsym +returns the address of the +.IR i th +.B Sym +structure or zero if +.I index +is out of range. +.PP +.I Symbase +returns the address of the first +.B Sym +structure in the symbol table. The number of +entries in the symbol table is returned in +.IR nsyms . +.PP +.I Fileelem +converts a file name, encoded as described in +.IR a.out (6), +to a character string. +.I Fp +is the base of +an array of pointers to file path components ordered by path index. +.I Encname +is the address of an array of encoded +file path components in the form of a +.B z +symbol table entry. +.I Buf +and +.I n +specify the +address of a receiving character buffer and its length. +.I Fileelem +returns the length of the null-terminated string +that is at most +.IR n \-1 +bytes long. +.PP +.I Filesym +is a higher-level interface to +.IR fileelem . +It fills +.I buf +with the name of the +.IR i th +file and returns the length of the null-terminated string +that is at most +.IR n \-1 +bytes long. +File names are retrieved in no particular order, although +the order of retrieval does not vary from one pass to the next. +A zero is returned when +.I index +is too large or too small or an error occurs during file name +conversion. +.PP +.I Pc2sp +returns an offset associated with +a given value of the program counter. Adding this offset +to the current value of the stack pointer gives the address +of the current stack frame. This approach only applies +to the 68020 architecture; other architectures +use a fixed stack frame offset by a constant contained +in a dummy local variable (called +.BR .frame ) +in the symbol table. +.PP +.I Pc2line +returns the line number of the statement associated +with the instruction address +.IR pc . +The +line number is the absolute line number in the +source file as seen by the compiler after pre-processing; the +original line number in the source file may be derived from this +value using the history stacks contained in the symbol table. +.PP +.I Pc2sp +and +.I pc2line +must know the start and end addresses of the text segment +for proper operation. These values are calculated from the +file header by function +.IR syminit . +If the text segment address is changed, the application +program must invoke +.I textseg +to recalculate the boundaries of the segment. +.I Base +is the new base address of the text segment and +.I fp +points to the +.I Fhdr +data structure filled by +.IR crackhdr . +.PP +.I Line2addr +converts a line number to an instruction address. The +first argument is the absolute line number in +a file. Since a line number does not uniquely identify +an instruction location (e.g., every source file has line 1), +a second argument specifies a text address +from which the search begins. Usually this +is the address of the first function in the file of interest. +.PP +.IR Pc2sp , +.IR pc2line , +and +.I line2addr +return \-1 in the case of an error. +.PP +.IR Lookup , +.IR findlocal , +.IR getauto , +.IR findsym , +.IR localsym , +.IR globalsym , +.IR textsym , +.IR file2pc , +and +.I fileline +operate on data structures riding above the raw symbol table. +These data structures occupy memory +and impose a startup penalty but speed retrievals +and provide higher-level access to the basic symbol +table data. +.I Syminit +must be called +prior to using these functions. +The +.B Symbol +data structure: +.IP +.EX +typedef struct { + void *handle; /* private */ + struct { + char *name; + long value; + char type; + char class; + }; +} Symbol; +.EE +.LP +describes a symbol table entry. +The +.B value +field contains the offset of the symbol within its +address space: global variables relative to the beginning +of the data segment, text beyond the start of the text +segment, and automatic variables and parameters relative +to the stack frame. The +.B type +field contains the type of the symbol as defined in +.IR a.out (6). +The +.B class +field assigns the symbol to a general class; +.BR CTEXT , +.BR CDATA , +.BR CAUTO , +and +.B CPARAM +are the most popular. +.PP +.I Lookup +fills a +.B Symbol +structure with symbol table information. Global variables +and functions are represented by a single name; local variables +and parameters are uniquely specified by a function and +variable name pair. Arguments +.I fn +and +.I var +contain the +name of a function and variable, respectively. +If both +are non-zero, the symbol table is searched for a parameter +or automatic variable. If only +.I var +is +zero, the text symbol table is searched for function +.IR fn . +If only +.I fn +is zero, the global variable table +is searched for +.IR var . +.PP +.I Findlocal +fills +.I s2 +with the symbol table data of the automatic variable +or parameter matching +.IR name . +.I S1 +is a +.B Symbol +data structure describing a function or a local variable; +the latter resolves to its owning function. +.PP +.I Getauto +searches the local symbols associated with function +.I s1 +for an automatic variable or parameter located at stack +offset +.IR off . +.I Class +selects the class of +variable: +.B CAUTO +or +.BR CPARAM . +.I S2 +is the address of a +.B Symbol +data structure to receive the symbol table information +of the desired symbol. +.PP +.I Findsym +returns the symbol table entry of type +.I class +stored near +.IR addr . +The selected symbol is a global variable or function +with address nearest to and less than or equal to +.IR addr . +Class specification +.B CDATA +searches only the global variable symbol table; class +.B CTEXT +limits the search to the text symbol table. +Class specification +.B CANY +searches the text table first, then the global table. +.PP +.I Localsym +returns the +.IR i th +local variable in the function +associated with +.IR s . +.I S +may reference a function or a local variable; the latter +resolves to its owning function. +If the +.IR i th +local symbol exists, +.I s +is filled with the data describing it. +.PP +.I Globalsym +loads +.I s +with the symbol table information of the +.IR i th +global variable. +.PP +.I Textsym +loads +.I s +with the symbol table information of the +.IR i th +text symbol. The text symbols are ordered +by increasing address. +.PP +.I File2pc +returns a text address associated with +.I line +in file +.IR file , +or -1 on an error. +.PP +.I Fileline +converts text address +.I addr +to its equivalent +line number in a source file. The result, +a null terminated character string of +the form +.LR file:line , +is placed in buffer +.I str +of +.I n +bytes. +.PP +.I Fnbound +returns the start and end addresses of the function containing +the text address supplied as the first argument. The second +argument is an array of two unsigned longs; +.I fnbound +places the bounding addresses of the function in the first +and second elements of this array. The start address is the +address of the first instruction of the function; the end +address is the address of the start of the next function +in memory, so it is beyond the end of the target function. +.I Fnbound +returns 1 if the address is within a text function, or zero +if the address selects no function. +.PP +Functions +.I file2pc +and +.I fileline +may produce inaccurate results when applied to +optimized code. +.PP +Unless otherwise specified, all functions return 1 +on success, or 0 on error. When an error occurs, +a message describing it is stored in the system +error buffer where it is available via +.IR errstr . +.SH SOURCE +.B /sys/src/libmach +.SH "SEE ALSO" +.IR mach (2), +.IR object (2), +.IR errstr (2), +.IR proc (3), +.IR a.out (6) diff --git a/static/plan9-4e/man2/thread.2 b/static/plan9-4e/man2/thread.2 new file mode 100644 index 00000000..b37870df --- /dev/null +++ b/static/plan9-4e/man2/thread.2 @@ -0,0 +1,578 @@ +.TH THREAD 2 +.SH NAME +alt, +chancreate, +chanfree, +chaninit, +chanprint, +mainstacksize, +proccreate, +procdata, +procexec, +procexecl, +procrfork, +recv, +recvp, +recvul, +send, +sendp, +sendul, +nbrecv, +nbrecvp, +nbrecvul, +nbsend, +nbsendp, +nbsendul, +threadcreate, +threaddata, +threadexits, +threadexitsall, +threadgetgrp, +threadgetname, +threadint, +threadintgrp, +threadkill, +threadkillgrp, +threadmain, +threadnotify, +threadid, +threadpid, +threadprint, +threadsetgrp, +threadsetname, +threadwaitchan, +yield \- thread and proc management +.SH SYNOPSIS +.PP +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +#include +#include +#include +.sp +#define CHANEND 0 +#define CHANSND 1 +#define CHANRCV 2 +#define CHANNOP 3 +#define CHANNOBLK 4 +.sp +.ta \w' 'u +\w'Channel 'u +typedef struct Alt Alt; +struct Alt { + Channel *c; + void *v; + int op; + Channel **tag; + int entryno; +}; +.fi +.de XX +.ift .sp 0.5 +.ifn .sp +.. +.PP +.nf +.ft L +.ta \w'\fLChannel* 'u +4n +4n +4n +4n +void threadmain(int argc, char *argv[]) +int mainstacksize +int proccreate(void (*fn)(void*), void *arg, uint stacksize) +int procrfork(void (*fn)(void*), void *arg, uint stacksize, + int rforkflag) +int threadcreate(void (*fn)(void*), void *arg, uint stacksize) +void threadexits(char *status) +void threadexitsall(char *status) +void yield(void) +.XX +int threadid(void) +int threadgrp(void) +int threadsetgrp(int group) +int threadpid(int id) +.XX +int threadint(int id) +int threadintgrp(int group) +int threadkill(int id) +int threadkillgrp(int group) +.XX +void threadsetname(char *name) +char* threadgetname(void) +.XX +void** threaddata(void) +void** procdata(void) +.XX +int chaninit(Channel *c, int elsize, int nel) +Channel* chancreate(int elsize, int nel) +void chanfree(Channel *c) +.XX +int alt(Alt *alts) +int recv(Channel *c, void *v) +void* recvp(Channel *c) +ulong recvul(Channel *c) +int nbrecv(Channel *c, void *v) +void* nbrecvp(Channel *c) +ulong nbrecvul(Channel *c) +int send(Channel *c, void *v) +int sendp(Channel *c, void *v) +int sendul(Channel *c, ulong v) +int nbsend(Channel *c, void *v) +int nbsendp(Channel *c, void *v) +int nbsendul(Channel *c, ulong v) +int chanprint(Channel *c, char *fmt, ...) +.XX +void procexecl(Channel *cpid, char *file, ...) +void procexec(Channel *cpid, char *file, char *args[]) +Channel* threadwaitchan(void) +.XX +int threadnotify(int (*f)(void*, char*), int in) +.EE +.SH DESCRIPTION +.PP +The thread library provides parallel programming support similar to that +of the languages +Alef and Newsqueak. +Threads +and +procs +occupy a shared address space, +communicating and synchronizing through +.I channels +and shared variables. +.PP +A +.I proc +is a Plan 9 process that contains one or more cooperatively scheduled +.IR threads . +Programs using threads must replace +.I main +by +.IR threadmain . +The thread library provides a +.I main +function that sets up a proc with a single thread executing +.I threadmain +on a stack of size +.I mainstacksize +(default eight kilobytes). +To set +.IR mainstacksize , +declare a global variable +initialized to the desired value +.RI ( e.g. , +.B int +.B mainstacksize +.B = +.BR 1024 ). +.PP +.I Threadcreate +creates a new thread in the calling proc, returning a unique integer +identifying the thread; the thread +executes +.I fn(arg) +on a stack of size +.IR stacksize . +Thread stacks are allocated in shared memory, making it valid to pass +pointers to stack variables between threads and procs. +.I Procrfork +creates a new proc, and inside that proc creates +a single thread as +.I threadcreate +would, +returning the id of the created thread. +.I Procrfork +creates the new proc by calling +.B rfork +(see +.IR fork (2)) +with flags +.BR RFPROC|RFMEM|RFNOWAIT| \fIrforkflag\fR. +(The thread library depends on all its procs +running in the same rendezvous group. +Do not include +.B RFREND +in +.IR rforkflag .) +.I Proccreate +is identical to +.I procrfork +with +.I rforkflag +set to zero. +Be aware that the calling thread may continue +execution before +the newly created proc and thread +are scheduled. +Because of this, +.I arg +should not point to data on the stack of a function that could +return before the new process is scheduled. +.PP +.I Threadexits +terminates the calling thread. +If the thread is the last in its proc, +.I threadexits +also terminates the proc, using +.I status +as the exit status. +.I Threadexitsall +terminates all procs in the program, +using +.I status +as the exit status. +.PP +The threads in a proc are coroutines, scheduled nonpreemptively +in a round-robin fashion. +A thread must explicitly relinquish control of the processor +before another thread in the same proc is run. +Calls that do this are +.IR yield , +.IR proccreate , +.IR procexec , +.IR procexecl , +.IR threadexits , +.IR alt , +.IR send , +and +.I recv +(and the calls related to +.I send +and +.IR recv \(emsee +their descriptions further on). +Procs are scheduled by the operating system. +Therefore, threads in different procs can preempt one another +in arbitrary ways and should synchronize their +actions using +.B qlocks +(see +.IR lock (2)) +or channel communication. +System calls such as +.IR read (2) +block the entire proc; +all threads in a proc block until the system call finishes. +.PP +As mentioned above, each thread has a unique integer thread id. +Thread ids are not reused; they are unique across the life of the program. +.I Threadid +returns the id for the current thread. +Each thread also has a thread group id. +The initial thread has a group id of zero. +Each new thread inherits the group id of +the thread that created it. +.I Threadgrp +returns the group id for the current thread; +.I threadsetgrp +sets it. +.I Threadpid +returns the pid of the Plan 9 process containing +the thread identified by +.IR id , +or \-1 +if no such thread is found. +.PP +.I Threadint +interrupts a thread that is blocked in a channel operation +or system call. +.I Threadintgrp +interrupts all threads with the given group id. +.I Threadkill +marks a thread to die when it next relinquishes the processor +(via one of the calls listed above). +If the thread is blocked in a channel operation or system call, +it is also interrupted. +.I Threadkillgrp +kills all threads with the given group id. +Note that +.I threadkill +and +.I threadkillgrp +will not terminate a thread that never relinquishes +the processor. +.PP +Primarily for debugging +(see +.IR XXXacidthread ), +threads can have string names associated with them. +.I Threadgetname +returns the current thread's name; +.I threadsetname +sets it. +The pointer returned by +.I threadgetname +is only valid until the next call to +.IR threadsetname . +.PP +.I Threaddata +returns a pointer to a per-thread pointer +that may be modified by threaded programs for +per-thread storage. +Similarly, +.I procdata +returns a pointer to a per-proc pointer. +.PP +.I Procexecl +and +.I procexec +are threaded analogues of +.I exec +and +.I execl +(see +.IR exec (2)); +on success, +they replace the calling thread (which must be the only thread in its proc) +and invoke the external program. +On error, they return \-1. +If +.I cpid +is not null, the pid of the invoked program +will be sent along +.I cpid +once the program has been started, or \-1 will be sent if an +error occurs. +.I Procexec +and +.I procexecl +will not access their arguments after sending a result +along +.IR cpid . +Thus, programs that malloc the +.I argv +passed to +.I procexec +can safely free it once they have +received the +.I cpid +response. +.I Threadwaitchan +returns a channel of pointers to +.B Waitmsg +structures (see +.IR wait (2)). +When an exec'ed process exits, a pointer to a +.B Waitmsg +is sent to this channel. +These +.B Waitmsg +structures have been allocated with +.IR malloc (2) +and should be freed after use. +.PP +A +.B Channel +is a buffered or unbuffered queue for fixed-size messages. +Procs and threads +.I send +messages into the channel and +.I recv +messages from the channel. If the channel is unbuffered, a +.I send +operation blocks until the corresponding +.I recv +operation occurs and +.IR "vice versa" . +.I Chaninit +initializes a +.B Channel +for messages of size +.I elsize +and with a buffer holding +.I nel +messages. +If +.I nel +is zero, the channel is unbuffered. +.IR Chancreate +allocates a new channel and initializes it. +.I Chanfree +frees a channel that is no longer used. +.I Chanfree +can be called by either sender or receiver after the last item has been +sent or received. Freeing the channel will be delayed if there is a thread +blocked on it until that thread unblocks (but +.I chanfree +returns immediately). +.PP +.I Send +sends the element pointed at by +.I v +to the channel +.IR c . +If +.I v +is null, zeros are sent. +.I Recv +receives an element from +.I c +and stores it in +.IR v . +If +.I v +is null, +the received value is discarded. +.I Send +and +.I recv +return 1 on success, \-1 if interrupted. +.I Nbsend +and +.I nbrecv +behave similarly, but return 0 rather than blocking. +.PP +.IR Sendp , +.IR nbsendp , +.IR sendul , +and +.I nbsendul +send a pointer or an unsigned long; the channel must +have been initialized with the appropriate +.IR elsize . +.IR Recvp , +.IR nbrecvp , +.IR recvul , +and +.I nbrecvul +receive a pointer or an unsigned long; +they return zero when a zero is received, +when interrupted, or +(for +.I nbrecvp +and +.IR nbrecvul ) +when the operation would have blocked. +To distinguish between these three cases, +use +.I recv +or +.IR nbrecv . +.PP +.I Alt +can be used to recv from or send to one of a number of channels, +as directed by an array of +.B Alt +structures, +each of which describes a potential send or receive operation. +In an +.B Alt +structure, +.B c +is the channel; +.B v +the value pointer (which may be null); and +.B op +the operation: +.B CHANSND +for a send operation, +.B CHANRECV +for a recv operation; +.B CHANNOP +for no operation +(useful +when +.I alt +is called with a varying set of operations). +The array of +.B Alt +structures is terminated by an entry with +.I op +.B CHANEND +or +.BR CHANNOBLK . +If at least one +.B Alt +structure can proceed, one of them is +chosen at random to be executed. +.I Alt +returns the index of the chosen structure. +If no operations can proceed and the list is terminated with +.BR CHANNOBLK , +.I alt +returns the index of the terminating +.B CHANNOBLK +structure. +Otherwise, +.I alt +blocks until one of the operations can proceed, +eventually returning the index of the structure executes. +.I Alt +returns \-1 when interrupted. +The +.B tag +and +.B entryno +fields in the +.B Alt +structure are used internally by +.I alt +and need not be initialized. +They are not used between +.I alt +calls. +.PP +.I Chanprint +formats its arguments in the manner of +.IR print (2) +and sends the result to the channel +.IR c. +The string delivered by +.I chanprint +is allocated with +.IR malloc (2) +and should be freed upon receipt. +.PP +Thread library functions do not return on failure; +if errors occur, the entire program is aborted. +.PP +Threaded programs should use +.I threadnotify +in place of +.I atnotify +(see +.IR notify (2)). +.PP +It is safe to use +.B sysfatal +(see +.IR perror (2)) +in threaded programs. +.I Sysfatal +will print the error string and call +.IR threadexitsall . +.PP +It is safe to use +.IR rfork +(see +.IR fork (2)) +to manage the namespace, file descriptors, note group, and environment of a +single process. +That is, it is safe to call +.I rfork +with the flags +.BR RFNAMEG , +.BR RFFDG , +.BR RFCFDG , +.BR RFNOTEG , +.BR RFENVG , +and +.BR RFCENVG. +(To create new processes, use +.I proccreate +and +.IR procrfork .) +As mentioned above, +the thread library depends on all procs being in the +same rendezvous group; do not change the rendezvous +group with +.IR rfork . +.SH FILES +.B /sys/lib/acid/thread +contains useful +.IR acid (1) +functions for debugging threaded programs. +.PP +.B /sys/src/libthread/example.c +contains a full example program. +.SH SOURCE +.B /sys/src/libthread +.SH SEE ALSO +.IR intro (2) diff --git a/static/plan9-4e/man2/time.2 b/static/plan9-4e/man2/time.2 new file mode 100644 index 00000000..d99ba672 --- /dev/null +++ b/static/plan9-4e/man2/time.2 @@ -0,0 +1,45 @@ +.TH TIME 2 +.SH NAME +time, nsec \- time in seconds and nanoseconds since epoch +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.nf +.B +long time(long *tp) +.PP +.B +vlong nsec(void) +.SH DESCRIPTION +Both +.I time +and +.I nsec +return the time since the epoch 00:00:00 GMT, Jan. 1, 1970. +The return value of the former is in seconds and the latter in nanoseconds. +For +.IR time , +if +.I tp +is not zero then +.BI * tp +is also set to the answer. +.PP +These functions work by reading +.BR /dev/bintime , +opening that file when +.I they +are first called. +.SH SOURCE +.B /sys/src/libc/9sys/time.c +.br +.B /sys/src/libc/9sys/nsec.c +.SH SEE ALSO +.IR cons (3) +.SH DIAGNOSTICS +Sets +.IR errstr . +.SH BUGS +These routines maintain a static file descriptor. diff --git a/static/plan9-4e/man2/tmpfile.2 b/static/plan9-4e/man2/tmpfile.2 new file mode 100644 index 00000000..25729542 --- /dev/null +++ b/static/plan9-4e/man2/tmpfile.2 @@ -0,0 +1,58 @@ +.TH TMPFILE 2 +.SH NAME +tmpfile, tmpnam \- Stdio temporary files +.SH SYNOPSIS +.B #include +.PP +.ta \w'\fLFILE 'u +.B +FILE *tmpfile(void) +.PP +.B +char *tmpnam(char *s) +.SH DESCRIPTION +.I Tmpfile +creates a temporary file that will automatically +be removed when the file is closed or the program exits. +The return value is a Stdio +.B FILE* +opened in update mode (see +.IR fopen (2)). +.PP +.I Tmpnam +generates a string that is a valid file name and that is not +the same as the name of an existing file. +If +.I s +is zero, it returns a pointer to a string which may be overwritten by +subsequent calls to +.IR tmpnam . +If +.I s +is non-zero, it should point to an array of at least +.B L_tmpnam +(defined in +.BR ) +characters, and the answer will be copied there. +.SH FILES +.TF /tmp/tf000000000000 +.TP +.B /tmp/tf000000000000 +template for +.I tmpfile +file names. +.TP +.B /tmp/tn000000000000 +template for +.I tmpnam +file names. +.SH SOURCE +.B /sys/src/libstdio +.SH BUGS +The files created by +.I tmpfile +are not removed until +.IR exits (2) +is executed; in particular, they are not removed on +.I fclose +or if the program terminates abnormally. diff --git a/static/plan9-4e/man2/wait.2 b/static/plan9-4e/man2/wait.2 new file mode 100644 index 00000000..b932f2b7 --- /dev/null +++ b/static/plan9-4e/man2/wait.2 @@ -0,0 +1,117 @@ +.TH WAIT 2 +.SH NAME +await, wait, waitpid \- wait for a process to exit +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +Waitmsg* wait(void) +.PP +.B +int waitpid(void) +.PP +.B +int await(char *s, int n) +.SH DESCRIPTION +.I Wait +causes a process to wait for any child process (see +.IR fork (2)) +to exit. +It returns a +.B Waitmsg +holding +information about the exited child. +A +.B Waitmsg +has this structure: +.IP +.EX +.ta 6n +\w'long 'u +\w'msg[ERRLEN]; 'u +typedef +struct Waitmsg +{ + int pid; /* of loved one */ + ulong time[3]; /* of loved one & descendants */ + char *msg; +} Waitmsg; +.EE +.PP +.B Pid +is the child's +process id. +The +.B time +array contains the time the child and its descendants spent in user code, +the time spent in system calls, and the child's elapsed real time, +all in units of milliseconds. +.B Msg +contains the message that the child specified in +.IR exits (2). +For a normal exit, +.B msg[0] +is zero, +otherwise +.B msg +is the exit string +prefixed by the process name, a blank, the process id, and a colon. +.PP +If there are no more children to wait for, +.I wait +returns immediately, with return value nil. +.PP +The +.B Waitmsg +structure is allocated by +.IR malloc (2) +and should be freed after use. +For programs that only need the pid of the exiting program, +.I waitpid +returns just the pid and discards the rest of the information. +.PP +The underlying system call is +.IR await , +which fills in the n-byte buffer +.I s +with a textual representation of the pid, times, and exit string. +There is no terminal NUL. +The return value is the length, in bytes, of the data. +.PP +The buffer filled in by +.I await +may be parsed (after appending a NUL) using +.IR tokenize +(see +.IR getfields (2)); +the resulting fields are, in order, pid, the three times, and the exit string, +which will be +.B '' +for normal exit. +If the representation is longer than +.I n +bytes, it is truncated but, if possible, properly formatted. +The information that does not fit in the buffer is discarded, so +a subsequent call to +.I await +will return the information about the next exiting child, not the remainder +of the truncated message. +In other words, each call to +.I await +returns the information about one child, blocking if necessary if no child has exited. +If the calling process has no living children, +.I await +returns +.BR -1 . +.SH SOURCE +.B /sys/src/libc/9syscall +.SH "SEE ALSO" +.IR fork (2), +.IR exits (2), +the +.B wait +file in +.IR proc (3) +.SH DIAGNOSTICS +These routines set +.IR errstr . diff --git a/static/plan9-4e/man2/window.2 b/static/plan9-4e/man2/window.2 new file mode 100644 index 00000000..5fe2b2bf --- /dev/null +++ b/static/plan9-4e/man2/window.2 @@ -0,0 +1,244 @@ +.TH WINDOW 2 +.SH NAME +Screen, allocscreen, publicscreen, freescreen, allocwindow, bottomwindow, bottomnwindows, topwindow, topnwindows, originwindow \- window management +.SH SYNOPSIS +.nf +.B +#include +.B +#include +.B +#include +.PP +.ft L +.nf +typedef +struct Screen +{ + Display *display; /* display holding data */ + int id; /* id of system-held Screen */ + Image *image; /* unused; for reference only */ + Image *fill; /* color to paint behind windows */ +} Screen; +.fi +.ta \w'\fLScreen* 'u +.PP +.B +Screen* allocscreen(Image *image, Image *fill, int public) +.PP +.B +Screen* publicscreen(Display *d, int id, ulong chan) +.PP +.B +int freescreen(Screen *s) +.PP +.B +Image* allocwindow(Screen *s, Rectangle r, int ref, int val) +.PP +.B +void bottomwindow(Image *w) +.PP +.B +void bottomnwindows(Image **wp, int nw) +.PP +.B +void topwindow(Image *w) +.PP +.B +void topnwindows(Image **wp, int nw) +.PP +.B +int originwindow(Image *w, Point log, Point scr) +.PP +.ft L +.nf +enum +{ + /* refresh methods */ + Refbackup = 0, + Refnone = 1, + Refmesg = 2 +}; +.fi +.ft P +.SH DESCRIPTION +Windows are represented as +.B Images +and may be treated as regular images for all drawing operations. +The routines discussed here permit the creation, deletion, and shuffling +of windows, facilities that do not apply to regular images. +.PP +To create windows, it is first necessary to allocate a +.B Screen +data structure to gather them together. +A +.B Screen +turns an arbitrary image into something that may have windows upon it. +It is created by +.BR allocscreen , +which takes an +.I image +upon which to place the windows (typically +.BR display->image ), +a +.I fill +image to paint the background behind all the windows on the image, +and a flag specifying whether the result should be publicly visible. +If it is public, an arbitrary other program connected to the same +display may acquire a pointer to the same screen by calling +.B publicscreen +with the +.B Display +pointer and the +.I id +of the published +.BR Screen , +as well as the expected channel descriptor, as a safety check. +It will usually require some out-of-band coordination for programs to share a screen profitably. +.B Freescreen +releases a +.BR Screen , +although it may not actually disappear from view until all the windows upon it have also been deallocated. +.PP +Unlike +.BR allocwindow , +.B allocscreen +does +.I not +initialize the appearance of the +.BR Screen . +.PP +Windows are created by +.BR allocwindow , +which takes a pointer to the +.B Screen +upon which to create the window, a rectangle +.I r +defining its geometry, an integer pixel value +.I val +to color the window initially, and a refresh method +.BR ref . +The refresh methods are +.BR Refbackup , +which provides backing store and is the method used by +.IR rio (1) +for its clients; +.BR Refnone , +which provides no refresh and is designed for temporary uses +such as sweeping a display rectangle, for windows that are +completely covered by other windows, and for windows that +are already protected by backing store; and +.BR Refmesg , +which causes messages to be delivered to the owner of the window +when it needs to be repainted. +.B Refmesg +is not fully implemented. +.PP +The result of +.B allocwindow +is an +.B Image +pointer that may be treated like any other image. +In particular, it is freed by calling +.B freeimage +(see +.IR allocimage (2)). +The following functions, however, apply only to windows, not regular images. +.PP +.B Bottomwindow +pushes window +.I w +to the bottom of the stack of windows on its +.BR Screen , +perhaps obscuring it. +.B Topwindow +pulls window +.I w +to the top, making it fully visible on its +.BR Screen . +(This +.B Screen +may itself be within a window that is not fully visible; +.B topwindow +will not affect the stacking of this parent window.) +.B Bottomnwindows +and +.B Topnwindows +are analogous, but push or pull a group of +.I nw +windows listed in the array +.IR wp . +The order within +.IR wp +is unaffected. +.PP +Each window is created as an +.B Image +whose +.B Rectangle +.B r +corresponds to the rectangle given to +.B allocwindow +when it was created. Thus, a newly created window +.I w +resides on its +.B Screen->image +at +.IB w ->r +and has internal coordinates +.IB w ->r . +Both these may be changed by a call to +.BR originwindow . +The two +.B Point +arguments to +.B originwindow +define the upper left corner of the logical coordinate system +.RI ( log ) +and screen position +.RI ( scr ). +Their usage is shown in the Examples section. +.PP +.IR Rio (1) +creates its client windows with backing store, +.BR Refbackup . +The graphics initialization routine, +.B initdraw +(see +.IR graphics (2)), +builds a +.B Screen +upon this, and then allocates upon that another window indented +to protect the border. That window is created +.BR Refnone , +since the backing store created by +.B rio +protects its contents. That window is the one known in the +library by the global name +.B screen +(a historic but confusing choice). +.SH EXAMPLES +To move a window to the upper left corner of the display, +.EX + originwindow(w, w->r.min, Pt(0, 0)); +.EE +To leave a window where it is on the screen but change its internal +coordinate system so (0,\ 0) is the upper left corner of the window, +.EX + originwindow(w, Pt(0, 0), w->r.min); +.EE +After this is done, +.B w->r +is translated to the origin and there will be no way to discover the +actual screen position of the window unless it is recorded separately. +.SH SOURCE +.B /sys/src/libdraw +.SH SEE ALSO +.IR graphics (2), +.IR draw (2), +.IR cachechars (2), +.IR draw (3) +.SH BUGS +The refresh method +.B Refmesg +should be finished. diff --git a/static/plan9-4e/man3/0intro.3 b/static/plan9-4e/man3/0intro.3 new file mode 100644 index 00000000..a1b30193 --- /dev/null +++ b/static/plan9-4e/man3/0intro.3 @@ -0,0 +1,92 @@ +.TH INTRO 3 +.SH NAME +intro \- introduction to the Plan 9 devices +.SH DESCRIPTION +A Plan 9 +.I device +implements a file tree for client processes. +A file name beginning with a pound sign, such as +.LR #c , +names the root of a file tree implemented by +a particular +.IR "kernel device driver" +identified by the character after the pound sign. +Such names are usually bound to conventional locations +in the name space. +For example, after +.IP +.EX +bind("#c", "/dev", MREPL) +.EE +.LP +an +.IR ls (1) +of +.B /dev +will list the files provided by the +.I console +device. +.PP +A kernel device driver is a +.I server +in the sense of the Plan 9 File Protocol, 9P (see Section 5), +but with the messages implemented by local +rather than remote procedure calls. +Also, several of the messages +.RI ( Nop , +.IR Session , +.IR Flush , +and +.IR Error ) +have no subroutine equivalents. +.PP +When a system call is passed a file name beginning with +.L "#" +it looks at the next character, and if that is a valid +.I device character +it performs an +.IR attach (5) +on the corresponding device to get a channel representing the +root of that device's file tree. +If there are any characters after the device character but +before the next +.L "/" +or end of string, those characters are passed as parameter +.I aname +to the attach. For example, +.IP +.EX +#I2 +.EE +.PP +identifies the number 2 IP protocol stack +(see +.IR ip (3)). +.PP +Each kernel device has a conventional place at which to be bound +to the name space. +The +.I SYNOPSIS +sections of the following pages includes a +.I bind +command to put the device in the conventional place. +Most of these binds are done automatically by +.IR init (8) +using +.B newns +(see +.IR auth (2)) +on the file +.B /lib/namespace +(see +.IR namespace (6)). +When typed to +.IR rc (1), +the +.I bind +commands will need quotes to protect the +.B # +characters. +.SH SEE ALSO +.IR intro (5), +.IR intro (2) diff --git a/static/plan9-4e/man3/INDEX.3 b/static/plan9-4e/man3/INDEX.3 new file mode 100644 index 00000000..2cdb56b1 --- /dev/null +++ b/static/plan9-4e/man3/INDEX.3 @@ -0,0 +1,35 @@ +0intro 0intro +intro 0intro +apm apm +arch arch +audio audio +cap cap +cons cons +draw draw +dup dup +env env +ether ether +floppy floppy +i82365 i82365 +ip ip +kprof kprof +loopback loopback +lpt lpt +mnt mnt +cursor mouse +mouse mouse +pipe pipe +pnp pnp +proc proc +realtime realtime +root root +rtc rtc +sd sd +segment segment +srv srv +ssl ssl +tls tls +eia uart +uart uart +usb usb +vga vga diff --git a/static/plan9-4e/man3/INDEX.html.3 b/static/plan9-4e/man3/INDEX.html.3 new file mode 100644 index 00000000..8d7d5352 --- /dev/null +++ b/static/plan9-4e/man3/INDEX.html.3 @@ -0,0 +1,137 @@ + +plan 9 man section 3 + + +[manual index] +

Plan 9 from Bell Labs - Section 3 - Devices

+
+
+
0intro +- introduction to the Plan 9 devices +
intro + +
apm +- Advanced Power Management 1.2 BIOS interface +
apm + +
arch +- architecture-specific information and control +
arch + +
audio +- SoundBlaster audio controller +
audio + +
cap +- capabilities for setting the user id of processes +
cap + +
cons +- console, clocks, process/process group ids, user, null, reboot, etc. +
cons + +
draw +- screen graphics +
draw + +
dup +- dups of open files +
dup + +
env +- environment variables +
env + +
ether +- Ethernet device +
ether + +
floppy +- floppy disk interface +
floppy + +
i82365 +- Personal Computer Memory Card Interface Association (PCMCIA) device +
i82365 + +
ip +- network protocols over IP +
ip + +
kprof +- kernel profiling +
kprof + +
loopback +- network link simulation +
loopback + +
lpt +- parallel port interface for PC's +
lpt + +
mnt +- attach to 9P servers +
mnt + +
mouse +- kernel mouse interface +
mouse, cursor + +
pipe +- two-way interprocess communication +
pipe + +
pnp +- Plug 'n' Play ISA and PCI Interfaces +
pnp + +
proc +- running processes +
proc + +
realtime +- real time scheduling +
realtime + +
root +- the root file system +
root + +
rtc +- real-time clock and non-volatile RAM +
rtc + +
sd +- storage device interface +
sd + +
segment +- long lived memory segments +
segment + +
srv +- server registry +
srv + +
ssl +- SSL record layer +
ssl + +
tls +- TLS1 and SSL3 record layer +
tls + +
uart +- serial communication control +
uart, eia + +
usb +- USB Host Controller Interface +
usb + +
vga +- VGA controller device +
vga + +
diff --git a/static/plan9-4e/man3/Makefile b/static/plan9-4e/man3/Makefile new file mode 100644 index 00000000..c070e829 --- /dev/null +++ b/static/plan9-4e/man3/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.3) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man3/apm.3 b/static/plan9-4e/man3/apm.3 new file mode 100644 index 00000000..36809ea5 --- /dev/null +++ b/static/plan9-4e/man3/apm.3 @@ -0,0 +1,60 @@ +.TH APM 3 +.SH NAME +apm \- Advanced Power Management 1.2 BIOS interface +.SH SYNOPSIS +.nf +.B bind -a #P /dev + +.B /dev/apm +.SH DESCRIPTION +.PP +This device presents a low-level interface to +the APM 1.2 bios calls. +It is enabled by adding the line +.RB `` apm0= '' +to +.IR plan9.ini . +(The value after the equals sign is ignored; the presence of +the line at all enables the driver.) +It is only available on uniprocessor PCs. +Writing a 386 +.B Ureg +structure and then reading it back executes an APM call: +the written registers are passed to the call, +and the read registers are those returned by the call. +.\" .PP +.\" In addition, the following strings may be +.\" written to +.\" .B /dev/apm +.\" to negotiate with other kernel devices about +.\" suspension of the system. +.\" .TP +.\" .B "vote suspend +.\" Poll kernel devices for objections to suspending the system. +.\" The write succeeds only when no device objected. +.\" .TP +.\" .B "abort suspend +.\" Notify kernel devices that the vote failed and the +.\" suspension will not happen. +.\" .TP +.\" .B "commit suspend +.\" Notify kernel devices that the vote succeeded and +.\" suspension will happen. The devices +.\" may take measures such as disabling PCMCIA cards. +.\" .TP +.\" .B "resume suspend +.\" Notify kernel devices that the system has come back +.\" after a suspension. +.\" The devices may take measures such as reenabling PCMCIA cards. +.\" .PD +.\" A similar set of messages governs entrance into +.\" .B standby +.\" mode. +.PP +This device is intended to enable more user-friendly +interfaces such as +.IR apm (8). +.SH SOURCE +.B /sys/src/9/pc/apm.c +.br +.B /sys/src/9/pc/apmjump.s diff --git a/static/plan9-4e/man3/arch.3 b/static/plan9-4e/man3/arch.3 new file mode 100644 index 00000000..25a5331a --- /dev/null +++ b/static/plan9-4e/man3/arch.3 @@ -0,0 +1,65 @@ +.TH ARCH 3 +.SH NAME +arch \- architecture-specific information and control +.SH SYNOPSIS +.nf +.B bind -a #P /dev + +.B /dev/cputype +.B /dev/ioalloc +.B /dev/iob +.B /dev/iol +.B /dev/iow +.B /dev/irqalloc +.SH DESCRIPTION +.PP +This device presents textual information about PC hardware and allows +user-level control of the I/O ports on x86-class and DEC Alpha machines. +.PP +Reads from +.I cputype +recover the processor type and clock rate. +.PP +Reads from +.I ioalloc +return I/O ranges used by each device, one line +per range. Each line contains three fields separated by white space: first address +in hexadecimal, +last address, name of device. +.PP +Reads from +.I irqalloc +return the enabled interrupts, one line per +interrupt. Each line contains three fields separated by white space: +the trap number, the IRQ it is assigned to, and the name of +the device using it. +.PP +Reads and writes to +.IR iob , +.IR iow , +and +.I iol +cause 8-bit wide, 16-bit wide, and 32-bit wide requests to +I/O ports. +The port accessed is determined by the byte offset of the +file descriptor. +.SH EXAMPLE +The following code reads from an x86 byte I/O port. +.IP +.EX +uchar +inportb(long port) +{ + uchar data; + + if(iobfd == -1) + iobfd = open("#P/iob", ORDWR); + + seek(iobfd, port, 0); + if(read(iobfd, &data, sizeof(data)) != sizeof(data)) + sysfatal("inportb(0x%4.4x): %r\en", port); + return data; +} +.EE +.SH SOURCE +.B /sys/src/9/pc/devarch.c diff --git a/static/plan9-4e/man3/audio.3 b/static/plan9-4e/man3/audio.3 new file mode 100644 index 00000000..caceffdb --- /dev/null +++ b/static/plan9-4e/man3/audio.3 @@ -0,0 +1,129 @@ +.TH AUDIO 3 +.SH NAME +audio \- SoundBlaster audio controller +.SH SYNOPSIS +.nf +.B bind -a #A /dev + +.B /dev/audio +.B /dev/volume +.fi +.SH DESCRIPTION +.PP +The audio device serves a one-level directory, +giving access to the stereo audio ports. +.B Audio +is the data file, which can be read or written to use the port. +Audio data is a sequence of stereo samples, left sample first. +Each sample is a 16 bit little-endian two's complement integer; +the default sampling rate is 44.1 kHz. +Some implementations only support audio output +and return a zero length when read. +.PP +The length of the +.B audio +file as returned by +.IR stat (2) +represents the number of bytes buffered for input or output. +This provides some control over record or playback latency. +.PP +The file +.B audiostat +provides additional timing and latency control. When read, it returns +lines of the form +.br +.B "bufsize \f2s\fP buffered \f2b\fP offset \f2o\fP time \f2t\fP +.br +reporting number of bytes +.I s +used for DMA operations (i.e., the minimum useful size for reads and writes), +the number of bytes +.I b +currently buffered, and the time +.I t +at which offset +.I o +was reached. Using +.I t +and +.IR o , +it is possible to calculate at what time a byte with a different offset will +be recorded or played back. See also +.IR usb (4). +.PP +.B Volume +is the control file associated with the audio port. +Each input and output source has an associated stereo volume control, +ranging from 0 (quiet) to 100 (loud). +In addition, there are controls for the sampling rate of the D/A and A/D converters +and for any tone controls. +Reads +return lines of the form +.IP +.I source +.B in left +.I value +.B right +.I value +.B out left +.I value +.B right +.I value +.PP +possibly abbreviated if the values are shared or non-existent. +For example, if all of the values are shared, the form degenerates to +.RI ` source +.IR value '. +Valid sources depend on the particular audio device, +though all devices have a +.B audio +stereo source, which controls the output volume from the D/A converter +connected to +.BR audio . +.PP +Writes accept the same format with same abbreviations. +Writing the string +.B reset +sets all of the attributes to their default value, +and if no attribute is supplied, +.B audio +is assumed. +.PP +The Sound Blaster 16 (or MCD) is half-duplex and accepts the following controls on its +.B volume +file, +in the format shown above for reads. +.TP +.B audio out +Data written to audio. +.TP +.B synth in out +MIDI synthesizer. +.TP +.B cd in out +CD player. +.TP +.B line in out +Line-level input. +.TP +.B mic in out +Monaural microphone input. +.TP +.B speaker in out +Monaural internal speaker connection. +.TP +.B treb out +Stereo treble tone control. +Values less than 50 decrease the treble, +those greater increase it. +.TP +.B bass out +Stereo bass tone control. +.TP +.B speed in out +Sampling rate for the D/A and A/D converters, +expressed in Hz. +Defaults to 44100. +.PP +.SH SOURCE +.B /sys/src/9/port/devaudio.c diff --git a/static/plan9-4e/man3/cap.3 b/static/plan9-4e/man3/cap.3 new file mode 100644 index 00000000..5d6bffba --- /dev/null +++ b/static/plan9-4e/man3/cap.3 @@ -0,0 +1,81 @@ +.TH CAP 3 +.SH NAME +cap \- capabilities for setting the user id of processes +.SH SYNOPSIS +.B bind #¤ +.I dir +.nf + +.IB dir /caphash +.IB dir /capuse +.fi +.SH DESCRIPTION +.PP +This device enables a trusted process to +create a capability that another process +may then use to change its user id. The intent is to allow +server processes, for example +.B telnetd +(see +.IR ipserv (8)), +to change their user id after having proved +to a trusted process, such as +.IR factotum (4), +that they are indeed executing +on behalf of a user. +A trusted process is one running with the user id +of the host owner (see +.B /dev/hostowner +in +.IR cons (3)). +.PP +A capability is a null terminated string consisting of the concatenation of +an old user name, an ``@'', a new user name, an ``@'', and a string of randomly +generated characters called the key. +The trusted process enables the kernel to authenticate +capabilities passed to it by writing to +.I caphash +a secure hash of the capability. +The hash is 20 bytes long and generated by the following call: +.EX + + hmac_sha1(old_at_new, strlen(old_at_new), key, strlen(key), + hash, nil); + +.EE +The kernel maintains a list of hashes, freeing them after the +corresponding capability is used or after a minute has passed +since the write to +.IR caphash . +.PP +The trusted process may then pass the capability to any process +running as the old user. That process may then +use the capability to change identity to the new user. +A process uses a capability by writing it to +.IR capuse . +The kernel computes the same hash using the supplied capability +and searches its list of hashes for a match. If one is found, +the kernel sets the process's user id to that in the capability. +.SH DIAGNOSTICS +.PP +Errors generated by reading and writing +.I caphash +and +.I capuse +can be obtained using +.IR errstr (2). +A read of +.I caphash +with a length of less than 20 +or a write to +.I capuse +that doesn't contain two @ characters +generates the error ``read or write too small''. +A write to +.I capuse +that has no matching hash generates the error +``invalid capability''. +.SH SOURCE +.B /sys/src/9/port/devcap.c +.SH "SEE ALSO" +.IR sechash (2) diff --git a/static/plan9-4e/man3/cons.3 b/static/plan9-4e/man3/cons.3 new file mode 100644 index 00000000..0d4de988 --- /dev/null +++ b/static/plan9-4e/man3/cons.3 @@ -0,0 +1,346 @@ +.TH CONS 3 +.SH NAME +cons \- console, clocks, process/process group ids, user, null, reboot, etc. +.SH SYNOPSIS +.nf +.B bind #c /dev + +.B /dev/bintime +.B /dev/cons +.B /dev/consctl +.B /dev/cputime +.B /dev/drivers +.B /dev/hostdomain +.B /dev/hostowner +.B /dev/kprint +.B /dev/null +.B /dev/osversion +.B /dev/pgrpid +.B /dev/pid +.B /dev/ppid +.B /dev/random +.B /dev/reboot +.B /dev/swap +.B /dev/sysname +.B /dev/sysstat +.B /dev/time +.B /dev/user +.B /dev/zero +.fi +.SH DESCRIPTION +The console device serves a one-level directory +giving access to the console and +miscellaneous information. +.PP +Reading the +.B cons +file returns characters typed on the keyboard. +Normally, characters are buffered to enable erase and kill processing. +A control-U, +.LR ^U , +typed at the keyboard +.I kills +the current input line (removes all characters +from the buffer of characters +not yet read via +.BR cons ), +and a backspace +.I erases +the previous non-kill, non-erase character from the input buffer. +Killing and erasing only delete characters back to, but not including, +the last newline. +Characters typed at the keyboard actually produce 16-bit runes (see +.IR utf (6)), +but the runes are translated into the variable-length +.SM UTF +encoding (see +.IR utf (6)) +before putting them into the buffer. +A +.IR read (2) +of length greater than zero causes the process to wait until a +newline or a +.L ^D +ends the buffer, and then returns as much of the buffer as the argument +to +.B read +allows, but only up to one complete line. +A terminating +.L ^D +is not put into the buffer. +If part of the line remains, the next +.B read +will return bytes from that remainder and not part of any new line +that has been typed since. +.PP +If +the string +.B rawon +has been written to the +.B consctl +file and the file is still open, +.B cons +is in +.IR "raw mode" : +characters are not echoed as they are typed, +backspace and +.L ^D +are not treated specially, +and characters are available to +.I read +as soon as they are typed. +Ordinary mode is reentered when +.B rawoff +is written to +.B consctl +or this file is closed. +.PP +A +.I write +(see +.IR read (2)) +to +.B cons +causes the characters to be printed on the console screen. +.PP +The +.B osversion +file contains a textual representation of the operating system's version and parameters. +At the moment, it contains one field: the 9P protocol version, currently +.BR 2000 . +.PP +The +.B kprint +file may be read to receive a copy of the data written +to the console by the kernel's print statements or by processes +writing to +.BR /dev/cons . +Only data written after the file is opened is available. +If the machine's console is a serial line, the data is sent both to the +console and to +.BR kprint ; +if its console is a graphics screen, the data is sent either to the +display or to +.BR kprint , +but not both. +(It is advisable not to open +.B kprint +on terminals until you have started +.IR rio (1).) +.PP +The +.B null +file throws away anything written to it +and always returns zero bytes when read. +.PP +The +.B zero +file is a read-only file that produces an infinite stream of zero-valued bytes when read. +.PP +The +.B drivers +file contains, one per line, a listing of the drivers configured in the kernel, in the format +.IP +.EX +#c cons +.EE +.PP +The +.B hostdomain +file contains the name of the authentication domain that +this host belongs to; see +.IR authsrv (6). +Only the user named in +.B /dev/hostowner +may write this. +.PP +The +.B hostowner +file contains the name of the user that owns the console device files. +The hostowner also has group permissions for any local devices. +.PP +Reads from +.B random +return a stream of random numbers. The numbers are +generated by a low priority kernel process that loops +incrementing a variable. Each clock tick the variable +is sampled and, if it has changed sufficiently, the last +few bits are appended to a buffer. This process is inefficient +at best producing at most a few hundred bits a second. +Therefore, +.B random +should be treated as a seed to +pseudo-random number generators which can produce a faster +rate stream. +.PP +Writing the string +.B reboot +to +.B reboot +causes the system to shutdown and, if +possible, restart. +Writing the string +.B reboot +.I kernelpath +loads the named kernel image and restarts, +preserving the kernel configuration in +.BR #ec , +except that the +.B bootfile +variable is set to +.IR kernelpath . +Only the host +owner has the ability to open this file. +.PP +.B Bintime +is a binary interface that provides +the same information as +.B time +.RI ( q.v. ), +in binary form, +and also controls clock frequency and clock trim. +All integers read or written from +.B bintime +are in big endian order. +Unlike the other files, reads and writes do not affect +the offset. Therefore, there is no need for a seek +back to zero between subsequent accesses. +A read of +.B bintime +returns 24 bytes, three 8 byte numbers, representing nanoseconds +since start of epoch, clock ticks, and clock frequency. +.PP +A write to +.B bintime +is a message with one of 3 formats: +.IP "\f5n\fP<8-byte \f2time\fP>" 1.2i +set the nanoseconds since epoch to the given +.IR time . +.IP "\f5d\fP<8-byte \f2delta\fP><4-byte \f2period\fP>" 1.2i +trim the nanoseconds since epoch by +.I delta +over the next +.I period +seconds. +.IP "\f5f\fP<8-byte \f2freq\fP>" 1.2i +Set the frequency for interpreting clock ticks to be +.I freq +ticks per second. +.PP +The rest of the files contain (mostly) read-only strings. +Each string has a fixed length: a +.IR read (2) +of more than that gives a result of that fixed length (the result does not +include a terminating zero byte); +a +.I read +of less than that length leaves the file offset so the +rest of the string (but no more) will be read the next time. +To reread the file without closing it, +.I seek +must be used to reset the offset. +When the file contains numeric data +each number is formatted in decimal. +If the binary number fits in 32 bits, it is formatted as an +11 digit decimal number with +leading blanks and one trailing blank; totaling 12 bytes. +Otherwise, it +is formatted as 21 digit decimal numbers with leading blanks and one +trailing blank; totaling 22 bytes. +.PP +The +.B cputime +file holds six 32-bit numbers, containing the time in milliseconds +that the current process has spent in user mode, system calls, +real elapsed time, and then the time spent, by exited children and their descendants, +in user mode, system calls, and real elapsed time. +.PP +The +.B time +file holds one 32-bit number representing the seconds since start of epoch +and three 64-bit numbers, representing nanoseconds since +start of epoch, clock ticks, and clock frequency. +.PP +A write of a decimal number to +.B time +will set the seconds since epoch. +.PP +The +.B sysname +file holds the textual name of the machine, e.g. +.BR kremvax , +if known. +.PP +The +.B sysstat +file holds 8 numbers: +processor number, context switches, interrupts, system calls, page faults, +TLB faults, TLB purges, and load average. +The load average is in units of milli-CPUs and is decayed over time; +the others are total counts from boot time. +If the machine is a multiprocessor, +.B sysstat +holds one line per processor. +Writing anything to +.B sysstat +resets all of the counts on all processors. +.PP +The +.B swap +device holds a string of the form +.IP +.IB m1 / m2 +.B memory +.IB s1 / s2 +.B swap +.PP +These give, for each of +internal memory and the swapping area, +the number of pages used and the total available. +These numbers are not blank padded. +To turn on swapping, write to +.B swap +the textual file descriptor number of a file or device on which to swap. +See +.IR swap (8). +.PP +The other files served by the +.I cons +device are all single numbers: +.TP 10 +.B pgrpid +process group number +.TP +.B pid +process number +.TP +.B ppid +parent's process number +.SH SEE ALSO +.IR draw (3), +.IR keyboard (6), +.IR authsrv (6), +.IR utf (6), +.IR swap (8) +.SH SOURCE +.B /sys/src/9/port/devcons.c +.SH BUGS +For debugging, two control-T's followed by a letter +generate console output and manage debugging: +.L ^T^Td +toggles whether the console debugger will be run if the system fails. +.L ^T^TD +starts the console debugger immediately. +.L ^T^Tk +kills the largest process; use with care. +.L ^T^Tp +prints data about processes. +.L ^T^Tq +prints the run queue for processor 0. +.L ^T^Ts +prints the kernel stack. +.L ^T^Tx +prints data about kernel memory allocation. +.PP +The system can be rebooted by typing +.LR ^T^Tr . diff --git a/static/plan9-4e/man3/draw.3 b/static/plan9-4e/man3/draw.3 new file mode 100644 index 00000000..89a6c196 --- /dev/null +++ b/static/plan9-4e/man3/draw.3 @@ -0,0 +1,782 @@ +.TH DRAW 3 +.SH NAME +draw \- screen graphics +.SH SYNOPSIS +.nf +.B bind -a #i /dev + +.B /dev/draw/new + +.BI /dev/draw/ n /ctl +.BI /dev/draw/ n /data +.BI /dev/draw/ n /colormap +.BI /dev/draw/ n /refresh + +.ft L +#include +#include + +.ta \w'ushort 'u +ushort BGSHORT(uchar *p) +ulong BGLONG(uchar *p) +void BPSHORT(uchar *p, ushort v) +void BPLONG(uchar *p, ulong v) +.ft P +.fi +.SH DESCRIPTION +The +.I draw +device serves a three-level file system +providing an interface to the graphics facilities of the system. +Each client of the device connects by opening +.B /dev/draw/new +and reading 12 strings, each 11 characters wide followed by a blank: +the connection number +.RI ( n ), +the image id +.RI ( q.v. ) +of the display image (always zero), +the +channel format +of the image, +the +.BR min.x , +.BR min.y , +.BR max.x , +and +.B max.y +of the display image, +and the +.BR min.x , +.BR min.y , +.BR max.x , +and +.B max.y +of the clipping rectangle. +The channel format string is described in +.IR image (6), +and the other fields are decimal numbers. +.PP +The client can then open the directory +.BI /dev/draw/ n / +to access the +.BR ctl , +.BR data , +.BR colormap , +and +.B refresh +files associated with the connection. +.PP +Via the +.B ctl +and +.B draw +files, the +.I draw +device provides access to +images and font caches +in its private storage, +as described in +.IR graphics (2). +Each image is identified by a 4-byte integer, its +.IR id . +.PP +Reading the +.B ctl +file yields 12 strings formatted as in +.BR /dev/draw/new , +but for the current image rather +than the display image. +The current image may be set by writing a +binary image id to the +.B ctl +file. +.PP +A process can write messages to +.B data +to allocate and free images, fonts, and subfonts; +read or write portions of the images; +and draw line segments and character +strings in the images. +All graphics requests are clipped to their images. +Some messages return a response to be recovered by +reading the +.B data +file. +.PP +The format of messages written to +.B data +is a single letter +followed by binary parameters; +multibyte integers are transmitted with the low order byte first. +The +.B BPSHORT +and +.B BPLONG +macros place correctly formatted two- and four-byte integers into a character +buffer. +.B BGSHORT +and +.B BGLONG +retrieve values from a character buffer. +Points are two four-byte numbers: +.IR x , +.IR y . +Rectangles are four four-byte numbers: min +.IR x , +min +.IR y , +max +.IR x , +and max +.IR y . +Images, screens, and fonts have 32-bit identifiers. +In the discussion of the protocol below, +the distinction between identifier and actual image, screen, or font +is not made, so that +``the object +.IR id '' +should be interpreted as +``the object with identifier +.IR id ''. +The definitions of constants used in the description below can be found in +.BR draw.h . +.PP +The following requests are accepted by the +.B data +file. +The numbers in brackets give the length in bytes of the parameters. +.HP .5i +.B A +.IR id [4] +.IR imageid [4] +.IR fillid [4] +.IR public [1] +.br +Allocate a new +.B Screen +(see +.IR window (2)) +with +screen identifier +.I id +using +backing store image +.IR imageid , +filling it initially +with data from image +.IR fillid . +If the +.I public +byte is non-zero, the screen can +be accessed from other processes +using the +.B publicscreen +interface. +.HP +.B b +.IR id [4] +.IR screenid [4] +.IR refresh [1] +.IR chan [4] +.IR repl [1] +.IR r [4*4] +.IR clipr [4*4] +.IR color [4] +.br +Allocate an image with a given +.I id +on the +screen named by +.IR screenid . +The image will have rectangle +.I r +and clipping rectangle +.IR clipr . +If +.I repl +is non-zero, the image's replicate +bit will be set (see +.IR draw (2)). +.IP +.I Refresh +specifies the method to be used to draw the window +when it is uncovered. +.B Refbackup +causes the server to maintain a backing store, +.B Refnone +does not refresh the image, +and +.B Refmesg +causes a message to be sent via +the +.B refresh +file +.RI ( q.v. ). +.IP +The image format is described by +.IR chan , +a binary version of the channel format string. +Specifically, the image format is the catenation of up to four +8-bit numbers, each describing a particular image channel. +Each of these 8-bit numbers contains a channel type in its +high nibble and a bit count in its low nibble. +The channel type is one of +.BR CRed , +.BR CGreen , +.BR CBlue , +.BR CGrey , +.BR CAlpha , +.BR CMap , +and +.BR CIgnore . +See +.IR image (6). +.IP +.I Color +is the catenation of four 8-bit numbers +specifying the red, green, blue, and alpha +channels of the color that the new image should +be initially filled with. +The red channel is in the highest 8 bits, and +the alpha in the lowest. +Note that color is always in this format, independent of +the image format. +.HP +.B c +.IR dstid [4] +.IR repl [1] +.IR clipr [4*4] +.br +Change the replicate bit and clipping rectangle of the +image +.IR dstid . +This overrides whatever settings were specified in +the allocate message. +.HP +.B d +.IR dstid [4] +.IR srcid [4] +.IR maskid [4] +.IR dstr [4*4] +.IR srcp [2*4] +.IR maskp [2*4] +.br +Use the +.B draw +operator to combine the rectangle +.I dstr +of +image +.I dstid +with a +rectangle of image +.IR srcid , +using a rectangle of image +.IR maskid +as an alpha mask to further control blending. +The three rectangles are congruent and aligned such that +the upper left corner +.I dstr +in image +.I dstid +corresponds to +the point +.I srcp +in image +.I srcid +and +the point +.I maskp +in image +.IR maskid . +See +.IR draw (2). +.HP +.B D +.IR debugon [1] +.br +If +.I debugon +is non-zero, enable debugging output. +If zero, disable it. +The meaning of ``debugging output'' is implementation dependent. +.HP +.B e +.IR dstid [4] +.IR srcid [4] +.IR c [2*4] +.IR a [4] +.IR b [4] +.IR thick [4] +.IR sp [2*4] +.IR alpha [4] +.IR phi [4] +.br +Draw an ellipse in image +.I dst +centered on the point +.I c +with horizontal and vertical semiaxes +.I a +and +.IR b . +The ellipse is drawn using the image +.IR src , +with +the point +.I sp +in +.I src +aligned with +.I c +in +.IR dst . +The ellipse is drawn with thickness +.RI 1+2× thick . +.IP +If the high bit of +.I alpha +is set, +only the arc of the ellipse from degree angles +.I alpha +to +.I phi +is drawn. +For the purposes of drawing the arc, +.I alpha +is treated as a signed 31-bit number +by ignoring its high bit. +.HP +.B E +.IR dstid [4] +.IR srcid [4] +.IR center [2*4] +.IR a [4] +.IR b [4] +.IR thick [4] +.IR sp [2*4] +.IR alpha [4] +.IR phi [4] +.br +Draws an ellipse or arc as the +.B e +message, but rather than outlining it, fills +the corresponding sector using the image +.IR srcid . +The +.I thick +field is ignored, but must be non-negative. +.HP +.B f +.IR id [4] +.br +Free the resources associated with the image +.IR id . +.HP +.B F +.IR id [4] +.br +Free the the screen with the specified +.IR id . +Windows on the screen must be freed separately. +.HP +.B i +.IR id [4] +.IR n [4] +.IR ascent [1] +.br +Treat the image +.I id +as a font cache of +.I n +character cells, each with +ascent +.IR ascent . +.HP +.B l +.IR cacheid [4] +.IR srcid [4] +.IR index [2] +.IR r [4*4] +.IR sp [2*4] +.IR left [1] +.IR width [1] +.br +Load a character into the font cache associated with image +.I cacheid +at cache position +.IR index . +The character data is drawn in rectangle +.I r +of the font cache image +and is fetched from +the congruent rectangle in image +.I srcid +with upper left corner +.IR sp . +.I Width +specifies the width of the character\(emthe spacing from this character to the next\(emwhile +.I left +specifies +the horizontal distance from the left side +of the character to the left side of the cache image. +The dimensions of the image of the character are defined by +.IR r . +.HP +.B L +.IR dstid [4] +.IR p0 [2*4] +.IR p1 [2*4] +.IR end0 [4] +.IR end1 [4] +.IR thick [4] +.IR srcid [4] +.IR sp [2*4] +.br +Draw a line of thickness +.RI 1+2× thick +in image +.I dstid +from point +.I p0 +to +.IR p1 . +The line is drawn using the image +.IR srcid , +translated so that point +.I sp +in +.I srcid +aligns with +.I p0 +in +.IR dstid . +The +.I end0 +and +.I end1 +fields specify whether the corresponding +line end should be a square, a disc, +or an arrow head. +See +.I line +in +.IR draw (2) +for more details. +.HP +.B N +.IR id [4] +.IR in [1] +.IR j [1] +.IR name [ j ] +.br +If +.I in +is non-zero, associate the image +.I id +with the string +.IR name . +If +.I in +is zero and +.I name +already corresponds to the +image +.IR id , +the association is deleted. +.HP +.B n +.IR id [4] +.IR j [1] +.IR name [ j ] +.br +Introduce the identifier +.I id +to correspond to the image named +by the string +.IR name . +.HP +.B o +.IR id [4] +.IR r.min [2*4] +.IR scr [2*4] +.br +Position the window +.I id +so that its upper left corner is at the +point +.I scr +on its screen. +Simultaneously change its internal (logical) coordinate system +so that the point +.I log +corresponds to the upper left corner of the window. +.HP +.B p +.IR dstid [4] +.IR n [2] +.IR end0 [4] +.IR end1 [4] +.IR thick [4] +.IR srcid [4] +.IR sp [2*4] +.IR dp [2*2*(n+1)] +.br +Draw a polygon of thickness +.RI 1+2× thick . +It is conceptually equivalent to a series of +.I n +line-drawing messages (see +.B L +above) +joining adjacent points in the list of points +.IR dp . +The source image +.I srcid +is translated so that the point +.I sp +in +.I srcid +aligns with the first point +in the list +.IR dp . +The polygon need not be closed: +.I end0 +and +.I end1 +specify the line endings for the first and +last point on the polygon. +All interior lines have rounded ends +to make smooth joins. +.HP +.B P +.IR dstid [4] +.IR n [2] +.IR wind [4] +.IR ignore [2*4] +.IR srcid [4] +.IR sp [2*4] +.IR dp [2*2*(n+1)] +.br +Draw a polygon as the +.B p +message, but +fill it rather than outlining it. +The winding rule parameter +.I wind +resolves ambiguities about what to fill if the polygon is self-intersecting. +If +.I wind +is +.BR ~0 , +a pixel is inside the polygon if the polygon's winding number about the point +is non-zero. +If +.I wind +is +.BR 1 , +a pixel is inside if the winding number is odd. +Complementary values (0 or ~1) cause outside pixels to be filled. +The meaning of other values is undefined. +The polygon is closed with a line if necessary. +.HP +.B r +.IR id [4] +.IR r [4*4] +.br +Cause the next read of the +.B data +file to return the image pixel data corresponding to the +rectangle +.I r +in image +.IR id . +.HP +.B s +.IR dstid [4] +.IR srcid [4] +.IR fontid [4] +.IR p [2*4] +.IR clipr [4*4] +.IR sp [2*4] +.IR n [2] +.IR n*(index [2]) +.br +Draw in the image +.I dstid +the text string specified by the +.I n +cache +.I indices +into font +.IR fontid , +starting with the upper left corner at point +.I p +in image +.IR dstid . +The image drawn is taken from image +.IR srcid , +translated to align +.I sp +in +.I srcid +with +.I dp +in +.IR dstid. +All drawing is confined to the clipping rectangle +.I clipr +in +.IR dstid . +.HP +.B x +.IR dstid [4] +.IR srcid [4] +.IR fontid [4] +.IR dp [2*4] +.IR clipr [4*4] +.IR sp [2*4] +.IR n [2] +.IR bgid [4] +.IR bp [2*4] +.IR n*(index [2]) +.br +Like the string drawing +.B s +command, but fill the background of each character +with pixels from image +.IR bgid . +The image +.I bgid +is translated so that the point +.I bp +aligns with the +point +.I dp +in +.IR dstid . +.HP +.B S +.IR id [4] +.IR chan [4] +Attach to the public screen with the specified +.IR id . +It is an error if the screen does not exist, is not public, or does not +have the channel descriptor +.I chan +for its associated image. +.HP +.B t +.IR top [1] +.IR n [2] +.IR n*id [4] +.br +Send +.I n +windows to the top (if +.I t +is non-zero) or bottom (if +.I t +is zero) of the window stack. +The window is specified by the list of +.I n +image +.IR id s +are moved as a group, maintaining their own order within the stack. +.HP +.B v +.br +Flush changes from a soft screen, if any, to the display buffer. +.HP +.B y +.IR id [4] +.IR r [4*4] +.IR buf [x*1] +.br +.ti -0.5i +.B Y +.IR id [4] +.IR r [4*4] +.IR buf [x*1] +.br +Replace the rectangle +.I r +of pixels in image +.I id +with the pixel data in +.IR buf . +The pixel data must be in the format dictated by +.IR id 's +image channel descriptor (see +.IR image (6)). +The +.B y +message uses uncompressed data, +while the +.B Y +message uses compressed data. +In either case, +it is an error to include more data than necessary. +.PP +Reading the +.B colormap +returns the system color map used on 8-bit displays. +Each color map entry consists of a single line containing +four space-separated decimal strings. +The first is an index into the map, and the remaining three are +the red, green, and blue values associated with that index. +The color map can be changed by writing entries in the +above format to +the +.B colormap +file. +Note that changing the system color map +does not change the color map used for +calculations involving +.B m8 +images, which is immutable. +.PP +The +.B refresh +file is read-only. +As windows owned by the client are uncovered, +if they cannot be refreshed by the server (such as when they have +refresh functions associated with them), a message is made available +on the +.B refresh +file reporting what needs to be repainted by the client. +The message has five decimal integers formatted as in the +.B ctl +message: the image id of the window and the coordinates of the rectangle +that should be refreshed. +.SH SOURCE +.B /sys/src/9/port/devdraw.c +.br +.B /sys/src/libmemdraw +.SH DIAGNOSTICS +Most messages to +.B draw +can return errors; +these can be detected by a system call error +on the +.IR write (see +.IR read (2)) +of the data containing the erroneous message. +The most common error is a failure to allocate +because of insufficient free resources. Most other errors occur +only when the protocol is mishandled by the application. +.IR Errstr (2) +will report details. +.SH BUGS +The +.B Refmesg +refresh method is not fully implemented. +.br +The +.B colormap +files only reference the system color map, and as +such should be called +.B /dev/colormap +rather than +.BI /dev/draw/ n /colormap\f1. diff --git a/static/plan9-4e/man3/dup.3 b/static/plan9-4e/man3/dup.3 new file mode 100644 index 00000000..6ce855e9 --- /dev/null +++ b/static/plan9-4e/man3/dup.3 @@ -0,0 +1,58 @@ +.TH DUP 3 +.SH NAME +dup \- dups of open files +.SH SYNOPSIS +.nf +.B bind #d /fd + +.B /fd/0 +.B /fd/0ctl +.B /fd/1 +.B /fd/1ctl +\&... +.fi +.SH DESCRIPTION +The +.I dup +device serves a one-level directory containing files whose +names are decimal numbers. +Each such file also has an associated control file. +A file of name +.I n +corresponds to open file descriptor +.I n +in the current process. +.PP +An +.IR open (2) +of file +.I n +results in a file descriptor identical to +what would be returned from a system call +.IB dup ( n , +.BR -1) . +Note that the result is no longer a file in the +.I dup +device. +.PP +The +.I stat +operation returns information about the device file, not the open file it points to. +A stat of +.BI #d/ n +will contain +.I n +for the name, 0 for the length, and 0400, 0200, or 0600 +for the mode, depending on whether the dup target is open +for reading, writing, or both. +.PP +A file of name +.IB n ctl +may be read to discover the properties of the associated file descriptor, in format identical to that of the +.B fd +file in +.IR proc (3). +.SH SEE ALSO +.IR dup (2) +.SH SOURCE +.B /sys/src/9/port/devdup.c diff --git a/static/plan9-4e/man3/env.3 b/static/plan9-4e/man3/env.3 new file mode 100644 index 00000000..2724f2ac --- /dev/null +++ b/static/plan9-4e/man3/env.3 @@ -0,0 +1,64 @@ +.TH ENV 3 +.SH NAME +env \- environment variables +.SH SYNOPSIS +.nf +.B bind #e /env + +.BI /env/ var1 +.BI /env/ var2 + ... +.fi +.SH DESCRIPTION +The +.I env +device serves a one-level directory containing files with arbitrary names +and contents. +The intention is that the file name is the name of an +.I environment variable +(see +.IR rc (1)), +and the content is the variable's current value. +.PP +When a +.IR fork (2) +system call creates a new process, both the parent and the +child continue to see exactly the same files in the +.I env +device: changes made in either process can be noticed by the other. +In contrast, an +.B rfork +system call with the +.B RFENVG +bit set (see +.IR fork (2)) +causes a split: initially both process groups see the +same environment files, but any changes made in one process group +cannot be noticed by the other. +An +.B rfork +with +.B RFCENVG +splits and then clears the environment. +.PP +The special global environment +.B #ec +contains kernel configuration variables, +such as those set in +.IR plan9.ini (8). +All processes see the same +.BR #ec ; +its contents are writable only by the host owner. +[XXX actually everything is world writable; that's a mistake.] +.SH SEE ALSO +.IR rc (1), +.IR fork (2), +.B #c/reboot +in +.IR cons (3), +.IR plan9.ini (8) +.SH SOURCE +.B /sys/src/9/port/devenv.c +.SH BUGS +A write starting at an offset after the current extent of a file +yields an error instead of zero filling. diff --git a/static/plan9-4e/man3/ether.3 b/static/plan9-4e/man3/ether.3 new file mode 100644 index 00000000..05aa6c76 --- /dev/null +++ b/static/plan9-4e/man3/ether.3 @@ -0,0 +1,96 @@ +.TH ETHER 3 +.SH NAME +ether \- Ethernet device +.SH SYNOPSIS +.nf +.B bind -a #l /net + +.BI /net/ether n /clone +.BI /net/ether n /[0-7] +.BI /net/ether n /[0-7]/data +.BI /net/ether n /[0-7]/ctl +.BI /net/ether n /[0-7]/ifstats +.BI /net/ether n /[0-7]/stats +.BI /net/ether n /[0-7]/type + +.fi +.SH DESCRIPTION +The Ethernet interface, +.BI /net/ether n\f1, +is a directory +containing subdirectories, one for each distinct Ethernet packet type, +and a +.B clone +file. +The number +.I n +is the device number of the card, permitting multiple cards to be used on a single machine. +.PP +Each directory contains files to control the associated connection, +receive and send data, +and supply statistics. +Incoming Ethernet packets are demultiplexed by packet type and passed up +the corresponding open connection. +Reading from the +.B data +file reads packets of that type arriving from the network. +A read will terminate at packet boundaries. +Each write to the +.B data +file causes a packet to be sent. +The Ethernet address of the interface is inserted into +the packet header as the source address. +.PP +A connection is assigned to a packet type by opening its +.B ctl +file and +writing +.B connect +.I n +where +.I n +is a decimal integer constant identifying the Ethernet packet type. +A type of \-1 enables the connection to receive copies of packets of +all types. A type of \-2 enables the connection to receive copies of +the first 64 bytes of packets of all types. +If multiple connections are assigned to a given packet type +a copy of each packet is passed up each connection. +.PP +Some interfaces also accept unique options when written to the +.I ctl +(or +.IR clone ) +file; see the description of +.I wavelan +in +.IR plan9.ini (8). +.PP +Reading the +.B ctl +file returns the decimal index of the associated connection, 0 through 7. +Reading the +.B type +file returns the decimal value of the assigned Ethernet packet type. +Reading the +.B stats +file returns status information such as the Ethernet address of the +card and general statistics, independent of the interface; +.B ifstats +contains device-specific data and statistics about the card. +.PP +An interface normally receives only those packets whose +destination address is that of the interface or is the +broadcast address, +.BR ff:ff:ff:ff:ff:ff . +The interface can be made to receive all packets on the +network by writing the string +.B promiscuous +to the +.B ctl +file. +The interface remains promiscuous until the control file is +closed. +The extra packets are passed up connections only of types \-1 +and \-2. +.SH SOURCE +.B /sys/src/9/*/devether.c diff --git a/static/plan9-4e/man3/floppy.3 b/static/plan9-4e/man3/floppy.3 new file mode 100644 index 00000000..f1b35466 --- /dev/null +++ b/static/plan9-4e/man3/floppy.3 @@ -0,0 +1,54 @@ +.TH FLOPPY 3 +.SH NAME +floppy \- floppy disk interface +.SH SYNOPSIS +.nf +.B bind -a #f /dev + +.B /dev/fd0disk +.B /dev/fd0ctl +.B /dev/fd1disk +.B /dev/fd1ctl +.B /dev/fd2disk +.B /dev/fd2ctl +.B /dev/fd3disk +.B /dev/fd3ctl +.fi +.SH DESCRIPTION +.PP +The floppy disk interface serves a one-level directory giving access to up +to four floppy disk drives. +Each drive is represented by a data and control file. +There are no partitions. +.PP +Messages accepted by the +.B ctl +file include: +.TF format +.TP +.B eject +Eject the floppy, if possible. +.TP +.B reset +Reset the drive. +.TP +.BI format " type +Format the floppy. The +.I type +sets the density and +type of disk to be formatted; see +.B format +in +.IR prep (8). +.PD +.PP +A read of the +.B ctl +file returns a string describing the form factor of the disk, one of +.BR 3½DD , +.BR 3½HD , +.BR 5¼DD , +or +.BR 5¼HD . +.SH SOURCE +.B /sys/src/9/*/devfloppy.c diff --git a/static/plan9-4e/man3/i82365.3 b/static/plan9-4e/man3/i82365.3 new file mode 100644 index 00000000..d0e90d2a --- /dev/null +++ b/static/plan9-4e/man3/i82365.3 @@ -0,0 +1,41 @@ +.TH I82365 3 +.SH NAME +i82365 \- Personal Computer Memory Card Interface Association (PCMCIA) device +.SH SYNOPSIS +.nf +.B bind -a #y /dev + +.B /dev/pcm0attr +.B /dev/pcm0ctl +.B /dev/pcm0mem +.B /dev/pcm1attr +.B /dev/pcm1ctl +.B /dev/pcm1mem +.fi +.SH DESCRIPTION +The +.I i82365 +driver provides an interface to an Intel +82365-compatible PCMCIA interface chip. +This chip supports up to 2 PCMCIA slots, 0 +and 1. +Reading +.B pcm[01]attr +returns the contents of attribute memory. +Reading or writing +.B pcm[01]mem +reads or writes RAM on the card. +Reading +.B pcm[01]ctl +returns the card's status. +.PP +This driver must be included to use PCMCIA +devices such as the NE4100 Ethernet card. +The individual card drivers make calls to routines +in the PCMCIA driver. +.SH SOURCE +.B /sys/src/9/pc/devi82365.c +.SH "SEE ALSO" +.IR plan9.ini (8) +.SH BUGS +There is no driver for the Databook PCMCIA interface chip. diff --git a/static/plan9-4e/man3/ip.3 b/static/plan9-4e/man3/ip.3 new file mode 100644 index 00000000..84be502f --- /dev/null +++ b/static/plan9-4e/man3/ip.3 @@ -0,0 +1,926 @@ +.TH IP 3 +.SH NAME +ip \- network protocols over IP +.SH SYNOPSIS +.nf +.B bind -a #I\fIspec\fP /net + +.B /net/ipifc +.B /net/ipifc/clone +.B /net/ipifc/stats +.BI /net/ipifc/ n +.BI /net/ipifc/ n /status +.BI /net/ipifc/ n /ctl +\&... + +.B /net/arp +.B /net/log +.B /net/ndb +.B /net/iproute +.B /net/ipselftab + +.B /net/esp +.B /net/gre +.B /net/icmp +.B /net/il +.B /net/ipmux +.B /net/rudp +.B /net/tcp +.B /net/udp + +.B /net/tcp/clone +.B /net/tcp/stats +.BI /net/tcp/ n +.BI /net/tcp/ n /data +.BI /net/tcp/ n /ctl +.BI /net/tcp/ n /local +.BI /net/tcp/ n /remote +.BI /net/tcp/ n /status +.BI /net/tcp/ n /listen +\&... +.fi +.SH DESCRIPTION +The IP device provides the interface to Internet protocol stacks. +.I Spec +is an integer from 0 to 15 identifying a stack. +Each stack is physically independent of all others: +the only information transfer between them is via programs that +mount multiple stacks. +Normally a system uses only one stack. +However multiple stacks can be used for debugging +new IP networks or implementing firewalls or proxy +services. +.PP +All addresses used are 16-byte IPv6 addresses. Though +we currently implement only IPv4, the IPv6 format is intended to +prepare the way for an IPv6 implementation. IPv4 addresses +are a subset of the IPv6 addresses and both standard +.SM ASCII +formats +are accepted. In binary, all v4 addresses start with the +12 bytes: +.EX + 00 00 00 00 00 00 00 00 00 00 ff ff +.EE +.SS "Configuring interfaces +.PP +Each stack may have multiple interfaces and each interface +may have multiple addresses. +The +.B /net/ipifc +directory contains a +.B clone +file, a +.B stats +file, and numbered subdirectories for each physical interface. +.PP +Opening the +.B clone +file reserves an interface. +The file descriptor returned from the +.IR open (2) +will point to the control file, +.BR ctl , +of the newly allocated interface. +Reading +.B ctl +returns a text string representing the number of the interface. +Writing +.B ctl +alters aspects of the interface. +The possible +.I ctl +messages are: +.TP +.BI "bind ether " path +Treat the device mounted at +.I path +as an Ethernet medium carrying IP and ARP packets +and associate it with this interface. +The kernel will +.IR dial (2) +.IR path !0x800 +and +.IR path !0x806 +and use the two connections for IP and +ARP respectively. +.TP +.B "bind pkt +Treat this interface as a packet interface. Assume +a user program will read and write the +.I data +file to receive and transmit IP packets to the kernel. +This is used by programs such as +.IR ppp (8) +to mediate IP packet transfer between the kernel and +a PPP encoded device. +.TP +.BI "bind netdev " path +Treat this interface as a packet interface. +The kernel will open +.I path +and read and write the resulting file descriptor +to receive and transmit IP packets. +.TP +.BI "bind loopback " +Treat this interface as a local loopback. Anything +written to it will be looped back. +.TP +.B "unbind +Disassociate the physical device from an IP interface. +.TP +.BI add\ "local mask remote mtu " proxy +Add a local IP address to the interface. The +.IR mask , +.IR remote , +.IR mtu , +and +.B proxy +arguments are all optional. The default mask is +the class mask for the local address. The default +remote address is +.I local +ANDed with +.IR mask . +The default mtu is 1514 for Ethernet and 4096 for packet +media. +.IR Proxy , +if specified, means that this machine should answer +ARP requests for the remote address. +.IR Ppp (8) +does this to make remote machines appear +to be connected to the local Ethernet. +.TP +.BI remove\ "local mask" +Remove a local IP address from an interface. +.TP +.BI mtu\ n +Set the maximum transfer unit for this device to +.IR n . +The mtu is the maximum size of the packet including any +medium-specific headers. +.TP +.BI reassemble +Reassemble IP fragments before forwarding to this interface +.TP +.BI iprouting\ n +Allow +.RI ( n is missing +or non-zero) or disallow +.RI ( n +is 0) forwarding packets between this interface and +others. +.TP +.BI addmulti\ addr +Treat the multicast +.I addr +on this interface as a local address. +.TP +.BI remmulti\ addr +Remove the multicast address +.I addr +from this interface. +.PP +Reading the interface's +.I status +file returns information about the interface, one line for each +local address on that interface. The first line +has 9 white-space-separated fields: device, mtu, local address, +mask, remote or network address, packets in, packets out, input errors, +output errors. Each subsequent line contains all but the device and mtu. +See +.B readipifc +in +.IR ip (2). +.SS "Routing +.PP +The file +.I iproute +controls information about IP routing. +When read, it returns one line per routing entry. +Each line contains six white-space-separated fields: +target address, target mask, address of next hop, flags, +tag, and interface number. +The entry used for routing an IP packet is the one with +the longest mask for which destination address ANDed with +target mask equals the target address. +The one character flags are: +.TP +.B 4 +IPv4 route +.TP +.B 6 +IPv6 route +.TP +.B i +local interface +.TP +.B b +broadcast address +.TP +.B u +local unicast address +.TP +.B m +multicast route +.TP +.B p +point-to-point route +.PP +The tag is an arbitrary, up to 4 character, string. It is normally used to +indicate what routing protocol originated the route. +.PP +Writing to +.B /net/iproute +changes the route table. The messages are: +.TP +.B flush +Remove all routes. +.TP +.BI tag\ string +Associate the tag, +.IR string , +with all subsequent routes added via this file descriptor. +.TP +.BI add\ "target mask nexthop" +Add the route to the table. If one already exists with the +same target and mask, replace it. +.TP +.BI remove\ "target mask" +Remove a route with a matching target and mask. +.SS "Address resolution +.PP +The file +.B /net/arp +controls information about address resolution. +The kernel automatically updates the ARP information for Ethernet +interfaces. +When read, the file returns one line per address containing the +type of medium, the status of the entry (OK, WAIT), the IP +address, and the medium address. +Writing to +.B /net/arp +administers the ARP information. The control messages are: +.TP +.B flush +Remove all entries. +.TP +.BI add\ "type IP-addr Media-addr" +Add an entry or replace an existing one for the +same IP address. +.PP +ARP entries do not time out. The ARP table is a +cache with an LRU replacement policy. The IP stack +listens for all ARP requests and, if the requester is in +the table, the entry is updated. +Also, whenever a new address is configured onto an +Ethernet, an ARP request is sent to help +update the table on other systems. +.PP +Currently, the only medium type is +.BR ether . +.SS "Debugging and stack information +.PP +If any process is holding +.B /net/log +open, the IP stack queues debugging information to it. +This is intended primarily for debugging the IP stack. +The information provided is implementation-defined; +see the source for details. Generally, what is returned is error messages +about bad packets. +.PP +Writing to +.B /net/log +controls debugging. The control messages +are: +.TP +.BI set\ arglist +.I Arglist +is a space-separated list of items for which to enable debugging. +The possible items are: +.BR ppp , +.BR ip , +.BR fs , +.BR tcp , +.BR il , +.BR icmp , +.BR udb , +.BR compress , +.BR ilmsg , +.BR gre , +.BR tcpmsg , +.BR udpmsg , +.BR ipmsg , +and +.BR esp . +.TP +.BI clear\ arglist +.I Arglist +is a space-separated list of items for which to disable debugging. +.TP +.BI only\ addr +If +.I addr +is non-zero, restrict debugging to only those +packets whose source or destination is that +address. +.PP +The file +.B /net/ndb +can be read or written by +programs. It is normally used by +.IR ipconfig (8) +to leave configuration information for other programs +such as +.B dns +and +.B cs +(see +.IR ndb (8)). +.B /net/ndb +may contain up tp 1024 bytes. +.PP +The file +.B /net/ipselftab +is a read-only file containing all the IP addresses +considered local. Each line in the file contains +three white-space-separated fields: IP address, usage count, +and flags. The usage count is the number of interfaces to which +the address applies. The flags are the same as for routing +entries. +.SS "Protocol directories +.PP +The +.I ip +device +supports IP as well as several protocols that run over it: +TCP, IL, UDP, GRE, ESP, ICMP, and RUDP. +TCP and UDP provide the standard Internet +protocols for reliable stream and unreliable datagram +communication. +IL provides a reliable datagram service for communication +between Plan 9 machines. +GRE is a general encapsulation protocol. +ESP is the encapsulation protocol for IPSEC. +ICMP is IP's catch-all control protocol used to send +low level error messages and to implement +.IR ping (8). +RUDP is a locally developed reliable datagram protocol based on +UDP. +.PP +Each protocol is a subdirectory of the IP stack. +The top level directory of each protocol contains a +.B clone +file, a +.B stats +file, and subdirectories numbered from zero to the number of connections +opened for this protocol. +.PP +Opening the +.B clone +file reserves a connection. The file descriptor returned from the +.IR open (2) +will point to the control file, +.BR ctl , +of the newly allocated connection. +Reading +.B ctl +returns a text +string representing the number of the +connection. +Connections may be used either to listen for incoming calls +or to initiate calls to other machines. +.PP +A connection is controlled by writing text strings to the associated +.B ctl +file. +After a connection has been established data may be read from +and written to +.BR data . +A connection can be actively established using the +.B connect +message (see also +.IR dial (2)). +A connection can be established passively by first +using an +.B announce +message (see +.IR dial (2)) +to bind to a local port and then +opening the +.B listen +file (see +.IR dial (2)) +to receive incoming calls. +.PP +The following control messages are supported: +.TP +.BI connect\ ipaddress ! port "!r " local +Establish a connection to the remote address +.I ipaddress +and remote port +.IR port . +If +.I local +is specified, it is used as the local port number. +If +.I local +is not specified but +.B !r +is, the system will allocate +a restricted port number (less than 1024) for the connection to allow communication +with Unix +.B login +and +.B exec +services. +Otherwise a free port number starting at 5000 is chosen. +The connect fails if the combination of local and remote address/port pairs +are already assigned to another port. +.TP +.BI announce\ X +.I X +is a decimal port number or +.LR * . +Set the local port +number to +.I X +and accept calls to +.IR X . +If +.I X +is +.LR * , +accept +calls for any port that no process has explicitly announced. +The local IP address cannot be set. +.B Announce +fails if the connection is already announced or connected. +.TP +.BI bind\ X +.I X +is a decimal port number or +.LR * . +Set the local port number to +.IR X . +This exists to support emulation +of BSD sockets by the APE libraries (see +.IR pcc (1)) +and is not otherwise used. +.TP +.BI backlog\ n +Set the maximum number of unanswered (queued) incoming +connections to an announced port to +.IR n . +By default +.I n +is set to five. If more than +.I n +connections are pending, +further requests for a service will be rejected. +.TP +.BI ttl\ n +Set the time to live IP field in outgoing packets to +.IR n . +.TP +.BI tos\ n +Set the service type IP field in outgoing packets to +.IR n . +.PP +Port numbers must be in the range 1 to 32767. +.PP +Several files report the status of a +connection. +The +.B remote +and +.B local +files contain the IP address and port number for the remote and local side of the +connection. The +.B status +file contains protocol-dependent information to help debug network connections. +On receiving and error or EOF reading or writing the +.B data +file, the +.B err +file contains the reason for error. +.PP +A process may accept incoming connections by +.IR open (2)ing +the +.B listen +file. +The +.B open +will block until a new connection request arrives. +Then +.B open +will return an open file descriptor which points to the control file of the +newly accepted connection. +This procedure will accept all calls for the +given protocol. +See +.IR dial (2). +.SS TCP +.PP +TCP connections are reliable point-to-point byte streams; there are no +message delimiters. +A connection is determined by the address and port numbers of the two +ends. +TCP +.B ctl +files support the following additional messages: +.TP +.B hangup +close down a TCP connection +.TP +.BI keepalive \ n +turn on keep alive messages. +.IR N , +if given, is the milliseconds between keepalives +(default 30000). +.SS UDP +.PP +UDP connections carry unreliable and unordered datagrams. A read from +.B data +will return the next datagram, discarding anything +that doesn't fit in the read buffer. +A write is sent as a single datagram. +.PP +By default, a UDP connection is a point-to-point link. +Either a +.B connect +establishes a local and remote address/port pair or +after an +.BR announce , +each datagram coming from a different remote address/port pair +establishes a new incoming connection. +However, many-to-one semantics is also possible. +.PP +If, after an +.BR announce , +one of the following messages is written to +.BR ctl , +then all messages sent to the announced port +are received on the announced connection prefixed with the given structure. +.TP +.B headers4 +.EX +typedef struct Udphdr4 Udphdr4; +struct Udphdr +{ + uchar raddr[4]; /* v4 remote address and port */ + uchar laddr[4]; /* v4 local address and port */ + uchar rport[2]; + uchar lport[2]; +}; +.EE +.TP +.B headers +.EX +typedef struct Udphdr Udphdr; +struct Udphdr +{ + uchar raddr[16]; /* v6 remote address and port */ + uchar laddr[16]; /* v6 local address and port */ + uchar rport[2]; + uchar lport[2]; +}; +.EE +.PP +The only difference in the two is the type of address, IPv4 or IPv6. +Before a write, a user must prefix a similar structure to each message. +The system overrides the user specified local port with the announced +one. If the user specifies an address that isn't a unicast address in +.BR /net/ipselftab , +that too is overridden. +Since the prefixed structure is the same in read and write, it is relatively +easy to write a server that responds to client requests by just copying new +data into the message body and then writing back the same buffer that was +written. +.SS RUDP +.PP +RUDP is a reliable datagram protocol based on UDP. +Packets are delivered in order. +RUDP does not support +.BR listen . +One must use either +.B connect +or +.B announce +followed immediately by +.B headers +or +.BR headers4 . +.PP +Unlike IL or TCP, the reboot of one end of a connection does +not force a closing of the connection. Communications will +resume when the rebooted machine resumes talking. Any unacknowledged +packets queued before the reboot will be lost. A reboot can +be detected by reading the +.B err +file. It will have the message +.IP +.BI hangup\ address ! port +.PP +where +.I address +and +.I port +are of the far side of the connection. +Retransmitting a datagram more than 10 times +is treated like a reboot: +all queued messages are dropped, an error is queued to the +.B err +file, and the conversation resumes. +.SS IL +.PP +IL is a reliable point-to-point datagram protocol. Like TCP, IL delivers datagrams +reliably and in order. Also like TCP, a connection is +determined by the address and port numbers of the two ends. +Like UDP, each read and write transfers a single datagram. +.PP +IL is efficient for LANs but doesn't have the +congestion control features needed for use through +the Internet. +.SS GRE +.PP +GRE is the encapsulation protocol used by PPTP. +The kernel implements just enough of the protocol +to multiplex it. +.B Announce +is not allowed in GRE, only +.BR connect . +Since GRE has no port numbers, the port number in the connect +is actually the 16 bit +.B eproto +field in the GRE header. +.PP +Reads and writes transfer a +GRE datagram starting at the GRE header. +On write, the kernel fills in the +.B eproto +field with the port number specified +in the connect message. +.SS ESP +.PP +ESP is the Encapsulating Security Payload (RFC 1827). +It is used to set up an encrypted tunnel between machines. +Like GRE, ESP has no port numbers. Instead, the +port number in the +.B connect +message is the SPI (Security Association Identifier (sic)). +IP packets are written to and read from +.BR data . +The kernel encrypts any packets written to +.BR data , +appends a MAC, and prefixes an ESP header before +sending to the other end of the tunnel. +Received packets are checked against their MAC's, +decrypted, and queued for reading from +.BR data . +The control messages are: +.TP +.BI esp\ "alg secret +Encrypt with the algorithm, +.IR alg , +using +.I secret +as the key. +Possible algorithms are: +.BR null , +.BR des_56_cbc , +and +.BR rc4_128 . +.TP +.BI ah\ "alg secret +Use the hash algorithm, +.IR alg , +with +.I secret +as the key for generating the MAC. +Possible algorithms are: +.BR null , +.BR hmac_sha1_96 , +and +.BR hmac_md5_96 . +.TP +.B header +Turn on header mode. Every buffer read from +.B data +starts with 4 unsued bytes, and the first 4 bytes +of every buffer written to +.B data +are ignored. +.TP +.B noheader +Turn off header mode. +.SS "IP packet filter +.PP +The directory +.B /net/ipmux +looks like another protocol directory. +It is a packet filter built on top of IP. Each numbered +subdirectory represents a different filter. +The connect messages written to the +.I ctl +file describe the filter. Packets matching the filter can be read on the +.B data +file. Packets written to the +.B data +file are routed to an interface and transmitted. +.PP +A filter is a semicolon-separated list of +relations. Each relation describes a portion +of a packet to match. The possible relations are: +.TP +.BI proto= n +the IP protocol number must be +.IR n . +.TP +.BI dat[ n : m ]= expr +bytes +.I n +through +.I m +following the IP packet must match +.IR expr . +.TP +.BI ifc= expr +the packet must have been received on an interface whose address +matches +.IR expr . +.TP +.BI src= expr +The source address in the packet must match +.IR expr . +.TP +.BI dst= expr +The destination address in the packet must match +.IR expr . +.PP +.I Expr +is of the form: +.TP +.I \ value +.TP +.IB \ value | value | ... +.TP +.IB \ value & mask +.TP +.IB \ value | value & mask +.PP +If a mask is given, the relevant field is first ANDed with +the mask. The result is compared against the value or list +of values for a match. In the case of +.BR ifc , +.BR dst , +and +.B src +the value is a dot-formatted IP address and the mask is a dot-formatted +IP mask. In the case of +.BR dat , +both value and mask are strings of 2 character hexadecimal digits representing +8 bit values. +.PP +A packet is delivered to only one filter. +The filters are merged into a single comparison tree. +If two filters match the same packet, the following +rules apply in order (here '>' means is preferred to): +.IP 1) +protocol > data > source > destination > interface +.IP 2) +lower data offsets > higher data offsets +.IP 3) +longer matches > shorter matches +.IP 4) +older > younger +.PP +So far this has just been used to implement a version of +OSPF in Inferno. +.SS Statistics +.PP +The +.B stats +files are read only and contain statistics useful to network +monitoring. +.PP +Reading +.B /net/ipifc/stats +returns a list of 19 tagged and new line separated fields representing: +.EX +.ft 1 + forwarding status (0 and 2 mean forwarding off, 1 means on) + default TTL + input packets + input header errors + input address errors + packets forwarded + input packets for unknown protocols + input packets discarded + input packets delivered to higher level protocols + output packets + output packets discarded + output packets with no route + timed out fragments in reassembly queue + requested reassemblies + successful reassemblies + failed reassemblies + successful fragmentations + unsuccessful fragmentations + fragments created +.ft +.EE +.PP +Reading +.B /net/icmp/stats +returns a list of 25 tagged and new line separated fields representing: +.EX +.ft 1 + messages received + bad received messages + unreachables received + time exceededs received + input parameter problems received + source quenches received + redirects received + echo requests received + echo replies received + timestamps received + timestamp replies received + address mask requests received + address mask replies received + messages sent + transmission errors + unreachables sent + time exceededs sent + input parameter problems sent + source quenches sent + redirects sent + echo requests sent + echo replies sent + timestamps sent + timestamp replies sent + address mask requests sent + address mask replies sent +.EE +.PP +Reading +.B /net/tcp/stats +returns a list of 11 tagged and new line separated fields representing: +.EX +.ft 1 + maximum number of connections + total outgoing calls + total incoming calls + number of established connections to be reset + number of currently established connections + segments received + segments sent + segments retransmitted + retransmit timeouts + bad received segments + transmission failures +.EE +.PP +Reading +.B /net/udp/stats +returns a list of 4 tagged and new line separated fields representing: +.EX +.ft 1 + datagrams received + datagrams received for bad ports + malformed datagrams received + datagrams sent +.EE +.PP +Reading +.B /net/il/stats +returns a list of 7 tagged and new line separated fields representing: +.EX +.ft 1 + checksum errors + header length errors + out of order messages + retransmitted messages + duplicate messages + duplicate bytes +.EE +.PP +Reading +.B /net/gre/stats +returns a list of 1 tagged number representing: +.EX +.ft 1 + header length errors +.EE +.SH "SEE ALSO" +.IR listen (8), +.IR dial (2), +.IR ndb (6) +.SH SOURCE +.B /sys/src/9/ip +.SH BUGS +.I Ipmux +has not been heavily used and should be considered experimental. +It may disappear in favor of a more traditional packet filter in the future. diff --git a/static/plan9-4e/man3/kprof.3 b/static/plan9-4e/man3/kprof.3 new file mode 100644 index 00000000..4d3f9999 --- /dev/null +++ b/static/plan9-4e/man3/kprof.3 @@ -0,0 +1,66 @@ +.TH KPROF 3 +.SH NAME +kprof \- kernel profiling +.SH SYNOPSIS +.nf +.B bind -a #K /dev +.sp +.B /dev/kpctl +.B /dev/kpdata +.fi +.SH DESCRIPTION +The +.I kprof +device provides simple profiling +data for the operating system kernel. The data accumulates by +recording the program counter of the kernel at each `tick' of the +system clock. +.PP +The file +.B kpdata +holds the accumulated counts as 4-byte integers in big-endian +byte order. +The size of the file depends on the size of kernel text. +The first count +holds the total number of clock ticks during profiling; +the second the number of ticks that occurred while the kernel +was running. The rest each hold the number of ticks +the kernel program counter was within the +corresponding 8-byte range of kernel text, starting from the base +of kernel text. +.PP +The file +.B kpctl +controls profiling. +Writing the string +.B start +to +.B kpctl +begins profiling; +.B stop +terminates it. The message +.B startclr +restarts profiling after zeroing the array of counts. +.PP +The program +.I kprof +(see +.IR prof (1)) +formats the data for presentation. +.SH EXAMPLE +The following +.IR rc (1) +script runs a test program while profiling the kernel +and reports the results. +.sp +.EX + bind -a '#K' /dev + echo start > /dev/kpctl + runtest + echo stop > /dev/kpctl + kprof /386/9pcdisk /dev/kpdata +.EE +.SH SOURCE +.B /sys/src/9/port/devkprof.c +.SH SEE ALSO +.IR prof (1) diff --git a/static/plan9-4e/man3/loopback.3 b/static/plan9-4e/man3/loopback.3 new file mode 100644 index 00000000..066827a7 --- /dev/null +++ b/static/plan9-4e/man3/loopback.3 @@ -0,0 +1,88 @@ +.TH LOOPBACK 3 +.SH NAME +loopback \- network link simulation +.SH SYNOPSIS +.nf +.B bind -a #X /net + +.BI /net/loopback n /[0-1] +.BI /net/loopback n /[0-1]/data +.BI /net/loopback n /[0-1]/ctl +.BI /net/loopback n /[0-1]/status +.BI /net/loopback n /[0-1]/stats + +.fi +.SH DESCRIPTION +The loopback interface, +.BI /net/loopback n\f1, +is a directory containing two subdirectories, +one for each end of a simulated network link. +The number +.I n +is the device number of the link, permitting multiple links to be used on a single machine. +.PP +Each directory contains files to control the associated connection, +receive and send data, +monitor the simulation parameters, +and supply statistics. +.PP +The +.B data +files for the two directories are cross-connected. +Writes to one are divided into packets of at most a certain size, +typically 32768 bytes, +written to a flow-controlled output queue, +transferred across the link, +and put into an input queue where it is readable from the other +.B data +file. +.PP +Options are set by writing to the +.B ctl +file for the receiving end of the link, +and are reported in the same format by reading +.BR status . +The following options are supported. +.TP +.BI delay \ latency\ bytedelay +Control the time a packet takes in the link. +A packet +.B n +bytes long takes +.I bytedelay +.B * +.B n +nanoseconds to exit the output queue and +is available for reading +.I latency +nanoseconds later. +.TP +.BI droprate \ n +Randomly drop approximately one out of +.B n +packets. +If zero drop no packets. +.TP +.BR indrop \ [01] +Disallow or allow packets to be dropped if the input queue overflows. +.TP +.BI limit \ n +Set the input and output queues to hold at most +.I n +bytes. +.TP +.B reset +Clear all of the statistics recorded for the link. +.PP +Reading +.B stats +returns a list of 4 tagged numbers representing: +.EX +.ft 1 + packets sent to this receiver + bytes sent to this receiver + packets dropped due to droprate + packets dropped due to input queue overflows +.EE +.SH SOURCE +.B /sys/src/9/port/devloopback.c diff --git a/static/plan9-4e/man3/lpt.3 b/static/plan9-4e/man3/lpt.3 new file mode 100644 index 00000000..a8df37dd --- /dev/null +++ b/static/plan9-4e/man3/lpt.3 @@ -0,0 +1,43 @@ +.TH LPT 3 +.SH NAME +lpt \- parallel port interface for PC's +.SH SYNOPSIS +.nf +.B bind -a #L[123] /dev + +.B /dev/lpt[123]data +.B /dev/lpt[123]dlr +.B /dev/lpt[123]pcr +.B /dev/lpt[123]psr +.fi +.SH DESCRIPTION +The +.I lpt +driver provides an interface to the parallel +interface normally used for printers. +The specifiers +.BR 1 , +.BR 2 , +and +.BR 3 +correspond to +the parallel interfaces at PC ports 0x3bc, 0x378, and 0x278 +respectively. +.PP +.B Lpt?data +is write only. +Writing to it sends data to the interface. +This file is sufficient for communicating with most printers. +.PP +.BR Lpt?dlr , +.BR lpt?pcr , +and +.B lpt?psr +are used for fine control of the parallel port. +Reading or writing these files corresponds to +reading and writing the data latch register, +printer control register, and printer status +register. +These are used by programs to drive special devices. +.SH SOURCE +.B /sys/src/9/pc/devlpt.c diff --git a/static/plan9-4e/man3/mnt.3 b/static/plan9-4e/man3/mnt.3 new file mode 100644 index 00000000..c92c4370 --- /dev/null +++ b/static/plan9-4e/man3/mnt.3 @@ -0,0 +1,72 @@ +.TH MNT 3 +.SH NAME +mnt \- attach to 9P servers +.SH SYNOPSIS +.nf +.B #M +.fi +.SH DESCRIPTION +The +.I mount driver +is used by the +.B mount +system call +(but not +.BR bind ; +see +.IR bind (2)) +to connect the name space of a process to +the service provided by a 9P server over a communications channel. +After the +.BR mount , +system calls involving files in that portion of the name space will +be converted by the mount driver into the appropriate +9P messages to the server. +.PP +The +.I mount +system call issues +.I session +and +.IR attach (5) +messages to the server to identify and validate the user of the connection. +Each distinct user of a connection must mount it separately; +the mount driver multiplexes the access of the various users and their +processes to the service. +.PP +File-oriented system calls are converted by the kernel into messages in the 9P protocol. +Within the kernel, 9P is implemented by procedure calls to the +various kernel device drivers. +The mount driver translates these procedure calls into remote procedure calls +to be transmitted as messages over the communication channel to the server. +Each message is implemented by a write +of the corresponding protocol message to the server channel +followed by a read on the server channel to get the reply. +Errors in the reply message are turned into system call error returns. +.PP +A +.IR read (2) +or +.IR write +system call on a file served by the mount driver +may be translated +into more than one +message, +since there is a maximum data size for a 9P message. +The system call +will return when the specified number of bytes have been transferred +or a short reply is returned. +.PP +The string +.L #M +is an illegal file name, +so this device can only be accessed directly by the kernel. +.SH "SEE ALSO" +.IR bind (2) +.SH SOURCE +.B /sys/src/9/port/devmnt.c +.SH BUGS +When mounting a service through the mount driver, +that is, when the channel being multiplexed is itself +a file being served by the mount driver, +large messages may be broken in two. diff --git a/static/plan9-4e/man3/mouse.3 b/static/plan9-4e/man3/mouse.3 new file mode 100644 index 00000000..f2bd33d8 --- /dev/null +++ b/static/plan9-4e/man3/mouse.3 @@ -0,0 +1,213 @@ +.TH MOUSE 3 +.SH NAME +mouse, cursor \- kernel mouse interface +.SH SYNOPSIS +.nf +.B bind -a #m /dev + +.B /dev/mouse +.B /dev/mousein +.B /dev/mousectl +.B /dev/cursor +.fi +.SH DESCRIPTION +The +.I mouse +device provides an interface to the mouse. +There is also a cursor associated with the screen; +it is always displayed at the current mouse position. +.PP +Reading the +.B mouse +file returns the mouse status: its position and button state. +The read blocks until the state has changed since the last read. +The read returns 49 bytes: the letter +.B m +followed by four decimal strings, each 11 characters +wide followed by a blank: +.I x +and +.IR y , +coordinates of the mouse position in the screen image; +.IR buttons , +a bitmask with the +1, 2, and 4 bits set when the +mouse's left, middle, and right buttons, +respectively, are down; +and +.IR msec , +a time stamp, in units of milliseconds. +.PP +Writing the +.B mouse +file, in the same format, +causes the mouse cursor to move to the position specified by the +.I x +and +.I y +coordinates of the message. +The +.I buttons +and +.I msec +fields are ignored and may be omitted. +.PP +Writes to the +.B mousein +file are processed as if they were generated by the +mouse hardware itself, +as extra mouse events to be processed and passed back via +the +.B mouse +file. +The +.B mousein +file, which is exclusive-use, is intended for controlling devices, such as USB mice, +that are managed by user-level software. +Each event should consist of +the letter +.B m +followed by delta +.IR x , +delta +.IR y , +and +.IR buttons +as space-separated decimal numbers. +.PP +Writing to the +.B mousectl +file configures and controls the mouse. +The messages are: +.TF ps2intellimouse +.TP +.B serial\fI n\fR +sets serial port +.I n +to be the mouse port. +.TP +.B ps2 +sets the PS2 port to be the mouse port. +.TP +.B intellimouse +uses the wheel on a Microsoft Intellimouse +as the middle button. +.TP +.B ps2intellimouse +is equivalent to a write of +.B ps2 +followed by a write of +.BR intellimouse . +.TP +.B accelerated +turns on mouse acceleration. +.TP +.B linear +turns off mouse acceleration +.TP +.B res \fIn\fR +sets mouse resolution to a setting between 0 and +3 inclusive. +.TP +.B hwaccel \fIon/off\fR +sets whether acceleration is done in hardware or +software. +By default, PS2 mice use hardware and serial mice use +software. +Some laptops (notably the IBM Thinkpad T23) don't +implement hardware acceleration for external mice. +.TP +.B swap +swaps the left and right buttons on the mouse. +.TP +.B buttonmap \fIxyz\fR +numbers the left, middle, and right mouse buttons +.IR x , +.IR y , +and +.IR z , +respectively. +If +.I xyz +is omitted, the default map, 123, is used. +Thus in the default state writing +.B "buttonmap 321 +swaps left and right buttons +and writing +.B "buttonmap 123 +or just +.B buttonmap +restores their usual meaning. +Note that +.B buttonmap +messages are idempotent, +unlike +.BR swap . +.TP +.B reset +clears the mouse +to its default state. +.PD +.PP +Not all mice interpret all messages; with some devices, +some of the messages may be no-ops. +.PP +Cursors are described in +.IR graphics (2). +When read or written from or to the +.B cursor +file, they are represented in a 72-byte binary format. +The first and second four bytes are little endian +32-bit numbers specifying the +.I x +and +.I y +coordinates of the cursor +.IR offset ; +the next 32 bytes are the +.B clr +bitmask, +and the last 32 bytes the +.B set +bitmask. +.PP +Reading from the +.B cursor +file returns the current cursor information. +Writing to the +.B cursor +file sets the current cursor information. +A write of fewer than 72 bytes sets the +cursor to the default, an arrow. +.PP +The +.B mouse +and +.B cursor +files are multiplexed by +.IR rio (1) +to give the illusion of a private mouse to each of its clients. +The semantics are otherwise the same except that notification +of a window resize is passed to the application using a +.B mouse +message beginning with +.B r +rather than +.BR m ; +see +.IR rio (4) +for details. +.PP +To cope with pointing devices with only two buttons, when the +shift key is pressed, the right mouse button generates middle-button events. +.SH SOURCE +.B /sys/src/9/port/devmouse.c +.SH "SEE ALSO +.IR rio (4) +.SH BUGS +The cursor format is big endian while the +rest of the graphics interface is little endian. +.PP +The +.B mousein +file is disabled. diff --git a/static/plan9-4e/man3/pipe.3 b/static/plan9-4e/man3/pipe.3 new file mode 100644 index 00000000..fb93fa4d --- /dev/null +++ b/static/plan9-4e/man3/pipe.3 @@ -0,0 +1,59 @@ +.TH PIPE 3 +.SH NAME +pipe \- two-way interprocess communication +.SH SYNOPSIS +.B bind #| +.I dir +.nf + +.IB dir /data +.IB dir /ctl +.IB dir /data1 +.IB dir /ctl1 +.fi +.SH DESCRIPTION +.PP +An +.IR attach (5) +of this device allocates two new cross-connected I/O streams. +.B X/data +and +.B x/ctl +are the data and control channels of one stream and +.B x/data1 +and +.B x/ctl1 +are the data and control channels of the other stream. +.PP +Data written to one channel becomes available for reading at +the other. +Write boundaries are preserved: each read terminates +when the read buffer is full or after reading the last byte +of a write, whichever comes first. +.PP +Writes are atomic up to a certain size, typically 32768 bytes, +that is, each write will be delivered in a single read by the +recipient, provided the receiving buffer is large enough. +.PP +If there are multiple writers, each +.I write +is guaranteed to be available in a contiguous piece at the other +end of the pipe. +If there are multiple readers, each read will return data from only +one write. +.PP +The +.IR pipe (2) +system call performs an +.I attach +of this device and returns file descriptors to the new pipe's +.B data +and +.B data1 +files. +The files are open with mode +.BR ORDWR . +.SH "SEE ALSO" +.IR pipe (2) +.SH SOURCE +.B /sys/src/9/port/devpipe.c diff --git a/static/plan9-4e/man3/pnp.3 b/static/plan9-4e/man3/pnp.3 new file mode 100644 index 00000000..4ad193a5 --- /dev/null +++ b/static/plan9-4e/man3/pnp.3 @@ -0,0 +1,146 @@ +.TH PNP 3 +.SH NAME +pnp \- Plug 'n' Play ISA and PCI Interfaces +.SH SYNOPSIS +.nf +.B bind -a '#$' /dev + +.BI /dev/pci/ bus\fL.\fPdev\fL.\fPfn ctl +.BI /dev/pci/ bus\fL.\fPdev\fL.\fPfn raw + +.BI /dev/pnp/ctl +.BI /dev/pnp/csn n ctl +.BI /dev/pnp/csn n raw +\&... + +.fi +.SH DESCRIPTION +.PP +This device provides a limited interface to the PCI bus and +Plug 'n' Play ISA devices. +.SS PCI Interface +.PP +PCI devices are addressed logically by a bus number, +a device number on that bus, and a function number +within the device. +The set of all such device functions may be enumerated +by traversing the +.B /dev/pci +directory; the driver serves two files for each function. +These are a control file +.RL ( /dev/pci/\fIbus\fP.\fIdev\fP.\fIfn\fPctl ) +which may be read for a textual summary of the device function, +and a `raw' file +.RL ( /dev/pci/\fIbus\fP.\fIdev\fP.\fIfn\fPraw ) +which may be read to obtain the raw contents of PCI configuration space. +.PP +The first field of a PCI control file contains the class, sub-class and +programming interface values for the device function, expressed +as 2-digit hexadecimal values, and separated by periods. +The second field yields the vendor ID and device ID, each as 4-digit +hex numbers, separated by a slash. +The third field is the associated interrupt line in decimal. +The remainder of the line enumerates any valid base address +registers for the function, using two fields for each. +In the first field, the index of the register is followed by +a colon, and then the value of the register itself. +The following field gives the associated size of the memory +(or I/O space) that is mapped by the register. +.SS Plug 'n' Play +.PP +Plug 'n' Play ISA devices are discovered by sending a fixed `unlock' sequence +over an I/O port, and then reading back data from another port. +An arbitration algorithm is used to separate out the individual +cards and enumerate them in turn. +Each card is assigned a unique number, called a CSN, in the range 1-255 as a +result of enumeration. +Cards also have a fixed 64 bit identification number, set by the +manufacturer, which is used by the arbitration algorithm to +resolve conflicts. +The first 32 bits describe the type of the card, and the second +32 bits form a serial number for the particular instance of that card type. +When formatted textually, it appears as 3 upper-case letters +(typically representing the manufacturer), +followed by 4 hex digits, then a period, then 8 hex digits. +The substring before the period is the card type, and the substring +after the period is the serial number. +.PP +The enumeration algorithm needs to be enabled by specifying the +port number to write the unlock sequence out on. +This can be configured to take place at boot time by adding a line +like the following to +.IR plan9.ini : +.IP +.EX +pnp0=port=0x203 +.EE +.PP +Here +.B port +should be chosen to not conflict with any existing devices. +It must be in the range +.BR 0x203-0x3ff . +Alternatively, one can use the following command: +.IP +.EX +echo port 0x203 >/dev/pnp/ctl +.EE +.PP +Note that a side-effect of PnP enumeration is to reset the configuration +state of all such cards; any settings made by a Plug and Play BIOS will be lost. +Reading the file +.B /dev/pnp/ctl +returns one of the strings +.B "enabled\fI port\fP" +or +.BR "disabled" . +.PP +For each enumerated card, two files are served in +.BR /dev/pnp . +A control file +.RL ( /dev/pnp/csn\fIn\fPctl ) +may be read to determine the ID of the card, and a raw file +.RL ( /dev/pnp/csn\fIn\fPraw ) +may be read to obtain the configuration data associated with the card. +It is intended that the control file should take commands which set the +various configurable resources of the card, but this has not been +implemented yet. +.PP +A mechanism is provided for configuring cards via +.IR plan9.ini (8). +A line of the form +.BI pnp n = "idstring ..." +will cause the driver to look for the card named by +.I idstring +and, if found, assign it the CSN +.IR n . +The intention is that +any additional text after the idstring is interpreted as if it +was written to the card's +.B ctl +file, but this is not yet implemented. +.SH EXAMPLES +.PP +To list all PCI functions: +.IP +.EX +cat /dev/pci/*ctl +.EE +.PP +To find just the PCI video card (class 3): +.IP +.EX +grep '^03' /dev/pci/*ctl +.EE +.SH SOURCE +.B /sys/src/9/port/devpnp.c +.SH BUGS +There is currently no way to write to PCI configuration space, +or to perform reads of less than 32 bits. +Access to the I/O and memory regions of a PCI device is not provided. +.PP +The ability to set a Plug 'n' Play card's configurable settings has not been +implemented. +.PP +There should be a user program for identifying and configuring +Plug 'n' Play cards. diff --git a/static/plan9-4e/man3/proc.3 b/static/plan9-4e/man3/proc.3 new file mode 100644 index 00000000..45d5d40e --- /dev/null +++ b/static/plan9-4e/man3/proc.3 @@ -0,0 +1,328 @@ +.TH PROC 3 +.SH NAME +proc \- running processes +.SH SYNOPSIS +.nf +.B bind #p /proc + +.BI /proc/ n /args +.BI /proc/ n /ctl +.BI /proc/ n /fd +.BI /proc/ n /fpregs +.BI /proc/ n /kregs +.BI /proc/ n /mem +.BI /proc/ n /note +.BI /proc/ n /noteid +.BI /proc/ n /notepg +.BI /proc/ n /ns +.BI /proc/ n /proc +.BI /proc/ n /profile +.BI /proc/ n /regs +.BI /proc/ n /segment +.BI /proc/ n /status +.BI /proc/ n /text +.BI /proc/ n /wait +\&... +.fi +.SH DESCRIPTION +The +.I proc +device serves a two-level directory structure. +The first level contains numbered directories +corresponding to pids of live processes; +each such directory contains a set of files +representing the corresponding process. +.PP +The +.B mem +file contains the current memory image of the process. +A read or write at offset +.IR o , +which must be a valid virtual address, +accesses bytes from address +.IR o +up to the end of the memory segment containing +.IR o . +Kernel virtual memory, including the kernel stack for the process and +saved user registers (whose addresses are machine-dependent), +can be accessed through +.BR mem . +Writes are permitted only while the process is in the +.B Stopped +state and only to user addresses or registers. +.PP +The read-only +.B proc +file contains the kernel per-process +structure. +Its main use is to recover the kernel stack and program counter +for kernel debugging. +.PP +The files +.BR regs , +.BR fpregs , +and +.BR kregs +hold representations of the user-level registers, floating-point registers, +and kernel registers in machine-dependent form. +The +.B kregs +file is read-only. +.PP +The read-only +.B fd +file lists the open file descriptors of the process. +The first line of the file is its current directory; subsequent lines list, one per line, +the open files, giving the decimal file descriptor number; whether the file is open for read +.RB ( r ), +write, +.RB ( w ), +or both +.RB ( rw ); +the type, device number, and qid of the file; its I/O unit (the amount of data +that may be transferred on the file as a contiguous piece; see +.IR iounit (2)), +its I/O offset; and its name at the time it was opened. +.PP +The read-only +.B ns +file contains a textual representation of the process's file name space, in the format of +.IR namespace (6) +accepted by +.B newns +(see +.IR auth (2)). +The last line of the file identifies the current working directory of the process, in the form of a +.B cd +command +(see +.IR rc (1)). +The information in this file is based on the names files had when the name space was assembled, +so the names it contains may be inaccessible if the files have been subsequently renamed or rearranged. +.PP +The read-only +.B segment +file contains a textual display of the memory segments +attached to the process. Each line has multiple fields: +the type of segment (\c +.BR Stack , +.BR Text , +.BR Data , +.BR Bss , +etc.); one-letter flags such as +.B R +for read-only, if any; +starting virtual address, in hexadecimal; +ending virtual address, and reference count. +.PP +The read-only +.B status +file contains a string with twelve fields, each followed by a space. +The fields are: +.IP \- +the process name and user name, each 27 characters left justified +.IP \- +the process state, 11 characters left justified (see +.IR ps (1)) +.IP \- +the six 11-character numbers also held in the process's +.B #c/cputime +file +.IP \- +the amount of memory used by the process, except its stack, +in units of 1024 bytes +.IP \- +the base and current scheduling priority, each 11 character numbers +.PP +The read-only +.B args +file contains the arguments of the program when it was created by +.IR exec (2). +If the program was not created by +.BR exec , +such as by +.IR fork (2), +its +.B args +file will be empty. +The format of the file is a list of quoted strings suitable for +.BR tokenize ; +see +.IR getfields (2). +.PP +The +.B text +file is a pseudonym for the file +from which the process was executed; +its main use is to recover the symbol table of the process. +.PP +The +.B wait +file may be read to recover +records from the exiting children of the process in the format of +.B await +(see +.IR wait (2)). +If the process has no extant children, living or exited, +a read of +.B wait +will block. +It is an error for a process to attempt to read its own +.B wait +file when it has no children. +When a process's +.B wait +file is being read, +the process will draw an error +if it attempts an +.B await +system call; similarly, if a process is in an +.B await +system call, its +.B wait +file cannot be read by any process. +.PP +Textual messages written to the +.B ctl +file control the execution of the process. +Some require that the process is in a particular state +and return an error if it is not. +.TP 10n +.B stop +Suspend execution of the process, putting it in the +.B Stopped +state. +.TP 10n +.B start +Resume execution of a +.B Stopped +process. +.TP 10n +.B waitstop +Do not affect the process directly but, like all other messages ending with +.BR stop , +block the process writing the +.B ctl +file until the target process is in the +.B Stopped +state or exits. +Also like other +.B stop +control messages, +if the target process would receive a note while the message is pending, +it is instead stopped and the debugging process is resumed. +.TP 10n +.B startstop +Allow a +.B Stopped +process to resume, and then do a +.B waitstop +action. +.TP 10n +.B hang +Set a bit in the process so that, +when it completes an +.IR exec (2) +system call, it will enter the +.B Stopped +state before returning to user mode. +This bit is inherited across +.IR fork (2) +and +.IR exec (2). +.TP 10n +.B "close\ \fIn +Close file descriptor +.I n +in the process. +.TP 10n +.B closefiles +Close all open file descriptors in the process. +.TP 10n +.B nohang +Clear the hang bit. +.TP 10n +.B kill +Kill the process the next time it crosses the user/kernel boundary. +.TP 10n +.B private +Make it impossible to read the process's user memory. +This property is inherited on fork, cleared on +.IR exec (2), +and is not otherwise resettable. +.TP 10n +.B "pri\ \fIn +Set the base priority for the process to the integer +.IR n . +.TP 10n +.B "wire\ \fIn +Wire the process to processor +.IR n . +.PD +.PP +The priority is interpreted by Plan 9's multilevel process scheduler. +Priorities run from 0 to 19, with higher +numbers representing higher priorities. +A process has a base priority and +a running priority which is less than or equal to the base priority. +As a process uses up more of its allocated time, its priority is lowered. +Unless +explicitly set, user processes have base priority 10, kernel processes +13. +Children inherit the parent's base priority. +.PP +The read-only +.B profile +file contains the instruction frequency count information used for multiprocess profiling; see +.B tprof +in +.IR prof (1). +The information is gleaned by sampling the program's user-level program counter +at interrupt time. +.PP +Strings written to the +.B note +file will be posted as a note to the process +(see +.IR notify (2)). +The note should be less than +.B ERRLEN-1 +characters long; +the last character is reserved for a terminating NUL character. +A read of at least +.B ERRLEN +characters will retrieve the oldest note posted to the +process and prevent its delivery to the process. +The +.B notepg +file is similar, but the note will be delivered to all the +processes in the target process's +.I note group +(see +.IR fork (2)). +However, if the process doing the write is in the group, +it will not receive the note. +The +.B notepg +file is write-only. +.PP +The textual +.B noteid +file may be read to recover an integer identifying the note group of the process +(see +.B RFNOTEG +in +.IR fork (2)). +The file may be written to cause the process to change to another note group, +provided the group exists and is owned by the same user. +.SH FILES +.nf +.B /sys/src/9/*/mem.h +.B /sys/src/9/*/dat.h +.fi +.SH SEE ALSO +.IR debugger (2), +.IR mach (2), +.IR cons (3) +.SH SOURCE +.B /sys/src/9/port/devproc.c diff --git a/static/plan9-4e/man3/realtime.3 b/static/plan9-4e/man3/realtime.3 new file mode 100644 index 00000000..b9bcc7f7 --- /dev/null +++ b/static/plan9-4e/man3/realtime.3 @@ -0,0 +1,316 @@ +.TH REALTIME 3 +.EQ +delim $$ +.EN +.SH NAME +realtime \- real time scheduling +.SH SYNOPSIS +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +.B bind -a #R /dev +.ift .sp 0.5 +.ifn .sp +/dev/realtime/clone +/dev/realtime/debug +/dev/realtime/log +/dev/realtime/nblog +/dev/realtime/resources +/dev/realtime/task/0 +/dev/realtime/task/1 +/dev/realtime/task/... +/dev/realtime/time +.sp +#include /sys/src/port/9/devrealtime.h +.ift .sp 0.5 +.ifn .sp +enum SEvent { + SAdmit, /* new proc arrives*/ + SRelease, /* released, but not yet scheduled */ + SRun, /* one of this task's procs started running */ + SPreempt, /* the running task was preempted */ + SBlock, /* the last of the runnable procs in a task blocked */ + SResume, /* task was scheduled after blocking */ + SDeadline, /* proc's deadline (reported ahead of time) */ + SYield, /* proc reached voluntary early deadline */ + SSlice, /* slice exhausted */ + SExpel, /* proc was expelled */ +}; +typedef enum SEvent SEvent; +typedef vlong Time; +typedef struct Schedevent Schedevent; +.ift .sp 0.5 +.ifn .sp +struct Schedevent { + ushort tid; /* Task ID */ + SEvent etype; /* Event type */ + Time ts; /* Event time */ +}; +.EE +.SH DESCRIPTION +The Plan 9 real-time scheduler allows mixing real-time processes and best-effort +processes on a single system. The scheduler is intended for real-time loads well +under 100% CPU utilization with minimum periods in the order of a hundred thousand +instruction times. The precision of the scheduler depends on the precision of the +machine's programmable real-time clock. +.PP +The unit of real-time scheduling is a +.BR task . +A task can contain zero or more processes. The processes in a task share a common +period, deadline and CPU allocation. Tasks allow cooperating processes to collaborate +to achieve a common deadline, for instance, processes receiving, decompressing and +displaying video in a pipeline can share a single task. +.PP +Tasks are scheduled using Earliest-Deadline First (EDF). Each task has three primary +scheduling parameters, a period $T$, a deadline $D$ and a cost $C$, expressed in +nanoseconds (but converted to a machine- and architecture-dependent unit called +.IR ticks ). +Every $T$ nanoseconds, the task is +.I released +— i.e., it becomes schedulable — and it received a +.I slice +of $C$ nsec. +When the task is released, its +.I "release time" +$r$ is set to the current time. +The task's +.I "absolute deadline" +$d$ is set to $r + D$. +(Note the use of capital letters to indicate intervals and lower-case letters to indicate +`points in time'.) +Between release and deadline the task must +be scheduled often enough to be able to consume its slice of $C$ nsec of CPU time. +So, to be schedulable, $C <= D <= T$ must hold. +If $D < T$, tasks are not schedulable (runnable) between their deadline and the next +release. +Tasks are +.I released +from the moment of release until their deadline or their slice runs out, whichever +happens first. Additionally, tasks can voluntarily declare the slice for the current period +empty, allowing other real-time tasks or best-effort tasks the CPU time remaining in +their slice. +.PP +Before they are released for the first time, tasks have to be +.IR admitted +into the system. Before admission, a test is conducted to determine whether the task, +plus the already admitted tasks can all meet their deadlines, given their scheduling +parameters. When a task changes its scheduling parameters, it is temporarily +.I expelled +and will be readmitted if the new scheduling parameters allow all tasks to continue +to meet their deadlines. +.PP +The EDF scheduler schedules the released task with the earliest deadline. When a task +is released, therefore, it can preempt a task that has a later deadline, but was released earlier. +Real-time tasks sharing resources, however, may need to be prevented from preempting +each other. They can do this by declaring a shared resource. The scheduler will not +preempt one task with another that shares a common resource. To do this, the scheduler only +needs to know the names of the sharable resources used by each of the tasks. +.PP +During the admission test, information about shared resources is used to calculate +a secondary deadline for each task, called the +.IR "inherited deadline" , +$Δ$, which is the minimum of the deadlines $D$ of each of the tasks that shares a +resource with the current task. +The scheduler allows a released task $T$ to preempt running task $T'$ iff +$d < d' ^ D < Δ'$; the first half of the condition says that the released task's deadline +must be earlier, the second implies that the released task may not share resources with +the running one. +The admission test takes these limitations into account. Note that, in practice, tasks +rarely share resources. +.PP +Normally, tasks can block (when all their processes are blocked on system calls) during +their release. +The time spent blocking is not accounted against the current slice, but, since the scheduler +has no control over the time spent blocking, there are no guarantees that the deadline +will be made if a task spends any time blocked. +Whether or not tasks actually block, they will normally complete the work to be done +in a period (slightly) before the slice runs out — and before the deadline. To tell the +scheduler that they no longer require the CPU until the next release, tasks can +.I yield +(see below). +.PP +Tasks can also run in another mode where blocking automatically implies immediate +yielding. This mode truly guarantees that deadlines will be made, but programmers +must know more about the (blocking) nature of the system calls used in order to use +this mode. +.sp +.LP +The real-time scheduler is controlled through a file system (naturally), normally +bound to +.BR /dev . +Opening +.B /dev/realtime/clone +for writing (and reading, if desired), causes a new task to be created in the +non-admitted (expelled) state. The new task will be represented by a file in +the +.B /dev/realtime/task +directory whose name is the task's number. +The file descriptor resulting from opening +.B /dev/realtime/clone +provides the equivalent functionality as that resulting from opening +.BI /dev/realtime/task/ n +except for the initial creation of a new task when opening the +.B clone +file. The task file may also be opened read-only. +.PP +The tasks parameters are set or modified by writing one of these files and they +can be examined by reading it. +A parameter is presented in the form +\f2name\fP=\f2value\fP, \f2name\fP+=\f2value\fP, or \f2name\fP-=\f2value\fP. +A command is presented in the form +.IR commandname . +Parameters and commands are separated by white space; quoting conventions apply +(see +.IR quote (2)). +The settable parameters are +.TP +.B T +Sets the period. The value must be given as a number with or without decimal point +and directly followed (no white space) by one of +.I s +for seconds, +.I ms +for milliseconds, +.I µs +or +.I us +for microseconds, +.I ns +or +nothing +for nanoseconds. The +.B += +operator adds to the period already set, the +.B -= +operator subtracts from it. +.TP +.B D +Sets the deadline. Value syntax and operators as above. +.TP +.B C +Sets the cost. Value syntax and operators as above. +.TP +.B resources +Sets the list of resources; resource names are separated by white space and +quoting must be used in this case. A resource name is an arbitrary string. The +.B += +operator adds to the list of resources +.B -= +operator takes away from it. +.TP +.B procs +Sets, adds to, or subtracts from the process membership of a task. Processes +are identified by their +.I pid +or the special value +.B self +identifying the process writing the +.I clone +or +.I task +file. +.TP +.B yieldonblock +When the (integer) value is non-zero, the task is placed in +.I yield-on-block +mode: when all processes in the task are blocked on system calls, the task automatically +declares the current deadline reached and will be released again in the next period. +When the value is zero, the task can block without forfeiting the current release. +However, when the task blocks long, the deadline may be missed. The default value is zero. +.LP +The commands accepted are +.TP +.B verbose +This is for debugging and causes the progression of the admission test to be displayed. +.TP +.B admit +This initiates an admission test. If the test fails, the write containing the +.B admit +command will fail. If the test succeeds the task is admitted and, if it contains +runnable processes, it will be released (almost) immediately. +.TP +.B expel +Expel the task. +.TP +.B remove +Remove the task, the file descriptor will become invalid. +.TP +.B yield +Gives up the processor until the next release. +.LP +.sp +.B /dev/realtime/debug +prints debugging information about the task queues maintained by the scheduler. +This file will go away. +.PP +.B /dev/realtime/log +and +.B /dev/realtime/nblog +are files used by real-time monitoring processes such as +.B rtstats +(see +.IR rtstats (1)). +Reading them produces a stream of +.B Schedevent +structures in the machine representation. These events are +nearly ordered by Time (nanoseconds since boot); some events can +be reported earlier or later than they occur. +.I Tid +corresponds to the file name in the directory +.BR /dev/realtime/task , +.I etype +is one of the events of +.I SEvent +as explained in +.BR /sys/src/9/port/devrealtime.h , +and +.I ts +is the time at which the event occurred (or will occur). +.B Nblog +is a non-blocking version that returns zero bytes each time there is +nothing left to read. +.PP +.B /dev/realtime/resources +is a read-only file listing the resources declared by the current set of tasks. +.PP +.B /dev/realtime/time +returns the number of nanoseconds since boot, the number of ticks since boot and +.IR fasthz , +the number of clock ticks per second, a billion times the ratio between the other two numbers. +Each number is returned as a binary +.I vlong +in architecture-dependent representation. +.SH EXAMPLE +.EX +.ta 4n +4n +4n +4n +4n +4n +4n +char *clonedev = "#R/realtime/clone"; + +void +processvideo(){ + int fd; + + if ((fd = open(clonedev, ORDWR)) < 0) + sysfatal("%s: %r", clonedev); + if (fprint(fd, "T=33ms D=20ms C=8ms procs=self admit") < 0) + sysfatal("%s: admit: %r", clonedev); + for (;;){ + processframe(); + if (fprint(fd, "yield") < 0) + sysfatal("%s: yield: %r", clonedev); + } + if (fprint(fd, "remove") < 0) + sysfatal("%s: remove: %r", clonedev); + close(fd); +} +.EE +.SH "SEE ALSO +.IR rtstats (1) +.SH FILES +.B /usr/sape/src/realtime/edfproc.c +as an example of using the scheduler for a trivial test run. +.SH SOURCE +.B /sys/src/9/port/devrealtime.c +.br +.B /sys/src/9/port/edf.c +.SH BUGS +The admission test does not take multiprocessors into account. The total +real-time load cannot exceed a single-\s-2CPU\s0 load. diff --git a/static/plan9-4e/man3/root.3 b/static/plan9-4e/man3/root.3 new file mode 100644 index 00000000..ff12df61 --- /dev/null +++ b/static/plan9-4e/man3/root.3 @@ -0,0 +1,39 @@ +.TH ROOT 3 +.SH NAME +root \- the root file system +.SH SYNOPSIS +.nf +.B / +.B /boot +.B /dev +.B /env +.B /net +.B /net.alt +.B /proc +.B /root +.B /srv +.fi +.SH DESCRIPTION +The syntax +.L #/ +is illegal, so this device can only be accessed directly by the kernel. +.PP +This device is set up by the kernel to be the root of +the name space. +The names in the one-level tree are mostly just place-holders, +to allow a place to +.IR bind (2) +to. +The exception is +.BR /boot , +which provides executable code when read. +The kernel does an +.IR exec (2) +of +.B /boot +when initializing. +Some kernels are built with other services, such as +.IR kfs (4) , +in the root directory. +.SH SOURCE +.B /sys/src/9/port/devroot.c diff --git a/static/plan9-4e/man3/rtc.3 b/static/plan9-4e/man3/rtc.3 new file mode 100644 index 00000000..da30231f --- /dev/null +++ b/static/plan9-4e/man3/rtc.3 @@ -0,0 +1,40 @@ +.TH RTC 3 +.SH NAME +rtc \- real-time clock and non-volatile RAM +.SH SYNOPSIS +.B bind #r /dev +.PP +.B /dev/rtc +.br +.B /dev/nvram +.SH DESCRIPTION +The +.I rtc +device supports devices +with real-time clocks and non-volatile RAM. +.PP +The +.B rtc +file behaves just like +.BR /dev/time +(see +.IR cons (3)). +The real-time clock is maintained on-board; +.B /dev/time +is set from the file server. Neither is necessarily more accurate. +.PP +The +.B nvram +file provides (if permission allows) +access to the local non-volatile RAM. +For example, +.IR boot (8) +reads the machine's key +from there +(see +.IR auth (8)). +.SH SEE ALSO +.IR auth (8), +.IR boot (8) +.SH SOURCE +.B /sys/src/9/*/devrtc.c diff --git a/static/plan9-4e/man3/sd.3 b/static/plan9-4e/man3/sd.3 new file mode 100644 index 00000000..99b851cd --- /dev/null +++ b/static/plan9-4e/man3/sd.3 @@ -0,0 +1,209 @@ +.TH SD 3 +.SH NAME +sd \- storage device interface +.SH SYNOPSIS +.nf +.B bind #S /dev + +.BI /dev/sd Cu /ctl +.BI /dev/sd Cu /raw +.BI /dev/sd Cu /data +\&... +.fi +.SH DESCRIPTION +.PP +The storage device interface serves a two-level directory +giving access to multiple storage units, +typically ATA(PI) or SCSI discs. +Each unit +is accessed via files in the directory named by the controller +to which it is attached, +.IR C , +and by its unit number +.IR u . +The controller naming convention for ATA(PI) units starts +with the first controller being named +.LR C , +the second +.LR D , +etc. up to a maximum of 4 controllers +.RB ([ C-F ]); +legacy controllers are always 'C' and 'D'. +There can be a maximum of 2 units per ATA(PI) controller +.RB ([ 01 ]). +The controller naming convention for SCSI units starts with +the first controller being named +.LR 0 , +the second +.LR 1 , +etc. up to a maximum of 16 controllers +.RB ([ 0-9a-f ]). +There can be a maximum of 16 units per SCSI controller +.RB ([ 0-9a-f ]). +.PP +Units are not accessed before the first attach. +Units may be individually attached using the attach specifier, +for example +.IP +.EX +bind -a '#SsdD0' /dev +.EE +.PP +An attach without a specifier will cause the driver to scan for all possible +units before processing the rest of the name. +.PP +The subdirectory for each unit contains two files, +.I ctl +and +.IR raw . +In addition, +if the unit is a direct-access disc of some type +it may be split into partitions and +the subdirectory may contain a file per partition. +By default, +the partition +.I data +will exist for such media. +.PP +Partitions are added and deleted by writing to the +.I ctl +file +.IP +.EX +part \f2name start-sector end-sector\fP +delpart \f2name\fP +.EE +.PP +The default +.I data +partition may be deleted. +A partition cannot be deleted if a process has it open. +If a change of removable media is detected, +the new media cannot be opened until all open partitions +on the old media are closed. +.PP +Partitions are usually created using +.I fdisk +and +.IR prep (8); +the convention is to name non-Plan 9 partitions after their corresponding operating systems +(e.g., +.BR /dev/sdC0/dos ) +and Plan 9 partitions according to their function +(e.g., +.BR /dev/sdC0/swap ). +The example in +.IR prep (8) +shows how this is done. +.PP +Reading the +.I ctl +file returns at least one line of textual information about +the unit. +The first line will always be prefixed by +.B inquiry +and will give a manufacturer and model number if possible. +A line prefixed by +.B config +will be returned for appropriate media, +e.g. for ATA(PI) units the remainder of the line contains +configuration information from the device's +.I identify +command (config and capabilities) +and also the available I/O transfer options; +this is a diagnostic aid. +A line prefixed by +.B geometry +will be returned for appropriate media; +at least two numbers will follow, +the first being the number of sectors contained in the unit +and the second the sector size in bytes. +Any remaining information on the +.B geometry +line is unit-dependent, +for instance, head, +cylinder and sector counts for ATA discs. +If any partitions are defined for the media, +their name, start-sector and end-sector will be returned, +prefixed by +.BR part . +.IP +.EX +% cat /dev/sdD0/ctl +inquiry KENWOOD CD-ROM UCR-421 208E10/20/99 7.39 2 M0 +config 85C0 capabilities 0F00 dma 00550004 dmactl 00000000 +geometry 242725 2352 +part data 0 242725 +% +.EE +.PP +The use of DMA and multi-sector read/write commands may be +enabled and disabled on ATA(PI) units by writing to the +.B ctl +file +.B dma +and +.B rwm +respectively followed by +.B on +or +.BR off . +For example, to enable DMA on a unit that supports it: +.IP +.EX +% echo 'dma on'>/dev/sd00/ctl +.EE +.PP +If supported by the unit, +the standby timer may be enabled: +.IP +.EX +% echo 'standby \f2T\fP'>/dev/sdC0/ctl +.EE +.PP +where +.I T +is the standby timer period in seconds. +.I T +must be between 30 and 1200, +or can be 0 to disable the timer. +.PP +The +.B raw +file is used to execute an arbitrary command on the unit at +a low level. +This is used by programs such as +.IR scuzz (8) +to manipulate devices that do not fit the simple storage model +or for maintenance purposes. +The following steps may be used to execute a command +.IP +\- Write the command to the +.I raw +file; +.IP +\- Read or write data associated with the command, according to the direction of the transfer. +.IP +\- Read the +.I raw +file to retrieve the status of the command, +returned as a text integer. +.SH SOURCE +.B /sys/src/9/port/devsd.c +.br +.B /sys/src/9/*/sd*.[hc] +.SH SEE ALSO +.IR scuzz (8) +.SH BUGS +.PP +Still in development. +.PP +No LUNs. +.PP +The 4 controller limit for ATA(PI) is not enforced. +.PP +No account is taken of some buggy ATA PCI controllers +such as the CMD640. +.PP +ATA(PI) units come up with DMA and multi-sector read/write +capability disabled. diff --git a/static/plan9-4e/man3/segment.3 b/static/plan9-4e/man3/segment.3 new file mode 100644 index 00000000..1a8e5e71 --- /dev/null +++ b/static/plan9-4e/man3/segment.3 @@ -0,0 +1,117 @@ +.TH SEGMENT 3 +.SH NAME +segment \- long lived memory segments +.SH SYNOPSIS +.nf +.B bind '#g' /mnt/segment + +.BI #g/ seg1 +.BI #g/ seg1 /ctl +.BI #g/ seg1 /data +.BI #g/ seg2 +.BI #g/ seg2 /ctl +.BI #g/ seg2 /data + ... +.fi +.SH DESCRIPTION +.PP +The +.I segment +device provides a 2-level file system representing +long-lived sharable segments that processes may +.IR segattach (2). +The name of the directory is the +.I class +argument to +.IR segattach . +.PP +New segments are created under the top level +using +.B create +(see +.IR open (2)). +The +.B DMDIR +bit must be set in the permissions. +.IR Remove (2)'ing +the directory makes the segment no longer +available for +.IR segattach . +However, the segment will continue to exist until all +processes using it either exit or +.I segdetach +it. +.PP +Within each segment directory are two files, +.B data +and +.BR ctl . +Reading and writing +.B data +affects the contents of the segment. +Reading and writing +.B ctl +retrieves and sets the segment's properties. +.PP +There is only one control message, which sets the segment's +virtual address and length in bytes: +.EX + va \fIaddress length\fP +.EE +.I Address +is automatically rounded down to a page boundary and +.I length +is rounded up to end the segment at a page boundary. +The segment will reside at the same virtual address in +all processes sharing it. +When the segment +is attached using +.IR segattach, +the address and length arguments are ignored in the call; +they are defined only by the +.B va +control message. +Once the address and length are set, they cannot be reset. +.PP +Reading the control file +returns a message of the same format with the segment's actual +start address and length. +.PP +Opening +.B data +or reading +.B ctl +before setting the virtual address yields the error +``segment not yet allocated''. +.PP +The permissions check when +.IR segattach ing +is equivalent to the one performed when opening +.B data +with mode ORDWR. +.SH EXAMPLE +.PP +Create a one megabyte segment at address 0x10000000: +.EX + % bind '#g' /mnt/segment + % mkdir /mnt/segment/example + % echo 'va 0x10000000 0x100000' > /mnt/segment/example/ctl +.EE +.PP +Put the string ``hi mom'' at the start of the segment: +.EX + % echo -n hi mom > /mnt/segment/example/data +.EE +.PP +Attach the segment to a process: +.EX +{ + ulong va; + + va = segattach(0, "example", 0, 0); +} +.EE +.SH "SEE ALSO +.IR segattach (2) +.SH SOURCE +.B /sys/src/9/port/devsegment.c diff --git a/static/plan9-4e/man3/srv.3 b/static/plan9-4e/man3/srv.3 new file mode 100644 index 00000000..820c849d --- /dev/null +++ b/static/plan9-4e/man3/srv.3 @@ -0,0 +1,74 @@ +.TH SRV 3 +.SH NAME +srv \- server registry +.SH SYNOPSIS +.nf +.B bind #s /srv + +.BI #s/ service1 +.BI #s/ service2 + ... +.fi +.SH DESCRIPTION +The +.I srv +device provides a one-level directory holding +already-open channels to services. +In effect, +.I srv +is a bulletin board on which processes may post open file descriptors +to make them available to other processes. +.PP +To install a channel, create +a new file such as +.B /srv/myserv +and then write a text string (suitable for +.IR strtoul ; +see +.IR atof (2)) +giving the file descriptor number of an open file. +Any process may then open +.B /srv/myserv +to acquire another reference to the open file that was registered. +.PP +An entry in +.I srv +holds a reference to the associated file even if no process has the +file open. Removing the file from +.B /srv +releases that reference. +.PP +It is an error to write more than one number into a server file, +or to create a file with a name that is already being used. +.SH EXAMPLE +To drop one end of a pipe into +.BR /srv , +that is, to create a named pipe: +.IP +.EX +int fd, p[2]; +char buf[32]; + +pipe(p); +fd = create("/srv/namedpipe", OWRITE, 0666); +fprint(fd, "%d", p[0]); +close(fd); +close(p[0]); +fprint(p[1], "hello"); +.EE +.PP +At this point, any process may open and read +.B /srv/namedpipe +to receive the +.B hello +string. Data written to +.B /srv/namedpipe +can be received by executing +.IP +.EX +read(p[1], buf, sizeof buf); +.EE +.PP +in the above process. +.SH SOURCE +.B /sys/src/9/port/devsrv.c diff --git a/static/plan9-4e/man3/ssl.3 b/static/plan9-4e/man3/ssl.3 new file mode 100644 index 00000000..2b3944d1 --- /dev/null +++ b/static/plan9-4e/man3/ssl.3 @@ -0,0 +1,124 @@ +.TH SSL 3 +.SH NAME +ssl \- SSL record layer +.SH SYNOPSIS +.nf +.B bind -a #D /net + +.B /net/ssl/clone +.BI /net/ssl/ n +.BI /net/ssl/ n /ctl +.BI /net/ssl/ n /data +.BI /net/ssl/ n /encalgs +.BI /net/ssl/ n /hashalgs +.BI /net/ssl/ n /secretin +.BI /net/ssl/ n /secretout +.fi +.SH DESCRIPTION +The SSL device provides the interface to the Secure Socket Layer +device implementing the record layer protocol of SSLv2 +(but not the handshake protocol, which is responsible for +mutual authentication and key exchange.) +The +.I ssl +device can be thought of as a filter providing optional encryption +and anti-tampering. +.PP +The top level directory contains a +.B clone +file and subdirectories numbered from zero to the number of connections +configured. +Opening the +.B clone +file reserves a connection. The file descriptor returned from the +.IR open (2) +will point to the control file, +.BR ctl , +of the newly allocated connection. Reading the +.B ctl +file returns a text +string representing the number of the +connection. +.PP +A connection is controlled by writing text strings to the associated +.B ctl +file. After a connection has been established data may be read from +and written to the data file. +.PP +The SSL protocol provides a stream connection that preserves +.BR read / write +boundaries. As long as reads always specify buffers that are +of equal or greater lengths than the writes at the other end of the +connection, one write will correspond to one read. +.PP +Options are set by writing control messages to the +.B ctl +file of the connection. +.PP +The following control messages are supported: +.TP +.BI fd \ open-file-descriptor +Run the SSL protocol over the existing file descriptor. +.TP +.BI alg \ cryptoalgs +Connections start in +.B alg clear +which means no encryption or digesting. +Writing +.B alg sha +to the control file turns on SHA-1 digest authentication +for the data channel. +Similarly, writing +.B alg rc4_128 +enables encryption. +Both can be turned on at once by +.BR "alg sha rc4_128" . +The digest mode +.B sha +may be replaced by +.BR md5 . +The encryption mode +.B rc4_128 +may be replaced by +.BR rc4_40 , +.BR rc4_128 , +.BR rc4_256 , +.BR des_40_ecb , +.BR des_40_cbc , +.BR des_56_ecb , +and +.BR des_56_cbc . +The mode may be changed at any time during the connection. +.TP +.BI secretin \ base64-secret +The secret for decrypting and authenticating incoming messages +can be specified either as a base64 encoded string by writing to the +control file, or as a binary byte string using the interface below. +.TP +.BI secretout \ base64-secret +The secret for encrypting and hashing outgoing messages +can be specified either as a base64 encoded string by writing to the +control file, or as a binary byte string using the interface below. +.PP +Before enabling digesting or encryption, shared secrets must be agreed upon with +the remote side, one for each direction of transmission, +and loaded as shown above or by writing to the files +.I secretin +and +.IR secretout . +If either the incoming or outgoing secret is not specified, the other secret +is assumed to work for both directions. +.PP +The encryption and hash algoritms actually included in the kernel +may be smaller than the set presented here. Reading +.I encalgs +and +.I hashalgs +will give the actual space-separated list of algorithms implemented. +.SH "SEE ALSO" +.IR listen (8), +.IR dial (2) +.SH SOURCE +.B /sys/src/9/port/devssl.c +.SH BUGS +Messages longer than 4096 bytes are truncated. diff --git a/static/plan9-4e/man3/tls.3 b/static/plan9-4e/man3/tls.3 new file mode 100644 index 00000000..f38fe283 --- /dev/null +++ b/static/plan9-4e/man3/tls.3 @@ -0,0 +1,272 @@ +.TH TLS 3 +.SH NAME +tls \- TLS1 and SSL3 record layer +.SH SYNOPSIS +.nf +.B bind -a #a /net + +.B /net/tls/clone +.B /net/tls/encalgs +.B /net/tls/hashalgs +.BI /net/tls/ n +.BI /net/tls/ n /ctl +.BI /net/tls/ n /data +.BI /net/tls/ n /hand +.BI /net/tls/ n /stats +.BI /net/tls/ n /status +.fi +.SH DESCRIPTION +The TLS device implements the record layer protocols +of Transport Layer Security version 1.0 and Secure Sockets Layer version 3.0. +It does not implement the handshake protocols, which are responsible for +mutual authentication and key exchange. +The +.I tls +device can be thought of as filters providing optional encryption and anti-tampering. +.PP +The top level directory contains a +.B clone +file and subdirectories numbered from zero through at least the last active filter. +Opening the +.B clone +file reserves a filter. +The file descriptor returned from the +.IR open (2) +will point to the control file, +.BR ctl , +of the newly allocated filter. +Reading the +.B ctl +file returns a text string containing the number of the filter directory. +.PP +The filter initially cannot be used to pass messages +and will not encrypt or digest messages. +It is configured and controlled by writing commands to +.BR ctl . +.PP +The following commands are supported: +.TP +.BI fd \ open-fd\ vers +Pass record messages over the communications channel +.IR open-fd . +Initially, outgoing messages use version +.I vers +format records, but incoming messages of either version are accepted. +Valid versions are +.B 0x300 +for SSLv3.0 and +.B 0x301 +for TLSv1.0 (which could be known as SSLv3.01.) +This command must be issued before any other command +and before reading or writing any messages; +it may only be executed once. +.TP +.BI version \ vers +Use +.I vers +format records for all future records, +both outgoing and incoming. +This command may only be executed once. +.TP +.BI secret \ hashalg\ encalg\ isclient\ secretdata +Set up the digesting and encryption algorithms and secrets. +.I Hashalg +and +.I encalg +must be algorithm names returned by the corresponding files. +.I Secretdata +is the base-64 encoded (see +.IR encode (2)) +secret data used for the algorithms. +It must contain at least enough data to populate the +secrets for digesting and encrypting. +These secrets are divided into three categories: digest secrets, keys, and initialization vectors. +The secrets are packed in this order, with no extra padding. +Within each category, the secret for data traveling from the client to the server comes first. +The incoming and outgoing secrets are automatically selected by devtls based on the +.I isclient +argument, which must be non-zero for the client of the TLS handshake, +and zero for the server. +.br +This command must be issued after +.BR version , +and may be issued more than once. +At least one new +.I secret +command must be issued before each +.I changecipher +command; similarly, at least one new +.I secret command +must precede each incoming changecipher message. +.TP +.BI changecipher +Enable outgoing encryption and digesting as configured by the previous +.I secret +command. +This command sends a +.I changecipher +message. +.TP +.BI opened +Enable data messages. +This command may be issued any number of times, +although only the first is significant. +It must follow at least one successful +.I changecipher +command. +.TP +.BI alert \ alertno +Send an alert message. +.I Alertno +may be a valid alert code for either SSLv3.0 or TLSv1.0, +and is mapped to an appropriate code for the protocol in use. +If it is a fatal alert, the filter is set into an error state. +.PP +Application messages and handshake messages are communicated using +.I data +and +.IR hand , +respectively. +Only one +.IR open (2) +of +.I hand +is allowed at a time. +.PP +Any record layer headers and trailers are inserted and +stripped automatically, and are not visible from the outside. +The device tries to synchronize record boundaries with reads and writes. +Each read will return data from exactly one record, +and will return all of the data from the record as long as +the buffer is big enough. +Each write will be converted into an integral number of records, +with all but potentially the last being maximal size. +The maximum record length supported is 16384 bytes. +This behavior is not specified in the protocols, +and may not be followed by other implementations. +.PP +If a fatal alert message is received, or a fatal +.I alert +command issued, the filter is set into an error state. +All further correspondence is halted, +although some pending operations may not be terminated. +Operations on +.I data +will fail with a +.BR "'tls error'" , +and operations on +.I hand +will fail with a textual decoding of the alert. +The current non-fatal alert messages are +.BR "'close notify'" , +.BR "'no renegotiation'" , +and +.BR "'handshake canceled by user'" . +Receipt of one of these alerts cause the next read on +.I hand +to terminate with an error. +If the alert is +.BR "'close notify'", +all future reads will terminate with a +.B "tls hungup" +error. +A +.B "'close notify'" +.I alert +command will terminate all future writes or reads from +.I data +with a +.B "'tls hungup'" +error. +.PP +If an error is encountered while reading or writing +the underlying communications channel, the error is returned +to the offending operation. +If the error is not +.BR "'interrupted'" , +the filter is set into the error state. +In this case, all future operations on +.I hand +will fail with a +.BR "'channel error'" . +.PP +When all file descriptors for a filter have been closed, +the session is terminated and the filter reclaimed for future use. +A +.B "'close notify'" +alert will be sent on the underlying communications channel +unless one has already been sent or the filter is in the error state. +.PP +Reading +.I stats +or +.I status +returns information about the filter. +Each datum is returned on a single line of the form +.IB tag ": " data . +.I Stats +returns the number of bytes communicated by the +.B data +and +.B hand +channels. +The four lines returned are tagged by, in order, +.BR DataIn , +.BR DataOut , +.BR HandIn , +and +.BR HandOut . +.I Status +returns lines following tags: +.BR State , +.BR Version , +.BR EncIn , +.BR HashIn , +.BR NewEncIn , +.BR NewHashIn , +.BR EncOut , +.BR HashOut , +.BR NewEncOut , +and +.BR NewHashOut . +.BR State 's +value is a string describing the status of the connection, +and is one of the following: +.BR 'Handshaking' , +.BR 'Established' , +.BR 'RemoteClosed' , +.BR 'LocalClosed' , +.BR 'Alerting' , +.BR 'Errored' , +or +.BR 'Closed' . +.BR Version 's +give the hexadecimal record layer version in use. +The +.B Enc +and +.B Hash +fields return name of the current algorithms in use +or ready to be used, if any. +.PP +Reading +.I encalgs +and +.I hashalgs +will give the space-separated list of algorithms implemented. +This will always include +.BR clear , +meaning no encryption or digesting. +Currently implemented encryption algorithms are +.B 'rc4_128' +and +.BR '3des_ede_cbc' . +Currently implemented hashing algorithms are +.B 'md5' +and +.BR 'sha1' . +.SH "SEE ALSO" +.IR listen (8), +.IR dial (2) +.SH SOURCE +.B /sys/src/9/port/devtls.c diff --git a/static/plan9-4e/man3/uart.3 b/static/plan9-4e/man3/uart.3 new file mode 100644 index 00000000..b4504610 --- /dev/null +++ b/static/plan9-4e/man3/uart.3 @@ -0,0 +1,97 @@ +.TH UART 3 +.SH NAME +uart, eia \- serial communication control +.SH SYNOPSIS +.nf +.B bind -a #t /dev + +.B /dev/eia0 +.B /dev/eia0ctl +.B /dev/eia0status +.B /dev/eia1 +.B /dev/eia1ctl +.B /dev/eia1status +\&... +.fi +.SH DESCRIPTION +.PP +The serial line devices serve a one-level directory, +giving access to the serial ports. +Device +.I n +is accessed through +.BI eia n +(the data file), +.BI eia n ctl +(the control file), and +.BI eia n status +(the read-only status file). +Reads of the data file will block until at least one byte is available. +The +control file +configures the port. +It accepts the following commands: +.TP +.BI b n +Set the baud rate to +.IR n . +.TP +.BI d n +Set DTR if +.I n +is non-zero; +else clear it. +.TP +.BI k n +Send a break lasting +.I n +milliseconds. +.TP +.BI r n +Set RTS if +.I n +is non-zero; +else clear it. +.TP +.BI m n +Obey modem CTS signal if +.I n +is non-zero; +else clear it. +.TP +.BI i n +Enable input FIFO if +.I n +is non-zero; +else disable. +.TP +.BI p c +Set parity to odd if +.I c +is +.BR o , +to even if +.I c +is +.BR e ; +else set no parity. +.TP +.BI s n +Set number of stop bits to +.IR n . +Legal values are 1 or 2. +.TP +.BI l n +Set number of bits per byte to +.IR n . +Legal values are 5, 6, 7, or 8. +.PP +The status +files contain a textual representation of the status of the line, in the format of the +commands used on the +control +file. +.SH SOURCE +.B /sys/src/9/port/devuart.c +.br +.B /sys/src/9/*/uart*.c diff --git a/static/plan9-4e/man3/usb.3 b/static/plan9-4e/man3/usb.3 new file mode 100644 index 00000000..587b7a30 --- /dev/null +++ b/static/plan9-4e/man3/usb.3 @@ -0,0 +1,235 @@ +.TH USB 3 +.SH NAME +usb \- USB Host Controller Interface +.SH SYNOPSIS +.nf +.B bind -a #U /dev + +.BI /dev/usb m +.BI /dev/usb m /new +.BI /dev/usb m /port +.BI /dev/usb m / n +.BI /dev/usb m / n /ctl +.BI /dev/usb m / n /status +.BI /dev/usb m / n /setup +.BI /dev/usb m / n /ep k\fLdata +\&... + +.fi +.SH DESCRIPTION +The Universal Serial Bus is a popular bus for connecting slow and medium speed +devices, such as mice, keyboards, printers, and scanners to a PC. It is +a four-wire tree-shaped bus that provides both communication and (limited) +power to devices. Branching points in the tree are provided by devices +called +.IR hubs . +.PP +Most PCs have a two-slot hub built in, accommodating two USB devices. To +attach more devices, one or more hubs have to be plugged in to the USB +slots of the PC. The topology of the network is a tree with at most +127 nodes, counting both internal and leaf nodes. +.PP +The USB bus is fully controlled by the host; all devices are polled. +Hubs are passive in the sense that they do not poll the devices attached +to them. The host polls those devices and the hubs merely route the +messages. +.PP +When a device is attached, the host queries it to determine its type +and its speed. The querying process is standardized. The first level +of querying is the same for all devices, the next is somewhat specialized +for particular classes of devices (such as mice, keyboards, or audio devices). +Specialization continues as subclasses and subsubclasses are explored. +.PP +For each connected device there is a directory in +.BI #U/usb n\fR. +Reading +.BI #U/usb n /*/status +yields the state, class, subclass and proto of each device in the +first line. The remaining lines give the state of each of the +interfaces. +.PP +To find a mouse, for example, scan the status files for the line +.IP +.EX +.BR "Enabled 0x020103" +.EE +.PP +A mouse belongs to class 3 (in the least significant byte), +.IR "human interface device" , +subclass 1, +.IR boot , +proto 2, +.I mouse +(proto 1 would be the keyboard). +USB class, subclass and proto codes can be found on +.BR www.usb.org . +.PP +The control interface for each device is +.I "``endpoint 0''" +and is named +.BI #U/usb n /*/setup \fR. +The control interface of the device is accessed by reading and writing +this file. +.PP +There is a separate +.I "control interface +named +.BI #U/usb n /*/ctl +which is used to configure the USB device +.IR driver . +By writing to this +file, driver endpoints can be created and configured for communication with a +device's data streams. A mouse, for example, has one control interface +and one data interface. By communicating with the control interface, +one can find out the device type (i.e., `mouse'), power consumption, number +on interfaces, etc. +.IR Usbd (4) +will extract all this information and, in verbose mode, print it. +.PP +By sending an `endpoint message' to the +.I ctl +file, new driver endpoints can be created. The syntax of these messages +is +.PP +.B ep +.I n +.B bulk +.I "mode maxpkt nbuf +.PP +or +.PP +.B ep +.I "n period mode samplesize hz +.PP +The first form configures a non-real-time stream, the second an +.I isochronous +(real-time) stream. +In both forms, +.I n +is the endpoint to be configured, and +.I mode +is +.B r +for read only, or +.B w +for reading and writing. +In the first form, +.I maxpkt +is the maximum packet size to be used (between 1 and 2048), +and +.I nbuf +is the number of buffers to be allocated by the driver. +.PP +In the second form, +.I period +is the number of milliseconds between packets. This number is usually +dictated by the device. It must be between 1 and 1000. +The +.I samplesize +is the size in bytes of the data units making up packets, and +.I hz +is the number of data units transmitted or received per second. +.PP +The data rate is thus +.IR hz × samplesize +bytes per second, and the packet size used will vary between +⌊(\f2period\fP×\f2hz\fP)/1000⌋×\f2samplesize\fP +and +⌈(\f2period\fP×\f2hz\fP)/1000⌉×\f2samplesize\fP. +.PP +The mouse, which produces 3-byte samples, is configured with +.BR "ep 1 bulk r 3 32" : +endpoint 1 is configured for non-real-time read-only 3-byte messages +and allows 32 of them to be outstanding. +.PP +A usb audio output device at 44.1 KHz, 2 channels, 16-bit samples, on endpoint +4 will be configured with +.BR "ep 4 1 w 4 44100" . +.PP +If the configuration is successful, a file named +.BI ep n data +is created which can be read and/or written depending on +configuration. Configuration is not allowed when the data endpoint +is open. +.PP +Forward +.I seek +operations on isochronous endpoints +can be used to start the I/O at a specific time. +The usb status file provides information that can be used to map file +offsets to points in time: For each endpoint, the status file produces a line +of the form: +.PP +.B "4 0x000201 \f2nnn\fP bytes \f2nnn\fP blocks +.PP +The fields are, from left to right, +endpoint number, class/subclass/proto (as a six-digit hex number with class in the +least significant byte), number of bytes read/written, number of blocks read/written. +.PP +For isochronous devices only, an additional line is produced of the +form: +.PP +.B "bufsize \f2s\fP buffered \f2b\fP offset \f2o\fP time \f2t\fP +.PP +.I S +is the size of the DMA operations on the device (i.e., the minimum useful size +for reads and writes), +.I b +is the number of bytes currently buffered for input or output, and +.I o +and +.I t +should be interpreted to mean that byte offset +.I o +was/will be reached at time +.I t +(nanoseconds since the epoch). +.PP +To play or record samples exactly at some predetermined time, use +.I o +and +.I t +with the sampling rate to calculate the offset to seek to. +.PP +The number of bytes buffered can also be obtained using +.IR stat (2) +on the endpoint file. See also +.IR audio (3). +.sp +.SH FILES +.TF "#U/usb n /*/status" +.TP +.BI #U/usb n /*/status +USB device status file, class, subclass and proto are found in line one +.TP +.BI #U/usb n /*/ctl +USB +.I driver +control file, used to create driver endpoints, control debugging, etc. +.TP +.BI #U/usb n /*/setup +USB +.I device +control file, used to exchange messages with a device's control channel. +.B setup +may be viewed as a preconfigured +.B ep0data +file. +.TP +.BI #U/usb n /*/ep k data +USB device data channel for the +.IR k 'th +configuration. +.SH "SEE ALSO" +.IR usb (4), +.IR usbd (4), +.IR plan9.ini (8) +.SH BUGS +OpenHCI USB cards are not yet supported. +.PP +The interface for configuring endpoints is at variance with the standard. +.PP +The notion that the endpoints themselves have a class and subclass +is a distortion of the standard. +It would be better to leave all handling of the notions of class to the +user-level support programs, and remove it from the driver. diff --git a/static/plan9-4e/man3/vga.3 b/static/plan9-4e/man3/vga.3 new file mode 100644 index 00000000..a2fe3dee --- /dev/null +++ b/static/plan9-4e/man3/vga.3 @@ -0,0 +1,209 @@ +.TH VGA 3 +.SH NAME +vga \- VGA controller device +.SH SYNOPSIS +.nf +.B bind #v /dev + +.B /dev/vgactl +.fi +.SH DESCRIPTION +The VGA device allows configuration of a graphics controller +on a PC. +.B Vgactl +allows control over higher-level settings such as display height, width, depth, +controller and hardware-cursor type. +Along with the I/O-port registers +provided by +.IR arch (3), +it is used to implement configuration and setup of VGA controller cards. +This is usually performed by +.IR vga (8). +.PP +Writing strings to +.B vgactl +configures the VGA device. +The following are valid commands. +.TP +.BI size " X" x Y x "Z chan" +Set the size of the screen image to be +.I X +pixels wide +and +.I Y +pixels high. +Each pixel is +.I Z +bits as specified by +.IR chan , +whose format is described in +.IR image (6). +.TP +.BI actualsize " X" x Y +Set the physical size of the display to be +.I X +pixels wide by +.I Y +pixels high. +This message is optional; +it is used to implement panning and to accommodate +displays that require the in-memory screen image +to have certain alignment properties. +For example, a 1400x1050 screen with a 1408x1050 in-memory image +will use +.B "size 1408x1050 +but +.BR "actualsize 1400x1050" . +.TP +.BI panning " mode" +Depending on whether +.I mode +is +.B on +or +.BR off , +enable or disable panning in a virtual screen. +If panning is on and the screen's +.B size +is larger than its +.BR actualsize , +the displayed portion of the screen will pan to follow the mouse. +Setting the panning mode after the first attach of the +.B #i +driver has no effect. +.TP +.BI type " ctlr" +Set the type of VGA controller being used. +.I Ctlr +is one of +.BR ark200pv , +.BR clgd542x , +.BR clgd546x , +.BR ct65545 , +.BR cyber938x , +.BR hiqvideo , +.BR mach64xx , +.BR mga2164w , +.BR neomagic , +.BR s3 , +and +.BR t2r4 . +.IP +Note that this list does not indicate the full set of VGA chips +supported. For example, +.B s3 +includes the 86C801/5, 86C928, Vision864, and Vision964. +It is the job of +.IR vga (8) +to recognize which particular chip is being used and to initialize it +appropriately. +.TP +.BI hwgc " gc" +Set the type of hardware graphics cursor being used. +.I Gc +is one of +.BR ark200pvhwgc , +.BR bt485hwgc , +.BR clgd542xhwgc , +.BR clgd546xhwgc , +.BR ct65545hwgc , +.BR cyber938xhwgc , +.BR hiqvideohwgc , +.BR mach64xxhwgc , +.BR mga2164whwgc , +.BR neomagichwgc , +.BR rgb524hwgc , +.BR s3hwgc , +.BR t2r4hwgc , +.BR tvp3020hwgc , +and +.BR tvp3026hwgc . +A value of +.B off +disables the cursor. +There is no software cursor. +.TP +.BI palettedepth " d" +Set the number of bits of precision used by the +VGA palette to +.IR d , +which must be either +.B 6 +or +.BR 8 . +.TP +.B blank +Blank the screen. +This consists of setting the hardware +color map to all black as well as, on some controllers, setting the +VGA hsync and vsync signals so as to turn off +VESA DPMS-compliant monitors. +The screen also blanks after 30 minutes of inactivity. +The screen can be unblanked by moving the mouse. +.TP +.BI blanktime " minutes" +Set the timeout before the +screen blanks; the default is 30 minutes. +If +.I minutes +is zero, blanking is disabled. +.TP +.BI hwaccel " mode" +Depending on whether +.I mode +is +.B on +or +.BR off , +enable or disable whether hardware acceleration +(currently for rectangle filling and moving) +used by the graphics engine. +The default setting is +.BR on . +.TP +.BI hwblank " mode" +Depending on whether +.I mode +is +.B on +or +.BR off , +enable or disable the use of DPMS blanking +(see +.B blank +above). +.TP +.BI linear " size align" +Use a linear screen aperture of size +.I size +aligned on an +.IR align -byte +boundary. +.TP +.B drawinit +Initialize the graphics hardware. +This must be sent after setting the +.BR type . +.PP +Reading +.B vgactl +returns the current settings, one per line. +.SH EXAMPLES +The following disables hardware acceleration. +.IP +.EX +echo -n 'hwaccel off' >/dev/vgactl +.EE +.SH SOURCE +.B /sys/src/9/pc/devvga.c +.SH SEE ALSO +.IR arch (3), +.IR vga (8) +.SH BUGS +There should be support for the hardware graphics cursor on the +.B clgd54[23]x +VGA controller chips. +.PP +The hardware graphics cursor on the +.B et4000 +does not work in 2x8-bit mode. diff --git a/static/plan9-4e/man4/0intro.4 b/static/plan9-4e/man4/0intro.4 new file mode 100644 index 00000000..8a3a6a3d --- /dev/null +++ b/static/plan9-4e/man4/0intro.4 @@ -0,0 +1,14 @@ +.TH INTRO 4 +.SH NAME +intro \- introduction to file servers +.SH DESCRIPTION +A Plan 9 +.I "file server" +provides a file tree to processes. +This section of the manual describes servers than can be +mounted in a name space to give a file-like interface to interesting services. +A file server may be a provider of a conventional file system, +with files maintained on permanent storage, +or it may also be a process that synthesizes files in some manner. +.SH SEE ALSO +.IR bind (1) diff --git a/static/plan9-4e/man4/INDEX.4 b/static/plan9-4e/man4/INDEX.4 new file mode 100644 index 00000000..8500fc3d --- /dev/null +++ b/static/plan9-4e/man4/INDEX.4 @@ -0,0 +1,71 @@ +0intro 0intro +intro 0intro +acme acme +archfs archfs +cddb cdfs +cdfs cdfs +cfs cfs +C consolefs +clog consolefs +consolefs consolefs +9660srv dossrv +9fat: dossrv +a: dossrv +b: dossrv +c: dossrv +d: dossrv +dosmnt dossrv +dossrv dossrv +eject dossrv +execnet execnet +exportfs exportfs +srvfs exportfs +factotum factotum +fgui factotum +secretpem factotum +fs fs +ftpfs ftpfs +import import +iostats iostats +keyfs keyfs +warning keyfs +kfs kfs +lnfs lnfs +namespace namespace +nntpfs nntpfs +paqfs paqfs +plumber plumber +ramfs ramfs +ratfs ratfs +rdbfs rdbfs +rio rio +sacfs sacfs +snap snap +snapfs snap +9fs srv +srv srv +srvold9p srv +32vfs tapefs +cpiofs tapefs +tapefs tapefs +tapfs tapefs +tarfs tapefs +tpfs tapefs +v10fs tapefs +v6fs tapefs +fax telco +faxreceive telco +faxsend telco +telco telco +telcodata telco +telcofax telco +u9fs u9fs +usb usb +usbaudio usb +usbmouse usb +usbd usbd +vacfs vacfs +webcookies webcookies +webfs webfs +wikifs wikifs +wikipost wikifs diff --git a/static/plan9-4e/man4/INDEX.html.4 b/static/plan9-4e/man4/INDEX.html.4 new file mode 100644 index 00000000..c191776a --- /dev/null +++ b/static/plan9-4e/man4/INDEX.html.4 @@ -0,0 +1,157 @@ + +plan 9 man section 4 + + +[manual index] +

Plan 9 from Bell Labs - Section 4 - File Servers

+
+
+
0intro +- introduction to file servers +
intro + +
acme +- control files for text windows +
acme + +
archfs +- mount mkfs-style archive +
archfs + +
cdfs +- CD reader and writer file system +
cdfs, cddb + +
cfs +- cache file system +
cfs + +
consolefs +- file system for console access +
consolefs, C, clog + +
dossrv +- DOS and ISO9660 file systems +
dossrv, 9660srv, a:, b:, c:, d:, 9fat:, dosmnt, eject + +
execnet +- network interface to program execution +
execnet + +
exportfs +- network file server plumbing +
exportfs, srvfs + +
factotum +- +
factotum, fgui, secretpem\- authentication agent and its graphics interface + +
fs +- file server, dump +
fs + +
ftpfs +- file transfer protocol (FTP) file system +
ftpfs + +
import +- import a name space from a remote system +
import + +
iostats +- file system to measure I/O +
iostats + +
keyfs +- authentication database files +
keyfs, warning + +
kfs +- disk file system +
kfs + +
lnfs +- long name file system +
lnfs + +
namespace +- structure of conventional file name space +
namespace + +
nntpfs +- network news transport protocol (NNTP) file system +
nntpfs + +
paqfs +- compressed read-only file system +
paqfs + +
plumber +- file system for interprocess messaging +
plumber + +
ramfs +- memory file system +
ramfs + +
ratfs +- mail address ratification file system +
ratfs + +
rdbfs +- remote kernel debugging file system +
rdbfs + +
rio +- window system files +
rio + +
sacfs +- compressed file system +
sacfs + +
snap +- create and mount process snapshots +
snap, snapfs + +
srv +- start network file service +
srv, srvold9p, 9fs + +
tapefs +- mount archival file systems +
32vfs, cpiofs, tapfs, tarfs, tpfs, v6fs, v10fs + +
telco +- telephone dialer network +
telco, faxreceive, faxsend, fax, telcofax, telcodata + +
u9fs +- serve 9P from Unix +
u9fs + +
usb +- Universal Serial Bus user level device drivers +
usbmouse, usbaudio + +
usbd +- Universal Serial Bus daemon +
usbd + +
vacfs +- a Venti-based file system +
vacfs + +
webcookies +- HTTP cookie manager +
webcookies + +
webfs +- world wide web file system +
webfs + +
wikifs +- wiki file system +
wikifs, wikipost + +
diff --git a/static/plan9-4e/man4/Makefile b/static/plan9-4e/man4/Makefile new file mode 100644 index 00000000..38781aad --- /dev/null +++ b/static/plan9-4e/man4/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.4) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man4/acme.4 b/static/plan9-4e/man4/acme.4 new file mode 100644 index 00000000..bb20cb0f --- /dev/null +++ b/static/plan9-4e/man4/acme.4 @@ -0,0 +1,408 @@ +.TH ACME 4 +.SH NAME +acme \- control files for text windows +.SH SYNOPSIS +.B acme +[ +.B -f +.I varfont +] [ +.B -F +.I fixfont +] +[ +.I file +\&... ] +.SH DESCRIPTION +The text window system +.IR acme (1) +serves a variety of files for reading, writing, and controlling +windows. +Some of them are virtual versions of system files for dealing +with the virtual console; others control operations +of +.I acme +itself. +When a command is run under +.IR acme , +a directory holding these files is mounted on +.B /mnt/acme +(also bound to +.BR /mnt/wsys ) +and also +.BR /dev ; +the files mentioned here +appear in both those directories. +.PP +Some of these files supply virtual versions of services available from the underlying +environment, in particular the character terminal files +.IR cons (3). +(Unlike in +.IR rio (1), +each command under +.I acme +sees the same set of files; there is not a distinct +.B /dev/cons +for each window.) +Other files are unique to +.IR acme . +.TP +.B acme +is a subdirectory used by +.B win +(see +.IR acme (1)) +as a mount point for the +.I acme +files associated with the window in which +.B win +is running. +It has no specific function under +.I acme +itself. +.TP +.B cons +is the standard and diagnostic output file for all commands +run under +.IR acme . +(Input for commands is redirected to +.BR /dev/null .) +Text written to +.B cons +appears in a window labeled +.IB dir /+Errors\f1, +where +.I dir +is the directory in which the command +was run. +The window is created if necessary, but not until text is actually written. +.TP +.B consctl +Is an empty unwritable file present only for compatibility; there is no way +to turn off `echo', for example, under +.IR acme . +.TP +.B index +holds a sequence of lines of text, one per window. Each line has 5 decimal numbers, +each formatted in 11 characters plus a blank\(emthe window ID; +number of characters (runes) in the tag; +number of characters in the body; +a 1 if the window is a directory, 0 otherwise; +and a 1 if the window is modified, 0 +otherwise\(emfollowed by the tag up to a newline if present. +Thus at character position 5×12 starts the name of the window. +If a file has multiple zeroxed windows open, +only the most recently used will appear in the +.B index +file. +.TP +.B label +is an empty file, writable without effect, present only for compatibility with +.BR rio . +.TP +.B new +A directory analogous to the numbered directories +.RI ( q.v. ). +Accessing any +file in +.B new +creates a new window. Thus to cause text to appear in a new window, +write it to +.BR /dev/new/body . +For more control, open +.BR /dev/new/ctl +and use the interface described below. +.LP +.PP +Each +.I acme +window has associated a directory numbered by its ID. +Window IDs are chosen sequentially and may be discovered by the +.B ID +command, by +reading the +.B ctl +file, or +indirectly through the +.B index +file. The files in the numbered directories are as follows. +.TP +.B addr +may be written with any textual address (line number, regular expression, etc.), +in the format understood by button 3 but without the initial colon, including compound addresses, +to set the address for text accessed through the +.B data +file. +When read, it returns the value of the address that would next be read +or written through the +.B data +file, in the format +.BI # m ,# n +where +.I m +and +.I n +are character (not byte) offsets. If +.I m +and +.I n +are identical, the format is just +.BI # m\f1. +Thus a regular expression may be evaluated by writing it to +.B addr +and reading it back. +The +.B addr +address has no effect on the user's selection of text. +.TP +.B body +holds contents of the window body. It may be read at any byte offset. +Text written to +.B body +is always appended; the file offset is ignored. +.TP +.B ctl +may be read to recover the five numbers as held in the +.B index +file, described above, plus two more fields: the width of the +window in pixels and the name of the font used in the window. +Text messages may be written to +.B ctl +to affect the window. +Each message is terminated by a newline and multiple +messages may be sent in a single write. +.RS .5i +.TF limit=addr +.TP +.B addr=dot +Set the +.B addr +address to that of the user's selected text in the window. +.TP +.B clean +Mark the window clean as though it has just been written. +.TP +.B dirty +Mark the window dirty, the opposite of clean. +.TP +.B cleartag +Remove all text in the tag after the vertical bar. +.TP +.B del +Equivalent to the +.B Del +interactive command. +.TP +.B delete +Equivalent to the +.B Delete +interactive command. +.TP +.B dot=addr +Set the user's selected text in the window to the text addressed by the +.B addr +address. +.TP +.BI dump " command +Set the command string to recreate the window from a dump file. +.TP +.BI dumpdir " directory +Set the directory in which to run the command to recreate the window from a dump file. +.TP +.B get +Equivalent to the +.B Get +interactive command with no arguments; accepts no arguments. +.TP +.B limit=addr +When the +.B ctl +file is first opened, regular expression context searches in +.B addr +addresses examine the whole file; this message restricts subsequent +searches to the current +.B addr +address. +.TP +.B mark +Cancel +.BR nomark , +returning the window to the usual state wherein each modification to the +body must be undone individually. +.TP +.BI name " name +Set the name of the window to +.IR name . +.TP +.B nomark +Turn off automatic `marking' of changes, so a set of related changes +may be undone in a single +.B Undo +interactive command. +.TP +.B noscroll +Turn off automatic `scrolling' of the window to show text written to the body. +.TP +.B put +Equivalent to the +.B Put +interactive command with no arguments; accepts no arguments. +.TP +.B scroll +Cancel a +.B noscroll +message, returning the window to the default state wherein each write +to the +.B body +file causes the window to `scroll' to display the new text. +.TP +.B show +Guarantee at least some of the selected text is visible on the display. +.RE +.PD +.TP +.B data +is used in conjunction with +.B addr +for random access to the contents of the body. +The file offset is ignored when writing the +.B data +file; instead the location of the data to be read or written is determined by the state of the +.B addr +file. +Text, which must contain only whole characters (no `partial runes'), +written to +.B data +replaces the characters addressed by the +.B addr +file and sets the address to the null string at the end of the written text. +A read from +.B data +returns as many whole characters as the read count will permit starting +at the beginning of the +.B addr +address (the end of the address has no effect) +and sets the address to the null string at the end of the returned +characters. +.TP +.B event +When a window's +.B event +file is open, changes to the window occur as always but the +actions are also reported as +messages to the reader of the file. Also, user actions with buttons 2 and 3 +(other than chorded +.B Cut +and +.BR Paste , +which behave normally) have no immediate effect on the window; +it is expected that the program reading the +.B event +file will interpret them. +The messages have a fixed format: +a character indicating the origin or cause of the action, +a character indicating the type of the action, +four free-format blank-terminated decimal numbers, +optional text, and a newline. +The first and second numbers are the character addresses of the action, +the third is a flag, +and the final is a count of the characters in the optional text, which +may itself contain newlines. +The origin characters are +.B E +for writes to the +.B body +or +.B tag +file, +.B F +for actions through the window's other files, +.B K +for the keyboard, and +.B M +for the mouse. +The type characters are +.B D +for text deleted from the body, +.B d +for text deleted from the tag, +.B I +for text inserted to the body, +.B i +for text inserted to the tag, +.B L +for a button 3 action in the body, +.B l +for a button 3 action in the tag, +.B X +for a button 2 action in the body, and +.B x +for a button 2 action in the tag. +.IP +If the relevant text has less than 256 characters, it is included in the message; +otherwise it is elided, the fourth number is 0, and the program must read +it from the +.B data +file if needed. No text is sent on a +.B D +or +.B d +message. +.IP +For +.BR D , +.BR d , +.BR I , +and +.BR i +the flag is always zero. +For +.BR X +and +.BR x , +the flag is a bitwise OR (reported decimally) of the following: +1 if the text indicated is recognized as an +.I acme +built-in command; +2 if the text indicated is a null string that has a non-null expansion; +if so, another complete message will follow describing the expansion +exactly as if it had been indicated explicitly (its flag will always be 0); +8 if the command has an extra (chorded) argument; if so, +two more complete messages will follow reporting the argument (with +all numbers 0 except the character count) and where it originated, in the form of +a fully-qualified button 3 style address. +.IP +For +.B L +and +.BR l , +the flag is the bitwise OR of the following: +1 if +.I acme +can interpret the action without loading a new file; +2 if a second (post-expansion) message follows, analogous to that with +.B X +messages; +4 if the text is a file or window name (perhaps with address) rather than +plain literal text. +.IP +For messages with the 1 bit on in the flag, +writing the message back to the +.B event +file, but with the flag, count, and text omitted, +will cause the action to be applied to the file exactly as it would +have been if the +.B event +file had not been open. +.TP +.B tag +holds contents of the window tag. It may be read at any byte offset. +Text written to +.B tag +is always appended; the file offset is ignored. +.SH SOURCE +.B /sys/src/cmd/acme +.SH SEE ALSO +.IR rio (1), +.IR acme (1), +.IR cons (3). diff --git a/static/plan9-4e/man4/archfs.4 b/static/plan9-4e/man4/archfs.4 new file mode 100644 index 00000000..0ba744c5 --- /dev/null +++ b/static/plan9-4e/man4/archfs.4 @@ -0,0 +1,46 @@ +.TH ARCHFS 4 +.SH NAME +archfs \- mount mkfs-style archive +.SH SYNOPSIS +.B archfs +[ +.B -abcC +] +[ +.B -m +.I mtpt +] +.I archfile +.SH DESCRIPTION +.I Archfs +mounts at +.I mtpt +(default +.BR /mnt/arch ) +a file system presenting the contents of an +archive in the format produced by +the +.B -a +flag to +.IR mkfs (8). +The +.BR -a , +.BR -b , +.BR -c , +and +.B -C +flags control the flag argument +to the +.B mount +system call +(see +.IR bind (2)) +as in the +.B mount +command +(see +.IR bind (1)). +.SH SOURCE +.B /sys/src/cmd/archfs.c +.SH SEE ALSO +.IR mkfs (8) diff --git a/static/plan9-4e/man4/cdfs.4 b/static/plan9-4e/man4/cdfs.4 new file mode 100644 index 00000000..ad8548a2 --- /dev/null +++ b/static/plan9-4e/man4/cdfs.4 @@ -0,0 +1,172 @@ +.TH CDFS 4 +.SH NAME +cdfs, cddb \- CD reader and writer file system +.SH SYNOPSIS +.B cdfs +[ +.B -d +.I sddev +] +[ +.B -m +.I mtpt +] +.br +.B "grep aux/cddb /mnt/cd/ctl | rc +.SH DESCRIPTION +.I Cdfs +serves a one and a half level directory +mounted at +.I mtpt +(default +.BR /mnt/cd ) +that provides access to the tracks +on CDs placed in the CD reader or writer +named by +.I sddev +(default +.BR /dev/sdD0 , +see +.IR sd (3)). +.PP +The top level directory contains one file +per CD track. +The files are named +.IR cNNN , +where +.I c +is a type character +.RB ( a +for audio tracks +and +.B d +for data tracks) +and +.I NNN +is the track number. +.PP +If the device is capable of writing CDs +and contains a writable CD, the top level +directory also contains two empty +directories +.B wa +and +.BR wd . +Files created in these directories +appear in the top level directory +as new audio or data tracks, regardless of name. +.PP +At any time, any number of tracks +may be open for reading or a single track +may be open for writing. +Writing a CD track is a real-time operation: +the CD writer must be kept saturated with +new data to avoid buffer underruns. +To ensure this, copying from a file system +stored on local disk is recommended. +.PP +To fixate a CD (close a writable CD by writing +its permanent table of contents), simply +remove the +.B wa +or +.B wd +directory. +The directory removed selects whether +the CD is fixated as an audio or data CD; +since each track carries its own type information, +very few readers care which fixation type was used. +.PP +The top level directory +also contains a +.B ctl +file, into which control messages +may be echoed. +The current control messages are: +.TF "\fLquickblank " +.TP +.B blank +Blank the entire rewritable CD in the drive. +.TP +.B quickblank +Blank only the table of contents on the rewritable +CD in the drive. +.TP +.B eject +Eject the CD in the drive. +.TP +.B ingest +Ingest a CD into the drive. +.TP +.B speed \fIkpbs\fR +Set the reading and writing speed to use. +Drives may round down the speed to one they support. +To set reading and writing speeds separately, +prefix the speeds with +.B read +or +.BR write , +as in +.B speed +.B write +.B 8192 +or +.B speed +.B read +.B 16384 +.B write +.BR 8192. +Note that most drives reset the reading and writing speed +each time a new CD is inserted. +.PD +.PP +Reading the +.B ctl +file yields information about the drive. +If the drive contains an audio CD, the first line +will be an +.B aux/cddb +command that can be run to query +an internet CD database +to get a table of contents. +Subsequent lines contain the current and maximum +reading and writing speeds. +.PD +.PP +Only MMC-compliant CD readers and writers +are supported, but it would be easy to add +support for early CD writers if desired. +.SH EXAMPLE +Copy the audio tracks from a CD: +.IP +.EX +cdfs -d /dev/sd05 +mkdir /tmp/songs +cp /mnt/cd/a* /tmp/songs +.EE +.PP +Copy the tracks onto a blank CD inserted in the drive, +and then fixate the disk as an audio CD. +.IP +.EX +cp /tmp/songs/* /mnt/cd/wa +rm /mnt/cd/wa +.EE +.PP +Cut your own 9660 CD-ROM, without +spooling the CD image to a temporary file. +.IP +.EX +disk/mk9660 -9cj -n notice cdproto >/mnt/cd/wd/foo +rm /mnt/cd/wd +.EE +.SH SOURCE +.B /sys/src/cmd/cdfs +.SH SEE ALSO +.IR sd (3), +.I 9660srv +(in +.IR dossrv (4)), +.IR mk9660 (8) +.SH BUGS +There should be support for DVDs. diff --git a/static/plan9-4e/man4/cfs.4 b/static/plan9-4e/man4/cfs.4 new file mode 100644 index 00000000..e7f6d378 --- /dev/null +++ b/static/plan9-4e/man4/cfs.4 @@ -0,0 +1,95 @@ +.TH CFS 4 +.SH NAME +cfs \- cache file system +.SH SYNOPSIS +.B cfs +.B -s +.RB [ -rdS ] +.RB [ -f +.IR partition ] +.PP +.B cfs +.B -a +.I netaddr +.RB [ -rdS ] +.RB [ -f +.IR partition ] +.RI [ mtpt ] +.SH DESCRIPTION +.I Cfs +is a user-level file server that caches information about remote +files onto a local disk. +It is normally started by the kernel at boot time, though users may start +it manually. +.I Cfs +is interposed between the kernel and a network connection to a +remote file server to improve the +efficiency of access across slow network connections such as modem +lines. +On each open of a file +.I cfs +checks the consistency of cached information and discards any old +information for that file. +.PP +.I Cfs +mounts onto +.I mtpt +(default +.BR / ) +after connecting to the file server. +.PP +The options are: +.TP +.B s +the connection to the remote file server is on file +descriptors 0 and 1. +.TP +.BI "a " netaddr +dial the destination +.I netaddr +to connect to a remote file server. +.TP +.B r +reformat the cache disk partition. +.TP +.B d +turn on debugging. +.TP +.B S +turn on statistics gathering. A file called +.B cfsctl +at the root of the caching file system can be read to get +statistics concerning number of calls/bytes on client and server +sides and latencies. +.TP +.BI "f " partition +use file +.I partition +as the cache disk partition. +.PP +All 9P messages except +.BR read , +.BR clone , +and +.B walk +(see +.IR intro (5)) +are passed through +.I cfs +unchanged to the remote server. +A +.B clone +followed immediately by a +.B walk +is converted into a +.BR clwalk . +If possible, a +.B read +is satisfied by cached data. +Otherwise, the file server is queried for any missing data. +.SH FILES +.TP +.B /dev/sdC0/cache +Default file used for storing cached data. +.SH SOURCE +.B /sys/src/cmd/cfs diff --git a/static/plan9-4e/man4/consolefs.4 b/static/plan9-4e/man4/consolefs.4 new file mode 100644 index 00000000..ea246bca --- /dev/null +++ b/static/plan9-4e/man4/consolefs.4 @@ -0,0 +1,216 @@ +.TH CONSOLEFS 4 +.SH NAME +consolefs, C, clog \- file system for console access +.SH SYNOPSIS +.B aux/consolefs +[ +.B -m +.I mntpt +] [ +.B -c +.I consoledb +] +.PP +.B C +.I system +.PP +.B aux/clog +console log +.I system +.SH DESCRIPTION +To ease administration of multiple machines one might attach +many serial console lines to a single computer. +.I Consolefs +is a file system that lets multiple users simultaneously access +these console lines. +The consoles and permissions to access them are defined in the +file +.I consoledb +(default +.BR /lib/ndb/consoledb ). +The format of +.I consoledb +is the same as that of other +.B /lib/ndb +files, +.IR ndb (6). +Consoles are defined by entries of the form: +.PP +.EX + console=dirty dev=/dev/eia205 + uid=bignose + gid=support + speed=56200 + cronly= +.EE +.PP +Each +.IR console / dev +pair represents the name of a console and the serial line device +associated with it. +.I Consolefs +presents a single level directory with two files +per console: +.I console +and +.IB console ctl\f1. +Writes of +.I console +are equivalent to writes of +.I dev +and reads and writes of +.IB console ctl +are equivalent to reads and writes of +.IB dev ctl\f1. +.I Consolefs +broadcasts anything it reads from +.I dev +to all readers of +.IR console . +Therefore, many users can +.IR con (1) +to a +.IR console , +see all output, and enter commands. +.PP +The +.I cronly= +attribute causes newlines typed by the user to be sent to +the console as returns. +The +.I speed=x +attribute/value pair specifies a bit rate for the +console. The default is 9600 baud. +.PP +Access to the console is controlled by the +.I uid +and +.I gid +attributes/value pairs. +The uid values are user account names. +The gid values are the names of groups defined in +.I consolefs +by entries of the form: +.PP +.EX + group=support + uid=bob + uid=carol + uid=ted + uid=alice +.EE +.PP +Groups are used to avoid excessive typing. Using +.I gid=x +is equivalent to including a +.I uid=y +for each user +.I y +that is a member of +.IR x . +.PP +To keep users from inadvertently interfering with one another, +notification is broadcast to all readers whenever a user +opens or closes +.IR name . +For example, if user +.B boris +opens a console that users +.B vlad +and +.B barney +have already opened, all will read the message: +.PP +.EX + [+boris, vlad, barney] +.EE +.PP +If +.B vlad +then closes, +.B boris +and +.B barney +will read: +.PP +.EX + [-vlad, boris, barney] +.EE +.PP +.I Consolefs +posts the client end of its 9P channel in +.BR /srv/consolefs +and mounts this locally in +.I mntpt +(default +.BR /mnt/consoles ); +remote clients must +.B mount +(see +.IR bind (1)) +this file to see the consoles. +.PP +The +.IR rc (1) +script +.B C +automates this procedure. +It uses +.IR import (4) +to connect to +.B /mnt/consoles +on the machine connected to all the consoles, then uses +.IR con (1) +to connect to the console of the machine +.IR system. +The script must be edited at installation +by the local administration to identify the +system that holds +.BR /mnt/consoles . +.PP +.I Aux/clog +opens the file +.I console +and writes every line read from it, prefixed +by the ASCII time to the file +.IR log . +.PP +An example of 2 consoles complete with console logging is: +.IP +.EX +% aux/consolefs +% ls -p /mnt/consoles +bootes +bootesctl +fornax +fornaxctl +% clog /mnt/consoles/fornax /sys/log/fornax & +% clog /mnt/consoles/bootes /sys/log/bootes & +.EE +.SH FILES +.TF /lib/ndb/consoledb +.TP +.B /srv/consoles +Client end of pipe to server. +.TP +.B /mnt/consoles +Default mount point. +.TP +.B /lib/ndb/consoledb +Default user database. +.SH SOURCE +.B /sys/src/cmd/aux/consolefs.c +.br +.B /rc/bin/C +.br +.B /sys/src/cmd/aux/clog.c +.SH BUGS +.PP +Changing the gid's or uid's while +.I consoelfs +is running +is detected by +.IR consolefs . +However, to add new consoles +one must restart +.IR consolefs . diff --git a/static/plan9-4e/man4/dossrv.4 b/static/plan9-4e/man4/dossrv.4 new file mode 100644 index 00000000..40749a08 --- /dev/null +++ b/static/plan9-4e/man4/dossrv.4 @@ -0,0 +1,217 @@ +.TH DOSSRV 4 +.SH NAME +dossrv, 9660srv, a:, b:, c:, d:, 9fat:, dosmnt, eject \- DOS and ISO9660 file systems +.SH SYNOPSIS +.B dossrv +[ +.B -v +] [ +.B -r +] [ +.B -s +] [ +.B -f +.I file +] [ +.I service +] +.PP +.B 9660srv +[ +.B -9J +] [ +.B -v +] [ +.B -s +] [ +.B -f +.I file +] [ +.I service +] +.PP +.B a: +.PP +.B b: +.PP +.B c: +.PP +.B 9fat: +.PP +.B dosmnt +.I n +.I mtpt +.PP +.B eject +[ +.I n +] +.SH DESCRIPTION +.I Dossrv +is a file server that interprets DOS file systems. +A single instance of +.I dossrv +can provide access to multiple DOS disks simultaneously. +.PP +.I Dossrv +posts a file descriptor named +.I service +(default +.BR dos ) +in the +.B /srv +directory. +To access the DOS file system on a device, use +.B mount +with the +.I spec +argument +(see +.IR bind (1)) +the name of the file holding raw DOS file system, typically the disk. +If +.I spec +is undefined in the +.BR mount , +.I dossrv +will use +.I file +as the default name for the device holding the DOS system. +.PP +Normally +.I dossrv +creates a pipe to act as the communications channel between +itself and its clients. +The +.B -s +flag instructs +.I dossrv +to use its standard input and output instead. +The kernels use this option if they are booting from a DOS disk. +This flag also prevents the creation of an explicit service file in +.BR /srv . +.PP +The +.B -v +flag causes verbose output for debugging, while +the +.B -r +flag makes the file system read-only. +.PP +The shell script +.I a: +contains +.IP +.EX +unmount /n/a: >[2] /dev/null +mount -c /srv/dos /n/a: /dev/fd0disk +.EE +.LP +and is therefore a shorthand for mounting a floppy disk in drive A. +The scripts +.I b: +and +.I dosmnt +are similar, +mounting the second floppy disk +and the +.IR n th +non-floppy DOS partition, +respectively. +.I C: +and +.I d: +call +.I dosmnt +in an attempt to name the drives in +the same order that Microsoft operating systems do. +.I 9fat: +provides access to the FAT component of the Plan 9 partition (see +.IR prep (8)). +.PP +The file attribute flags used by the DOS file system +do not map directly to those used by Plan 9. +Since there is no concept of user or group, +permission changes via +.B wstat +(see +.IR stat (2)) +will fail unless the same (read, write, execute) permissions +are specified for user, group, and other. +For example, removing write permission in Plan 9 +corresponds to setting the read-only +attribute in the DOS file system. +Most of the other DOS attributes +are not accessible. +.PP +Setting the exclusive use flag (DMEXCL) +in Plan 9 corresponds to setting the +system use attribute in the DOS file system. +Such files are not actually restricted to exclusive use, +but do merit special treatment that +helps in the creation of boot disks: +when +.I dossrv +allocates a new block for such a file +(caused, say, by a write that fills the file's +last allocated block), it succeeds only if it can +arrange for the file to be stored +contiguously on disk. +.PP +Since other operating systems do not +guarantee that system files are laid +out contiguously, the DMAPPEND mode +bit is set in file stat information +only when the file is currently contiguous. +Attempts to set the DMAPPEND mode bit +explicitly will cause +.I dossrv +to try to make the file contiguous, +succeeding only if this is possible. +.PP +.I 9660srv +is similar to +.I dossrv +in specification, except that it interprets ISO9660 CD-ROM +file systems instead of DOS file systems. +Some CDs contain multiple directory trees describing +the same set of files. +.IR 9660srv 's +first choice in such a case is a standard ISO9660 tree +with Plan 9 system use fields; +the second choice is a Microsoft ``Joliet'' tree, which +allows long file names and Unicode characters; +the third choice is a standard ISO9660 or High Sierra tree. +The +.B -9 +flag causes +.I 9660srv +to ignore the Plan 9 system use fields, +while the +.B -J +flag causes it to +ignore the Joliet tree. +.PP +If the floppy drive has an ejection motor, +.I eject +will spit out the floppy from drive +.IR n , +default 0. +.SH EXAMPLE +Mount a floppy disk with a DOS file system on it. +.IP +.EX +a: +.EE +.SH "SEE ALSO" +.IR kfs (4) +.SH SOURCE +.B /sys/src/cmd/dossrv +.br +.B /sys/src/cmd/9660srv +.br +.B /rc/bin/eject +.SH BUGS +The overloading of the semantics of +the DMEXCL and DMAPPEND +bits can be confusing. diff --git a/static/plan9-4e/man4/execnet.4 b/static/plan9-4e/man4/execnet.4 new file mode 100644 index 00000000..9375a14b --- /dev/null +++ b/static/plan9-4e/man4/execnet.4 @@ -0,0 +1,67 @@ +.TH EXECNET 4 +.SH NAME +execnet \- network interface to program execution +.SH SYNOPSIS +.B execnet +[ +.B -n +.I name +] +[ +.B netdir +] +.SH DESCRIPTION +.I Execnet +presents a network protocol directory +(see, for example, +.IR ip (3)) +called +.IB netdir / name +(default +.BR /net/exec ). +.PP +Once the protocol directory exists, dialing +(see +.IR dial (2)) +strings of +the form +.IB name ! cmd +will connect to a newly executed instance of +.IR cmd . +.SH EXAMPLE +.I Execnet +can be used to connect to instances of +.IR u9fs (4) +running on other hosts: +.EX + g% execnet + g% srv -m 'exec!ssh ny start-u9fs' ny /n/ny +.EE +This example assumes that the remote command +.B start-u9fs +executed on +.B ny +will start +.I u9fs +appropriately. +For example, it might be: +.EX + ny% cat start-u9fs + #!/bin/sh + + u9fs -na none -u $USER -l $HOME/tmp/u9fs.log + ny% +.EE +See the +.IR u9fs (4) +man page for more information. +.SH SOURCE +.B /sys/src/cmd/execnet +.SH "SEE ALSO +.IR dial (2), +.IR ip (3), +.IR u9fs (4) +.SH BUGS +Almost certainly: +.IR execnet +has only been tested as in the example shown. diff --git a/static/plan9-4e/man4/exportfs.4 b/static/plan9-4e/man4/exportfs.4 new file mode 100644 index 00000000..9f867d85 --- /dev/null +++ b/static/plan9-4e/man4/exportfs.4 @@ -0,0 +1,205 @@ +.TH EXPORTFS 4 +.SH NAME +exportfs, srvfs \- network file server plumbing +.SH SYNOPSIS +.B exportfs +[ +.B -ads +] [ +.B -f +.I dbgfile +] [ +.B -m +.I msize +] [ +.B -r +.I root +] [ +.B -S +.I service +] [ +.B -A announce +] +.PP +.B srvfs +[ +.B -d +] +[ +.B -e +.I "'enc auth'" +] +[ +.B -p +.I filter +] +.I name +.I path +.SH DESCRIPTION +.I Exportfs +is a user level file server that allows Plan 9 compute servers, rather +than file servers, to export portions of a name space across networks. +The service is started either by the +.IR cpu (1) +command or by a network listener process. An initial protocol +establishes a root directory for the exported name space. +The +connection to +.I exportfs +is then mounted, typically on +.BR /mnt/term . +.I Exportfs +then acts as a relay file server: operations in the imported file +tree are executed on the remote server and the results returned. This +gives the appearance of exporting a name space from a remote machine +into a local file tree. +.PP +The +.B -r +option bypasses the initial protocol, instead immediately +serving the name space rooted at +.IR root . +The +.B -s +option is equivalent to +.B -r +.BR / , +but predates +.B -r +and remains for compatibility. +.PP +The +.B -S +option also bypasses the initial protocol but +serves the result of mounting +.IR service . +A separate mount is used for each +.IR attach (5) +message, +to correctly handle servers in which each mount +corresponds to a different client +.IR e.g. , ( +.IR rio (4)). +.PP +The +.B -m +option sets the maximum message size that +exportfs should offer to send (see +.IR version (5)); +this helps tunneled +9P connections to avoid unnecessary fragmentation. +.PP +The +.B -a +option instructs +.I exportfs +to authenticate the user, usually because it is +being invoked from a remote machine. +.PP +The +.B -d +option instructs +.I exportfs +to log all 9P traffic to +.I dbgfile +(default +.BR /tmp/exportdb ). +.PP +The +.B -e +option specifies the encryption and authentication algorithms to use for +encrypting the wire traffic. The defaults are +.B rc4_256 +and +.BR sha1 . +The full list of supported protocols in in +.IR ssl (3). +.PP +The +.B cpu +command uses +.I exportfs +to serve device files in the terminal. The +.IR import (4) +command calls +.I exportfs +on a remote machine, permitting users to access arbitrary pieces of +name space on other systems. +Because the kernel disallows reads and writes on mounted pipes +(as might be found in +.BR /srv ), +.I exportfs +calls itself (with appropriate +.B -m +and +.B -S +options) to simulate reads and writes on such files. +.PP +.I Srvfs +invokes +.I exportprog +(default +.BR /bin/exportfs ) +to create a mountable file system from a name space +and posts it at +.BI /srv/ name , +which is created with mode +.I perm +(default 0600). +By default, the name space is the directory tree rooted at +.IR path . +If the +.B -S +option is given, the name space is obtained by +mounting +.B path +(typically a file in +.BR /srv ). +If the +.B -d +option is given, +.I srvfs +passes it to +.I exportprog +to enable debugging. +.PP +The +.B -A +filter specifies an announce string when exportfs is used in combination +with aan. The announce string identifies the network and network +protocol to use for aan connections. +.SH EXAMPLES +Use +.I srvfs +to enable mounting of an FTP file system (see +.IR ftpfs (4)) +in several windows, +or to publish a +.B /proc +(see +.IR proc (3)) +with a broken process so a remote person may debug the program: +.IP +.EX +srvfs ftp /n/ftp +srvfs broke /mnt/term/proc +.EE +.LP +Use +.I srvfs +to obtain a copy of a service to be manipulated directly +by a user program like +.IR nfsserver (8): +.IP +.EX +srvfs nfs.boot /srv/boot +aux/nfsserver -f /srv/nfs.boot +.EE +.SH SOURCE +.B /sys/src/cmd/exportfs +.br +.B /sys/src/cmd/srvfs.c +.SH SEE ALSO +.IR aan (1), +.IR import (4), +.IR exportfs (4) diff --git a/static/plan9-4e/man4/factotum.4 b/static/plan9-4e/man4/factotum.4 new file mode 100644 index 00000000..38d8dfc4 --- /dev/null +++ b/static/plan9-4e/man4/factotum.4 @@ -0,0 +1,679 @@ +.TH FACTOTUM 4 +.SH NAME +factotum, fgui, secretpem\- authentication agent and its graphics interface +.SH SYNOPSIS +.B auth/factotum +[ +.B -DdkSun +] [ +.B -a asaddr +] [ +.B -s +.I srvname +] [ +.B -m +.I mtpt +] +.PP +.B auth/factotum +.B -g +.IB attribute = value +.B ... +.IB attribute ? +.B ... +.PP +.B auth/fgui +.PP +.B auth/secretpem +.I key.pem +.SH DESCRIPTION +.I Factotum +is a user-level file system that +acts as the authentication agent for a user. +It does so by managing a set of +.IR keys . +A key is a collection of information used to authenticate a particular action. +Stored as a list of +.IB attribute = value +pairs, a key typically contains a user, an authentication domain, a protocol, and +some secret data. +.PP +.I Factotum +presents a two level directory. The first +level contains a single directory +.BR factotum , +which in turn contains: +.TF needkey +.TP +.B rpc +each open represents a new private channel to +.I factotum +.TP +.B proto +when read lists the protocols available +.TP +.B confirm +for confiming the use of key +.TP +.B needkey +allows external programs to control the addition of new keys +.TP +.B log +a log of actions +.TP +.B ctl +for maintaining keys; when read, it returns a list of keys (without the secret data) +.PD +.PP +In any authentication, the caller typically acts as a client +and the callee as a server. The server determines +the authentication domain, sometimes after a negotiation with +the client. Authentication always requires the client to +prove its identity to the server. Under some protocols, the +authentication is mutual. +Proof is accomplished using secret information kept by factotum +in conjunction with a cryptographic protocol. +.PP +.I Factotum +can act in the role of client for any process possessing the +same user id as it. For select protocols such as +.B p9sk1 +it can also act as a client for other processes provided +its user id may speak for the other process' user id (see +.IR authsrv (6)). +.I Factotum +can act in the role of server for any process. +.PP +.IR Factotum 's +structure is independent of +any particular authentication protocol. +.I Factotum +supports the following protocols: +.TF sshrsa +.TP +.B p9any +a metaprotocol used to negotiate which actual protocol to use. +.TP +.B p9sk1 +a Plan 9 shared key protocol described in +.IR authsrv (6)'s +``File Service'' section. +.TP +.B p9sk2 +a variant of +.B p9sk1 +described in +.IR authsrv (6)'s +``Remote Execution'' section. +.TP +.B p9cr +a Plan 9 protocol that can use either +.B p9sk1 +keys or SecureID tokens. +.TP +.B apop +the challenge/response protocol used by POP3 mail servers. +.TP +.B cram +the challenge/response protocol also used by POP3 mail servers. +.TP +.B chap +the challenge/response protocols used by PPP and PPTP. +.TP +.B mschap +a proprietary Microsoft protocol also used by PPP and PPTP. +.TP +.B sshrsa +an public key protocol used by ssh. +.TP +.B pass +passwords in the clear. +.TP +.B vnc +.IR vnc (1)'s +challenge/response. +.PD +.PP +The options are: +.TP +.B \-a +supplies the address of the authentication server to use. +Without this option, it will attempt to find an authentication server by +querying the connection server, the file +.BR /ndb , +and finally the network database in +.BR /lib/ndb . +.TP +.B \-m +specifies the mount point to use, by default +.BR /mnt . +.TP +.B \-s +specifies the service name to use. +Without this option, +.I factotum +does not create a service file in +.BR /srv . +.TP +.B \-D +turns on 9P tracing, written to standard error. +.TP +.B \-d +turns on debugging, written to standard error. +.TP +.B \-g +causes the agent to prompt for the key, write it +to the +.B ctl +file, and exit. +The agent will prompt for values for any of the +attributes ending with a question mark +.RB ( ? ) +and will append all the supplied +.I attribute = value +pairs. See the section on key templates below. +.TP +.B \-n +don't look for a secstore. +.TP +.B \-S +indicates that the agent is running on a +cpu server. On starting, it will attempt to get a +.B 9psk1 +key from NVRAM using +.B readnvram +(see +.IR authsrv (2)), +prompting for anything it needs. +It will never subsequently prompt for a +key that it doesn't have. +This option is typically used by +the kernel at boot time. +.TP +.B \-k +causes the NVRAM to be written. +It is only valid with the +.B \-S +option. +This option is typically used by +the kernel at boot time. +.TP +.B \-u +causes the agent to prompt for user +id and writes it to +.BR /dev/hostowner . +It is mutually exclusive with +.B \-k +and +.BR \-S . +This option is typically used by +the kernel at boot time. +.PD +.PP +.I Fgui +is a graphic user interface for confirming key usage and +entering new keys. It hides the window in which it starts +and waits reading requests from +.B confirm +and +.BR needkey . +For each requests, it unhides itself and waits for +user input. +See the sections on key confirmation and key prompting below. +.SS "Key Tuples +.PP +A +.I "key tuple +is a space delimited list of +.IB attribute = value +pairs. An attribute whose name begins with an exclamation point +.RB ( ! ) +does not appear when reading the +.B ctl +file. +The required attributes depend on the authentication protocol. +.PP +.BR P9sk1 , +.BR p9sk2 , +and +.BR p9cr +all require a key with +.BR proto = p9sk1 , +a +.B dom +attribute identifying the authentication domain, a +.B user +name valid in that domain, and either a +.B !password +or +.B !hex +attribute specifying the password or hexadecimal secret +to be used. Here is an example: +.PP +.EX + proto=p9sk1 dom=avayalabs.com user=presotto !password=lucent +.EE +.PP +.BR Apop , +.BR cram , +.BR chap , +.BR mschap , +and +.B vnc +require a key with a +.B proto +attribute whose value matches the protocol, +in addition to +.BR dom , +.BR user , +and +.B !password +attributes; +e.g. +.PP +.EX + proto=apop dom=mit.edu user=rsc !password=nerdsRus +.EE +.PP +.B Pass +requires a key with +.B proto=pass +in addition to +.B user +and +.B !password +attributes; e.g. +.PP +.EX + proto=pass user=tb !password=does.it.matter +.EE +.PP +.B Sshrsa +requires a key with +.B proto=sshrsa +in addition to all the hex attributes defining an RSA key: +.BR ek , +.BR n , +.BR !p , +.BR !q , +.BR !kp , +.BR !kq , +.BR !c2 , +and +.BR !dk . +.PP +All keys can have additional attibutes that act either as comments +or as selectors to distinguish them in the +.IR auth (2) +library calls. +.PP +Any key may have a +.B role +attribute for restricting how it can be used. +If this attribute is missing, the key can be used in any role. +The possible values are: +.TP +.B client +for authenticating outbound calls +.TP +.B server +for authenticating inbound calls +.TP +.B speaksfor +for authenticating processes whose +user id does not match +.IR factotum 's. +.PD +.PP +Whenever +.I factotum +runs as a server, it must have a +.B p9sk1 +key in order to communicate with the authentication +server for validating passwords and challenge/responses of +other users. +.SS "Key Templates +Key templates are used by routines that interface to +.I factotum +such as +.B auth_proxy +and +.B auth_challenge +(see +.IR auth (2)) +to specify which key and protocol to use for an authentication. +Like a key tuple, a key template is also a list of +.IB attribute = value +pairs. +It must specify at least the protocol and enough +other attributes to uniquely identify a key, or set of keys, to use. +The keys chosen are those that match all the attributes specified +in the template. The possible attribute/value formats are: +.TP 1i +.IB attr = val +The attribute +.I attr +must exist in the key and its value must exactly +match +.I val +.TP 1i +.IB attr ? +The attribute +.I attr +must exist in the key but its value doesn't matter. +.TP 1i +.I attr +The attribute +.I attr +must exist in the key with a null value +.PD +.PP +Key templates are also used by factotum to request a key either via +an RPC error or via the +.B needkey +interface. +The possible attribute/value formats are: +.TP 1i +.IB attr = val +This pair must remain unchanged +.TP 1i +.IB attr ? +This attribute needs a value +.TP 1i +.I attr +The pair must remain unchanged +.PD +.SS "Control and Key Management +.PP +A number of messages can be written to the control file. +The mesages are: +.TP +.B "key \fIattribute-value-list\fP +add a new key. This will replace any old key whose +public, i.e. non ! attributes, match. +.TP +.B "delkey \fIattribute-value-list\fP +delete a key whose attributes match those given. +.TP +.B debug +toggle debugging on and off, i.e., the debugging also +turned on by the +.B \-d +option. +.PP +By default when factotum starts it looks for a +.IR secstore (1) +account on $auth for the user and, if one exists, +prompts for a secstore password in order to fetch +the file +.IR factotum , +which should contain control file commands. +An example would be +.EX + key dom=x.com proto=p9sk1 user=boyd !hex=26E522ADE2BBB2A229 + key proto=sshrsa size=1024 ek=3B !dk=... +.EE +where the first line sets a password for +challenge / response authentication, strong against dictionary +attack by being a long random string, and the second line +sets a public / private keypair for ssh authentication, +generated by +.B ssh_genkey +(see +.IR ssh (1)). +.PD +.SS "Confirming key use +.PP +The +.B confirm +file provides a connection from +.I factotum +to a confirmation server, normally the program +.IR auth/fgui . +Whenever a key with the +.B confirm +attribute is used, +.I factotum +requires confirmation of its use. If no process has +.B confirm +opened, use of the key will be denied. +However, if the file is opened a request can be read from it +with the following format: +.PP +.B confirm +.BI tag= tagno +.I " +.PP +The reply, written back to +.BR confirm , +consists of string: +.PP +.BI tag= tagno +.BI answer= xxx +.PP +If +.I xxx +is the string +.B yes +then the use is confirmed and the authentication will proceed. +Otherwise, it fails. +.PP +.B Confirm +is exclusive open and can only be opened by a process with +the same user id as +.IR factotum . +.SS "Prompting for keys +.PP +The +.B needkey +file provides a connection from +.I factotum +to a key server, normally the program +.IR auth/fgui . +Whenever +.I factotum +needs a new key, it first checks to see if +.B needkey +is opened. If it isn't, it returns a error to its client. +If the file is opened a request can be read from it +with the following format: +.PP +.B needkey +.BI tag= tagno +.I " +.PP +It is up to the reader to then query the user for any missing fields, +write the key tuple into the +.B ctl +file, and then reply by writing into the +.B needkey +file the string: +.PP +.BI tag= tagno +.PP +.B Needkey +is exclusive open and can only be opened by a process with +the same user id as +.IR factotum . +.SS "The RPC Protocol +Authentication is performed by +.IP 1) +opening +.BR rpc +.IP 2) +setting up the protocol and key to be used (see the +.B start +RPC below), +.IP 3) +shuttling messages back and forth between +.IR factotum +and the other party (see the +.B read +and +.B write +RPC's) until done +.IP 4) +if successful, reading back an +.I AuthInfo +structure (see +.IR authsrv (2)). +.PP +The RPC protocol is normally embodied by one of the +routines in +.IR auth (2). +We describe it here should anyone want to extend +the library. +.PP +An RPC consists of writing a request message to +.B rpc +followed by reading a reply message back. +RPC's are strictly ordered; requests and replies of +different RPC's cannot be interleaved. +Messages consist of of a verb, a singe space, and data. +The data format depends on the verb. The request verbs are: +.TP +.B "start \fIattribute-value-list\fP +start a new authentication. +.I Attribute-value-pair-list +must include a +.B proto +attribute, a +.B role +attribute with value +.B client +or +.BR server , +and enough other attibutes to uniquely identify a key to use. +A +.B start +RPC is required before any others. The possible replies are: +.RS +.TP +.B ok +start succeeded. +.TP +.B "error \fIstring\fP +where +.I string +is the reason. +.RE +.PD +.TP +.B read +get data from +.I factotum +to send to the other party. The possible replies are: +.RS +.TP +.B ok +read succeeded, this is zero length message. +.TP +.B "ok \fIdata\fP +read succeeded, the data follows the space and is +unformatted. +.TP +.B "done +authentication has succeeded, no further RPC's are +necessary +.TP +.B "done haveai +authentication has succeeded, an +.B AuthInfo +structure (see +.IR auth (2)) +can be retrieved with an +.B authinfo +RPC +.TP +.B "phase \fIstring\fP +its not your turn to read, get some data from +the other party and return it with a write RPC. +.TP +.B "error \fIstring\fP +authentication failed, +.I string +is the reason. +.TP +.B "protocol not started +a +.B start +RPC needs to be preceed reads and writes +.TP +.B "needkey \fIattribute-value-list\fP +a key matching the argument is needed. This argument +may be passed as an argument to +.I factotum +.B -g +in order to prompt for a key. After that, the +authentication may proceed, i.e., the read restarted. +.PD +.RE +.TP +.B "write \fIdata\fP +send data from the other party to +.IR factotum . +The possible replies are: +.RS +.TP +.B "ok +the write succeeded +.TP +.B "needkey \fIattribute-value-list\fP +see above +.TP +.B "toosmall \fIn\fP +the write is too short, get more data from the +other party and retry the write. +.I n +specifies the maximun total number of bytes. +.TP +.B "phase \fIstring\fP +its not your turn to write, get some data from +.I factotum +first. +.TP +.B "done +see above +.TP +.B "done haveai +see above +.RE +.TP +.B authinfo +retrieve the AuthInfo structure. +The possible replies are: +.RS +.TP +.B "ok \fIdata\fP +.I data +is a marshaled form of the AuthInfo structure. +.TP +.B "error \fIstring\fP +where +.I string +is the reason for the error. +.PD +.RE +.TP +.B attr +retrieve the attributes used in the +.B start +RPC. +The possible replies are: +.RS +.TP +.B "ok \fIattribute-value-list\fP +.TP +.B "error \fIstring\fP +where +.I string +is the reason for the error. +.PD +.RE +.PP +.I Secretpem +copies a PEM-format RSA private key onto standard output in sshrsa key syntax, +suitable for sending to +.IR /mnt/factotum/ctl . +.SH SOURCE +.B /sys/src/cmd/auth/factotum/ diff --git a/static/plan9-4e/man4/fs.4 b/static/plan9-4e/man4/fs.4 new file mode 100644 index 00000000..20a60653 --- /dev/null +++ b/static/plan9-4e/man4/fs.4 @@ -0,0 +1,148 @@ +.TH FS 4 +.SH NAME +fs \- file server, dump +.SH SYNOPSIS +.I none +.SH DESCRIPTION +The file server is the main file system for +Plan 9. +It is a stand-alone system that runs on +a separate computer. +It serves the Plan 9 protocol via the IL/IP +protocols on Ethernets. +The name of the main file server at Murray Hill is +.BR emelie . +.PP +The file server normally requires all users except +.L none +to provide authentication tickets on each +.IR attach (5). +This can be disabled using the +.B noauth +configuration command (see +.IR fsconfig (8)). +.PP +The group numbered 9999, normally called +.BR noworld , +is special +on the file server. Any user belonging to that group has +attenuated access privileges. Specifically, when checking such +a user's access to files, the file's permission bits are first ANDed +with 0770 for normal files or 0771 for directories. The effect is +to deny world access permissions to +.B noworld +users, except +when walking directories. +.PP +The user +.B none +is always allowed to attach to +.B emelie +without authentication but has minimal permissions. +.PP +.B Emelie +maintains three file systems +on a combination of disks and +write-once-read-many (WORM) magneto-optical disks. +.TP +.B other +is a simple disk-based file system similar to +.IR kfs (4) . +.TP +.B main +is a worm-based file system with a disk-based +look-aside cache. +The disk cache holds +modified worm blocks +to overcome the write-once property of the worm. +The cache also holds recently accessed +non-modified blocks to +speed up the effective access time of the worm. +Occasionally +(usually daily at 5AM) the modified blocks in the +disk cache are +.IR dumped . +At this time, +traffic to the file system is halted and the +modified blocks are relabeled to the unwritten +portion of the worm. +After the dump, +the file system traffic is continued and +the relabeled blocks are copied to the worm by +a background process. +.TP +.B dump +Each time the main file system is dumped, +its root is appended to a subdirectory of the dump file system. +Since the dump file system is not mirrored with a disk +cache, +it is read-only. +The name of the newly added root is created from the date +of the dump: +.BI / yyyy / mmdds\f1. +Here +.I yyyy +is the full year, +.I mm +is the month number, +.I dd +is the day number and +.I s +is a sequence number if more than +one dump is done in a day. +For the first dump, +.I s +is null. +For the subsequent dumps +.I s +is 1, 2, 3, etc. +.sp +The root of the main file system +that is frozen on the first dump +of March 1, 1992 +will be named +.B /1992/0301/ +in the dump file system. +.SH EXAMPLES +Place the root of the +.B dump +file system on +.B /n/dump +and show the modified times of the MIPS C compiler +over all dumps in February, 1992: +.IP +.EX +9fs dump +ls -l /n/dump/1992/02??/mips/bin/vc +.EE +.PP +To get only one line of output for each version of the compiler: +.IP +.EX +ls -lp /n/dump/1992/02??/mips/bin/vc | uniq +.EE +.PP +Make the +.B other +file system available in directory +.BR /n/emelieother : +.IP +.EX +mount -c /srv/boot /n/emelieother other +.EE +.SH SOURCE +.B /sys/src/fs +.SH SEE ALSO +.IR yesterday (1), +.IR srv (4), +.IR fs (8) +.br +Sean Quinlan, +``A Cached WORM File System'', +.I +Software \- Practice and Experience, +December, 1991 +.SH BUGS +For the moment, the file server serves both the old (third edition) and new (fourth +edition) versions of 9P, deciding which to serve by sniffing the first packet on each +connection. diff --git a/static/plan9-4e/man4/ftpfs.4 b/static/plan9-4e/man4/ftpfs.4 new file mode 100644 index 00000000..5486746f --- /dev/null +++ b/static/plan9-4e/man4/ftpfs.4 @@ -0,0 +1,173 @@ +.TH FTPFS 4 +.SH NAME +ftpfs \- file transfer protocol (FTP) file system +.SH SYNOPSIS +.B ftpfs +[ +.B -/dqn +] +[ +.B -m +.I mountpoint +] +[ +.B -a +.I password +] +[ +.B -e +.I ext +] +[ +.B -o +.I os +] +[ +.B -r +remoteroot +] +.I system +.SH DESCRIPTION +.I Ftpfs +dials the TCP file transfer protocol (FTP) port, 21, on +.I system +and mounts itself (see +.IR bind (2)) +on +.I mountpoint +(default +.BR /n/ftp ) +to provide access to files on the remote machine. +If required by the remote machine, +.I ftpfs +will prompt for a user name and password. +The user names +.B ftp +and +.B anonymous +conventionally offer guest/read-only access to +machines. +Anonymous FTP may be called without user interaction +by using the +.B -a +option and specifying the +.IR password . +.PP +By default the file seen at the mount point is the user's +remote home directory if he has one. +The option +.B -/ +forces the mount point to correspond to the +remote root. +The option +.B -r +forces the mount point to correspond to the +remote directory +.IR remoteroot . +.PP +To avoid seeing startup messages from the server use option +.BR -q . +To see all messages from the server use option +.BR -d . +.PP +Some systems will hangup an ftp connection that has no activity +for a given period. The +.BR -k +option causes ftp to send a NOP command every 15 seconds to attempt +to keep the connection open. This command can cause some servers to +hangup, so you'll have to feel your way. +.PP +To terminate the connection, +.B unmount +(see +.IR bind (1)) +the mount point. +.PP +Since there is no specified format for metadata retrieved +in response to an FTP directory request, +.I ftpfs +has to apply heuristics to steer the interpretation. Sometimes, +though rarely, these heuristics fail. The following options are +meant as last resorts to try to steer interpretation. +.PP +A major clue to the heuristics is the operating system at the other +end. Normally this can be determined automatically using the +FTP SYST command. However, in some cases the server doesn't implement +the SYST command. The +.B -o +option will force the case by specifying the name of the operating +system. Known system types are are: +.BR Unix , +.BR Sun , +.BR Tops , +.BR Plan9 +.BR VM , +.BR VMS , +.BR MVS , +.BR NetWare , +.BR OS/2 , +.BR TSO , +and +.BR WINDOWS_NT . +.PP +Some systems and/or FTP servers return directory listings that don't +include the file extension. The +.B -e +option allows the user to specify an extension to append to all +remote files (other than directories). +.PP +Finally, there are two FTP commands to retrieve the contents of a +directory, LIST and NLST. LIST is approximately equivalent to +.L ls -l +and NLST to +.LR ls . +.I Ftpfs +normally uses LIST. However, some FTP servers interpret LIST +to mean, give a wordy description of the file. +.I Ftpfs +normally notices this and switches to using NLST. However, in +some rare cases, the user must force the use of NLST with the +.B -n +option. +.SH EXAMPLE +You want anonymous FTP access to the system +.BR export.lcs.mit.edu . +The first +.IR import (4) +command is only necessary if your machine does not have access to the +desired system, but another, called +.B gateway +in this example, does. +.IP +.EX +import gateway /net +ftpfs -a yourname@yourmachine export.lcs.mit.edu +.EE +.SH SOURCE +.B /sys/src/cmd/ip/ftpfs +.SH "SEE ALSO" +.IR bind (2) +.SH BUGS +.PP +Symbolic links on remote Unix systems will always have mode 0777 +and a length of 8. +.PP +After connecting to a TOPS-20 system, the mount point will contain +only one directory, usually +.BR /n/ftp/PS: . +However, walking to any valid directory on that machine will succeed +and cause that directory entry to appear under the mount point. +.PP +.I Ftpfs +caches files and directories. A directory will fall from the cache +after 5 quiescent minutes or if the local user changes the +directory by writing or removing a file. +Otherwise, remote +changes to the directory that occur after the directory has +been cached might not be immediately visible. +.PP +There is no way to issue the appropriate commands to handle special synthetic +FTP file types such as directories +that automatically return a +.B tar +of their contents. diff --git a/static/plan9-4e/man4/import.4 b/static/plan9-4e/man4/import.4 new file mode 100644 index 00000000..c3c3b49c --- /dev/null +++ b/static/plan9-4e/man4/import.4 @@ -0,0 +1,121 @@ +.TH IMPORT 4 +.SH NAME +import \- import a name space from a remote system +.SH SYNOPSIS +.B import +[ +.B -abcC +] [ +.B "-E clear | ssl" +.\" .B "| tls" .\" Not yet implemented +] [ +.B "-e 'enc auth'" +] [ +.B -p +] [ +.B "-s \f2srvname\fP +] +.I system +.I file +[ +.I mountpoint +] +.SH DESCRIPTION +.I Import +allows an arbitrary +.I file +on a remote +.I system +to be imported into the local name space. +Usually +.I file +is a directory, so the complete +file tree under the directory is made available. +.PP +A process is started on the +remote machine, with authority of the user of +.IR import , +to perform work for the local machine using the +.IR exportfs (4) +service. +If +.I mountpoint +is omitted +.I import +uses the name of the remote +.I file +as the local mount point. +.PP +If +.I file +is a directory, +.I import +allows options exactly as in +.I mount +and +.IR bind (1) +to control the construction of union directories. +.PP +The +.B -E +option causes +.I import +to push an authentication protocol on its network connection. +Currently, the protocols supported are +.B clear +(the default) which pushes no protocol, +and +.BR ssl . +There are plans to make +.B tls +available too. +.PP +The +.B -e +option specifies the encryption and authentication algorithms to use for +encrypting the wire traffic. The defaults are +.B rc4_256 +and +.BR sha1 . +The full list of supported protocols in in +.IR ssl (3). +.PP +The +.B -p +option pushes the +.B aan +filter onto the connection. This filter will protect the connection from +temporary network outages; see +.IR aan (1). +.PP +The +.B -s +option posts the connection's mountable file descriptor in +.B /srv +under the given name. +.SH EXAMPLE +Assume a machine +.B kremvax +that has IP interfaces for the company intranet and the global +internet mounted on +.I /net +and +.I /net.alt +respectively. +Any machine inside the company can get telnet out to the global +internet using: +.IP +.EX +import -a kremvax /net.alt +telnet /net.alt/tcp!ucbvax +.EE +.SH SOURCE +.B /sys/src/cmd/import.c +.SH SEE ALSO +.IR bind (1), +.IR aan (1), +.IR exportfs (4), +.IR ssl (3), +.B cs +in +.IR ndb (8) diff --git a/static/plan9-4e/man4/iostats.4 b/static/plan9-4e/man4/iostats.4 new file mode 100644 index 00000000..15371444 --- /dev/null +++ b/static/plan9-4e/man4/iostats.4 @@ -0,0 +1,64 @@ +.TH IOSTATS 4 +.SH NAME +iostats \- file system to measure I/O +.SH SYNOPSIS +.B iostats +[ +.B -d +] +[ +.B -f +.I dbfile +] +.I cmd +[ +.I args... +] +.SH DESCRIPTION +.I Iostats +is a user-level file server that interposes itself between a program +and the regular file server, which +allows it to gather statistics of file system +use at the level of the Plan 9 file system protocol, 9P. +After a program +exits a report is printed on standard error. +.PP +The report consists of three sections. +The first section reports the amount +of user data in +.B read +and +.B write +messages sent by the program and the average rate at +which the data was transferred. +The +.B protocol +line reports the amount +of data sent as message headers, that is, +protocol overhead. +The +.B rpc +line reports the +total number of file system transactions. +.PP +The second section gives +the number of messages, the fastest, slowest, and average turn around +time and the amount of data involved with each 9P +message type. +The final section gives an I/O summary for each file used +by the program in terms of opens, reads and writes. +.PP +If the +.B -d +flag is present, a debugging log including all traffic +is written to +.I dbfile +(default +.BR iostats.out ). +.SH SOURCE +.B /sys/src/cmd/iostats +.SH BUGS +Poor clock resolution means that large amounts of I/O must be done to +get accurate rate figures. +.PP +Can be fooled by programs that do fresh mounts outside its purview. diff --git a/static/plan9-4e/man4/keyfs.4 b/static/plan9-4e/man4/keyfs.4 new file mode 100644 index 00000000..b88b0330 --- /dev/null +++ b/static/plan9-4e/man4/keyfs.4 @@ -0,0 +1,248 @@ +.TH KEYFS 4 +.SH NAME +keyfs, warning \- authentication database files +.SH SYNOPSIS +.B auth/keyfs +[ +.B -p +] +[ +.B -w +.RB [ np ] +] +[ +.BI -m mntpt +] +[ +.I keyfile +] +.PP +.B auth/warning +[ +.B -n +] +[ +.B -p +] +.SH DESCRIPTION +.I Keyfs +serves a two-level file tree for manipulating authentication information. +It runs on the machine providing authentication service for the local +Plan 9 network, which may be a dedicated authentication server or +a CPU server. +The programs described in +.IR auth (8) +use +.I keyfs +as their interface to the authentication database. +.PP +.I Keyfs +reads and decrypts file +.I keyfile +(default +.BR /adm/keys ) +using the DES key, +which is by default read from +.B #r/nvram +(see +.IR rtc (3)). +With option +.BR -p , +.I keyfs +prompts for a password from which the key is derived. +.I Keyfile +holds a 41-byte record for each user in the database. +Each record is encrypted separately +and contains the user's name, +DES key, +status, +host status, +and expiration date. +The name is a +null-terminated +.SM UTF +string +.B NAMELEN +bytes long. +The status is a byte containing +binary 0 if the account is enabled, +1 if it is disabled. +Host status is a byte containing +binary 1 if the user is a host, +0 otherwise. +The expiration date is four-byte little-endian integer +which represents the time in seconds since the epoch +(see +.IR date (1)) +at which the account will expire. +If any changes are made to the database that affect the information stored in +.IR keyfile , +a new version of the file is written. +.PP +There are two authentication databases, +one for Plan 9 user information, +and one for SecureNet user information. +A user need not be installed in both databases +but must be installed in the Plan 9 database to connect to a Plan 9 server. +.PP +.I Keyfs +serves an interpretation of the +.I keyfile +in the file tree rooted at +.I mntpt +(default +.BR /mnt/keys ). +Each user +.I user +in +.I keyfile +is represented as the directory +.IR mntpt / user . +.PP +Making a new directory in +.I mntpt +creates a new user entry in the database. +Removing a directory removes the user entry, +and renaming it changes the name in the entry. +Such changes are reflected immediately in +.IR keyfile . +.I Keyfs +does not allow duplicate names when creating or renaming user entries. +.PP +All files in the user directories except for +.B key +contain +.SM UTF +strings with a trailing newline when read, +and should be written as +.SM UTF +strings with or without a trailing newline. +.B Key +contains the +.BR DESKEYLEN -byte +encryption key for the user. +.PP +The following files appear in the user directories. +.TF expire +.TP +.B key +The authentication key for the user. +If the user's account is disabled or expired, +reading this file returns an error. +Writing +.I key +changes the key in the database. +.TP +.B log +The number of consecutive failed authentication attempts for the user. +Writing the string +.B bad +increments this number; writing +.B good +resets it to 0. +If the number reaches fifty, +.I keyfs +disables the account. +Once the account is disabled, +the only way to enable it is to write the string +.B ok +to +.BR status . +This number is not stored in +.IR keyfile , +and is initialized to 0 when +.I keyfs +starts. +.TP +.B status +The current status of the account, either +.B ok +or +.BR disabled . +Writing +.B ok +enables the account; +writing +.B disabled +disables it. +.TP +.B expire +The expiration time for the account. +When read, it contains either the string +.B never +or the time in seconds since the epoch +that the account will expire. +When written with strings of the same form, +it sets the expiration date for the user. +If the expiration date is reached, +the account is not disabled, +but +.I key +cannot be read without an error. +.PD +.PP +If the +.B -w +option is on, +.I keyfs +runs the command +.I warning +once every 24 hours to mail people about expiring keys. +Warnings are sent 14 days and 7 days prior to expiration. +The argument to +.BR -w , +either +.B p +or +.BR n , +is passed to +.I warning +to restrict the warnings to +the Plan 9 or SecureNet database. +The default for +.I keyfs +is not to call +.I warning +at all; +.I warning's +own default is to warn about both. +The files +.B /adm/netkeys.who +and +.B /adm/keys.who +are used to find the mail addresses to send to. +The first word on each line identifies +a user. +Any subsequent strings on the line delimited '<' and '>' are considered mail +addresses to send warnings to. +If multiple lines match a user, the last in the file is used. +.B Changeuser +(see +.IR auth (8)) +adds lines to these files. +.SH FILES +.TF /adm/netkeys.who +.TP +.B /adm/keys +Encrypted key file for the Plan 9 database. +.TP +.B /adm/netkeys +Encrypted key file for the SecureNet database. +.TP +.B /adm/keys.who +List of users in the Plan 9 database. +.TP +.B /adm/netkeys.who +List of users in the SecureNet database. +.TP +.B #r/nvram +The non-volatile RAM on the server, which holds the key used +to decrypt key files. +.SH SOURCE +.B /sys/src/cmd/auth/keyfs.c +.br +.B /sys/src/cmd/auth/warning.c +.SH "SEE ALSO" +.IR authsrv (6), +.IR namespace (6), +.IR auth (8) diff --git a/static/plan9-4e/man4/kfs.4 b/static/plan9-4e/man4/kfs.4 new file mode 100644 index 00000000..9ea00b5f --- /dev/null +++ b/static/plan9-4e/man4/kfs.4 @@ -0,0 +1,132 @@ +.TH KFS 4 +.SH NAME +kfs \- disk file system +.SH SYNOPSIS +.B disk/kfs +[ +.B -rc +] [ +.B -b +.I n +] [ +.B -f +.I file +] [ +.B -n +.I name +] [ +.B -p +.I perm +] [ +.B -s +] [ +.B -B +.I nbuf +] +.SH DESCRIPTION +.I Kfs +is a local user-level file server for a Plan 9 terminal with a disk. +It maintains a hierarchical Plan 9 file system on the disk +and offers +9P (see +.IR intro (5)) +access to it. +.I Kfs +begins by +checking the file system for consistency, +rebuilding the free list, and placing a file descriptor in +.BI /srv/ name\f1, +where +.I name +is the service name (default +.BR kfs ). +If the file system is inconsistent, +the user is asked for permission to ream +.RI ( q.v. ) +the disk. +The file system is not checked if it is reamed. +.PP +The options are +.TF "n name" +.TP +.BI "b " n +If the file system is reamed, use +.I n +byte blocks. +Larger blocks make the file system faster +and less space efficient. +.B 1024 +and +.B 4096 +are good choices. +.I N +must be a multiple of 512. +.TP +.B c +Do not check the file system. +.TP +.BI "f " file +Use +.I file +as the disk. +The default is +.BR /dev/sdC0/fs . +.TP +.BI "n " name +Use +.RI kfs. name +as the name of the service. +.TP +.BI "p " perm +Use +.I perm +as the initial permissions for the +command channel +.BI /srv/ service .cmd\fR; +the default is 660. +.TP +.B r +Ream the file system, erasing all of the old data +and adding all blocks to the free list. +.TP +.B s +Post file descriptor zero in +.BI /srv/ service +and read and write protocol messages on file descriptor one. +.TP +.B B +Allocate +.I nbuf +in-memory file system blocks. +The default is as many as will fit in 10% of memory +or two megabytes, whichever is smaller. +.PD +.SH EXAMPLES +Create a file system with service name +.I kfs.local +and mount it on +.BR /n/kfs . +.IP +.EX +% kfs -rb4096 -nlocal +% mount -c /srv/kfs.local /n/kfs +.EE +.PP +.SH FILES +.TF /dev/sdC0/fs +.TP +.B /dev/sdC0/fs +Default file holding blocks. +.SH SOURCE +.B /sys/src/cmd/disk/kfs +.SH "SEE ALSO" +.IR kfscmd (8), +.IR mkfs (8), +.IR prep (8), +.IR sd (3) +.SH BUGS +For the moment, +.I kfs +serves both the old (third edition) and new (fourth +edition) versions of 9P, deciding which to serve by sniffing the first packet on each +connection. diff --git a/static/plan9-4e/man4/lnfs.4 b/static/plan9-4e/man4/lnfs.4 new file mode 100644 index 00000000..528001ed --- /dev/null +++ b/static/plan9-4e/man4/lnfs.4 @@ -0,0 +1,55 @@ +.TH LNFS 4 +.SH NAME +lnfs \- long name file system +.SH SYNOPSIS +.B lnfs +[ +.B -r +] +[ +.B -s +.I srvname +] +.I mountpoint +.SH DESCRIPTION +.I Lnfs +starts a process that mounts itself (see +.IR bind (2)) +on +.IR mountpoint . +It presents a filtered view of the files under the mount +point, allowing users to use long file names +on file servers that do not support file names +longer than 27 bytes. +.PP +The names used in the underlying file system are +the base32 encoding of the md5 hash of the longer +file name. The user need not know the mapping +since +.I lnfs +does all the work. +.I Lnfs +maintains a file +.B .longnames +in the directory +.I mountpoint +to record the long file names. +.PP +The options are: +.TP +.B -r +allow only read access to the file system +.TP +.B -s +provide a service name, +.IR srvname , +to post in +.BR /srv . +Without this option, no posting is performed. +.SH FILES +.B .longnames +.SH SOURCE +.B /sys/src/cmd/lnfs.c +.SH BUGS +This exists only to shame us into getting a real long +name file server working. diff --git a/static/plan9-4e/man4/namespace.4 b/static/plan9-4e/man4/namespace.4 new file mode 100644 index 00000000..68963d35 --- /dev/null +++ b/static/plan9-4e/man4/namespace.4 @@ -0,0 +1,384 @@ +.TH NAMESPACE 4 +.SH NAME +namespace \- structure of conventional file name space +.SH SYNOPSIS +none +.SH DESCRIPTION +After a user's profile has run, the file name space should adhere +to a number of conventions if the system is to behave normally. +This manual page documents those conventions by traversing the +file hierarchy and describing the points of interest. +It also serves as a guide to where things reside in the file system proper. +The traversal is far from exhaustive. +.PP +First, here is the appearance of the file server as it appears before +any mounts or bindings. +.TF /sys/src/cmd +.TP +.B / +The root directory. +.TP +.B /adm +The administration directory for the file server. +.TP +.B /adm/users +List of users known to the file server; see +.IR users (6). +.TP +.B /adm/keys +Authentication keys for users. +.TP +.B /adm/netkeys +SecureNet keys for users; see +.IR securenet (8). +.TP +.B /adm/timezone +Directory of timezone files; see +.IR ctime (2). +.TP +.B /adm/timezone/EST.EDT +Time zone description for Eastern Time. Other such files are in this directory too. +.TP +.B /adm/timezone/timezone +Time zone description for the local time zone; a copy of one of the other files in this directory. +.TP +.B /bin +.TP +.B /dev +.TP +.B /env +.TP +.B /fd +.TP +.B /net +.TP +.B /proc +.TP +.B /srv +.TP +.B /tmp +All empty unwritable directories, place holders for mounted services and directories. +.TP +.B /mnt +A directory containing mount points for applications. +.B /mnt/factotum +Mount point for +.IR factotum (4). +.TP +.B /n +A directory containing mount points for file trees imported from +remote systems. +.TP +.B /29000 +.TP +.B /386 +.TP +.B /68000 +.TP +.B /68020 +.TP +.B /960 +.TP +.B /alpha +.TP +.B /arm +.TP +.B /mips +.TP +.B /sparc +Each CPU architecture supported by Plan 9 has a directory in the root containing +architecture-specific files, to be selected according to +.B $objtype +or +.B $cputype +(see +.IR 2c (1) +and +.IR init (8)). +Here we list only those for +.BR /386 . +.TP +.B /386/init +The initialization program used during bootstrapping; see +.IR init (8). +.TP +.B /386/bin +Directory containing binaries for the Intel x86 architecture. +.TP +.B "/386/bin/aux +.TP +.B /386/bin/ip +.TP +etc. +Subdirectories of +.B /386/bin +containing auxiliary tools and collecting related programs. +.TP +.B /386/lib +Directory of object code libraries as used by +.B 8l +(see +.IR 2l (1)). +.TP +.B /386/include +Directory of x86-specific C include files. +.TP +.B /386/9* +The files in +.B /386 +beginning with a +.B 9 +are binaries of the operating system. +.TP +.B /386/mkfile +Selected by +.IR mk (1) +when +.B $objtype +is +.BR 386 , +this file configures +.B mk +to compile for the Intel x86 architecture. +.TP +.B /rc +Isomorphic to the architecture-dependent directories, this holds executables +and libraries for the shell, +.IR rc (1). +.TP +.B /rc/bin +Directory of shell executable files. +.TP +.B /rc/lib +Directory of shell libraries. +.TP +.B /rc/lib/rcmain +Startup code for +.IR rc (1). +.TP +.B /lib +Collections of data, generally not parts of programs. +.TP +.B /lib/mammals +.TP +.B /lib/sky +.TP +etc. +Databases. +.TP +.B /lib/ndb +The network database used by the networking software; see +.IR ndb (6) +and +.IR ndb (8). +.TP +.B /lib/namespace +The file used by +.B newns +(see +.IR auth (2)) +to establish the default name space; see +.IR namespace (6). +.TP +.B /lib/font/bit +Bitmap font files. +.TP +.B /lib/font/hershey +Vector font files. +.TP +.B /sys +System software. +.TP +.B /sys/include +Directory of machine-independent C include files. +.TP +.B /sys/lib +Pieces of programs not easily held in the various +.BR bins . +.TP +.B /sys/lib/acid +Directory of +.IR acid (1) +load modules. +.TP +.B /sys/lib/dist +Software used to assemble the distribution's installation floppy. +.TP +.B /sys/lib/troff +Directory of +.IR troff (1) +font tables and macros. +.TP +.B /sys/lib/yaccpar +The +.IR yacc (1) +parser. +.TP +.B /sys/man +The manual. +.TP +.B /sys/doc +Other system documentation. +.TP +.B /sys/log +Log files created by various system services. +.TP +.B /sys/src +Top-level directory of system sources. +.TP +.B /sys/src/cmd +Source to the commands in the +.B bin +directories. +.TP +.B /sys/src/9 +Source to the operating system for terminals and CPU servers. +.TP +.B /sys/src/fs +Source to the operating system for file servers. +.TP +.B /sys/src/lib* +Source to the libraries. +.TP +.B /mail +Directory of electronic mail; see +.IR mail (1). +.TP +.B /mail/box +Directory of users' mail box files. +.TP +.B /mail/lib +Directory of alias files, etc. +.TP +.B /acme +Directory of tools for +.IR acme (1). +.TP +.B /cron +Directory of files for +.IR cron (8). +.PD +.PP +The following files and directories are modified in the standard +name space, as defined by +.B /lib/namespace +(see +.IR namespace (6)). +.TF /sys/src/cmd +.TP +.B / +The root of the name space. It is a kernel device, +.IR root (3), +serving a number of local mount points such as +.B /bin +and +.B /dev +as well as the bootstrap program +.BR /boot . +Unioned with +.B / +is the root of the main file server. +.TP +.B /boot +Compiled into the operating system kernel, this file establishes +the connection to the main file server and starts +.BR init ; +see +.IR boot (8) +and +.IR init (8). +.TP +.B /bin +Mounted here is a union directory composed of +.BR /$objtype/bin , +.BR /rc/bin , +.BR $home/$objtype/bin , +etc., so +.B /bin +is always the directory containing the appropriate executables +for the current architecture. +.TP +.B /dev +Mounted here is a union directory containing I/O devices such as the +console +.RI ( cons (3)), +the interface to the raster display +.RI ( draw (3)), +etc. +The window system, +.IR rio (1), +prefixes +this directory with its own version, +overriding many device +files with its own, multiplexed simulations of them. +.TP +.B /env +Mounted here is the environment device, +.IR env (3), +which holds environment variables such as +.BR $cputype . +.TP +.B /net +Mounted here is a union directory formed of all the network devices +available. +.TP +.B /net/cs +The communications point for the connection server, +.B ndb/cs +(see +.IR ndb (8)). +.TP +.B /net/dns +The communications point for the Domain Name Server, +.B ndb/dns +(see +.IR ndb (8)). +.TP +.B /net/il +.TP +.B /net/tcp +.TP +.B /net/udp +Directories holding the IP protocol devices +(see +.IR ip (3)). +.TP +.B /proc +Mounted here is the process device, +.IR proc (3), +which provides debugging access to active processes. +.TP +.B /fd +Mounted here is the dup device, +.IR dup (3), +which holds pseudonyms for open file descriptors. +.TP +.B /srv +Mounted here is the service registry, +.IR srv (3), +which holds connections to file servers. +.TP +.B /srv/boot +The communication channel to the main file server for the machine. +.TP +.B /mnt/wsys +Mount point for the window system. +.TP +.B /mnt/term +Mount point for the terminal's name space as seen by the CPU server +after a +.IR cpu (1) +command. +.TP +.B /n/kremvax +A place where machine +.BR kremvax 's +name space may be mounted. +.TP +.B /tmp +Mounted here is each user's private +.B tmp, +.BR $home/tmp . +.SH SEE ALSO +.IR intro (1), +.IR namespace (6) diff --git a/static/plan9-4e/man4/nntpfs.4 b/static/plan9-4e/man4/nntpfs.4 new file mode 100644 index 00000000..d752f8bf --- /dev/null +++ b/static/plan9-4e/man4/nntpfs.4 @@ -0,0 +1,107 @@ +.TH NNTPFS 4 +.SH NAME +nntpfs \- network news transport protocol (NNTP) file system +.SH SYNOPSIS +.B nntpfs +[ +.B -s +.I service +] +[ +.B -m +.I mountpoint +] +.I system +.SH DESCRIPTION +.I Nntpfs +dials the TCP network news transport protocol (NNTP) +port, 119, on +.I system +(default +.BR '$nntp' ) +and presents at +.I mountpoint +(default +.BR /mnt/news ) +a file system corresponding to the +news articles stored on +.IR system . +.PP +The file system contains a directory per newsgroup, +with dots turned into slashes, e.g., +.B comp/os/plan9 +for +.BR comp.os.plan9 . +Each newsgroup directory contains one +numbered directory per article. +The directories follow the numbering used by +the server. +Each article directory contains three files: +.BR article , +.BR header , +and +.BR body . +The +.B article +file contains the full text of the article, +while +.B header +and +.B body +contain only the header or body. +.PP +Each newsgroup directory contains a +write-only +.B post +file that may be used to post news articles. +RFC1036-compliant articles should be written to it. +The +.B post +file will only exist in a given newsgroup directory +if articles are allowed to be posted to it. +Other than that, the +.B post +file is +.I not +tied to its directory's newsgroup. +The groups to which articles are eventually posted +are determined by the +.B newsgroups: +header lines in the posted article, +not by the location of the +.B post +file in the file system. +.PP +The qid version of a newsgroup directory +is the largest numbered article directory it +contains (~0, if there are no articles). +.PP +The modification time on a newsgroup +directory is the last time a new article was recorded +during this +.I nntpfs +session. +To force a check for new articles, +.IR stat (2) +the newsgroup directory. +.PP +To force a check for new newsgroups, +.IR stat (2) +the root directory. +Note that this causes the entire list of groups, +which can be about a megabyte, +to be transferred. +.PP +To terminate the connection, +.B unmount +the mount point. +.PP +.I Nntpfs +makes no effort to send ``keepalives'' so that +servers do not hang up on it. +Instead, it redials as necessary when hangups are detected. +.SH SOURCE +.B /sys/src/cmd/nntpfs.c +.SH BUGS +Directories are presented for deleted articles; +the files in them cannot be opened. diff --git a/static/plan9-4e/man4/paqfs.4 b/static/plan9-4e/man4/paqfs.4 new file mode 100644 index 00000000..0a200694 --- /dev/null +++ b/static/plan9-4e/man4/paqfs.4 @@ -0,0 +1,76 @@ +.TH PAQFS 4 +.SH NAME +paqfs \- compressed read-only file system +.SH SYNOPSIS +.B paqfs +[ +.B -disv +] +[ +.B -c +.I cachesize +] +[ +.B -m +.I mtpt +] +[ +.B -M +.I mesgsize +] +.I paqfile +.SH DESCRIPTION +.I Paqfs +interprets the compressed read-only file system created by +.IR mkpaqfs (8) +and stored in +.I paqfile +so that it can be mounted into a Plan 9 file system. +.I Paqfs +is typically used to create a stand alone file system for +a small persistent storage device, such as a flash ROM. +It does not authenticate its clients and assumes each group +has a single member with the same name. +.PP +Option to +.I paqfs +are: +.TP +.BI -c " cachesize +The number of file system blocks to cache in memory. The default is 20 blocks. +.TP +.B -d +Output various debugging information to +.IR stderr . +.TP +.B -i +Use file descriptors 0 and 1 as the 9P communication channel rather than create a pipe. +.TP +.BI -m " mtpt +The location to mount the file system. The default is +.BR /n/paq . +.TP +.BI -M " mesgsize +The maximum 9P message size. The default is sufficient for 8K byte read message. +.TP +.B -s +Post the 9P channel on #s/paqfs rather than +mounting it on +.IR mtpt . +.TP +.B -v +Verify the integrity of the +.IR paqfile . +Before mounting the file system, the +entire file is parsed and the +.I sha1 +checksum of the file system data is compared to the checksum embedded in the file. +This option enables the use of +.I paqfs +with files that consist of a +.I paq +file system concatenated with additional data. +.SH SOURCE +.B /sys/src/cmd/paqfs/paqfs.c +.SH "SEE ALSO" +.IR mkpaqfs (8) diff --git a/static/plan9-4e/man4/plumber.4 b/static/plan9-4e/man4/plumber.4 new file mode 100644 index 00000000..fbaebe41 --- /dev/null +++ b/static/plan9-4e/man4/plumber.4 @@ -0,0 +1,126 @@ +.TH PLUMBER 4 +.SH NAME +plumber \- file system for interprocess messaging +.SH SYNOPSIS +.B plumber +[ +.B -p +.I plumbing +] +.SH DESCRIPTION +The +.I plumber +is a user-level file server that receives, examines, rewrites, and dispatches +.IR plumb (6) +messages between programs. +Its behavior is programmed by a +.I plumbing +file (default +.BR /usr/$user/lib/plumbing ) +in the format of +.IR plumb (6). +.PP +Its services are mounted on the directory +.B /mnt/plumb +.RB ( /mnt/term/mnt/plumb +on the CPU server) and consist of two +pre-defined files, +.B send +and +.BR rules , +and a set of output +.I ports +for dispatching messages to applications. +The service is also published as a +.IR srv (4) +file, named in +.BR $plumbsrv , +for mounting elsewhere. +.PP +Programs use +.B write +(see +.IR read (2)) +to deliver messages to the +.B send +file, and +.IR read (2) +to receive them from the corresponding port. +For example, +.IR sam (1)'s +.B plumb +menu item or the +.B B +command cause a message to be sent to +.BR /mnt/plumb/send ; +.B sam +in turn reads from, by convention, +.B /mnt/plumb/edit +to receive messages about files to open. +.PP +A copy of each message is sent to each client that has the corresponding port open. +If none has it open, and the rule has a +.B plumb +.B client +or +.B plumb +.B start +rule, that rule is applied. +A +.B plumb +.B client +rule causes the specified command to be run +and the message to be held for delivery when the port is opened. +A +.B plumb +.B start +rule runs the command but discards the message. +If neither +.B start +or +.B client +is specified and the port is not open, +the message is discarded and a write error is returned to the sender. +.PP +The set of output ports is determined dynamically by the +specification in the plumbing rules file: a port is created for each unique +destination of a +.B plumb +.B to +rule. +.PP +The set of rules currently active may be examined by reading the file +.BR /mnt/plumb/rules ; +appending to this file adds new rules to the set, while +creating it (opening it with +.BR OTRUNC ) +clears the rule set. +Thus the rule set may be edited dynamically with a traditional text editor. +However, ports are never deleted dynamically; if a new set of rules does not +include a port that was defined in earlier rules, that port will still exist (although +no new messages will be delivered there). +.SH FILES +.TF /usr/$user/lib/plumbing +.TP +.B /usr/$user/lib/plumbing +default rules file +.TP +.B /sys/lib/plumb +directory to search for files in +.B include +statements +.TP +.B /mnt/plumb +mount point for +.IR plumber (4). +.SH SOURCE +.B /sys/src/cmd/plumb +.SH "SEE ALSO" +.IR plumb (1), +.IR plumb (2), +.IR plumb (6) +.SH BUGS +.IR Plumber 's +file name space is fixed, so it is difficult to plumb +messages that involve files in newly mounted services. + diff --git a/static/plan9-4e/man4/ramfs.4 b/static/plan9-4e/man4/ramfs.4 new file mode 100644 index 00000000..af2dece0 --- /dev/null +++ b/static/plan9-4e/man4/ramfs.4 @@ -0,0 +1,74 @@ +.TH RAMFS 4 +.SH NAME +ramfs \- memory file system +.SH SYNOPSIS +.B ramfs +[ +.B -i +] +[ +.B -s +] +[ +.B -p +] +[ +.B -m +.I mountpoint +] +.SH DESCRIPTION +.I Ramfs +starts a process that mounts itself (see +.IR bind (2)) +on +.I mountpoint +(default +.BR /tmp ). +The +.I ramfs +process implements a file tree rooted at +.IR dir , +keeping all files in memory. +Initially the file tree is empty. +.PP +The +.B -i +flag tells +.I ramfs +to use file descriptors 0 and 1 for its communication channel +rather than create a pipe. +This makes it possible to use +.I ramfs +as a file server on a remote machine: the file descriptors 0 +and 1 will be the network channel from +.I ramfs +to the client machine. +The +.B -s +flag causes +.I ramfs +to post its channel on +.B /srv/ramfs +rather than mounting it on +.IR mountpoint , +enabling multiple clients to access its files. +However, it does not authenticate its clients and its +implementation of groups is simplistic, so +it should not be used for precious data. +.PP +The +.B -p +flag causes +.I ramfs +to make its memory `private' +(see +.IR proc (3)) +so that its files are not accessible through the debugging interface. +.PP +This program is useful mainly as an example of how +to write a user-level file server. +It can also be used to provide high-performance temporary files. +.SH SOURCE +.B /sys/src/cmd/ramfs.c +.SH "SEE ALSO" +.IR bind (2) diff --git a/static/plan9-4e/man4/ratfs.4 b/static/plan9-4e/man4/ratfs.4 new file mode 100644 index 00000000..2d396f74 --- /dev/null +++ b/static/plan9-4e/man4/ratfs.4 @@ -0,0 +1,174 @@ +.TH RATFS 4 +.SH NAME +ratfs \- mail address ratification file system +.SH SYNOPSIS +.B ratfs +[ +.B -d +] [ +.B -c +.I configuration +] [ +.B -f +.I classification +] [ +.B -m +.I mountpoint +] +.SH DESCRIPTION +.I Ratfs +starts a process that mounts itself (see +.IR bind (2)) +on +.I mountpoint +(default +.BR /mail/ratify ). +.I Ratfs +is a persistent representation of the local network +configuration and spam blocking list. Without it +each instance of +.IR smtpd (6) +would need to reread and parse a multimegabyte list +of addresses and accounts. +.PP +.I Ratfs +serves a control file, +.BR ctl , +and several top level directories: +.BR trusted , +.BR deny , +.BR dial , +.BR block , +.BR delay , +and +.BR allow . +.PP +The control file is write only and accepts three +possible commands: +.TF "debug file +.TP +.B reload +rereads +.I classification +and +.I configuration +.TP +.B debug \fIfile\fP +creates +.I file +and sends debugging output to it. +.TP +.B nodebug +closes the debug file and turns off debugging +.PD +.PP +The directory +.B trusted +serves a file for each IP range from which all mail +is trusted. The names of the files are CIDR blocks; +an IP address or an IP address followed by +.BR #\fIn\fP , +where +.I n +is the number of bits to match. +To check if any IP address falls in a trusted +range, it is sufficient to open the file whose +name is the IP address. +For example, if +.B trusted +contains only the file +.BR 135.104.0.0#16 , +an attempt to open the file 135.104.9.1 will +succeed while opening 10.1.1.1 will fail. +To determine the particular range matched, +.B dirfstat +(see stat (2)) +the open file and the +.B name +field will be the matching CIDR range. +.PP +The trusted ranges come both from the +.B ournet +entries in the file +.I configuration +(default +.BR /mail/lib/blocked ) +and from creates, typically done by +.B imap4d +(see +.IR ipserv (8)) +and +.B pop3 +(see +.IR mail (1)) +whenever they are used to read someone's mail. +.PP +The remaining directories, +.BR allow , +.BR block , +.BR delay , +.BR deny , +and +.BR dial , +represent the contents of the +.I classification +(default +.BR /mail/lib/smtpd.conf ). +Each contains two directories; +.B ip +and +.BR account . +The +.B ip +directory has the same open semantics as the +.B trusted +directory, i.e., to check if an IP address falls +in that category, try to open a file whose +name is the IP address. +The +.B account +directory is similar but is used for matching +strings. Each file in the directory represents +a regular expression. To see if one of the +strings matches one of the regular expressions, +try to open the file whose name is the string. +If it succeeds, then there is a regular expression +that matches. To determine the regular expression, +.B fstat +the open file. The +.B name +field will be the regular expression. +.PP +There is a direct mapping from entries in +.I classification +and files under +.BR allow , +.BR block , +.BR delay , +.BR deny , +and +.BR dial. +A configuration file entry of the form: +.EX + dial 135.104.9.0/24 +.EE +corresponds to the file +.BR dial/ip/135.104.9.0#24 . +An entry of the form +.EX + *block .*!gre +.EE +corresponds to the file +.BR block/account/.*!gre . +.PP +Both the configuration file and control file formats +are described in +.IR smtpd (6). +.SH SOURCE +.B /sys/src/cmd/ratfs +.SH "SEE ALSO" +.IR mail (1) +.IR smtpd (6) +.IR scanmail (8) + + diff --git a/static/plan9-4e/man4/rdbfs.4 b/static/plan9-4e/man4/rdbfs.4 new file mode 100644 index 00000000..383dd26c --- /dev/null +++ b/static/plan9-4e/man4/rdbfs.4 @@ -0,0 +1,67 @@ +.TH RDBFS 4 +.SH NAME +rdbfs \- remote kernel debugging file system +.SH SYNOPSIS +.B rdbfs +[ +.B -d +] +[ +.B -p +.I pid +] +[ +.B -t +.I text +] +[ +.I device +] +.SH DESCRIPTION +.I Rdbfs +presents in +.BI /proc/ pid +(default +.BR /proc/1 ) +a set of process files for debugging +a kernel over the serial line +.I device +(default +.BR /dev/eia0 ). +.PP +The +.B text +file presented is just a copy of +.I text +(default +.BR /386/9pc ). +It can usually be ignored, since +the debuggers open kernel +files directly rather than +using +.BI /proc/ n /text\fR. +.PP +Kernels can be remotely debugged only when they are +suspended and serving +a textual debugging protocol over their serial lines. +Typing +.RB `` ^t^td '' +.RB (control- t ", control-" t ", d)" +at the console will cause the kernel to enter +this mode when it `panics'. +Typing +.RB `` ^t^tD '' +causes the kernel to enter this mode immediately. +.PP +Because the debugging protocol is textual, a console +provided by +.IR consolefs (4) +may be substituted for the serial device. +.SH SOURCE +.B /sys/src/cmd/rdbfs.c +.br +.B /sys/src/9/port/rdb.c +.SH "SEE ALSO" +.IR acid (1), +.IR db (1), +.IR consolefs (4) diff --git a/static/plan9-4e/man4/rio.4 b/static/plan9-4e/man4/rio.4 new file mode 100644 index 00000000..90e3cbe3 --- /dev/null +++ b/static/plan9-4e/man4/rio.4 @@ -0,0 +1,403 @@ +.TH RIO 4 +.SH NAME +rio \- window system files +.SH SYNOPSIS +.B rio +[ +.B -i +.BI ' cmd ' +] +[ +.B -s +] +[ +.B -f +.I font +] +.SH DESCRIPTION +The window system +.I rio +serves a variety of files for reading, writing, and controlling +windows. +Some of them are virtual versions of system files for dealing +with the display, keyboard, and mouse; others control operations +of the window system itself. +.I Rio +posts its service in the +.B /srv +directory, using a +name constructed from a catenation of the user ID +and a process id; the environment variable +.BR $wsys +is set to this service name within processes running under the control +of each invocation of +.IR rio . +Similarly, +.I rio +posts a named pipe to access the window creation features +(see +.B window +in +.IR rio (1)) +from outside +its name space; this is named in +.BR $wctl . +.PP +A +.I mount +(see +.IR bind (1)) +of +.B $wsys +causes +.I rio +to create a new window; the attach specifier in the +.I mount +gives the coordinates of the created window. +The syntax of the specifier is the same as the arguments to +.B window +(see +.IR rio (1)). +By default, the window is sized and placed automatically. +It is always necessary, however, to provide the process id of the +process to whom to deliver notes generated by DEL characters and hangups +in that window. +That pid is specified by including the string +.B -pid +.I pid +in the attach specifier. (See the Examples section +.IR q.v. ) +.PP +When a window is created either by +the +.I window +command +(see +.IR rio (1)) +or by using the menu supplied by +.IR rio , +this server is mounted on +.BR /mnt/wsys +and also +.BR /dev ; +the files mentioned here +appear in both those directories. +.PP +Some of these files supply virtual versions of services available from the underlying +environment, in particular the character terminal files +.IR cons (3), +and the mouse files +.IR mouse (3) +and +.IR cursor , +each specific to the window. +Note that the +.IR draw (3) +device multiplexes itself; +.IR rio +places windows but does not mediate programs' access to the display device. +.PP +Other files are unique to +.IR rio . +.TF window +.TP +.B cons +is a virtual version of the standard terminal file +.IR cons (3). +.I Rio +supplies extra editing features and a scroll bar +(see +.IR rio (1)). +.TP +.B consctl +controls interpretation of keyboard input. +Writing strings to it sets these modes: +.B rawon +turns on raw mode; +.B rawoff +turns off raw mode; +.B holdon +turns on hold mode; +.B holdoff +turns off hold mode. +Closing the file makes the window revert to default state +(raw off, hold off). +.TP +.B cursor +Like +.B mouse +.RI ( q.v. ), +a multiplexed version of the underlying device file, in this case representing the +appearance of the mouse cursor when the mouse is within the corresponding window. +.TP +.B label +initially contains a string with the process ID of the lead process +in the window and the command being executed there. +It may be written and is used as a tag when the window is hidden. +.TP +.B mouse +is a virtual version of the standard mouse file (see +.IR mouse (3)). +Opening it turns off scrolling, editing, and +.IR rio -supplied +menus in the associated +window. +In a standard mouse message, the first character is +.BR m , +but +.I rio +will send an otherwise normal message with the first character +.B r +if the corresponding window has been resized. +The application must then call +.B getwindow +(see +.IR graphics (2)) +to re-establish its state in the newly moved or changed window. +Reading the +.B mouse +file blocks until the mouse moves or a button changes. +Mouse movements or button changes are invisible when the mouse cursor +is located outside the window, except that if the mouse leaves the window +while a button is pressed, it will continue receiving mouse data until the button is released. +.TP +.B screen +is a read-only file reporting the depth, coordinates, and raster image corresponding to the entire +underlying display, +in the uncompressed format defined in +.IR image (6). +.TP +.B snarf +returns the string currently in the snarf buffer. +Writing this file sets the contents of the snarf buffer. +When +.I rio +is run recursively, the inner instance uses the snarf buffer of the parent, rather than +managing its own. +.TP +.B text +returns the full contents of the window. +It may not be written. +.TP +.B wctl +may be read or written. +When read, it returns the location of the window as four decimal integers formatted +in the usual 12-character style: upper left +.I x +and +.IR y , +lower right +.I x +and +.IR y . +Following these numbers are strings describing the window's state: +.B hidden +or +.BR visible ; +.B current +or +.BR notcurrent . +A subsequent read will block until the window changes size, location, or state. +When written to, +.B wctl +accepts messages to change the size or placement of the associated window, +and to create new windows. +The messages are in a command-line like format, with a command name, +possibly followed by options introduced by a minus sign. +The options must be separated by blanks, for example +.B -dx 100 +rather than +.BR -dx100 . +.IP +The commands are +.B resize +(change the size and position of the window), +.B move +(move the window), +.B scroll +(enable scrolling in the window), +.B noscroll +(disable scrolling), +.B set +(change selected properties of the window), +.B top +(move the window to the `top', making it fully visible), +.B bottom +(move the window to the `bottom', perhaps partially or totally obscuring it), +.B hide +(hide the window), +.B unhide +(restore a hidden window), +.B current +(make the window the recipient of keyboard and mouse input), +and +.B new +(make a new window). +The +.B top +and +.B bottom +commands do not change whether the window is current or not; +the others always make the affected window current. +.IP +Neither +.B top +nor +.B bottom +has any options. +The +.BR resize , +.BR move , +and +.B new +commands accept +.B -minx +.IR n , +.B -miny +.IR n , +.B -maxx +.IR n , +and +.BR -maxy +.I n +options to set the position of the corresponding edge of the window. +They also accept an option +.B -r +.I minx miny maxx maxy +to set all four at once. +The +.B resize +and +.B new +commands accept +.B -dx +.I n +and +.B -dy +.I n +to set the width and height of the window. +By default, +.I rio +will choose a convenient geometry automatically. +.IP +Finally, the +.B new +command accepts an optional shell command and argument string, +given as plain strings after any standard options, to run in the window +instead of the default +.B rc +.B -i +(see +.IR rc (1)). +The +.B -pid +.I pid +option to +.B new +identifies the +.I pid +of the process whose `note group' should receive interrupt +and hangup notes generated in the window. +The initial working directory of the new window may be set by a +.B -cd +.I directory +option. +The +.B -hide +option causes the window to be created off-screen, in the hidden state. +.IP +The +.B set +command accepts a set of parameters in the same style; only +.B -pid +.I pid +is implemented. +.IP +So programs outside name spaces controlled by +.I rio +may create windows, +.B wctl +.B new +messages may also be written to the named pipe identified by +.BR $wctl . +.TP +.B wdir +is a read/write text file containing +.IR rio 's +idea of the current working directory of the process running in the window. +It is used to fill in the +.B wdir +field of +.IR plumb (6) +messages +.I rio +generates from the +.B plumb +menu item on button 2. +The file is writable so the program may update it; +.I rio +is otherwise unaware of +.IR chdir (2) +calls its clients make. +In particular, +.IR rc (1) +maintains +.B /dev/wdir +in default +.IR rio (1) +windows. +.TP +.B winid +returns the unique and unchangeable ID for the window; +it is a string of digits. +.TP +.B window +is the virtual version of +.BR /dev/screen . +It contains the depth, coordinates, and +uncompressed raster image corresponding to the associated +window. +.TP +.B wsys +is a directory containing a subdirectory for each window, named +by the unique ID for that window. Within each subdirectory +are entries corresponding to several of the special files associated +with that window: +.BR cons , +.BR consctl , +.BR label , +.BR mouse , +etc. +.SH EXAMPLES +Cause a window to be created in the upper left corner, +and the word +.L hi +to be printed there. +.IP +.EX +mount $riosrv /tmp 'new -r 0 0 128 64 -pid '$pid +echo hi > /tmp/cons +.EE +.PP +Start +.IR sam (1) +in a large horizontal window. +.IP +.EX +echo new -dx 800 -dy 200 -cd /sys/src/cmd sam > /dev/wctl +.EE +.PP +Print the screen image of window with id 123. +.IP +.EX +lp /dev/wsys/123/window +.EE +.SH SOURCE +.B /sys/src/cmd/rio +.SH SEE ALSO +.IR rio (1), +.IR draw (3), +.IR mouse (3), +.IR cons (3), +.IR event (2), +.IR graphics (2). diff --git a/static/plan9-4e/man4/sacfs.4 b/static/plan9-4e/man4/sacfs.4 new file mode 100644 index 00000000..9b966281 --- /dev/null +++ b/static/plan9-4e/man4/sacfs.4 @@ -0,0 +1,59 @@ +.TH SACFS 4 +.SH NAME +sacfs \- compressed file system +.SH SYNOPSIS +.B disk/sacfs +[ +.B -i +.I infd +.I outfd +] +[ +.B -s +] +[ +.B -m +.I mountpoint +] +.I file +.SH DESCRIPTION +Sacfs interprets the compressed, block based file system created by +.IR mksacfs (8) +and stored in +.I file +so that it can be mounted into a Plan 9 file system. +.I Sacfs +is typically used to create a stand alone file system from +a small persistent storage device, such as a flash rom. +It does not authenticate its clients and assumes each group +has a single member with the same name. +.PP +The +.B -s +flag causes +.I sacfs +to post its channel on +.BR #s/sacfs . +The +.B -i +flag causes +.I sacfs +to use file descriptors +.I infd +and +.I outfd +for its communication channel. +If neither +.B -s +nor +.B -i +are given, +.I sacfs +mounts itself on +.IR mountpoint +(default +.BR /n/c: ). +.SH SOURCE +.B /sys/src/cmd/disk/sacfs/sacfs.c +.SH "SEE ALSO" +.IR mksacfs (8) diff --git a/static/plan9-4e/man4/snap.4 b/static/plan9-4e/man4/snap.4 new file mode 100644 index 00000000..d56706c7 --- /dev/null +++ b/static/plan9-4e/man4/snap.4 @@ -0,0 +1,103 @@ +.TH SNAP 4 +.SH NAME +snap, snapfs \- create and mount process snapshots +.SH SYNOPSIS +.B snap +[ +.B -o +.I file +] +.I pid... +.PP +.B snapfs +[ +.B -a +] +[ +.B -m +.I mtpt +] +[ +.B -s +.I service +] +.I file... +.SH DESCRIPTION +.I Snap +and +.I snapfs +allow one to save and restore (static) process images, +usually for debugging +on a different machine or at a different time. +.PP +.I Snap +writes a snapshot +(see +.IR snap (6)) +of the named processes to +.I file +(default standard output). +If +.I proc +is a text string +rather than a process id, +.I snap +will save all processes with +that name that +are owned by the current user. +Both memory and text images are saved. +.PP +.I Snapfs +is a file server that +recreates the +.B /proc +directories for the processes in the snapshot. +By default, it mounts the new directories +into +.B /proc +before the current entries. +The +.B -m +option can be used to specify +an alternate mountpoint, +while +.B -a +will cause it to mount the new directories +after the current entries. +The +.B -s +option causes it to serve requests via +.BI /srv/ service. +.SH EXAMPLE +Suppose +.I page +has hung viewing Postscript on your terminal, but the author is gone for the rest of +the month and you want to make sure the process +is still around for debugging on his return. +You can save the errant processes with +.IP +.EX +snap -o page.snap `{psu | awk '$NF ~ /page|gs/ {print $2}'} +.EE +.PP +When the author returns, he can add the process images to his name space +by running +.IP +.EX +snapfs page.snap +.EE +.PP +and then use a conventional +debugger to debug them. +.SH SOURCE +.B /sys/src/cmd/snap +.SH SEE ALSO +.IR acid (1), +.IR db (1), +.IR proc (3), +.IR snap (6) +.SH BUGS +The snapshots take up about as much disk space +as the processes they contain did memory. +Compressing them when not in use is recommended, +as is storing them on a rewritable disk. diff --git a/static/plan9-4e/man4/srv.4 b/static/plan9-4e/man4/srv.4 new file mode 100644 index 00000000..ab38204e --- /dev/null +++ b/static/plan9-4e/man4/srv.4 @@ -0,0 +1,237 @@ +.TH SRV 4 +.SH NAME +srv, srvold9p, 9fs \- start network file service +.SH SYNOPSIS +.B srv +[ +.B -abcCmq +] +.RI [ net !] system\c +.RI [! service ] +[ +.I srvname +[ +.I mtpt +] ] +.PP +.B 9fs +.RI [ net !] system +.RI [ mountpoint ] +.PP +.B srvold9p +[ +.B -abcCd +] [ +.B -u +.I user +] [ +.B -s +| [ +.B -m +.I mountpoint +] ] [ +.B -x +.I command +| +.B -n +.I network-addr +| +.B -f +.I file +] [ +.B -F +] [ +.B -p +.I servicename +] +.SH DESCRIPTION +.I Srv +dials the given machine and initializes the connection to serve the +9P protocol. +It then creates in +.B /srv +a file named +.IR srvname . +Users can then +.B mount +(see +.IR bind (1)) +the service, typically on a name in +.BR /n , +to access the files provided by the remote machine. +If +.I srvname +is omitted, the first argument to +.B srv +is used. +Option +.B m +directs +.I srv +to mount the service on +.BI /n/ system +or onto +.I mtpt +if it is given. +Option +.B q +suppresses complaints if the +.B /srv +file already exists. +The +.BR a , +.BR b , +.BR c , +and +.B C +flags are used to control the mount flag as in +.IR bind (1). +.PP +The specified +.I service +must serve 9P. Usually +.I service +can be omitted; when calling some +non-Plan 9 systems, a +.I service +such as +.B u9fs +must be mentioned explicitly. +.PP +The +.I 9fs +command does the +.I srv +and the +.I mount +necessary to make available the files of +.I system +on network +.IR net . +The files are mounted on +.IR mountpoint , +if given; +otherwise they are mounted on +.BI /n/ system\f1. +If +.I system +contains +.L / +characters, only the last element of +.I system +is used in the +.B /n +name. +.PP +.I 9fs +recognizes some special names, such as +.B dump +to make the dump file system available on +.BR /n/dump . +.I 9fs +is an +.IR rc (1) +script; examine it to see what local conventions apply. +.PP +.I Srvold9p +is a compatibilty hack to allow Fourth Edition Plan 9 systems +to connect to older 9P servers. +It functions as a variant of +.I srv +that performs a version translation on the 9P messages on the underlying connection. +Some of its options are the same as those of +.IR srv ; +the special ones are: +.TP +.B -d +Enable debuggging +.TP +.BI -u\ user +When connecting to the remote server, log in as +.IR user . +Since +.I srvold9p +does no authentication, and since new kernels cannot authenticate to +old services, the likeliest value of +.I user +is +.BR none . +.TP +.BI -x\ command +Run +.I command +and use its standard input and output as the 9P service connection. +If the +.I command +string contains blanks, it should be quoted. +.TP +.BI -n\ network-addr +Dial +.I network-addr +to establish the connection. +.TP +.BI -f\ file +Use +.I file +(typically an existing +.IR srv (3) +file) as the connection. +.TP +.B -F +Insert a special (internal) filter process to the connection to maintain +message boundaries; usually only needed on TCP connections. +.TP +.BI -p\ servicename +Post the service under +.IR srv (3) +as +.BI /srv/ servicename\f1. +.PP +.I Srvold9p +is run automatically when a +.IR cpu (1) +call is received on the service port for the old protocol. +.SH EXAMPLES +To see kremvax's and deepthought's files in +.B /n/kremvax +and +.BR /n/deepthought : +.IP +.EX +9fs kremvax +9fs hhgttg /n/deepthought +.EE +.PP +To mount as user +.B none +a connection to an older server kgbsun: +.IP +.EX +srvold9p -u none -m /n/kgbsun -p kgbsun -n il!kgbsun +.EE +.PP +Other windows may then mount the connection directly: +.IP +.EX +mount /srv/kgbsun /n/kgbsun +.EE +.SH NOTE +The TCP port used for 9P is 564. +.SH FILES +.TF /srv/* +.TP +.B /srv/* +ports to file systems and servers posted by +.I srv +and +.I 9fs +.SH SOURCE +.B /sys/src/cmd/srv.c +.br +.B /rc/bin/9fs +.br +.SH "SEE ALSO" +.IR bind (1), +.IR dial (2), +.IR srv (3), +.IR ftpfs (4) diff --git a/static/plan9-4e/man4/tapefs.4 b/static/plan9-4e/man4/tapefs.4 new file mode 100644 index 00000000..e6ca73ed --- /dev/null +++ b/static/plan9-4e/man4/tapefs.4 @@ -0,0 +1,100 @@ +.TH TAPEFS 4 +.SH NAME +32vfs, cpiofs, tapfs, tarfs, tpfs, v6fs, v10fs \- mount archival file systems +.SH SYNOPSIS +.B fs/32vfs +[ +.B -m +.I mountpoint +] +[ +.B -p +.I passwd +] +[ +.B -g +.I group +] +.I file +.br +.B fs/cpiofs +.br +.B fs/tapfs +.br +.B fs/tarfs +.br +.B fs/tpfs +.br +.B fs/v6fs +.br +.B fs/v10fs +.br +.SH DESCRIPTION +These commands interpret data from traditional tape or file system formats +stored in +.IR file , +and mount their contents (read-only) into a Plan 9 file system. +The optional +.B -p +and +.B -g +flags specify Unix-format password (respectively group) files +that give the mapping between the numeric user- and group-ID +numbers on the media and the strings reported by Plan 9 status +inquiries. +The +.B -m +flag introduces the name at which the new file system should be +attached; the default is +.BR /n/tapefs . +.PP +.I 32vfs +interprets raw disk images of 32V systems, which are ca. 1978 research Unix systems for +the VAX, and also pre-FFS Berkeley VAX systems (1KB block size). +.PP +.I Cpiofs +interprets +.B cpio +tape images (constructed with +.BI cpio 's +.B c +flag). +.PP +.I Tarfs +interprets +.I tar +tape images. +.PP +.I Tpfs +interprets +.I tp +tapes from the Fifth through Seventh Edition research Unix systems. +.PP +.I Tapfs +interprets +.I tap +tapes from the pre-Fifth Edition era. +.PP +.I V6fs +interprets disk images from the +Fifth and Sixth edition research Unix systems (512B block size). +.PP +.I V10fs +interprets disk images from the +Tenth Edition research Unix systems (4KB block size). +.SH SOURCE +.PP +These commands are constructed in a highly stereotyped +way using the files +.I fs.c +and +.I util.c +in +.BR /sys/src/cmd/tapefs , +which in +turn derive substantially from +.IR ramfs (4). +.SH "SEE ALSO +Section 5 +.IR passim , +.IR ramfs (4). diff --git a/static/plan9-4e/man4/telco.4 b/static/plan9-4e/man4/telco.4 new file mode 100644 index 00000000..f78a9086 --- /dev/null +++ b/static/plan9-4e/man4/telco.4 @@ -0,0 +1,226 @@ +.TH TELCO 4 +.SH NAME +telco, faxreceive, faxsend, fax, telcofax, telcodata \- telephone dialer network +.SH SYNOPSIS +.B telco +[ +.B -p +] [ +.B -i +.I source-id +] [ +.B -v +] +.I dialer-devs +.PP +.B aux/faxsend +.I address +.I page1 +\&... +.PP +.B aux/faxreceive +[ +.B -s +.I spool-dir +] [ +.B -v +] +.PP +.B fax +.I telno +.I recipient +[ +.I files +] +.PP +.B service/telcofax +.PP +.B service/telcodata +.SH DESCRIPTION +.I Telco +is a file server that provides a network interface to +Hayes telephone dialers. +The interface is the same as that provided by +.IR ip (3) +and can be used by any program that makes network connections using +.IR dial (2). +The network addresses used by +.I telco +are telephone +numbers. +.PP +The options are +.TP +.B -p +use pulse dialing +.TP +.B -v +verbose: write to the log file all communications with +the dialer. +.TP +.B -i +specify a +.I source-id +to be used during FAX transfers +.PP +Some control of outgoing calls can be encoded +in the address. +Normally, addresses are of the form +.IB telco ! number\f1, +where +.I number +is a decimal telephone number. +However, commas in the telephone number can be used to insert +pauses in the dialing process. +Dialing options can be added to the end of the address, separated +by +.BR ! 's. +The dialing options are +.TF baudrate +.TP +.B compress +turn on compression (default off) +.TP +.I baudrate +a decimal number representing the highest baud +rate with which to make the call +.TP +.B fax +to make a Class 2 facsimile call (used by programs such as +.IR faxsend ) +.PD +.PP +.I Telco +also answers incoming calls. +Upon receiving a facsimile call, +.I telco +starts the script +.BR /rc/bin/service/telcofax . +For data calls it starts +.BR /rc/bin/service/telcodata . +Each is started with the network connection as both standard +input and standard output and with two arguments, +the file name of the network connection, e.g., +.BR /net/telco/0/data , +and the type of modem. +Currently, the only modem types supported are: +.TF ATT14400 +.TP +.B MT1432 +Multitech's 14400 baud modem +.TP +.B MT2834 +Multitech's 28800 baud modem +.TP +.B ATT14400 +the 14400 baud modem in Safaris +.TP +.B VOCAL +the 14400 baud Vocal modem +.PD +.PP +All other modems are assumed to be compatible with the standard +Hayes command subset. +.PP +.I Faxreceive +is normally started by +.BR /rc/bin/service/telcofax . +It inputs and spools a CCITT Group 3 (G3) encoded FAX, and then starts the +script +.BR /sys/lib/fax/receiverc , +passing it four arguments: the spool file name, +.B Y +(for success) or +.BR N , +the number of pages, and the id string passed by the caller. +This script sends by +.IR mail (1) +notification to a list of recipients kept in the file +.BR /mail/faxqueue/faxrecipients ; +the script and the list +should be edited to match local needs. +.I Faxreceive's +options are: +.TP +.B -s +specify a different spool directory; the default is +.BR /mail/faxqueue . +.TP +.B -v +verbose: write to the log file all communications with +the modem. +.PP +.I Faxsend +transmits a FAX to +.IR address . +.I Page1 +and all arguments that follow +are names of files containing G3 encoded +FAX images, one per page. +.PP +.I Fax +is a shell script that queues +PostScript, G3, or text files to be transmitted to a +FAX machine. +A standard cover sheet, derived from +.BR /sys/lib/fax/h.ps , +is sent before the message. +.I Telno +is the destination telephone number. +.I Recipient +is the name of the recipient to be placed +on the cover sheet. +If no +.I files +are specified, standard input is sent. +.SH EXAMPLE +Start the dialer on a PC, then use +.I con +to phone out. +.IP +.EX +telco /dev/eia1 +con -l telco!18005551212 +.EE +.PP +The connection will be made at the highest +negotiable baud rate. To use the +best negotiable compression scheme as well: +.IP +.EX +con -l telco!18005551212!compress +.EE +.SH FILES +.B /mail/faxqueue/* +.br +.B /rc/bin/service/telcodata +.br +.B /rc/bin/service/telcofax +.br +.B /sys/log/telco +.br +.B /sys/lib/fax/receiverc +.br +.B /mail/faxqueue/faxrecipients +.br +.B /sys/lib/fax/h.ps +.br +.B /sys/log/fax +.SH SOURCE +.B /sys/src/cmd/telco/* +.br +.B /sys/src/cmd/fax/* +.SH "SEE ALSO" +.IR con (1), +.IR ip (3) +.SH BUGS +.PP +These programs require the Class 2 facsimile interface. This means that +.I faxsend +and +.I faxreceive +will not work on most portable computers since they have Class 1 +interfaces. +.PP +The modem specific information is currently built into the source. +This should be in a user modifiable file. diff --git a/static/plan9-4e/man4/u9fs.4 b/static/plan9-4e/man4/u9fs.4 new file mode 100644 index 00000000..6d4d475c --- /dev/null +++ b/static/plan9-4e/man4/u9fs.4 @@ -0,0 +1,250 @@ +.TH U9FS 4 +.SH NAME +u9fs \- serve 9P from Unix +.SH SYNOPSIS +.B u9fs +[ +.B -Dnz +] +[ +.B -a +.I authtype +] +[ +.B -A +.I autharg +] +[ +.B -l +.I logfile +] +[ +.B -m +.I msize +] +[ +.B -u +.I onlyuser +] +.SH DESCRIPTION +.I U9fs +is +.I not +a Plan 9 program. Instead it is a program that +serves Unix files to Plan 9 machines using the 9P protocol +(see +.IR intro (5)). +It is typically invoked on a +Unix machine by +.B inetd +with its standard input and output connected to a +network connection, typically TCP on an Ethernet. +It typically runs as user +.B root +and multiplexes access to multiple Plan 9 clients over the single wire. +It assumes Plan 9 uids match Unix login names, +and changes to the corresponding Unix effective uid when processing requests. +.I U9fs +serves both 9P1 (the 9P protocol as used by +the second and third editions of Plan 9) and 9P2000. +.PP +The options are: +.TP +.B -D +Write very chatty debugging output to the log file (see +.B -l +option below). +.TP +.B -n +Signals that +.I u9fs +is +.I not +being invoked with a network connection +on standard input and output, and thus should +not try to determine the remote address of the connection. +This is useful when +.I u9fs +is not invoked from +.I inetd +(see examples below). +.TP +.B -z +Truncate the log file on startup. This is useful mainly when debugging +with +.BR -D . +.TP +.BI -a " authtype +Sets the authentication method to be used. +.I Authtype +should be +.BR rhosts , +.BR none , +or +.BR 9p1 . +The default is +.BR rhosts , +which uses the +.I ruserok +library call to authenticate users by entries in +.B /etc/hosts.equiv +or +.BR $HOME/.rhosts . +This default is discouraged for all but the most controlled networks. +Specifying +.B none +turns off authentication altogether. +This is useful when +.I u9fs +is not invoked from +.I inetd +(see examples below). +Specifying +.B 9p1 +uses the second and third edition Plan 9 authentication mechanisms. +The file +.BR /etc/u9fs.key , +or +.I autharg +if specified +(see the +.B -A +option), +is consulted for the authentication data. +The file must contain exactly three lines: +the plaintext password, the user id, and +the authentication domain. +.TP +.BI -A " autharg +Used to specify an argument to the authentication method. +See the authentication descriptions above. +.TP +.BI -l " logfile +Specifies the file which should contain debugging output +and other messages. +The out-of-the-box compile-time default is +.BR /tmp/u9fs.log . +.TP +.BI -m " msize +Set +.I msize +for 9P2000 +(see +.IR open (5)). +.TP +.BI -u " user +Treat all attaches as coming from +.IR user . +This is useful in some cases when running without +.IR inetd ; +see the examples. +.SH +EXAMPLES +.PP +Plan 9 calls 9P file service +.B 9fs +with TCP port number 564. +Set up this way on a machine called, say, +.BR kremvax , +.I u9fs +may be connected to the name space of a Plan 9 process by +.IP +.EX +9fs kremvax +.EE +.PP +For more information on this procedure, see +.IR srv (4) +and +.IR bind (1). +.PP +.I U9fs +serves the entire file system of the Unix machine. +It forbids access to devices +because the program is single-threaded and may block unpredictably. +Using the +.B attach +specifier +.B device +connects to a file system identical to the usual system except +it only permits device access (and may block unpredictably): +.IP +.EX +srv tcp!kremvax!9fs +mount -c /srv/tcp!kremvax!9fs /n/kremvax device +.EE +.PP +(The +.B 9fs +command +does not accept an attach specifier.) +Even so, +device access may produce unpredictable +results if the block size of the device is greater than 8192, +the maximum data size of a 9P message. +.PP +The source to +.I u9fs +is in the Plan 9 directory +.BR /sys/src/cmd/unix/u9fs . +To install +.I u9fs +on a Unix system with an ANSI C compiler, copy the source to a directory on that system +and run +.BR make . +Then install the binary in +.BR /usr/etc/u9fs . +Add this line to +.BR inetd.conf : +.IP +.EX +9fs stream tcp nowait root /usr/etc/u9fs u9fs +.EE +.PP +and this to +.BR services : +.IP +.EX +9fs 564/tcp 9fs # Plan 9 fs +.EE +.LP +Due to a bug in their +IP software, some systems will not accept the service name +.BR 9fs , +thinking it +a service number because of the initial digit. +If so, run the service as +.B u9fs +or +.BR 564 . +.PP +On systems where listeners cannot be started, +.IR execnet (4) +is useful for running +.I u9fs +via mechanisms like +.IR ssh . +.SH SOURCE +.B /sys/src/cmd/unix/u9fs +.SH DIAGNOSTICS +Problems are reported to the +log file specified with the +.B -l +option (default +.BR /tmp/u9fs.log ). +The +.B -D +flag enables chatty debugging. +.SH SEE ALSO +.IR bind (1), +.IR execnet (4), +.IR srv (4), +.IR ip (3), +.IR nfsserver (8) +.SH BUGS +The implementation of devices is unsatisfactory. +.LP +Semantics like remove-on-close or the +atomicity of +.B wstat +are hard to provide exactly. diff --git a/static/plan9-4e/man4/usb.4 b/static/plan9-4e/man4/usb.4 new file mode 100644 index 00000000..2f01063b --- /dev/null +++ b/static/plan9-4e/man4/usb.4 @@ -0,0 +1,154 @@ +.TH USB 4 +.SH NAME +usbmouse, +usbaudio +\- Universal Serial Bus user level device drivers +.SH SYNOPSIS +.B usb/usbmouse +[ +.B -f +] [ +.I ctrlno +.I n +] +.PP +.B usb/usbaudio +[ +.B -d +] [ +.B -v +.I volume +] [ +.B -m +.I mountpoint +] [ +.I ctrlno +.I n +] +.PP +.B usbstart +.SH DESCRIPTION +These programs implement support for specific USB device classes. +They should be run after +.IR usbd (4) +has had a chance to locate the devices in question and provide +them with device addresses and minimal configuration. +Dynamic handling of device insertion and removal is currently not supported. +.PP +The script +.B usbstart +checks whether a USB driver is present, and if so, starts usbd +followed by the support programs listed below. +.SS USB MICE +.B Usbmouse +sends mouse events from a USB mouse to +.B #m/mousein +where the Plan 9 kernel processes them like other mice. +.PP +Without arguments, it scans the USB status files to find a mouse +and uses the first one it finds. A pair of numeric arguments overrides this search +with a specific USB controller and device. +.PP +The +.B -f +flag runs +.B usbmouse +in the foreground. +.SS USB AUDIO DEVICES +.B Usbaudio +configures and manages a usb audio device. It implements a file system, +normally mounted in +.BI /dev , +but this can be changed with the +.B \-m +flag, with files +.IR /volume , +.IR /audioctl , +.IR /audio , +and +.IR /audioin . +The names +.I /volume +and +.I /audio +maintain backward compatibility with the soundblaster driver. +.PP +Reading +.I /volume +or +.I /audioctl +yields the device's settings. The data format of +.I /volume +is compatible with the soundblaster and +produces something like +.PP +.EX +audio out 65 +treb out 0 +bass out 0 +speed out 44100 +.EE +.PP +This file can be written using the same syntax. The keyword +.I out +may be omitted. Settings are given as percentages of the range. +.PP +The file +.I /audioctl +provides more information, using up to 6 columns of 12 characters each. +From left to right, the fields are: +.IR "control name" , +.I in +or +.IR out , +.IR "current value" , +.IR "minimum value" , +.IR maximum , +and +.IR resolution . +There are 3, 5, or 6 columns present. +Maxima and resolution are omitted when they are not available or not applicable. +The resolution for +.I speed +is reported as 1 (one) if the sampling frequency is continuously variable. It is absent +if it is settable at a fixed number of discrete values only. +.PP +When all values from +.I /audioctl +have been read, a zero-sized buffer is returned (the usual end-of-file indication). +A new read will then block until one of the settings changes and then report its new value. +.PP +The file +.I /audioctl +can be written like +.IR /volume . +.PP +Audio data is written to +.I /audio +and read from +.IR /audioin . +The data format is little endian, samples ordered primarily by time and +secondarily by channel. Samples occupy the minimum integral number +of bytes. Read and write operations of arbitrary size are allowed. +.SH EXAMPLE +.LP +To use a USB mouse and audio device, put the following in your profile +(replace x by your favorite initial volume setting): +.PP +.EX +.ta 6n +if (test -r '#U'/usb0) { + usb/usbd + usb/usbmouse -a 2 + usb/usbaudio -v x +} +.EE +.PP +Alternatively, just put +.B usbstart +in your profile. +.SH SOURCE +.B /sys/src/cmd/usb +.SH "SEE ALSO" +.IR usb (3), +.IR usbd (4) diff --git a/static/plan9-4e/man4/usbd.4 b/static/plan9-4e/man4/usbd.4 new file mode 100644 index 00000000..154d49c9 --- /dev/null +++ b/static/plan9-4e/man4/usbd.4 @@ -0,0 +1,35 @@ +.TH USBD 4 +.SH NAME +usbd \- Universal Serial Bus daemon +.SH SYNOPSIS +.B usbd +[ +.B -v +] [ +.B -d +] +.SH DESCRIPTION +.I Usbd +manages the USB infrastructure, polls all ports, configures hubs and +provides access to USB devices through a file system in +.BR #U . +It monitors all ports, active or inactive and acts on state changes +by configuring devices when they are plugged in or turned on and +unconfiguring them when they are pulled out or switched off. +.PP +.B Usbd +recognizes the following flags: +.I +.TP +.B v +Verbose; print configuration information and device status as they change. +.TP +.B d +Debug; print the bytes in each message sent or received. +.LP +.sp +.SH SOURCE +.B /sys/src/cmd/usb/usbd +.SH "SEE ALSO" +.IR usb (3), +.IR usb (4) diff --git a/static/plan9-4e/man4/vacfs.4 b/static/plan9-4e/man4/vacfs.4 new file mode 100644 index 00000000..db9c79a6 --- /dev/null +++ b/static/plan9-4e/man4/vacfs.4 @@ -0,0 +1,72 @@ +.TH VACFS 4 +.SH NAME +vacfs \- a Venti-based file system +.SH SYNOPSIS +.B vacfs +[ +.B -dis +] +[ +.B -c +.I cachesize +] +[ +.B -h +.I host +] +[ +.B -m +.I mtpt +] +.I vacfile +.SH DESCRIPTION +.I Vacfs +interprets the file system created by +.IR vac (1) +so that it can be mounted into a Plan 9 file hierarchy. +The data for the file system is stored on +.IR venti (8) +with a root fingerprint specified in +.IR vacfile . +.I Vacfs +is currently rather limited: access is read-only, +clients are not authenticated, and groups are assumed to +contain a single member with the same name. +These restrictions should eventually be removed. +.PP +Options to +.I vacfs +are: +.TP +.BI -c " cachesize +The number of file system blocks to cache in memory. The default is 1000 blocks. +.TP +.B -d +Print debugging information to standard error. +.TP +.BI -h " host +The network address of the Venti server. +The default is taken from the environment variable +.BR venti . +If this variable does not exist, then the default is the +metaname +.BR $venti , +which can be configured via +.IR ndb (6). +.TP +.B -i +Use file descriptors 0 and 1 as the 9P communication channel rather than create a pipe. +.TP +.BI -m " mtpt +The location to mount the file system. The default is +.BR /n/vac . +.TP +.B -s +Post the 9P channel on #s/vacfs rather than +mounting it on +.IR mtpt . +.SH SOURCE +.B /sys/src/cmd/vac +.SH "SEE ALSO" +.IR vac (1), +.IR venti (8) diff --git a/static/plan9-4e/man4/webcookies.4 b/static/plan9-4e/man4/webcookies.4 new file mode 100644 index 00000000..63842e90 --- /dev/null +++ b/static/plan9-4e/man4/webcookies.4 @@ -0,0 +1,166 @@ +.TH WEBCOOKIES 4 +.SH NAME +webcookies \- HTTP cookie manager +.SH SYNOPSIS +.B webcookies +[ +.B -f +.I cookiefile +] +[ +.B -m +.I mtpt +] +[ +.B -s +.I service +] +.SH DESCRIPTION +.I Webcookies +manages a set of HTTP cookies, which are +used to associate HTTP requests with persistent state +(such as user profiles) on many web servers. +.PP +.I Webcookies +reads +.I cookiefile +(default +.BR $home/lib/webcookies ) +and mounts itself at +.I mtpt +(default +.BR /mnt/webcookies ). +If +.I service +is specified, +.I cookiefs +will post a service file descriptor +in +.BR /srv/\fIservice . +.PP +The cookie file contains one cookie per line; +each cookie comprises some number of +.IB attr = value +pairs. +Cookie attributes are: +.TF \fBnetscapestyle=flag +.TP +.BI name= name +The name of the cookie on the remote server. +.TP +.BI value= value +The value associated with that name on the remote server. +The actual data included when a cookie is sent back +to the server is +.IB \fR``\fIname = value\fR'' +(where, confusingly, +.I name +and +.I value +are the values associated with the +.B name +and +.B value +attributes. +.TP +.BI domain= domain +The domain within which the cookie can be used. +If +.I domain +is an IP address, the cookie can only be used when +connecting to a web server at that IP address. +If +.I domain +is a pattern beginning with a dot, +the cookie can only be used for servers whose name +has +.I domain +as a suffix. +For example, a cookie with +.B domain=.bell-labs.com +may be used on the web sites +.I www.bell-labs.com +and +.IR www.research.bell-labs.com . +.TP +.BI path= path +The cookie can only be used for URLs with a path (the part after +.BI http:// hostname\fR) +beginning with +.IR path . +.TP +.BI version= version +The version of the HTTP cookie specification, specified by the server. +.TP +.BI comment= comment +A comment, specified by the server. +.TP +.BI expire= expire +The cookie expires at time +.IR expire , +which is a decimal number of seconds since the epoch. +.TP +.B secure=1 +The cookie may only be used over secure +.RB ( https ) +connections. +.TP +.B explicitdomain=1 +The domain associated with this cookie was set by +the server (rather than inferred from a URL). +.TP +.B explicitpath=1 +The path associated with this cookie was set by the +server (rather than inferred from a URL). +.TP +.B netscapestyle=1 +The server presented the cookie in ``Netscape style,'' which +does not conform to the cookie standard, RFC2109. +It is assumed that when presenting the cookie to the server, +it must be sent back in Netscape style as well. +.PD +.PP +.I Webcookies +serves a directory containing two files. +The first, +.BR cookies , +is a textual representation of the cookie file, +which can be edited to change the set of cookies +currently held. +The second, +.BR http , +is intended to be used by HTTP clients +to access cookies. +Upon opening +.BR http , +the client must write a full URL to it. +After writing the URL, reading from the file will yield any +HTTP +.B Cookie: +headers that should be included in the +request for this particular URL. +Once the request has been made, any +.B Set-Cookie: +lines in the HTTP response header should +be written to the file to save them for next time. +If +.B cookiefs +decides not to accept the cookie (as outlined in +RFC2109, section 4.3.4), no indication is given. +.PP +.IR Hget (1) +uses +.BR /mnt/webcookies/http , +when it exists, to manage cookie state. +.I Webfs +does not (yet). +.SH SOURCE +.B /sys/src/cmd/webcookies.c +.SH SEE ALSO +.IR hget (1) +.SH BUGS +It's not clear what the relationship between +.I cookiefs +and something like +.I webfs +should be. diff --git a/static/plan9-4e/man4/webfs.4 b/static/plan9-4e/man4/webfs.4 new file mode 100644 index 00000000..e6d57bfa --- /dev/null +++ b/static/plan9-4e/man4/webfs.4 @@ -0,0 +1,307 @@ +.TH WEBFS 4 +.SH NAME +webfs \- world wide web file system +.SH SYNOPSIS +.B webfs +[ +.B -c +.I cookiefile +] +[ +.B -m +.I mtpt +] +[ +.B -s +.I service +] +\&... +.SH DESCRIPTION +.I Webfs +presents a file system interface to the parsing and retrieving +of URLs. +.I Webfs +mounts itself at +.I mtpt +(default +.BR /mnt/web ), +and, if +.I service +is specified, will post a service file descriptor +in +.BR /srv/\fIservice . +.PP +.I Webfs +presents a three-level file system suggestive +of the network protocol hierarchies +.IR ip (3) +and +.IR ether (3). +.PP +The top level contains three files: +.BR ctl , +.BR cookies , +and +.BR clone . +.PP +The +.B ctl +file is used to maintain parameters global to the instance of +.IR webfs . +Reading the +.B ctl +file yields the current values of the parameters. +Writing strings of the form +.RB `` attr " " value '' +sets a particular attribute. +Attributes are: +.TP +.B chatty9p +The +.B chatty9p +flag used by the 9P library, discussed in +.IR 9p (2). +.B 0 +is no debugging, +.B 1 +prints 9P message traces on standard error, +and values above +.B 1 +present more debugging, at the whim of the library. +The default for this and the following debug flags is +.BR 0 . +.TP +.B fsdebug +This variable is the level of debugging output about the file system module. +.TP +.B cookiedebug +This variable is the level of debugging output about the cookie module. +.TP +.B urldebug +This variable is the level of debugging output about URL parsing. +.TP +.B acceptcookies +This flag controls whether to accept cookies presented by remote web servers. +(Cookies are described below, in the discussion of the +.B cookies +file.) +The values +.B on +and +.B off +are synonymous with +.B 1 +and +.BR 0 . +The default is +.BR on . +.TP +.B sendcookies +This flag controls whether to present stored cookies to remote web servers. +The default is +.BR on . +.TP +.B redirectlimit +Web servers can respond to a request with a message +redirecting to another page. +.I Webfs +makes no effort to determine whether it is in an infinite +redirect loop. +Instead, it gives up after this many redirects. +The default is +.BR 10 . +.TP +.B useragent +.I Webfs +sends the value of this attribute in its +.B User-Agent: +header in its HTTP requests. +The default is +.RB `` "webfs/2.0 (plan 9)" .'' +.PD +.PP +The top-level directory also contains +numbered directories corresponding to connections, which +may be used to fetch a single URL. +To allocated a connection, open the +.B clone +file and read a number +.I n +from it. +After opening, the +.B clone +file is equivalent to the file +.IB n /ctl \fR. +A connection is assumed closed once all files in its directory +have been closed, and is then will be reallocated. +.PP +Each connection has its own private set of +.BR acceptcookies , +.BR sendcookies , +.BR redirectlimit , +and +.B useragent +variables, initialized to the defaults set in the +root's +.B ctl +file. The per-connection +.B ctl +file allows editing the variables for this particular connection. +.PP +Each connection also has a URL string variable +.B url +associated with it. +This URL may be an absolute URL such as +.I http://www.lucent.com/index.html +or a relative URL such as +.IR ../index.html . +The +.B baseurl +string variable sets the URL against which relative URLs +are based. +Once the URL has been set, +its pieces can be retrieved via individual files in the +.B parsed +directory. +.I Webfs +parses the following URL syntaxes; names in italics are +the names of files in the +.B parsed +directory. +.IP +\fIscheme\f5:\fIschemedata +.br +\f5http://\fIhost\f5/\fIpath\fR[\f5?\fIquery\fR][\f5#\fIfragment\fR] +.br +\f5ftp://\fR[\fIuser\fR[\f5:\fIpassword\fR]\f5@\fR]\fP\f5\fIhost\f5/\fIpath\fR[\f5;type=\fIftptype\fR] +.br +\f5file:\fIpath +.LP +If there is associated data to be +posted with the request, it can be written to +.BR postbody . +Finally, opening +.B body +initiates the request. +The resulting data may be read from +.B body +as it arrives. +After the request has been executed, the MIME content type +may be read from the +.B contenttype +file. +.PP +The top-level +.B cookies +file contains the internal set of HTTP cookies, which +are used by HTTP servers to associate requests with persistent +state such as user profiles. +It may be edited as an ordinary text file. +Multiple instances of +.I webfs +and +.IR webcookies (4) +share cookies by keeping their internal set +consistent with the +.I cookiefile +(default +.BR $home/lib/webcookies ), +which has the same format. +.PP +These files contain one line per cookie; +each cookie comprises some number of +.IB attr = value +pairs. +Cookie attributes are: +.TP +.BI name= name +The name of the cookie on the remote server. +.TP +.BI value= value +The value associated with that name on the remote server. +The actual data included when a cookie is sent back +to the server is +.IB \fR``\fIname = value\fR'' +(where, confusingly, +.I name +and +.I value +are the values associated with the +.B name +and +.B value +attributes. +.TP +.BI domain= domain +If +.I domain +is an IP address, the cookie can only be used for URLs +with +.I host +equal to that IP address. +Otherwise, +.I domain +must be a pattern beginning with a dot, and +the cookie can only be used for URLs with a +.I host +having +.I domain +as a suffix. +For example, a cookie with +.B domain=.bell-labs.com +may be used on hosts +.I www.bell-labs.com +and +.IR www.research.bell-labs.com +(but not +.IR www.not-bell-labs.com ). +.TP +.BI path= path +The cookie can only be used for URLs with a path +beginning with +.IR path . +.TP +.BI version= version +The version of the HTTP cookie specification, specified by the server. +.TP +.BI comment= comment +A comment, specified by the server. +.TP +.BI expire= expire +The cookie expires at time +.IR expire , +which is a decimal number of seconds since the epoch. +.TP +.B secure=1 +The cookie may only be used over secure +.RB ( https ) +connections. +Secure connections are currently unimplemented. +.TP +.B explicitdomain=1 +The domain associated with this cookie was set by +the server (rather than inferred from a URL). +.TP +.B explicitpath=1 +The path associated with this cookie was set by the +server (rather than inferred from a URL). +.TP +.B netscapestyle=1 +The server presented the cookie in ``Netscape style,'' which +does not conform to the cookie standard, RFC2109. +It is assumed that when presenting the cookie to the server, +it must be sent back in Netscape style as well. +.PD +.PP +.SH SOURCE +.B /sys/src/cmd/webfs +.SH SEE ALSO +.IR hget (1), +.IR webcookies (4). +.SH BUGS +It's not clear what the relationship between +.IR hget , +.I webcookies +and +.I webfs +should be. diff --git a/static/plan9-4e/man4/wikifs.4 b/static/plan9-4e/man4/wikifs.4 new file mode 100644 index 00000000..e99ba361 --- /dev/null +++ b/static/plan9-4e/man4/wikifs.4 @@ -0,0 +1,338 @@ +.TH WIKIFS 4 +.SH NAME +wikifs, wikipost \- wiki file system +.SH SYNOPSIS +.B wikifs +[ +.B -DM +] +[ +.B -a +.I announce +]... +[ +.B -m +.I mtpt +] +[ +.B -p +.I perm +] +[ +.B -s +.I service +] +.I dir +.PP +.B ip/httpd/wikipost +.RB [ -b +.IR inbuf ] +.RB [ -d +.IR domain ] +.RB [ -r +.IR remoteip ] +.RB [ -w +.IR webroot ] +.RB [ -N +.IR netdir ] +.I method version uri +.RI [ search ] +.SH DESCRIPTION +A +.I wiki +is a web server that facilitates easy editing of the pages it contains. +.I Wikifs +presents a wiki in two forms: as web pages to be served +via +.IR httpd (8) +and as text files to be viewed via the +.IR acme (1) +wiki client +(see +.BR /acme/wiki/guide ). +.PP +.I Wikifs +presents a file system interface to the wiki data stored +in +.IR dir . +By default, +.I wikifs +mounts itself at +.BR /mnt/wiki ; +the +.B -m +flag specifies a different mount point, +and the +.B -M +flag causes +.I wikifs +not to mount at all. +.I Wikifs +also announces 9P network services on the addresses +given as arguments to +.B -a +options. +If the +.B -s +option is given, +.I wikifs +will post a service file descriptor in +.BI /srv/ service +with permission +.I perm +(default 600). +The +.B -D +flag causes a transcript of the 9P conversation +to be written to standard error. +.PP +The wiki holds both the current pages and also +all versions of all pages that have ever existed. +All pages have time stamps associated with them. +When a user wants to edit a page, he reads the +current page from the wiki, noting the time stamp +on the page. +When a user writes changes to a page, he includes the time stamp +of the page he started with. If the page has been updated +by someone else while he was editing, the write will fail. +This is called a ``conflicting write.'' +The submission is still saved in the history, so that +the user can compare the page he submitted with the changes +that were made while he was editing. +.PP +Each version of each page is described by a text file containing +one or more metadata lines followed by the page contents. +The metadata lines begin with a capital letter specifying the type of data. +Currently the metadata types are: +.TP +.B D +The date this page was written, in decimal seconds since the epoch. +.TP +.B A +The author of this version of the page. Typically the rest of the line +takes the form +.I name +.IR ip-address . +.TP +.B X +This page's contents were submitted but rejected due to a +conflicting write. +.PD +After the metadata comes the actual page contents; each line of +page contents is prefixed with a +.B # +character. +.PP +The directory +.IB dir /d +contains all the wiki data. Typically it is world-writable +so that +.I wikifs +can run as none. +Each page on the wiki has a unique sequence number +.IR n ; +for each page, the +.B d +directory contains three files +.IR n , +.IB n .hist \fR, +and +.BI L .n \fR. +The file +.I n +holds the current version of the page: the first line of +.I n +is the page title, followed by page metadata and contents as described above. +The append-only file +.IB n .hist +holds the history of the page. +The first line of +.IB n .hist +is the title of the page. +The rest of the file is the metadata and contents of every +version of the page that has been submitted to the wiki. +.BI L .n +is a lock file for the page: it must be +held while reading or writing +.I n +and +.IB n .hist \fR. +The lock files allow multiple instances of +.I wikifs +to coexist peacefully. +Finally, the +.B map +file (with associated lock +.BR L.map ) +provides a mapping from +sequence numbers to +to page titles. +Each map line is a decimal +.IR n , +a single space, +and then the title. +Since titles are presented as names by +.IR wikifs , +they cannot contain slashes. +.PP +.I Wikifs +presents a three-level file system. +The top level contains per-page directories +named by the page titles with spaces turned +into underscores. +Each page also has a number associated with it +(see the discussion of the wiki data files below). +The number corresponding to a page may +also be used to access it, although directory +listings will always present the title. +The +.B new +file is used to add new or revised pages to the wiki: +writes to the file should be in the usual textual format: +a title line, metadata lines, and page contents. +Once all the contents have been written, a final zero-length +message should be written to mark the end of the page. +This last write will return an error if a conflicting +write has occurred. +After writing the file, the client may read from +.B new +to obtain the canonical title for the page, as presented +by the file system. +.PP +The page directories contain subdirectories representing +the history of the page, named +by the decimal time stamp corresponding to each version. +In addition to these history directories, +the page directories contain the following files: +.TP +.B current +The current raw data file for the page. +.TP +.B diff.html +A web page listing the contents of every version of +the page that has ever appeared on the wiki. +The text is grey by default: +differences between versions appear in black. +.TP +.B edit.html +A web form for editing the the current version of the page. +.TP +.B history.html +A web page listing the time stamps of the historical versions of the page. +Each time stamp links to a page showing just +that version. +.TP +.B history.txt +A textual formatting of the history. Each time stamp is prefixed with +the name of the directory corresponding to that version. +.TP +.B index.html +An HTML formatting of the current version of the page. +.TP +.B index.txt +A textual formatting of the current version of the page. +.TP +.B werror.html +An HTML error page to be returned by +.I wikipost +on conflicting writes. +.PD +.LP +The HTML files are generated from the templates with the same names +in +.IR dir , +except that +.B index.html +and +.B index.txt +are generated from the templates +.B page.html +and +.BR page.txt . +.PP +The history directories +are similar to the page directories but only contain +.BR current , +.BR index.html , +and +.BR index.txt . +This +.B index.html +and +.B index.txt +are generated from the templates +.B oldpage.html +and +.BR oldpage.txt . +.PP +The +.IR httpd (8) +helper program +.I wikipost +is used to process editing requests posted +to the web server by users. +It expects the posted form to contain these +(usually hidden) fields: +.BR TITLE , +the title of the page; +.BR VERSION , +the time stamp of the page that is being edited; +.BR service , +the service name associated with this wiki +.RI ( wikipost +looks for +.BI /srv/wiki. service \fR); +and +.BR base , +the base for wiki URLs in the response. +.PP +After mounting the wiki, +.I wikipost +writes a page update request to +.B /mnt/wiki/new +and then returns the contents of one HTML +file in +.BR /mnt/wiki/ title \fR. +If the write succeeds, +.I wikipost +returns +.BR index.html . +if the write fails due to a conflicting write, +.I wikipost +returns +.BR werror.html . +.SH EXAMPLE +The Plan 9 wiki at Bell Labs is started by running: +.EX +.ta +4n + wikifs -p 666 -s wiki.plan9 -a tcp!*!wiki /sys/lib/wiki +.EE +.PP +The wiki is mounted for +.IR httpd (8) +by an entry in +.BR /lib/namespace.httpd : +.EX +.ta +4n + # wiki + mount -b #s/wiki.plan9 /usr/web/wiki/plan9 +.EE +Notice that the wiki service was explicitly posted with +mode 666 so that +.I httpd +(running as none) +would be able to mount it. +.PP +In the Plan 9 distribution, the directory +.B /sys/lib/wiki +contains sample files similar to those used +to start the current Plan 9 wiki. +.SH SOURCE +.B /sys/src/cmd/wikifs +.br +.B /sys/src/cmd/ip/httpd/wikipost.c +.SH SEE ALSO +The original wiki, +.B http://c2.com/cgi/wiki?WikiWikiWeb +.br +.B /acme/wiki/guide diff --git a/static/plan9-4e/man5/0intro.5 b/static/plan9-4e/man5/0intro.5 new file mode 100644 index 00000000..523538cd --- /dev/null +++ b/static/plan9-4e/man5/0intro.5 @@ -0,0 +1,603 @@ +.TH INTRO 5 +.SH NAME +intro \- introduction to the Plan 9 File Protocol, 9P +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +A Plan 9 +.I server +is an agent that provides one or more hierarchical file systems +\(em file trees \(em +that may be accessed by Plan 9 processes. +A server responds to requests by +.I clients +to navigate the hierarchy, +and to create, remove, read, and write files. +The prototypical server is a separate machine that stores +large numbers of user files on permanent media; +such a machine is called, somewhat confusingly, a +.I file +.IR server . +Another possibility for a server is to synthesize +files on demand, perhaps based on information on data structures +inside the kernel; the +.IR proc (3) +.I kernel device +is a part of the Plan 9 kernel that does this. +User programs can also act as servers. +.PP +A +.I connection +to a server is a bidirectional communication path from the client to the server. +There may be a single client or +multiple clients sharing the same connection. +A server's file tree is attached to a process +group's name space by +.IR bind (2) +and +.I mount +calls; +see +.IR intro (2). +Processes in the group are then clients +of the server: +system calls operating on files are translated into requests +and responses transmitted on the connection to the appropriate service. +.PP +The +.IR "Plan 9 File Protocol" , +9P, is used for messages between +.I clients +and +.IR servers . +A client transmits +.I requests +.RI ( T-messages ) +to a server, which +subsequently returns +.I replies +.RI ( R-messages ) +to the client. +The combined acts of transmitting (receiving) a request of a particular type, +and receiving (transmitting) +its reply is called a +.I transaction +of that type. +.PP +Each message consists of a sequence of bytes. +Two-, four-, and eight-byte fields hold unsigned +integers represented in little-endian order +(least significant byte first). +Data items of larger or variable lengths are represented +by a two-byte field specifying a count, +.IR n , +followed by +.I n +bytes of data. +Text strings are represented this way, +with the text itself stored as a UTF-8 +encoded sequence of Unicode characters (see +.IR utf (6)). +Text strings in 9P messages are not +.SM NUL\c +-terminated: +.I n +counts the bytes of UTF-8 data, which include no final zero byte. +The +.SM NUL +character is illegal in all text strings in 9P, and is therefore +excluded from file names, user names, and so on. +.PP +Each 9P message begins with a four-byte size field +specifying the length in bytes of the complete message including +the four bytes of the size field itself. +The next byte is the message type, one of the constants +in the enumeration in the include file +.BR . +The next two bytes are an identifying +.IR tag , +described below. +The remaining bytes are parameters of different sizes. +In the message descriptions, the number of bytes in a field +is given in brackets after the field name. +The notation +.IR parameter [ n ] +where +.I n +is not a constant represents a variable-length parameter: +.IR n [2] +followed by +.I n +bytes of data forming the +.IR parameter . +The notation +.IR string [ s ] +(using a literal +.I s +character) +is shorthand for +.IR s [2] +followed by +.I s +bytes of UTF-8 text. +(Systems may choose to reduce the set of legal characters +to reduce syntactic problems, +for example to remove slashes from name components, +but the protocol has no such restriction. +Plan 9 names may contain any printable character (that is, any character +outside hexadecimal 00-1F and 80-9F) +except slash.) +Messages are transported in byte form to allow for machine independence; +.IR fcall (2) +describes routines that convert to and from this form into a machine-dependent +C structure. +.SH MESSAGES +.ta \w'\fLTsession 'u +.IP +.ne 2v +.IR size [4] +.B Tversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.br +.IR size [4] +.B Rversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.IP +.ne 2v +.IR size [4] +.B Tauth +.IR tag [2] +.IR afid [4] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.br +.IR size [4] +.B Rauth +.IR tag [2] +.IR aqid [13] +.IP +.ne 2v +.IR size [4] +.B Rerror +.IR tag [2] +.IR ename [ s ] +.IP +.ne 2v +.IR size [4] +.B Tflush +.IR tag [2] +.IR oldtag [4] +.br +.IR size [4] +.B Rflush +.IR tag [2] +.IP +.ne 2v +.IR size [4] +.B Tattach +.IR tag [2] +.IR fid [4] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.IR size [4] +.B Rattach +.IR tag [2] +.IR qid [13] +.IP +.ne 2v +.IR size [4] +.B Twalk +.IR tag [2] +.IR fid [4] +.IR newfid [4] +.IR nwname [2] +.IR nwname *( wname [ s ]) +.br +.IR size [4] +.B Rwalk +.IR tag [2] +.IR nwqid [2] +.IR nwqid *( wqid [13]) +.IP +.ne 2v +.IR size [4] +.B Topen +.IR tag [2] +.IR fid [4] +.IR mode [1] +.br +.IR size [4] +.B Ropen +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.IP +.ne 2v +.IR size [4] +.B Tcreate +.IR tag [2] +.IR fid [4] +.IR name [ s ] +.IR perm [4] +.IR mode [1] +.br +.IR size [4] +.B Rcreate +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.IP +.ne 2v +.IR size [4] +.B Tread +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.br +.IR size [4] +.B Rread +.IR tag [2] +.IR count [4] +.IR data [ count ] +.IP +.ne 2v +.IR size [4] +.B Twrite +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.IR data [ count ] +.br +.IR size [4] +.B Rwrite +.IR tag [2] +.IR count [4] +.IP +.ne 2v +.IR size [4] +.B Tclunk +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rclunk +.IR tag [2] +.IP +.ne 2v +.IR size [4] +.B Tremove +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rremove +.IR tag [2] +.IP +.ne 2v +.IR size [4] +.B Tstat +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rstat +.IR tag [2] +.IR stat [ n ] +.IP +.ne 2v +.IR size [4] +.B Twstat +.IR tag [2] +.IR fid [4] +.IR stat [ n ] +.br +.IR size [4] +.B Rwstat +.IR tag [2] +.PP +Each T-message has a +.I tag +field, chosen and used by the client to identify the message. +The reply to the message will have the same tag. +Clients must arrange that no two outstanding messages +on the same connection have the same tag. +An exception is the tag +.BR NOTAG , +defined as +.B (ushort)~0 +in +.BR : +the client can use it, when establishing a connection, +to +override tag matching in +.B version +messages. +.PP +The type of an R-message will either be one greater than the type +of the corresponding T-message or +.BR Rerror , +indicating that the request failed. +In the latter case, the +.I ename +field contains a string describing the reason for failure. +.PP +The +.B version +message identifies the version of the protocol and indicates +the maximum message size the system is prepared to handle. +It also initializes the connection and +aborts all outstanding I/O on the connection. +The set of messages between +.B version +requests is called a +.IR session . +.PP +Most T-messages contain a +.IR fid , +a 32-bit unsigned integer that the client uses to identify +a ``current file'' on the server. +Fids are somewhat like file descriptors in a user process, +but they are not restricted to files open for I/O: +directories being examined, files being accessed by +.IR stat (2) +calls, and so on \(em all files being manipulated by the operating +system \(em are identified by fids. +Fids are chosen by the client. +All requests on a connection share the same fid space; +when several clients share a connection, +the agent managing the sharing must arrange +that no two clients choose the same fid. +.PP +The fid supplied in an +.B attach +message +will be taken by the server to refer to the root of the served file tree. +The +.B attach +identifies the user +to the server and may specify a particular file tree served +by the server (for those that supply more than one). +.PP +Permission to attach to the service is proven by providing a special fid, called +.BR afid , +in the +.B attach +message. This +.B afid +is established by exchanging +.B auth +messages and subsequently manipulated using +.B read +and +.B write +messages to exchange authentication information not defined explicitly by 9P. +Once the authentication protocol is complete, the +.B afid +is presented in the +.B attach +to permit the user to access the service. +.PP +A +.B walk +message causes the server to change the current file associated +with a fid to be a file in the directory that is the old current file, or one of +its subdirectories. +.B Walk +returns a new fid that refers to the resulting file. +Usually, a client maintains a fid for the root, +and navigates by +.B walks +from the root fid. +.PP +A client can send multiple T-messages without waiting for the corresponding +R-messages, but all outstanding T-messages must specify different tags. +The server may delay the response to a request +and respond to later ones; +this is sometimes necessary, for example when the client reads +from a file that the server synthesizes from external events +such as keyboard characters. +.PP +Replies (R-messages) to +.BR auth , +.BR attach , +.BR walk , +.BR open , +and +.B create +requests convey a +.I qid +field back to the client. +The qid represents the server's unique identification for the +file being accessed: +two files on the same server hierarchy are the same if and only if their qids +are the same. +(The client may have multiple fids pointing to a single file on a server +and hence having a single qid.) +The thirteen-byte qid fields hold a one-byte type, +specifying whether the file is a directory, append-only file, etc., +and two unsigned integers: +first the eight-byte qid +.IR path , +then the four-byte qid +.IR version . +The path is an integer unique among all files in the hierarchy. +If a file is deleted and recreated with the +same name in the same directory, the old and new path components of the qids +should be different. +The version is a version number for a file; +typically, it is incremented every time the file is modified. +.PP +An existing file can be +.BR opened , +or a new file may be +.B created +in the current (directory) file. +I/O of a given number of bytes +at a given offset +on an open file is done by +.B read +and +.BR write . +.PP +A client should +.B clunk +any fid that is no longer needed. +The +.B remove +transaction deletes files. +.PP +The +.B stat +transaction retrieves information about the file. +The +.I stat +field in the reply includes the file's +name, +access permissions (read, write and execute for owner, group and public), +access and modification times, and +owner and group identifications +(see +.IR stat (2)). +The owner and group identifications are textual names. +The +.B wstat +transaction allows some of a file's properties +to be changed. +.PP +A request can be aborted with a +flush +request. +When a server receives a +.BR Tflush , +it should not reply to the message with tag +.I oldtag +(unless it has already replied), +and it should immediately send an +.BR Rflush . +The client must wait +until it gets the +.B Rflush +(even if the reply to the original message arrives in the interim), +at which point +.I oldtag +may be reused. +.PP +Because the message size is negotiable and some elements of the +protocol are variable length, it is possible (although unlikely) to have +a situation where a valid message is too large to fit within the negotiated size. +For example, a very long file name may cause a +.B Rstat +of the file or +.B Rread +of its directory entry to be too large to send. +In most such cases, the server should generate an error rather than +modify the data to fit, such as by truncating the file name. +The exception is that a long error string in an +.B Rerror +message should be truncated if necessary, since the string is only +advisory and in some sense arbitrary. +.PP +Most programs do not see the 9P protocol directly; instead calls to library +routines that access files are +translated by the mount driver, +.IR mnt (3), +into 9P messages. +.SH DIRECTORIES +Directories are created by +.B create +with +.B DMDIR +set in the permissions argument (see +.IR stat (5)). +The members of a directory can be found with +.IR read (5). +All directories must support +.B walks +to the directory +.B .. +(dot-dot) +meaning parent directory, although by convention directories +contain no explicit entry for +.B .. +or +.B . +(dot). +The parent of the root directory of a server's tree is itself. +.SH "ACCESS PERMISSIONS" +Each file server maintains a set of user and group names. +Each user can be a member of any number of groups. +Each group has a +.I group leader +who has special privileges (see +.IR stat (5) +and +.IR users (6)). +Every file request has an implicit user id (copied from the original +.BR attach ) +and an implicit set of groups (every group of which the user is a member). +.PP +Each file has an associated +.I owner +and +.I group +id and +three sets of permissions: +those of the owner, those of the group, and those of ``other'' users. +When the owner attempts to do something to a file, the owner, group, +and other permissions are consulted, and if any of them grant +the requested permission, the operation is allowed. +For someone who is not the owner, but is a member of the file's group, +the group and other permissions are consulted. +For everyone else, the other permissions are used. +Each set of permissions says whether reading is allowed, +whether writing is allowed, and whether executing is allowed. +A +.B walk +in a directory is regarded as executing the directory, +not reading it. +Permissions are kept in the low-order bits of the file +.IR mode : +owner read/write/execute permission represented as 1 in bits 8, 7, and 6 +respectively (using 0 to number the low order). +The group permissions are in bits 5, 4, and 3, +and the other permissions are in bits 2, 1, and 0. +.PP +The file +.I mode +contains some additional attributes besides the permissions. +If bit 31 +.RB ( DMDIR ) +is set, the file is a directory; +if bit 30 +.RB ( DMAPPEND ) +is set, the file is append-only (offset is ignored in writes); +if bit 29 +.RB ( DMEXCL ) +is set, the file is exclusive-use (only one client may have it +open at a time); +if bit 27 +.RB ( DMAUTH ) +is set, the file is an authentication file established by +.B auth +messages. +(Bit 28 is skipped for historical reasons.) +These bits are reproduced, from the top bit down, in the type byte of the Qid: +.BR QTDIR , +.BR QTAPPEND , +.BR QTEXCL , +and (skipping one bit) +.BR QTAUTH . +The name +.BR QTFILE , +defined to be zero, +identifies the value of the type for a plain file. diff --git a/static/plan9-4e/man5/INDEX.5 b/static/plan9-4e/man5/INDEX.5 new file mode 100644 index 00000000..a3b62ae8 --- /dev/null +++ b/static/plan9-4e/man5/INDEX.5 @@ -0,0 +1,16 @@ +0intro 0intro +intro 0intro +attach attach +auth attach +clunk clunk +error error +flush flush +create open +open open +read read +write read +remove remove +stat stat +wstat stat +version version +walk walk diff --git a/static/plan9-4e/man5/INDEX.html.5 b/static/plan9-4e/man5/INDEX.html.5 new file mode 100644 index 00000000..35d30ca7 --- /dev/null +++ b/static/plan9-4e/man5/INDEX.html.5 @@ -0,0 +1,53 @@ + +plan 9 man section 5 + + +[manual index] +

Plan 9 from Bell Labs - Section 5 - Plan 9 File Protocol, 9P

+
+
+
0intro +- introduction to the Plan 9 File Protocol, 9P +
intro + +
attach +- messages to establish a connection +
attach, auth + +
clunk +- forget about a fid +
clunk + +
error +- return an error +
error + +
flush +- abort a message +
flush + +
open +- prepare a fid for I/O on an existing or new file +
open, create + +
read +- transfer data from and to a file +
read, write + +
remove +- remove a file from a server +
remove + +
stat +- inquire or change file attributes +
stat, wstat + +
version +- negotiate protocol version +
version + +
walk +- descend a directory hierarchy +
walk + +
diff --git a/static/plan9-4e/man5/Makefile b/static/plan9-4e/man5/Makefile new file mode 100644 index 00000000..0a0569ba --- /dev/null +++ b/static/plan9-4e/man5/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.5) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man5/attach.5 b/static/plan9-4e/man5/attach.5 new file mode 100644 index 00000000..dd21c6b6 --- /dev/null +++ b/static/plan9-4e/man5/attach.5 @@ -0,0 +1,159 @@ +.TH ATTACH 5 +.SH NAME +attach, auth \- messages to establish a connection +.SH SYNOPSIS +.ta \w'\fLTauth 'u +.IR size [4] +.B Tauth +.IR tag [2] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.IR size [4] +.B Rauth +.IR tag [2] +.IR aqid [13] +.PP +.IR size [4] +.B Tattach +.IR tag [2] +.IR fid [4] +.IR afid [4] +.IR uname [ s ] +.IR aname [ s ] +.br +.IR size [4] +.B Rattach +.IR tag [2] +.IR qid [13] +.SH DESCRIPTION +.PP +The +.B attach +message serves as a fresh introduction from a user on +the client machine to the server. +The message identifies the user +.RI ( uname ) +and may select +the file tree to access +.RI ( aname ). +The +.I afid +argument specifies a fid previously established by an +.B auth +message, as described below. +.PP +As a result of the +.B attach +transaction, the client will have a connection to the root +directory of the desired file tree, +represented by +.IR fid . +An error is returned if +.I fid +is already in use. +The server's idea of the root of the file tree is represented by the returned +.IR qid . +.PP +If the client does not wish to authenticate the connection, or knows that +authentication is not required, the +.I afid +field in the +.B attach +message should be set to +.BR NOFID , +defined as +.B (u32int)~0 +in +.BR . +If the client does wish to authenticate, it must acquire and validate an +.I afid +using an +.B auth +message before doing the +.BR attach . +.PP +The +.B auth +message contains +.IR afid , +a new fid to be established for authentication, and the +.I uname +and +.I aname +that will be those of the following +.B attach +message. +If the server does not require authentication, it returns +.B Rerror +to the +.B Tauth +message. +.PP +If the server does require authentication, it returns +.I aqid +defining a file of type +.B QTAUTH +(see +.IR intro (5)) +that may be read and written (using +.B read +and +.B write +messages in the usual way) to execute an authentication protocol. +That protocol's definition is not part of 9P itself. +.PP +Once the protocol is complete, the same +.I afid +is presented in the +.B attach +message for the user, granting entry. +The same validated +.I afid +may be used for multiple +.B attach +messages with the same +.I uname +and +.IR aname . +.SH ENTRY POINTS +An +.B attach +transaction will be generated for kernel devices +(see +.IR intro (3)) +when a system call evaluates a file name +beginning with +.LR # . +.IR Pipe (2) +generates an attach on the kernel device +.IR pipe (3). +The +.I mount +system call +(see +.IR bind (2)) +generates an +.B attach +message to the remote file server. +When the kernel boots, an +.I attach +is made to the root device, +.IR root (3), +and then an +.B attach +is made to the requested file server machine. +.PP +An +.B auth +transaction is generated by the +.IR fauth (2) +system call or by the first +.B mount +system call on an uninitialized connection. +.SH SEE ALSO +.IR auth (2), +.IR fauth (2), +.IR version (5), +.IR authsrv (6) diff --git a/static/plan9-4e/man5/clunk.5 b/static/plan9-4e/man5/clunk.5 new file mode 100644 index 00000000..6256b3c4 --- /dev/null +++ b/static/plan9-4e/man5/clunk.5 @@ -0,0 +1,43 @@ +.TH CLUNK 5 +.SH NAME +clunk \- forget about a fid +.SH SYNOPSIS +.ta \w'\fLTclunk 'u +.IR size [4] +.B Tclunk +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rclunk +.IR tag [2] +.SH DESCRIPTION +The +.B clunk +request informs the file server +that the current file represented by +.I fid +is no longer needed by the client. +The actual file is not removed on the server unless the fid had been opened with +.BR ORCLOSE . +.PP +Once a fid has been clunked, +the same fid can be reused in a new +.B walk +or +.B attach +request. +.PP +Even if the +.B clunk +returns an error, the +.I fid +is no longer valid. +.SH ENTRY POINTS +A +.B clunk +message is generated by +.I close +and indirectly by other actions such as failed +.I open +calls. diff --git a/static/plan9-4e/man5/error.5 b/static/plan9-4e/man5/error.5 new file mode 100644 index 00000000..288bfe7f --- /dev/null +++ b/static/plan9-4e/man5/error.5 @@ -0,0 +1,27 @@ +.TH ERROR 5 +.SH NAME +error \- return an error +.SH SYNOPSIS +.ta \w'\fLRerror 'u +.IR size [4] +.B Rerror +.IR tag [2] +.IR ename [ s ] +.SH DESCRIPTION +The +.B Rerror +message +(there is no +.BR Terror ) +is used to return an error string +describing the +failure of a transaction. +It replaces the corresponding reply message +that would accompany a successful call; its tag is that +of the failing request. +.PP +By convention, clients may truncate error messages after 255 bytes, +defined as +.B ERRMAX +in +.BR . diff --git a/static/plan9-4e/man5/flush.5 b/static/plan9-4e/man5/flush.5 new file mode 100644 index 00000000..996c2b45 --- /dev/null +++ b/static/plan9-4e/man5/flush.5 @@ -0,0 +1,76 @@ +.TH FLUSH 5 +.SH NAME +flush \- abort a message +.SH SYNOPSIS +.ta \w'\fLTflush 'u +.IR size [4] +.B Tflush +.IR tag [2] +.IR oldtag [2] +.br +.IR size [4] +.B Rflush +.IR tag [2] +.SH DESCRIPTION +When the response to a request is no longer needed, such as when +a user interrupts a process doing a +.IR read (2), +a +.B Tflush +request is sent to the server to purge the pending response. +The message being flushed is identified by +.IR oldtag . +The semantics of +.B flush +depends on messages arriving in order. +.PP +The server must answer the +.B flush +message immediately. +If it recognizes +.I oldtag +as the tag of a pending transaction, it should abort any pending response +and discard that tag. +In either case, it should respond with an +.B Rflush +echoing the +.I tag +(not +.IR oldtag ) +of the +.B Tflush +message. +A +.B Tflush +can never be responded to by an +.B Rerror +message. +.PP +When the client sends a +.BR Tflush , +it must wait to receive the corresponding +.B Rflush +before reusing +.I oldtag +for subsequent messages. +If a response to the flushed request is received before the +.BR Rflush , +the client must honor the response +as if it had not been flushed, +since the completed request may signify a state change in the server. +For instance, +.B Tcreate +may have created a file and +.B Twalk +may have allocated a fid. +If no response is received before the +.BR Rflush , +the flushed transaction is considered to have been canceled, +and should be treated as though it had never been sent. +.PP +Several exceptional conditions are handled correctly by the above specification: +sending multiple flushes for a single tag, +flushing after a transaction is completed, +flushing a +.BR Tflush , +and flushing an invalid tag. diff --git a/static/plan9-4e/man5/open.5 b/static/plan9-4e/man5/open.5 new file mode 100644 index 00000000..6672c694 --- /dev/null +++ b/static/plan9-4e/man5/open.5 @@ -0,0 +1,247 @@ +.TH OPEN 5 +.SH NAME +open, create \- prepare a fid for I/O on an existing or new file +.SH SYNOPSIS +.ta \w'\fLTcreate 'u +.IR size [4] +.B Topen +.IR tag [2] +.IR fid [4] +.IR mode [1] +.br +.IR size [4] +.B Ropen +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.PP +.IR size [4] +.B Tcreate +.IR tag [2] +.IR fid [4] +.IR name [ s ] +.IR perm [4] +.IR mode [1] +.br +.IR size [4] +.B Rcreate +.IR tag [2] +.IR qid [13] +.IR iounit [4] +.SH DESCRIPTION +The +.B open +request asks the file server to check permissions and +prepare a fid for I/O with subsequent +.B read +and +.B write +messages. +The +.I mode +field determines the type of I/O: +0 +(called +.BR OREAD +in +.BR ), +1 +.RB ( OWRITE ), +2 +.RB ( ORDWR ), +and 3 +.RB ( OEXEC ) +mean +.I +read access, write access, read and write access, +and +.I +execute access, +to be checked against the permissions for the file. +In addition, if +.I mode +has the +.B OTRUNC +.RB ( 0x10 ) +bit set, +the file is to be truncated, which requires write permission +(if +the file is append-only, and permission is granted, the +.B open +succeeds but the file will not be truncated); +if the +.I mode +has the +.B ORCLOSE +.RB ( 0x40 ) +bit set, the file is to be removed when the fid +is clunked, which requires permission to remove the file from its directory. +All other bits in +.I mode +should be zero. +It is illegal to write a directory, truncate it, or attempt to remove it on close. +If the file is marked for exclusive use (see +.IR stat (5)), +only one client can have the file open at any time. +That is, after such a file has been opened, +further opens will fail until +.I fid +has been clunked. +All these permissions are checked at the time of the +.B open +request; subsequent changes to the permissions of files do not affect +the ability to read, write, or remove an open file. +.PP +The +.B create +request asks the file server to create a new file +with the +.I name +supplied, in the directory +.RI ( dir ) +represented by +.IR fid , +and requires write permission in the directory. +The owner of the file is the implied user id of the request, +the group of the file is the same as +.IR dir , +and the permissions are the value of +.ce +.B "perm & (~0666 | (dir.perm & 0666))" +if a regular file is being created and +.ce +.B "perm & (~0777 | (dir.perm & 0777))" +if a directory is being created. +This means, for example, that if the +.B create +allows read permission to others, but the containing directory +does not, then the created file will not allow others to read the file. +.PP +Finally, the newly created file is opened according to +.IR mode , +and +.I fid +will represent the newly opened file. +.I Mode +is not checked against the permissions in +.IR perm . +The +.I qid +for the new file is returned with the +.B create +reply message. +.PP +Directories are created by setting the +.B DMDIR +bit +.RB ( 0x80000000 ) +in the +.IR perm . +.PP +The names +.B . +and +.B .. +are special; it is illegal to create files with these names. +.PP +It is an error for either of these messages if the fid +is already the product of a successful +.B open +or +.B create +message. +.PP +An attempt to +.B create +a file in a directory where the given +.I name +already exists will be rejected; +in this case, the +.I create +system call +(see +.IR open (2)) +uses +.B open +with truncation. +The algorithm used by the +.IR create +system call +is: +first walk to the directory to contain the file. +If that fails, return an error. +Next +.B walk +to the specified file. +If the +.B walk +succeeds, send a request to +.B open +and truncate the file and return the result, successful or not. +If the +.B walk +fails, send a create message. +If that fails, it may be because the file was created by another +process after the previous walk failed, so (once) try the +.B walk +and +.B open +again. +.PP +For the behavior of +.I create +on a union directory, see +.IR bind (2). +.PP +The +.B iounit +field returned by +.B open +and +.B create +may be zero. +If it is not, it is the maximum number of bytes that are guaranteed to +be read from or written to the file without breaking the I/O transfer +into multiple 9P messages; see +.IR read (5). +.SH ENTRY POINTS +.I Open +and +.I create +both generate +.B open +messages; only +.I create +generates a +.B create +message. +The +.B iounit +associated with an open file may be discovered by calling +.IR iounit (2). +.PP +For programs that need atomic file creation, without the race +that exists in the +.B open-create +sequence described above, +the kernel does the following. +If the +.B OEXCL +.RB ( 0x1000 ) +bit is set in the +.I mode +for a +.B create +system call, +the +.B open +message is not sent; the kernel issues only the +.BR create . +Thus, if the file exists, +.B create +will draw an error, but if it doesn't and the +.B create +system call succeeds, the process issuing the +.B create +is guaranteed to be the one that created the file. + diff --git a/static/plan9-4e/man5/read.5 b/static/plan9-4e/man5/read.5 new file mode 100644 index 00000000..4438ee98 --- /dev/null +++ b/static/plan9-4e/man5/read.5 @@ -0,0 +1,125 @@ +.TH READ 5 +.SH NAME +read, write \- transfer data from and to a file +.SH SYNOPSIS +.ta \w'\fLTwrite 'u +.IR size [4] +.B Tread +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.br +.IR size [4] +.B Rread +.IR tag [2] +.IR count [4] +.IR data [ count ] +.PP +.IR size [4] +.B Twrite +.IR tag [2] +.IR fid [4] +.IR offset [8] +.IR count [4] +.IR data [ count ] +.br +.IR size [4] +.B Rwrite +.IR tag [2] +.IR count [4] +.SH DESCRIPTION +The +.B read +request +asks for +.I count +bytes of data +from the file identified by +.IR fid , +which must be opened for reading, +starting +.I offset +bytes after the beginning of the file. +The bytes are returned with the +.B read +reply message. +.PP +The +.I count +field in the reply indicates the number of bytes returned. +This may be less than the requested amount. +If the +.I offset +field is greater than or equal to the number of bytes in the file, +a count of zero will be returned. +.PP +For directories, +.B read +returns an integral number of +directory entries exactly as in +.B stat +(see +.IR stat (5)), +one for each member of the directory. +The +.B read +request message must have +.B offset +equal to zero or the value of +.B offset +in the previous +.B read +on the directory, plus the number of bytes +returned in the previous +.BR read . +In other words, seeking other than to the beginning +is illegal in a directory (see +.IR seek (2)). +.PP +The +.B write +request asks that +.I count +bytes of data be recorded in the file identified by +.IR fid , +which must be opened for writing, starting +.I offset +bytes after the beginning of the file. +If the file is append-only, +the data will be placed at the end of the file regardless of +.IR offset . +Directories may not be written. +.PP +The +.B write +reply records the number of bytes actually written. +It is usually an error +if this is not the same as requested. +.PP +Because 9P implementations may limit the size of individual +messages, +more than one message may be produced by a single +.I read +or +.I write +call. +The +.I iounit +field returned by +.IR open (5), +if non-zero, reports the maximum size that is guaranteed +to be transferred atomically. +.SH ENTRY POINTS +.B Read +and +.B write +messages are generated by the corresponding calls. +Because they include an offset, the +.I pread +and +.I pwrite +calls correspond more directly to the 9P messages. +Although +.IR seek (2) +affects the offset, it does not generate a message. diff --git a/static/plan9-4e/man5/remove.5 b/static/plan9-4e/man5/remove.5 new file mode 100644 index 00000000..c6548bb3 --- /dev/null +++ b/static/plan9-4e/man5/remove.5 @@ -0,0 +1,35 @@ +.TH REMOVE 5 +.SH NAME +remove \- remove a file from a server +.SH SYNOPSIS +.ta \w'\fLTremove 'u +.IR size [4] +.B Tremove +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rremove +.IR tag [2] +.SH DESCRIPTION +The +.B remove +request asks the file server both to remove the file represented by +.I fid +and to +.B clunk +the +.IR fid , +even if the remove fails. +This request will fail if the client does not have write permission +in the parent directory. +.PP +It is correct to consider +.B remove +to be a +.B clunk +with the side effect of removing the file if permissions allow. +.SH ENTRY POINTS +.B Remove +messages are generated by +.IR remove . diff --git a/static/plan9-4e/man5/stat.5 b/static/plan9-4e/man5/stat.5 new file mode 100644 index 00000000..90fdb80e --- /dev/null +++ b/static/plan9-4e/man5/stat.5 @@ -0,0 +1,291 @@ +.TH STAT 5 +.SH NAME +stat, wstat \- inquire or change file attributes +.SH SYNOPSIS +.ta \w'\fLTwstat 'u +.IR size [4] +.B Tstat +.IR tag [2] +.IR fid [4] +.br +.IR size [4] +.B Rstat +.IR tag [2] +.IR stat [ n ] +.PP +.IR size [4] +.B Twstat +.IR tag [2] +.IR fid [4] +.IR stat [ n ] +.br +.IR size [4] +.B Rwstat +.IR tag [2] +.SH DESCRIPTION +The +.B stat +transaction inquires about the file +identified by +.IR fid . +The reply will contain a +machine-independent +.I directory +.IR entry , +.IR stat , +laid out as follows: +.TP +.I size\f1[2]\fP +total byte count of the following data +.TP +.I type\f1[2]\fP +for kernel use +.TP +.I dev\f1[4]\fP +for kernel use +.TP +.I qid.type\f1[1]\fP +the type of the file (directory, etc.), represented as a bit vector +corresponding to the high 8 bits of the file's mode word. +.TP +.I qid.vers\f1[4]\fP +version number for given path +.TP +.I qid.path\f1[8]\fP +the file server's unique identification for the file +.TP +.I mode\f1[4]\fP +permissions and flags +.TP +.I atime\f1[4]\fP +last access time +.TP +.I mtime\f1[4]\fP +last modification time +.TP +.I length\f1[8]\fP +length of file in bytes +.TP +.I name\f1[ s ]\fP +file name; must be +.B / +if the file is the root directory of the server +.TP +.I uid\f1[ s ]\fP +owner name +.TP +.I gid\f1[ s ]\fP +group name +.TP +.I muid\f1[ s ]\fP +name of the user who last modified the file +.PD +.PP +Integers in this encoding are in little-endian order (least +significant byte first). +The +.I convM2D +and +.I convD2M +routines (see +.IR fcall (2)) +convert between directory entries and a C structure called a +.BR Dir . +.PP +The +.I mode +contains permission bits as described in +.IR intro (5) +and the following: +.B 0x80000000 +.RB ( DMDIR , +this file is a directory), +.B 0x40000000 +.RB ( DMAPPEND , +append only), +.B 0x20000000 +.RB ( DMEXCL , +exclusive use); these are echoed in +.BR Qid.type . +Writes to append-only files always place their data at the +end of the file; the +.I offset +in the +.B write +message is ignored, as is the +.B OTRUNC +bit in an open. +Exclusive use files may be open for I/O by only one fid at a time +across all clients of the server. If a second open is attempted, +it draws an error. Servers may implement a timeout on the lock +on an exclusive use file: if the fid holding the file open has +been unused for an extended period (of order at least minutes), +it is reasonable to break the lock and deny the initial fid +further I/O. +.PP +The two time fields are measured in seconds since the epoch +(Jan 1 00:00 1970 GMT). +The +.I mtime +field reflects the time of the last change of content (except when later changed by +.BR wstat ). +For a plain file, +.I mtime +is the time of the most recent +.BR create , +.B open +with truncation, +or +.BR write ; +for a directory it is the time of the most recent +.BR remove , +.BR create , +or +.B wstat +of a file in the directory. +Similarly, the +.I atime +field records the last +.B read +of the contents; +also it is set whenever +.I mtime +is set. +In addition, for a directory, it is set by +an +.BR attach , +.BR walk , +or +.BR create , +all whether successful or not. +.PP +The +.I muid +field names the user whose actions most recently changed the +.I mtime +of the file. +.PP +The +.I length +records the number of bytes in the file. +Directories and most files representing devices have a conventional +length of 0. +.PP +The +.B stat +request requires no special permissions. +.PP +The +.B wstat +request can change some of the file status information. +The +.I name +can be changed by anyone with write permission in the parent directory; +it is an error to change the name to that of an existing file. +The +.I length +can be changed (affecting the actual length of the file) by anyone with +write permission on the file. +It is an error to attempt to set the length of a directory to a non-zero value, +and servers may decide to reject length changes for other reasons. +The +.I mode +and +.I mtime +can be changed by the owner of the file or the group leader of the file's current +group. +The directory bit cannot be changed by a +.BR wstat ; +the other defined permission and mode bits can. +The +.I gid +can be changed: by the owner if also a member of the new group; or +by the group leader of the file's current group +if also leader of the new group +(see +.IR intro (5) +for more information about permissions and +.IR users (6) +for users and groups). +None of the other data can be altered by a +.B wstat +and attempts to change them will trigger an error. +In particular, +it is illegal to attempt to change the owner of a file. +(These conditions may be +relaxed when establishing the initial state of a file server; see +.IR fsconfig (8).) +.PP +Either all the changes in +.B wstat +request happen, or none of them does: if the request succeeds, +all changes were made; if it fails, none were. +.PP +A +.B wstat +request can avoid modifying some properties of the file +by providing explicit ``don't touch'' values in the +.B stat +data that is sent: zero-length strings for text values and +the maximum unsigned value of appropriate size +for integral values. +As a special case, if +.I all +the elements of the directory entry in a +.B Twstat +message are ``don't touch'' values, the server may interpret it +as a request to guarantee that the contents of the associated +file are committed to stable storage before the +.B Rwstat +message is returned. +(Consider the message to mean, ``make the state of the file +exactly what it claims to be.'') +.PP +A +.I read +of a directory yields an integral number of directory entries in +the machine independent encoding given above +(see +.IR read (5)). +.PP +Note that since the +.B stat +information is sent as a 9P variable-length datum, it is limited to a maximum of +65535 bytes. +.SH ENTRY POINTS +.B Stat +messages are generated by +.I fstat +and +.IR stat . +.PP +.B Wstat +messages are generated by +.I fwstat +and +.IR wstat . +.SH BUGS +To make the contents of a directory, such as returned by +.IR read (5), +easy to parse, each +directory entry begins with a size field. +For consistency, the entries in +.B Twstat +and +.B Rstat +messages also contain +their size, which means the size appears twice. +For example, the +.B Rstat +message is formatted as +.RI ``(4+1+2+2+ n )[4] +.B Rstat +.IR tag [2] +.IR n [2] +.RI ( n -2)[2] +.IR type [2] +.IR dev [4]...,'' +where +.I n +is the value returned by +.BR convD2M . diff --git a/static/plan9-4e/man5/version.5 b/static/plan9-4e/man5/version.5 new file mode 100644 index 00000000..c7236e2e --- /dev/null +++ b/static/plan9-4e/man5/version.5 @@ -0,0 +1,101 @@ +.TH VERSION 5 +.SH NAME +version \- negotiate protocol version +.SH SYNOPSIS +.ta \w'\fLTversion 'u +.IR size [4] +.B Tversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.br +.IR size [4] +.B Rversion +.IR tag [2] +.IR msize [4] +.IR version [ s ] +.SH DESCRIPTION +The +.B version +request negotiates the protocol version and message size +to be used on the connection and initializes the connection for I/O. +.B Tversion +must be the first message sent on the 9P connection, +and the client cannot issue any further requests until it has received the +.B Rversion +reply. +The +.I tag +should be +.B NOTAG +(value +.BR (ushort)~0 ) +for a +.B version +message. +.PP +The client suggests a maximum message size, +.BR msize , +that is the maximum length, in bytes, +it will ever generate or expect to receive in a single 9P message. +This count includes all 9P protocol data, starting from the +.B size +field and extending through the message, +but excludes enveloping transport protocols. +The server responds with its own maximum, +.BR msize , +which must be less than or equal to the client's value. +Thenceforth, both sides of the connection must honor this limit. +.PP +The +.B version +string identifies the level of the protocol. +The string must always begin with the two characters +.RB `` 9P ''. +If the server does not understand the client's version string, +it should respond with an +.B Rversion +message (not +.BR Rerror ) +with the +.B version +string the 7 characters +.RB `` unknown ''. +.PP +The server may respond with the client's version string, +or a version string identifying +an earlier defined protocol version. +Currently, the only defined version is the 6 characters +.RB `` 9P2000 ''. +Version strings are defined such that, if the client string contains +one or more period characters, the initial substring up to but not including +any single period in the version string defines a version of the protocol. +After stripping any such period-separated suffix, the server is allowed to respond +with a string of the form +.BI 9P nnnn\f1, +where +.I nnnn +is less than or equal to the digits sent by the client. +.PP +The client and server will use the protocol version defined by the +server's response for all subsequent communication on the connection. +.PP +A successful +.B version +request initializes the connection. +All outstanding I/O on the connection is aborted; all active fids are freed (`clunked') automatically. +The set of messages between +.B version +requests is called a +.IR session . +.SH ENTRY POINTS +The +.B version +message is generated by the +.B fversion +system call. +It is also generated automatically, if required, by a +.B mount +or +.B fauth +system call on an uninitialized connection. diff --git a/static/plan9-4e/man5/walk.5 b/static/plan9-4e/man5/walk.5 new file mode 100644 index 00000000..61439459 --- /dev/null +++ b/static/plan9-4e/man5/walk.5 @@ -0,0 +1,178 @@ +.TH WALK 5 +.SH NAME +walk \- descend a directory hierarchy +.SH SYNOPSIS +.ta \w'\fLTwalk 'u +.IR size [4] +.B Twalk +.IR tag [2] +.IR fid [4] +.IR newfid [4] +.IR nwname [2] +.IR nwname *( wname [ s ]) +.br +.IR size [4] +.B Rwalk +.IR tag [2] +.IR nwqid [2] +.IR nwqid *( qid [13]) +.SH DESCRIPTION +The +.B walk +request carries as arguments an existing +.IR fid +and a proposed +.I newfid +(which must not be in use unless it is the same as +.IR fid ) +that the client wishes to associate with +the result of traversing the directory hierarchy +by `walking' the hierarchy using the successive path name +elements +.BR wname . +The +.I fid +must represent a directory unless zero path name elements are specified. +.PP +The +.I fid +must be valid in the current session and must not have been opened for I/O +by an +.B open +or +.B create +message. +If the full sequence of +.B nwname +elements is walked successfully, +.I newfid +will represent the file that results. +If not, +.I newfid +(and +.BR fid ) +will be unaffected. +However, if +.I newfid +is in use or otherwise illegal, an +.B Rerror +is returned. +.PP +The name +.RB `` .. '' +(dot-dot) represents the parent directory. +The name +.RB `` . '' +(dot), meaning the current directory, is not used in the protocol. +.PP +It is legal for +.B nwname +to be zero, in which case +.I newfid +will represent the same file as +.I fid +and the +.B walk +will usually succeed; this is equivalent to walking to dot. +The rest of this discussion assumes +.B nwname +is greater than zero. +.PP +The +.B nwname +path name elements +.B wname +are walked in order, ``elementwise''. +For the first elementwise walk +to succeed, the file identified by +.I fid +must be a directory, +and the implied user of the request must have permission +to search the directory (see +.IR intro (5)). +Subsequent elementwise walks have equivalent restrictions +applied to the implicit fid that results from the preceding elementwise walk. +.PP +If the first element cannot be walked for any reason, +.B Rerror +is returned. +Otherwise, the walk will return an +.B Rwalk +message containing +.I nwqid +qids corresponding, in order, to the files that are visited by the +.I nwqid +successful elementwise walks; +.I nwqid +is therefore either +.B nwname +or the index of the first elementwise walk that failed. +The value of +.I nwqid +cannot be zero unless +.B nwname +is zero. +Also, +.I nwqid +will always be less than or equal to +.BR nwname . +Only if it is equal, however, will +.I newfid +be affected, in which case +.I newfid +will represent the file +reached by the final elementwise walk requested in the message. +.PP +A +.B walk +of the name +.RB `` .. '' +in the root directory of a server is equivalent to a walk with no name elements. +.PP +If +.I newfid +is the same as +.IR fid , +the above discussion applies, with the obvious difference +that if the walk changes the state of +.IR newfid , +it also changes the state of +.IR fid ; +and if +.I newfid +is unaffected, then +.I fid +is also unaffected. +.PP +To simplify the implementation of the servers, a maximum of sixteen name elements or qids +may be packed in a single message. +This constant is called +.B MAXWELEM +in +.IR fcall (2). +Despite this restriction, the system imposes no limit on the number of elements in a file name, +only the number that may be transmitted in a single message. +.SH ENTRY POINTS +A call to +.IR chdir (2) +causes a +.BR walk . +One or more +.B walk +messages may be generated by +any of the following calls, which evaluate file names: +.IR bind , +.IR create , +.IR exec , +.IR mount , +.IR open , +.IR remove , +.IR stat , +.IR unmount , +.IR wstat . +The file name element +.B . +(dot) is interpreted locally and +is not transmitted in +.B walk +messages. diff --git a/static/plan9-4e/man6/0intro.6 b/static/plan9-4e/man6/0intro.6 new file mode 100644 index 00000000..281f10b6 --- /dev/null +++ b/static/plan9-4e/man6/0intro.6 @@ -0,0 +1,8 @@ +.TH INTRO 6 +.SH NAME +intro \- introduction to file formats +.SH DESCRIPTION +This section of the manual describes file formats +and other miscellany such as +.I troff +macro packages. diff --git a/static/plan9-4e/man6/INDEX.6 b/static/plan9-4e/man6/INDEX.6 new file mode 100644 index 00000000..ca53e4de --- /dev/null +++ b/static/plan9-4e/man6/INDEX.6 @@ -0,0 +1,33 @@ +0intro 0intro +intro 0intro +a.out a.out +ar ar +authsrv authsrv +ticket authsrv +color color +face face +font font +subfont font +image image +keyboard keyboard +man man +map map +mpictures mpictures +ms ms +namespace namespace +ndb ndb +plot plot +plumb plumb +regexp regexp +rewrite rewrite +smtpd smtpd +snap snap +thumbprint thumbprint +users users +ASCII utf +UTF utf +Unicode utf +rune utf +utf utf +venti.conf venti.conf +vgadb vgadb diff --git a/static/plan9-4e/man6/INDEX.html.6 b/static/plan9-4e/man6/INDEX.html.6 new file mode 100644 index 00000000..70a18a72 --- /dev/null +++ b/static/plan9-4e/man6/INDEX.html.6 @@ -0,0 +1,113 @@ + +plan 9 man section 6 + + +[manual index] +

Plan 9 from Bell Labs - Section 6 - File Formats, Misc

+
+
+
0intro +- introduction to file formats +
intro + +
a.out +- object file format +
a.out + +
ar +- archive (library) file format +
ar + +
authsrv +- authentication service +
ticket + +
color +- representation of pixels and colors +
color + +
face +- face files +
face + +
font +- external format for fonts and subfonts +
font, subfont + +
image +- external format for images +
image + +
keyboard +- how to type characters +
keyboard + +
man +- macros to typeset manual +
man + +
map +- digitized map formats +
map + +
mpictures +- picture inclusion macros +
mpictures + +
ms +- macros for formatting manuscripts +
ms + +
namespace +- name space description file +
namespace + +
ndb +- Network database +
ndb + +
plot +- graphics interface +
plot + +
plumb +- format of plumb messages and rules +
plumb + +
regexp +- regular expression notation +
regexp + +
rewrite +- mail rewrite rules +
rewrite + +
smtpd +- SMTP listener configuration +
smtpd + +
snap +- process snapshots +
snap + +
thumbprint +- public key thumbprints +
thumbprint + +
users +- file server user list format +
users + +
utf +- character set and format +
UTF, Unicode, ASCII, rune + +
venti.conf +- a venti configuration file +
venti.conf + +
vgadb +- VGA controller and monitor database +
vgadb + +
diff --git a/static/plan9-4e/man6/Makefile b/static/plan9-4e/man6/Makefile new file mode 100644 index 00000000..cd649fe8 --- /dev/null +++ b/static/plan9-4e/man6/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.6) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man6/a.out.6 b/static/plan9-4e/man6/a.out.6 new file mode 100644 index 00000000..a4fa5db2 --- /dev/null +++ b/static/plan9-4e/man6/a.out.6 @@ -0,0 +1,252 @@ +.TH A.OUT 6 +.SH NAME +a.out \- object file format +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +An executable Plan 9 binary file has up to six sections: +a header, the program text, the data, +a symbol table, a PC/SP offset table (MC68020 only), +and finally a PC/line number table. +The header, given by a structure in +.BR , +contains 4-byte integers in big-endian order: +.PP +.EX +.ta \w'#define 'u +\w'_MAGIC(b) 'u +\w'_MAGIC(10) 'u +4n +4n +4n +4n +typedef struct Exec { + long magic; /* magic number */ + long text; /* size of text segment */ + long data; /* size of initialized data */ + long bss; /* size of uninitialized data */ + long syms; /* size of symbol table */ + long entry; /* entry point */ + long spsz; /* size of pc/sp offset table */ + long pcsz; /* size of pc/line number table */ +} Exec; +#define _MAGIC(b) ((((4*b)+0)*b)+7) +#define A_MAGIC _MAGIC(8) /* 68020 */ +#define I_MAGIC _MAGIC(11) /* intel 386 */ +#define J_MAGIC _MAGIC(12) /* intel 960 */ +#define K_MAGIC _MAGIC(13) /* sparc */ +#define V_MAGIC _MAGIC(16) /* mips 3000 */ +#define X_MAGIC _MAGIC(17) /* att dsp 3210 */ +#define M_MAGIC _MAGIC(18) /* mips 4000 */ +#define D_MAGIC _MAGIC(19) /* amd 29000 */ +#define E_MAGIC _MAGIC(20) /* arm 7-something */ +#define Q_MAGIC _MAGIC(21) /* powerpc */ +#define N_MAGIC _MAGIC(22) /* mips 4000 LE */ +#define L_MAGIC _MAGIC(23) /* dec alpha */ +.EE +.DT +.PP +Sizes are expressed in bytes. +The size of the header is not included in any of the other sizes. +.PP +When a Plan 9 binary file is executed, +a memory image of three segments is +set up: the text segment, the data segment, and the stack. +The text segment begins at a virtual address which is +a multiple of the machine-dependent page size. +The text segment consists of the header and the first +.B text +bytes of the binary file. +The +.B entry +field gives the virtual address of the entry point of the program. +The data segment starts at the first page-rounded virtual address +after the text segment. +It consists of the next +.B data +bytes of the binary file, followed by +.B bss +bytes initialized to zero. +The stack occupies the highest possible locations +in the core image, automatically growing downwards. +The bss segment may be extended by +.IR brk (2). +.PP +The next +.B syms +(possibly zero) +bytes of the file contain symbol table +entries, each laid out as: +.IP +.EX +uchar value[4]; +char type; +char name[\f2n\fP]; /* NUL-terminated */ +.EE +.PP +The +.B value +is in big-endian order and +the size of the +.B name +field is not pre-defined: it is a zero-terminated array of +variable length. +.PP +The +.B type +field is one of the following characters with the high bit set: +.RS +.TP +.B T +text segment symbol +.PD0 +.TP +.B t +static text segment symbol +.TP +.B L +leaf function text segment symbol +.TP +.B l +static leaf function text segment symbol +.TP +.B D +data segment symbol +.TP +.B d +static data segment symbol +.TP +.B B +bss segment symbol +.TP +.B b +static bss segment symbol +.TP +.B a +automatic (local) variable symbol +.TP +.B p +function parameter symbol +.RE +.PD +.PP +A few others are described below. +The symbols in the symbol table appear in the same order +as the program components they describe. +.PP +The Plan 9 compilers implement a virtual stack frame pointer rather +than dedicating a register; +moreover, on the MC680X0 architectures +there is a variable offset between the stack pointer and the +frame pointer. +Following the symbol table, +MC680X0 executable files contain a +.BR spsz -byte +table encoding the offset +of the stack frame pointer as a function of program location; +this section is not present for other architectures. +The PC/SP table is encoded as a byte stream. +By setting the PC to the base of the text segment +and the offset to zero and interpreting the stream, +the offset can be computed for any PC. +A byte value of 0 is followed by four bytes that hold, in big-endian order, +a constant to be added to the offset. +A byte value of 1 to 64 is multiplied by four and added, without sign +extension, to the offset. +A byte value of 65 to 128 is reduced by 64, multiplied by four, and +subtracted from the offset. +A byte value of 129 to 255 is reduced by 129, multiplied by the quantum +of instruction size +(e.g. two on the MC680X0), +and added to the current PC without changing the offset. +After any of these operations, the instruction quantum is added to the PC. +.PP +A similar table, occupying +.BR pcsz -bytes, +is the next section in an executable; it is present for all architectures. +The same algorithm may be run using this table to +recover the absolute source line number from a given program location. +The absolute line number (starting from zero) counts the newlines +in the C-preprocessed source seen by the compiler. +Three symbol types in the main symbol table facilitate conversion of the absolute +number to source file and line number: +.RS +.TP +.B f +source file name components +.TP +.B z +source file name +.TP +.B Z +source file line offset +.RE +.PP +The +.B f +symbol associates an integer (the +.B value +field of the `symbol') with +a unique file path name component (the +.B name +of the `symbol'). +These path components are used by the +.B z +symbol to represent a file name: the +first byte of the name field is always 0; the remaining +bytes hold a zero-terminated array of 16-bit values (in big-endian order) +that represent file name components from +.B f +symbols. +These components, when separated by slashes, form a file name. +The initial slash of a file name is recorded in the symbol table by an +.B f +symbol; when forming file names from +.B z +symbols an initial slash is not to be assumed. +The +.B z +symbols are clustered, one set for each object file in the program, +before any text symbols from that object file. +The set of +.B z +symbols for an object file form a +.I history stack +of the included source files from which the object file was compiled. +The value associated with each +.B z +symbol is the absolute line number at which that file was included in the source; +if the name associated with the +.B z +symbol is null, the symbol represents the end of an included file, that is, +a pop of the history stack. +If the value of the +.B z +symbol is 1 (one), +it represents the start of a new history stack. +To recover the source file and line number for a program location, +find the text symbol containing the location +and then the first history stack preceding the text symbol in the symbol table. +Next, interpret the PC/line offset table to discover the absolute line number +for the program location. +Using the line number, scan the history stack to find the set of source +files open at that location. +The line number within the file can be found using the line numbers +in the history stack. +The +.B Z +symbols correspond to +.B #line +directives in the source; they specify an adjustment to the line number +to be printed by the above algorithm. The offset is associated with the +first previous +.B z +symbol in the symbol table. +.SH "SEE ALSO" +.IR db (1), +.IR acid (1), +.IR 2a (1), +.IR 2l (1), +.IR nm (1), +.IR strip (1), +.IR mach (2), +.IR symbol (2) +.SH BUGS +There is no type information in the symbol table; however, the +.B -a +flags on the compilers will produce symbols for +.IR acid (1). diff --git a/static/plan9-4e/man6/ar.6 b/static/plan9-4e/man6/ar.6 new file mode 100644 index 00000000..669be073 --- /dev/null +++ b/static/plan9-4e/man6/ar.6 @@ -0,0 +1,99 @@ +.TH AR 6 +.SH NAME +ar \- archive (library) file format +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +The archive command +.IR ar (1) +is used to combine several files into +one. +Archives are used mainly as libraries to be searched +by the loaders +.IR 2l (1) +.I et al. +.PP +A file produced by +.I ar +has a magic string at the start, +followed by the constituent files, each preceded by a file header. +The magic number and header layout as described in the +include file are: +.IP +.EX +.ta \w'#define 'u +\w'SAR_HDR 'u +.ec % +#define ARMAG "!\n" +#define SARMAG 8 + +#define ARFMAG "`\n" + +struct ar_hdr { + char name[16]; + char date[12]; + char uid[6]; + char gid[6]; + char mode[8]; + char size[10]; + char fmag[2]; +}; +#define SAR_HDR 60 +.ec \ +.EE +.LP +The +.B name +is a blank-padded string. +The +.L fmag +field contains +.L ARFMAG +to help verify the presence of a header. +The other fields are left-adjusted, blank-padded numbers. +They are decimal except for +.LR mode , +which is octal. +The date is the modification date of the file (see +.IR stat (2)) +at the time of its insertion into the archive. +The mode is the low 9 bits of the file permission mode. +The length of the header is +.LR SAR_HDR . +Because the +.L ar_hdr +structure is padded in an architecture-dependent manner, +the structure should never be read or written as a unit; +instead, each field should be read or written independently. +.PP +Each file begins on an even (0 mod 2) boundary; +a newline is inserted between files if necessary. +Nevertheless +.B size +reflects the +actual size of the file exclusive of padding. +.PP +When all members of an archive are object files of +the same architecture, +.B ar +automatically adds an extra file, named +.BR __.SYMDEF , +as the first member of the archive. This file +contains an index used by the loaders to locate all +externally defined text and data symbols in the archive. +.PP +There is no provision for empty areas in an archive +file. +.SH "SEE ALSO" +.IR ar (1), +.IR 2l (1), +.IR nm (1), +.IR stat (2) +.SH BUGS +The +.B uid +and +.B gid +fields are unused in Plan 9. +They provide compatibility with Unix +.I ar +format. diff --git a/static/plan9-4e/man6/authsrv.6 b/static/plan9-4e/man6/authsrv.6 new file mode 100644 index 00000000..2638f631 --- /dev/null +++ b/static/plan9-4e/man6/authsrv.6 @@ -0,0 +1,373 @@ +.TH AUTHSRV 6 +.SH NAME +ticket \- authentication service +.SH DESCRIPTION +This manual page describes +the protocols used to authorize connections, confirm the identities +of users and machines, and maintain the associated databases. +The machine that provides these services is called the +.I authentication server +(AS). +The AS may be a stand-alone machine or a general-use machine such as a CPU server. +The network database +.IR ndb (6) +holds for each public machine, such as a CPU server or +file server, the name of the authentication server that machine uses. +.PP +Each machine contains three values important to authentication; a 56-bit DES +key, a 28-byte authentication ID, and a 48-byte authentication domain name. +The ID is a user name and identifies who is currently responsible for the +kernel running on that machine. +The domain name identifies the machines across which the ID is valid. +Together, the ID and domain name identify the owner of a key. +.PP +When a terminal boots, the user is prompted for user name and password. +The user name becomes the terminal's authentication ID. +The password is converted using +.I passtokey +(see +.IR auth (2)) +into a 56-bit DES key and saved as the machine's key. +The authentication domain is set to the null string. +If possible, the terminal validates the key with the AS +before saving it. +For Internet machines the correct AS to ask is found using +.IR dhcpd (8). +.PP +When a CPU or file server boots, it reads the key, ID, and domain name from +non-volatile RAM. +This allows servers to reboot without operator intervention. +.PP +The details of any authentication are mixed with the semantics +of the particular service they are authenticating so we describe +them one case at a time. The following definitions will be used +in the descriptions: +.TF nullx +.TP +.I \fICHc\fP +an 8-byte random challenge from a client +.TP +.I CHs +an 8-byte random challenge from a server +.TP +.I \fIKs\fP +server's key +.TP +.I \fIKc\fP +client's key +.TP +.I \fIKn\fP +a nonce key created for a ticket +.TP +.I K\fP\fIm\fP +message m +encrypted with key K +.TP +.I \fIIDs\fP +server's ID +.TP +.I \fIDNs\fP +server's authentication domain name +.TP +.I \fIIDc\fP +client's ID +.TP +.I \fIUIDc\fP +user's name on the client +.TP +.I \fIUIDs\fP +user's name on the server +.PD +.PP +A number of constants defined in +.B auth.h +are also used: +.IR AuthTreq, +.IR AuthChal, +.IR AuthOK, +.IR AuthErr, +.IR AuthTs, +.IR AuthTc, +.IR AuthAs, +and +.IR AuthAc . +.SS "File Service" +File service sessions are long-lived connections between a client host +and a file server. +Processes belonging to different users share the session. +Whenever a user process on the client +.I mounts +a file server +(see +.IR bind (2)), +it must authenticate itself. +There are four players in an authentication: the server, the client kernel, +the user process on the client, and the authentication server. +The goal of the authentication protocol is to convince the server +that the client may validly speak for the user process. +.PP +To reduce the number of messages for each authentication, +common information is exchanged once at the +beginning of the session within a +.I session +message +(see +.IR attach (5)): +.TF "Client→Server" +.TP +.IR Client → Server +Tsession( \fICHc\fP ) +.TP +.IR Server → Client +Rsession( \fICHs\fP, \fIIDs\fP, \fIDNs\fP ) +.PD +.PP +Each time a user mounts a file server connection, an attach +message is sent identifying/authenticating the user: +.TF "Client→Server" +.TP +.IR Client → Server +Tattach( \fIKs\fP{ \fIAuthTs\fP, \fICHs\fP, \fIUIDc\fP, \fIUIDs\fP, \fIKn\fP }, \fIKn\fP{ \fIAuthAc\fP, \fICHs\fP, \fIcount\fP } ) +.TP +.IR Server → Client +Rattach( \fIKn\fP{ AuthAs, \fICHc\fP, \fIcount\fP } ) +.PD +.PP +The part of the attach request encrypted with +.BR \fIKs\fP +is called a +.IR ticket . +Since it is encrypted in the server's secret key, this message is guaranteed +to have originated on the AS. +The part encrypted with the +.B \fIKn\fP +found in the ticket is called an +.IR authenticator . +The authenticator is generated by the client kernel and guarantees that +the ticket was not stolen. +The +.I count +is incremented with each mount to make every authenticator unique, +thus foiling replay attacks. +The server is itself authenticated by the authenticator +it sends as a reply to the attach. +.PP +Tickets are created by the AS at the request of a user process. +The AS contains a database of which \fIIDc\fP's may speak for which \fIUIDc\fP's. +If the \fIIDc\fP may speak for the \fIUIDc\fP, two tickets are returned. +.TF "UserProc→AS" +.TP +.IR UserProc → AS +\fIAuthTreq\fP, \fICHs\fP, \fIIDs\fP, \fIDNs\fP, \fIIDc\fP, \fIUIDc\fP +.TP +.IR AS → UserProc +\fIAuthOK\fP, \fIKc\fP{ \fIAuthTc\fP, \fICHs\fP, \fIUIDc\fP, \fIUIDs\fP, \fIKn\fP }, \fIKs\fP{ \fIAuthTs\fP, \fICHs\fP, \fIUIDc\fP, \fIUIDs\fP, \fIKn\fP } +.PD +.PP +Otherwise an error message is returned. +.TF "UserProc→AS" +.TP +.IR AS → UserProc +\fIAuthErr\fP, 64-byte error string +.PD +.PP +The user passes both tickets to the client's kernel using +the +.I fauth +system call +(see +.IR fauth (2)). +The kernel decrypts the ticket encrypted with \fIKc\fP. +If \fIUIDc\fP +matches the user's login ID, the tickets are remembered for +any subsequent attaches by that user of that file server session. +Otherwise, the ticket is assumed stolen and an error is returned. +.SS "Remote Execution" +.PP +A number of applications require a process on one machine to start +a process with the same user ID on a server machine. +Examples are +.IR cpu (1), +.I rx +(see +.IR con (1)), +and +.IR exportfs (4). +The called process replies to the connection with a ticket request. +.TF "Server→UserProc" +.TP +.IR Server → UserProc +\fIAuthTreq\fP, \fICHs\fP, \fIIDs\fP, \fIDNs\fP, xxx, xxx +.PD +.PP +Here +.I xxx +indicates a field whose contents do not matter. +.PP +The calling process adds its machine's \fIIDc\fP and its \fIUIDc\fP to the request +and follows the protocol outlined above to get two tickets from the AS. +The process passes the +\fIKs\fP +encrypted ticket plus an authenticator generated by +.B /dev/authenticator +from the +\fIKc\fP +ticket to the remote server, which writes them to the +kernel to set the user ID (see +.IR cons (3)). +The server replies with its own authenticator which can be written +to the kernel along with the +\fIKc\fP +encrypted ticket to confirm the server's identity (see +.IR cons (3)). +.TF "UserProc→Server" +.TP +.IR UserProc → Server +\fIKs\fP{ \fIAuthTs\fP, \fICHs\fP, \fIUIDc\fP, \fIUIDs\fP, \fIKn\fP }, \fIKn\fP{ \fIAuthAc\fP, \fICHs\fP, 0 } +.TP +.IR Server → UserProc +\fIKn\fP{ \fIAuthAs\fP, \fICHs\fP, 0 } +.PD +.SS "Challenge Box" +A user may also start a process on a CPU server from a non Plan 9 +machine using commands such as +.IR con, +.IR telnet, +or +.I ftp +(see +.IR con (1) +and +.IR ftpfs (4)). +In these situations, the user can authenticate using a hand-held +DES encryptor. +The telnet or FTP daemon first sends a ticket request to the +authentication server. +If the AS has keys for both the \fIIDc\fP and \fIUIDc\fP in the ticket +request it returns a challenge as a hexadecimal number. +.TF "Daemon→AS" +.TP +.IR Daemon → AS +\fIAuthChal\fP, \fICHc\fP, \fIIDc\fP, \fIDNs\fP, \fIIDc\fP, \fIUIDc\fP +.TP +.IR AS → Daemon +\fIAuthOK\fP, 16-byte +.SM ASCII +challenge +.PD +.PP +Otherwise, it returns a null-terminated 64-byte error string. +.TF "Daemon→AS" +.TP +.IR AS → Daemon +\fIAuthErr\fP, 64-byte error string +.PD +.PP +The daemon relays the challenge to the calling program, +which displays the challenge on the user's screen. +The user encrypts it and types in the +result, which is relayed back to the AS. +The AS checks it against the expected response and returns +either a ticket or an error. +.TF "Daemon→AS" +.TP +.IR Daemon → AS +16-byte +.SM ASCII +response +.TP +.IR AS → Daemon +\fIAuthOK\fP, \fIKc\fP{ \fIAuthTs\fP, \fICHc\fP, \fIUIDc\fP, \fIUIDc\fP, \fIKn\fP } +.PD +.PP +or +.TF "Daemon→AS" +.TP +.IR AS → Daemon +\fIAuthErr\fP, 64-byte error string +.PD +.PP +Finally, the daemon passes the ticket to the kernel +to set the user ID (see +.IR cons (3)). +.SS "Password Change" +Any user can change the key stored for him or her on the AS. +Once again we start by passing a ticket request to the AS. +Only the user ID in the request is meaningful. +The AS replies with a single ticket (or an error message) +encrypted in the user's personal key. +The user encrypts both the old and new keys with the +\fIKn\fP from the returned ticket and sends that back to the AS. +The AS checks the reply for validity and replies with an +\fIAuthOK\fP byte or an error message. +.TF "UserProc→AS" +.TP +.IR UserProc → AS +\fIAuthPass\fP, xxx, xxx, xxx, xxx, \fIUIDc\fP +.TP +.IR AS → UserProc +\fIAuthOK\fP, \fIKc\fP{ \fIAuthTp\fR, xxx, xxx, xxx, \fIKn\fP } +.TP +.IR UserProc → AS +\fIKn\fP{ \fIAuthPass\fP, "old password", "new password" } +.TP +.IR AS → UserProc +\fIAuthOK\fP +.PD +.PP +or +.TF "UserProc→AS" +.TP +.IR AS → UserProc +\fIAuthErr\fP, 64-byte error string +.PD +.PP +.SS "Data Base" +An +.IR ndb (2) +database file exists for the authentication server. +The attribute types used by the AS are +.B hostid +and +.BR uid . +The value in the +.B hostid +is a client host's ID. +The values in the +.B uid +pairs in the same entry list which users that host ID +make speak for. +A uid value of +.B * +means the host ID may speak for all users. +A uid value of +.BI ! user +means the host ID may not speak for +.IR user . +For example: +.EX +hostid=bootes + uid=!sys uid=!adm uid=* +.EE +.PP +is interpreted as +.B bootes +may speak for any user except +.B sys +and +.BR adm . +.SH FILES +.TF /lib/ndb/auth.*xxx +.TP +.B /lib/ndb/auth +database file +.TP +.B /lib/ndb/auth.* +hash files for +.B /lib/ndb/auth +.SH SEE ALSO +.IR auth (2), +.IR fauth (2), +.IR cons (3), +.IR attach (5), +.IR auth (8) diff --git a/static/plan9-4e/man6/color.6 b/static/plan9-4e/man6/color.6 new file mode 100644 index 00000000..aedaee58 --- /dev/null +++ b/static/plan9-4e/man6/color.6 @@ -0,0 +1,150 @@ +.TH COLOR 6 +.SH NAME +color \- representation of pixels and colors +.SH DESCRIPTION +To address problems of consistency and portability among applications, +Plan 9 uses a fixed color map, called +.BR rgbv , +on 8-bit-per-pixel displays. +Although this avoids problems caused by multiplexing color maps between +applications, it requires that the color map chosen be suitable for most purposes +and usable for all. +Other systems that use fixed color maps tend to sample the color cube +uniformly, which has advantages\(emmapping from a (red, green, blue) triple +to the color map and back again is easy\(embut ignores an important property +of the human visual system: eyes are +much more sensitive to small changes in intensity than +to changes in hue. +Sampling the color cube uniformly gives a color map with many different +hues, but only a few shades of each. +Continuous tone images converted into such maps demonstrate conspicuous +artifacts. +.PP +Rather than dice the color cube into subregions of +size 6\(mu6\(mu6 (as in Netscape Navigator) or 8\(mu8\(mu4 +(as in previous releases of Plan 9), picking 1 color in each, +the +.B rgbv +color map uses a 4\(mu4\(mu4 subdivision, with +4 shades in each subcube. +The idea is to reduce the color resolution by dicing +the color cube into fewer cells, and to use the extra space to increase the intensity +resolution. +This results in 16 grey shades (4 grey subcubes with +4 samples in each), 13 shades of each primary and secondary color (3 subcubes +with 4 samples plus black) and a reasonable selection of colors covering the +rest of the color cube. +The advantage is better representation of +continuous tones. +.PP +The following function computes the 256 3-byte entries in the color map: +.IP +.EX +.ta 6n +6n +6n +6n +void +setmaprgbv(uchar cmap[256][3]) +{ + uchar *c; + int r, g, b, v; + int num, den; + int i, j; + + for(r=0,i=0; r!=4; r++) + for(v=0; v!=4; v++,i+=16) + for(g=0,j=v-r; g!=4; g++) + for(b=0; b!=4; b++,j++){ + c = cmap[i+(j&15)]; + den = r; + if(g > den) + den = g; + if(b > den) + den = b; + if(den == 0) /* would divide check; pick grey shades */ + c[0] = c[1] = c[2] = 17*v; + else{ + num = 17*(4*den+v); + c[0] = r*num/den; + c[1] = g*num/den; + c[2] = b*num/den; + } + } +} +.EE +.PP +There are 4 nested loops to pick the (red,green,blue) coordinates of the subcube, +and the value (intensity) within the subcube, indexed by +.BR r , +.BR g , +.BR b , +and +.BR v , +whence +the name +.IR rgbv . +The peculiar order in which the color map is indexed is designed to distribute the +grey shades uniformly through the map\(emthe +.IR i 'th +grey shade, +.RI 0<= i <=15 +has index +.IR i ×17, +with black going to 0 and white to 255. +Therefore, when a call to +.B draw +converts a 1, 2 or 4 bit-per-pixel picture to 8 bits per pixel (which it does +by replicating the pixels' bits), the converted pixel values are the appropriate +grey shades. +.PP +The +.B rgbv +map is not gamma-corrected, for two reasons. First, photographic +film and television are both normally under-corrected, the former by an +accident of physics and the latter by NTSC's design. +Second, we require extra color resolution at low intensities because of the +non-linear response and adaptation of the human visual system. +Properly +gamma-corrected displays with adequate low-intensity resolution pack the +high-intensity parts of the color cube with colors whose differences are +almost imperceptible. +Either reason suggests concentrating +the available intensities at the low end of the range. +.PP +On `true-color' displays with separate values for the red, green, and blue +components of a pixel, the values are chosen so 0 represents no intensity (black) and the +maximum value (255 for an 8-bit-per-color display) represents full intensity (e.g., full red). +Common display depths are 24 bits per pixel, with 8 bits per color in order +red, green, blue, and 16 bits per pixel, with 5 bits of red, 6 bits of green, and 5 bits of blue. +.PP +Colors may also be created with an opacity factor called +.BR alpha , +which is scaled so 0 represents fully transparent and 255 represents opaque color. +The alpha is +.I premultiplied +into the other channels, as described in the paper by Porter and Duff cited in +.IR draw (2). +The function +.B setalpha +(see +.IR allocimage (2)) +aids the initialization of color values with non-trivial alpha. +.PP +The packing of pixels into bytes and words is odd. +For compatibility with VGA frame buffers, the bits within a +pixel byte are in big-endian order (leftmost pixel is most +significant bits in byte), while bytes within a pixel are packed in little-endian +order. Pixels are stored in contiguous bytes. This results +in unintuitive pixel formats. For example, for the RGB24 format, +the byte ordering is blue, green, red. +.PP +To maintain a constant external representation, +the +.IR draw (3) +interface +as well as the +various graphics libraries represent colors +by 32-bit numbers, as described in +.IR color (2). +.SH "SEE ALSO" +.IR color (2), +.IR graphics (2), +.IR draw (2) diff --git a/static/plan9-4e/man6/face.6 b/static/plan9-4e/man6/face.6 new file mode 100644 index 00000000..cfb78565 --- /dev/null +++ b/static/plan9-4e/man6/face.6 @@ -0,0 +1,114 @@ +.TH FACE 6 +.SH NAME +face \- face files +.SH DESCRIPTION +The directory +.B /lib/face +contains a hierarchy of images of people. +In that directory are subdirectories named by the sizes of +the corresponding image files: +.B 48x48x1 +(48 by 48 pixels, one bit per pixel); +.B 48x48x2 +(48 by 48 pixels, two (grey) bits per pixel); +.B 48x48x4 +(48 by 48 pixels, four (grey) bits per pixel); +.B 48x48x8 +(48 by 48 pixels, eight (color-mapped) bits per pixel); +.B 512x512x8 +(512 by 512 pixels, eight (color-mapped) bits per pixel); +.B 512x512x24 +(512 by 512 pixels, twenty-four bits per pixel (3 times 8 bits +per color)). +The large files serve no special purpose; they are stored +as images +(see +.IR image (6)). +The small files are the `icons' displayed by +.B faces +and +.B seemail +(see +.IR faces (1)); +for depths less than 4, their format is special. +.PP +One- and two-bit deep icons are stored as text, one line of the file to one scan line +of display. +Each line is divided into 8-bit, 16-bit, or 32-bit big-endian words, +stored as a list of comma-separated hexadecimal C constants, +such as: +.IP +.EX +0x9200, 0x1bb0, 0x003e, +.EE +.PP +This odd format is historical and the programs that read it +are somewhat forgiving about blanks and the need for commas. +.PP +The files +.BR /lib/face/*/.dict +hold a correspondence between users at machines +and face files. +The format is +.IP +.EX +.I machine\fB/\fPuser directory\fB/\fPfile\fB.\fPver +.EE +.PP +The +.I machine +is the domain name of the machine sending the message, +and +.I user +the name of the user sending it, as recorded in +.BR /sys/log/mail . +The +.I directory +is a further subdirectory of (say) +.BR /lib/face/48x48x1 , +named by a single letter corresponding to the first character +of the user names. The +.I file +is the name of the file, typically but not always the user name, +and +.I ver +is a number to distinguish different images, for example to +distinguish the image for Bill Gates from the image for Bill Joy, +both of which might otherwise be called +.BR b/bill . +For example, Bill Gates might be represented by the line +.IP +.EX +microsoft.com/bill b/bill.1 +.EE +.PP +If multiple entries exist for a user in the various +.B .dict +files, +.I faces +chooses the highest pixel size less than or equal to that of the +display on which it is running. +.PP +Finally, or rather firstly, the file +.B /lib/face/.machinelist +contains a list of machine/domain pairs, one per line, +to map any of a set of machines to a single domain name to +be looked up in the +.B .dict +files. The machine name may be a regular expression, +so for example the entry +.IP +.EX +\&.*research\e.bell-labs\e.com astro +.EE +.PP +maps any of the machines in Bell Labs Research into the +shorthand name +.BR astro , +which then appears as a domain name in the +.B .dict +files. +.SH "SEE ALSO" +.IR mail (1), +.IR tweak (1), +.IR image (6) diff --git a/static/plan9-4e/man6/font.6 b/static/plan9-4e/man6/font.6 new file mode 100644 index 00000000..7b2429a9 --- /dev/null +++ b/static/plan9-4e/man6/font.6 @@ -0,0 +1,87 @@ +.TH FONT 6 +.SH NAME +font, subfont \- external format for fonts and subfonts +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +Fonts and subfonts are described in +.IR cachechars (2). +.PP +External fonts are described by a plain text file that can be read using +.IR openfont . +The format of the file is a header followed by any number of +subfont range specifications. +The header contains two numbers: the height and the ascent, both in pixels. +The height is the inter-line spacing and the ascent is the distance +from the top of the line to the baseline. These numbers are chosen +to display consistently all the subfonts of the font. +A subfont range specification contains two or three numbers and a file name. +The numbers are the inclusive range of characters covered by the subfont, +with an optional starting position within the subfont, +and the file name names an external file suitable for +.I readsubfont +(see +.IR graphics (2)). +The minimum number of a covered range is mapped to the specified starting position +(default zero) of the +corresponding subfont. +If the subfont file name does not begin with a slash, it is taken relative to the +directory containing the font file. +Each field must be followed by some white space. +Each numeric field may be C-format decimal, octal, or hexadecimal. +.PP +External subfonts are represented in a more rigid format +that can be read and written using +.I readsubfont +and +.I writesubfont +(see +.IR subfont (2)). +The format for subfont files is: an image containing character glyphs, +followed by a subfont header, followed by character information. +The image has the format for external image files described in +.IR image (6). +The subfont header has 3 +decimal strings: +.BR n , +.BR height , +and +.BR ascent . +Each number is right-justified and blank padded in 11 characters, followed by a blank. +The character +.B info +consists of +.BR n +1 +6-byte entries, each giving the +.B Fontchar +.B x +(2 bytes, low order byte first), +.BR top , +.BR bottom , +.BR left , +and +.BR width . +The +.B x +field of the last +.B Fontchar +is used to calculate the image width +of the previous character; the other fields in the last +.B Fontchar +are irrelevant. +.PP +Note that the convention of using the character with value zero (NUL) to represent +characters of zero width (see +.IR draw (2)) +means that fonts should have, as their zeroth character, +one with non-zero width. +.SH FILES +.TF /lib/font/bit/* +.TP +.B /lib/font/bit/* +font directories +.SH "SEE ALSO" +.IR graphics (2), +.IR draw (2), +.IR cachechars (2), +.IR subfont (2) diff --git a/static/plan9-4e/man6/image.6 b/static/plan9-4e/man6/image.6 new file mode 100644 index 00000000..31560891 --- /dev/null +++ b/static/plan9-4e/man6/image.6 @@ -0,0 +1,205 @@ +.TH IMAGE 6 +.SH NAME +image \- external format for images +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +Images are described in +.IR graphics (2), +and the definition of pixel values is in +.IR color (6). +Fonts and images are stored in external files +in machine-independent formats. +.PP +Image files are read and written using +.B readimage +and +.B writeimage +(see +.IR allocimage (2)), or +.B readmemimage +and +.B writememimage +(see +.IR memdraw (2)). +An uncompressed image file starts with 5 +strings: +.BR chan , +.BR r.min.x , +.BR r.min.y , +.BR r.max.x , +and +.BR r.max.y . +Each is right-justified and blank padded in 11 characters, followed by a blank. +The +.B chan +value is a textual string describing the pixel format +(see +.B strtochan +in +.IR graphics (2) +and the discussion of channel descriptors below), +and the rectangle coordinates are decimal strings. +The rest of the file contains the +.B r.max.y-r.min.y +rows of pixel data. +A +.I row +consists of the byte containing pixel +.B r.min.x +and all the bytes up to and including the byte containing pixel +.BR r.max.x -1. +For images with depth +.I d +less than eight, a pixel with x-coordinate = +.I x +will appear as +.I d +contiguous bits in a byte, with the pixel's high order bit +starting at the byte's bit number +.if t \fIw\fP\(mu(\fIx\fP mod (8/\fIw\fP)), +.if n w*(x mod (8/w)), +where bits within a byte are numbered 0 to 7 from the +high order to the low order bit. +Rows contain integral number of bytes, so there may be some unused +pixels at either end of a row. +If +.I d +is greater than 8, the definition of images requires that it will a multiple of 8, so +pixel values take up an integral number of bytes. +.PP +The +.B loadimage +and +.B unloadimage +functions described in +.IR allocimage (2) +also deal with rows in this format, stored in user memory. +.PP +The channel format string is a sequence of two-character channel descriptions, +each comprising a letter +.RB ( r +for red, +.B g +for green, +.B b +for blue, +.B a +for alpha, +.B m +for color-mapped, +.B k +for greyscale, +and +.B x +for ``don't care'') +followed by a number of bits per pixel. +The sum of the channel bits per pixel is the +depth of the image, which must be either +a divisor or a multiple of eight. +It is an error to have more than +one of any channel but +.BR x . +An image must have either a greyscale channel; a color mapped channel; +or red, green, and blue channels. +If the alpha channel is present, it must be at least as deep as any other channel. +.PP +The channel string defines the format of the pixels in the file, +and should not be confused with ordering of bytes in the file. +In particular +.B 'r8g8b8' +pixels have byte ordering blue, green, and red within the file. +See +.IR color (6) +for more details of the pixel format. +.PP +A venerable yet deprecated format replaces the channel string +with a decimal +.IR ldepth , +which is the base two logarithm of the number +of bits per pixel in the image. +In this case, +.IR ldepth s +0, 1, 2, and 3 +correspond to channel descriptors +.BR k1 , +.BR k2 , +.BR k4 , +and +.BR m8 , +respectively. +.PP +Compressed image files start with a line of text containing the word +.BR compressed , +followed by a header as described above, followed by the image data. +The data, when uncompressed, is laid out in the usual form. +.PP +The data is represented by a string of compression blocks, each encoding +a number of rows of the image's pixel data. Compression blocks +are at most 6024 bytes long, so that they fit comfortably in a +single 9P message. Since a compression block must encode a +whole number of rows, there is a limit (about 5825 bytes) to the width of images +that may be encoded. Most wide images are in subfonts, +which, at 1 bit per pixel (the usual case for fonts), can be 46600 pixels wide. +.PP +A compression block begins with two decimal strings of twelve bytes each. +The first number is one more than the +.B y +coordinate of the last row in the block. The second is the number +of bytes of compressed data in the block, not including the two decimal strings. +This number must not be larger than 6000. +.PP +Pixels are encoded using a version of Lempel & Ziv's sliding window scheme LZ77, +best described in J A Storer & T G Szymanski +`Data Compression via Textual Substitution', +JACM 29#4, pp. 928-951. +.PP +The compression block is a string of variable-length +code words encoding substrings of the pixel data. A code word either gives the +substring directly or indicates that it is a copy of data occurring +previously in the pixel stream. +.PP +In a code word whose first byte has the high-order bit set, the rest of the +byte indicates the length of a substring encoded directly. +Values from 0 to 127 encode lengths from 1 to 128 bytes. +Subsequent bytes are the literal pixel data. +.PP +If the high-order bit is zero, the next 5 bits encode +the length of a substring copied from previous pixels. Values from 0 to 31 +encode lengths from 3 to 34 bytes. The bottom two bits of the first byte and +the 8 bits of the next byte encode an offset backward from the current +position in the pixel data at which the copy is to be found. Values from +0 to 1023 encode offsets from 1 to 1024. The encoding may be `prescient', +with the length larger than the offset, which works just fine: the new data +is identical to the data at the given offset, even though the two strings overlap. +.PP +Some small images, in particular 48\(mu48 face files +as used by +.I seemail +(see +.IR faces (1) +and +.IR face (6)) +and 16\(mu16 +cursors, can be stored textually, suitable for inclusion in C source. +Each line of text represents one scan line as a +comma-separated sequence of hexadecimal +bytes, shorts, or words in C format. +For cursors, each line defines a pair of bytes. +(It takes two images to define a cursor; each must be stored separately +to be processed by programs such as +.IR tweak (1).) +Face files of one bit per pixel are stored as a sequence of shorts, +those of larger pixel sizes as a sequence of longs. +Software that reads these files must deduce the image size from +the input; there is no header. +These formats reflect history rather than design. +.SH "SEE ALSO" +.IR jpg (1), +.IR tweak (1), +.IR graphics (2), +.IR draw (2), +.IR allocimage (2), +.IR color (6), +.IR face (6), +.IR font (6) diff --git a/static/plan9-4e/man6/keyboard.6 b/static/plan9-4e/man6/keyboard.6 new file mode 100644 index 00000000..308b9ac2 --- /dev/null +++ b/static/plan9-4e/man6/keyboard.6 @@ -0,0 +1,198 @@ +.TH KEYBOARD 6 +.SH NAME +keyboard \- how to type characters +.SH DESCRIPTION +Keyboards are idiosyncratic. +It should be obvious how to type ordinary +.SM ASCII +characters, +backspace, tab, escape, and newline. +In Plan 9, the key labeled +.B Return +or +.B Enter +generates a newline +.RB ( 0x0A ); +if there is a key labeled +.B Line +.BR Feed , +it generates a carriage return +.RB ( 0x0D ); +Plan 9 eschews CRLFs. +All control characters are typed in the usual way; +in particular, control-J is a line feed and control-M a carriage return. +On the PC and some other machines, the key labeled +.B Caps +.B Lock +acts as an additional control key, +and the key labeled +.B End +acts a line feed key. +.PP +The delete character +.RB ( 0x7F ) +may be generated by a different key, +one near the extreme upper right of the keyboard. +On the Next it is the key labeled +.L * +(not the asterisk above the 8). +On the SLC and Sparcstation 2, delete is labeled +.B Num +.B Lock +(the key above +.B Backspace +labeled +.B Delete +functions as an additional backspace key). +On the other keyboards, the key labeled +.B Del +or +.B Delete +generates the delete character. +.PP +The view character +.RB ( 0x80 ), +used by +.IR rio (1), +.IR acme (1), +and +.IR sam (1), +causes windows to scroll forward. +It is generally somewhere near the lower right of the main key area. +The scroll character is generated by the +.B VIEW +key on the Gnot, the +.B Alt +.B Graph +key on the SLC, and the arrow key ↓ +on the other terminals. +As a convenience for sloppy typists, some programs interpret → and ↠keys, +which lie on either side of ↓, as view keys as well. +The arrow key ↑ scrolls backward. +.PP +Characters in Plan 9 are runes (see +.IR utf (6)). +Any 16-bit rune can be typed using a compose key followed by several +other keys. +The compose key is also generally near the lower right of the main key area: +the +.B NUM PAD +key on the Gnot, the +.B Alternate +key on the Next, the +.B Compose +key on the SLC, the +.B Option +key on the Magnum, and either +.B Alt +key on the PC. +After typing the compose key, type a capital +.L X +and exactly four hexadecimal characters (digits and +.L a +to +.LR f ) +to type a single rune with the value represented by +the typed number. +There are shorthands for many characters, comprising +the compose key followed by a two- or three-character sequence. +There are several rules guiding the design of the sequences, as +illustrated by the following examples. +The full list is too long to repeat here, but is contained in the file +.L /lib/keyboard +in a format suitable for +.IR grep (1) +or +.IR look (1). +.IP +A repeated symbol gives a variant of that symbol, e.g., +.B ?? +yields ¿\|. +.IP +.SM ASCII +digraphs for mathematical operators give the corresponding operator, e.g., +.B <= +yields ≤. +.IP +Two letters give the corresponding ligature, e.g., +.B AE +yields Æ. +.IP +Mathematical and other symbols are given by abbreviations for their names, e.g., +.B pg +yields ¶. +.IP +Chess pieces are given by a +.B w +or +.B b +followed by a letter for the piece +.RB ( k +for king, +.B q +for queen, +.B r +for rook, +.B n +for knight, +.B b +for bishop, or +.B p +for pawn), +e.g., +.B wk +for a white king. +.IP +Greek letters are given by an asterisk followed by a corresponding latin letter, +e.g., +.B *d +yields δ. +.IP +Cyrillic letters are given by an at sign followed by a corresponding latin letter or letters, +e.g., +.B @ya +yields Ñ. +.IP +Script letters are given by a dollar sign followed by the corresponding regular letter, +e.g., +.B $F +yields ℱ. +.IP +A digraph of a symbol followed by a letter gives the letter with an accent that looks like the symbol, e.g., +.B ,c +yields ç. +.IP +Two digits give the fraction with that numerator and denominator, e.g., +.B 12 +yields ½. +.IP +The letter s followed by a character gives that character as a superscript, e.g., +.B s1 +yields â±. +These characters are taken from the Unicode block 0x2070; the 1, 2, and 3 +superscripts in the Latin-1 block are available by using a capital S instead of s. +.IP +Sometimes a pair of characters give a symbol related to the superimposition of the characters, e.g., +.B cO +yields ©. +.IP +A mnemonic letter followed by $ gives a currency symbol, e.g., +.B l$ +yields £. +.PP +Note the difference between ß (ss) and µ (micron) and +the Greek β and μ. +.SH FILES +.TF "/lib/keyboard " +.TP +.B /lib/keyboard +sorted table of characters and keyboard sequences +.SH "SEE ALSO" +.IR intro (1), +.IR ascii (1), +.IR tcs (1), +.IR acme (1), +.IR rio (1), +.IR sam (1), +.IR cons (3), +.IR utf (6) diff --git a/static/plan9-4e/man6/man.6 b/static/plan9-4e/man6/man.6 new file mode 100644 index 00000000..09d5455f --- /dev/null +++ b/static/plan9-4e/man6/man.6 @@ -0,0 +1,249 @@ +.TH MAN 6 +.SH NAME +man \- macros to typeset manual +.SH SYNOPSIS +.B nroff -man +.I file ... +.PP +.B troff -man +.I file ... +.SH DESCRIPTION +These macros are used to format pages of this manual. +.PP +Except in +.L .LR +and +.L .RL +requests, any text argument denoted +.I t +in the request summary may be zero to six words. +Quotes +\fL"\fP ... \fL"\fP +may be used to include blanks in a `word'. +If +.I t +is empty, +the special treatment is applied to +the next text input line (the next line that doesn't begin with dot). +In this way, for example, +.B .I +may be used to italicize a line of more than 6 words, or +.B .SM +followed by +.B .B +to make small letters in `bold' font. +.PP +A prevailing indent distance is remembered between +successive indented paragraphs, +and is reset to default value upon reaching a non-indented paragraph. +Default units for indents +.I i +are ens. +.PP +The fonts are +.TP +.B R +roman, the main font, preferred for diagnostics +.PD 0 +.TP +.B I +italic, preferred for parameters, short names of commands, +names of manual pages, +and naked function names +.TP +.L B +`bold', actually the constant width font, +preferred for examples, file names, declarations, keywords, names of +.B struct +members, and literals +(numbers are rarely literals) +.TP +.B L +also the constant width font. +In +.I troff +.BR L = B ; +in +.I nroff +arguments of the macros +.BR .L , +.BR .LR , +and +.B .RL +are printed in quotes; +preferred only where quotes really help (e.g. lower-case literals and +punctuation). +.PD +.LP +Type font and size are reset to default values +before each paragraph, and after processing +font- or size-setting macros. +.PP +The +.B -man +macros admit equations and tables in the style of +.IR eqn (1) +and +.IR tbl (1), +but do not support arguments on +.B .EQ +and +.B .TS +macros. +.PP +These strings are predefined by +.BR -man : +.TP +.B \e*R +.if t `\*R', `(Reg)' in +.if t .IR nroff . +.if n `(Reg)', trademark symbol in +.if n .IR troff . +.br +.ns +.TP +.B \e*S +Change to default type size. +.SH FILES +.B /sys/lib/tmac/tmac.an +.SH SEE ALSO +.IR troff (1), +.IR man (1) +.SH REQUESTS +.ta \w'.TH n c x 'u +\w'Cause 'u +\w'Argument\ 'u +.di xx + \ka +.br +.di +.in \nau +.ti0 +Request Cause If no Explanation +.ti0 + Break Argument +.ti0 +\&\fL.B\fR \fIt\fR no \fIt\fR=n.t.l.* Text +.I t +is `bold'. +.ti0 +\&\fL.BI\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating bold and italic. +.ti0 +\&\fL.BR\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating bold and Roman. +.ti0 +\&\fL.DT\fR no Restore default tabs. +.ti0 +\&\fL.EE\fR yes End displayed example +.ti0 +\&\fL.EX\fR yes Begin displayed example +.ti0 +\&\fL.HP\fR \fIi\fR yes \fIi\fR=p.i.* Set prevailing indent to +.IR i . +Begin paragraph with hanging indent. +.ti0 +\&\fL.I\fR \fIt\fR no \fIt\fR=n.t.l. Text +.I t +is italic. +.ti0 +\&\fL.IB\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating italic and bold. +.ti0 +\&\fL.IP\fR \fIx i\fR yes \fIx\fR="" Same as \fL.TP\fP with tag +.IR x . +.ti0 +\&\fL.IR\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating italic and Roman. +.ti0 +\&\fL.L\fR \fIt\fR no \fIt\fR=n.t.l. Text +.I t +is literal. +.ti0 +\&\fL.LP\fR yes Same as \fL.PP\fP. +.ti0 +\&\fL.LR\fR \fIt\fR no Join 2 +words of +.I t +alternating literal and Roman. +.ti0 +\&\fL.PD\fR \fId\fR no \fId\fR=\fL.4v\fP Interparagraph distance is +.IR d . +.ti0 +\&\fL.PP\fR yes Begin paragraph. +Set prevailing indent to default. +.ti0 +\&\fL.RE\fR yes End of relative indent. +Set prevailing indent to amount of starting \fL.RS\fP. +.ti0 +\&\fL.RI\fR \fIt\fR no \fIt\fR=n.t.l. Join +words of +.I t +alternating Roman and italic. +.ti0 +\&\fL.RL\fR \fIt\fR no Join 2 or 3 +words of +.I t +alternating Roman and literal. +.ti0 +\&\fL.RS\fR \fIi\fR yes \fIi\fR=p.i. Start relative indent, +move left margin in distance +.IR i . +Set prevailing indent to default for nested indents. +.ti0 +\&\fL.SH\fR \fIt\fR yes \fIt\fR="" Subhead; reset paragraph distance. +.ti0 +\&\fL.SM\fR \fIt\fR no \fIt\fR=n.t.l. Text +.I t +is small. +.ti0 +\&\fL.SS\fR \fIt\fR no \fIt\fR="" Secondary subhead. +.ti0 +\&\fL.TF\fR \fIs\fR yes Prevailing indent is wide as +string +.I s +in font +.BR L ; +paragraph distance is 0. +.ti0 +\&\fL.TH\fR \fIn c x\fR yes Begin page named +.I n +of chapter +.IR c; +.I x +is extra commentary, e.g. `local', for page head. +Set prevailing indent and tabs to default. +.ti0 +\&\fL.TP\fR \fIi\fR yes \fIi\fR=p.i. Set prevailing indent to +.IR i . +Restore default indent if +.IR i =0. +Begin indented paragraph +with hanging tag given by next text line. +If tag doesn't fit, place it on separate line. +.ti0 +\&\fL.1C\fR yes Equalize columns and return to 1-column output +.ti0 +\&\fL.2C\fR yes Start 2-column nofill output +.PP +.ti0 +* n.t.l. = next text line; p.i. = prevailing indent +.SH BUGS +There's no way to fool +.I troff +into handling literal double quote marks +.B \&" +in font-alternation macros, such as +.LR .BI . +.br +There is no direct way to suppress column widows in 2-column +output; the column lengths may be adjusted by inserting +.L .sp +requests before the closing +.LR .1C . diff --git a/static/plan9-4e/man6/map.6 b/static/plan9-4e/man6/map.6 new file mode 100644 index 00000000..d767065a --- /dev/null +++ b/static/plan9-4e/man6/map.6 @@ -0,0 +1,87 @@ +.TH MAP 6 +.SH NAME +map \- digitized map formats +.SH DESCRIPTION +Files used by +.IR map (7) +are a sequence of structures of the form: +.PP +.EX +struct { + signed char patchlatitude; + signed char patchlongitude; + short n; + union { + struct { + short latitude; + short longitude; + } point[n]; + struct { + short latitude; + short longitude; + struct { + signed char latdiff; + signed char londiff; + } point[\-n]; + } highres; + } segment; +}; +.EE +where +.B short +stands for 16-bit integers and there is no padding within or between +.BR structs . +Shorts are stored in little-endian order, low byte first. +To assure portability, +.I map +accesses them bytewise. +.PP +Fields +.L patchlatitude +and +.L patchlongitude +tell to what +10-degree by 10-degree +patch of the earth's surface a segment belongs. +Their values range from \-9 to 8 and from \-18 to 17, +respectively, and indicate the coordinates of the +southeast corner of the patch in units of 10 degrees. +.PP +Each segment of +.RB | n | +points is connected; consecutive segments +are not necessarily related. +Latitude and longitude +are measured in units of 0.0001 radian. +If +.B n +is negative, then +differences to the first and succeeding points +are measured in units of 0.00001 radian. +Latitude is counted positive to the north and +longitude positive to the west. +.PP +The patches are ordered lexicographically by +.L patchlatitude +then +.LR patchlongitude . +A printable +index to the first segment of each patch +in a file named +.I data +is kept in an associated file named +.IB data .x\f1. +Each line of an index file contains +.L patchlatitude, +.L patchlongitude +and the byte position +of the patch +in the map file. +Both the map file and the index file are ordered by +patch latitude and longitude. +.SH "SEE ALSO" +.IR map (7) +.br +The data comes from the World Data Bank I and II and +U.S. Government sources: the Census Bureau, Geological +Survey, and CIA. diff --git a/static/plan9-4e/man6/mpictures.6 b/static/plan9-4e/man6/mpictures.6 new file mode 100644 index 00000000..7100118f --- /dev/null +++ b/static/plan9-4e/man6/mpictures.6 @@ -0,0 +1,151 @@ +.TH MPICTURES 6 +.SH NAME +mpictures \- picture inclusion macros +.SH SYNOPSIS +.B troff -mpictures +[ +.I options +] +.I file ... +.SH DESCRIPTION +.I Mpictures +macros insert PostScript pictures into +.IR troff (1) +documents. +The macros are: +.TP +.BI .BP " source height width position offset flags label +Define a frame and place a picture in it. +Null arguments, represented by \f5""\fR, +are interpreted as defaults. +The arguments are: +.RS +.TP +.I source +Name of a PostScript picture file, optionally +suffixed with +.RI ( n ) +to select page number +.I n +from the file (first page by default). +.PD0 +.TP +.I height +Vertical size of the frame, default +.BR 3.0i . +.TP +.I width +Horizontal size of the frame, current line length by default. +.TP +.I position +.L l +(default), +.LR c , +or +.L r +to left-justify, center, or right-justify the frame. +.TP +.I offset +Move the frame horizontally from the original +.I position +by this amount, default +.BR 0i . +.TP +.I flags +One or more of: +.RS +.PD 0v +.TP +.BI a d +Rotate the picture clockwise +.I d +degrees, default +.IR d =90. +.TP +.B o +Outline the picture with a box. +.TP +.B s +Freely scale both picture dimensions. +.TP +.B w +White out the area to be occupied by the picture. +.TP +.BR l , r , t ,\fPb +Attach the picture to the left right, top, or bottom of the frame. +.RE +.TP +.I label +Place +.I label +at distance +.B 1.5v +below the frame. +.PD +.PP +If there's room, +.B .BP +fills text around the frame. +Everything destined for either side of the frame +goes into a diversion to be retrieved when the accumulated +text sweeps past the trap set by +.B .BP +or when the diversion is explicitly closed +by +.BR .EP . +.RE +.TP +.BI .PI " source height" , width , "yoffset\fB,\fPxoffset flags. +This low-level macro, used by +.BR .BP , +can help do more complex things. +The two arguments not already described are: +.RS +.TP +.I xoffset +Offset the frame from the left margin by this amount, default +.BR 0i . +.PD0 +.TP +.I yoffset +Offset the frame from the current baseline, +measuring positive downward, default +.BR 0i . +.PD +.RE +.TP +.B .EP +End a picture started by +.BR .BP ; +.B .EP +is usually called implicitly by a trap +at frame bottom. +.PP +If a PostScript file lacks page-delimiting comments, +the entire file is included. +If no +.B %%BoundingBox +comment is present, the picture is +assumed to fill an 8.5\(mu11-inch page. +Nothing prevents the picture from being placed off the page. +.SH SEE ALSO +.IR troff (1) +.SH DIAGNOSTICS +A picture file that can't be read by the PostScript +postprocessor is replaced by white space. +.SH BUGS +A picture and associated text silently disappear if +a diversion trap set by +.B .BP +isn't reached. +Call +.B .EP +at the end of the document to retrieve it. +.br +Macros in other packages may break the adjustments +made to the line length and indent when text is being placed +around a picture. +.br +A missing or improper +.B %%BoundingBox +comment may cause the frame to be filled incorrectly. diff --git a/static/plan9-4e/man6/ms.6 b/static/plan9-4e/man6/ms.6 new file mode 100644 index 00000000..66b10395 --- /dev/null +++ b/static/plan9-4e/man6/ms.6 @@ -0,0 +1,308 @@ +.TH MS 6 +.hc % +.SH NAME +ms \- macros for formatting manuscripts +.SH SYNOPSIS +.B "nroff -ms" +[ +.I options +] +.I file ... +.br +.B "troff -ms" +[ +.I options +] +.I file ... +.SH DESCRIPTION +This package of +.I nroff +and +.IR troff (1) +macro definitions provides a canned formatting +facility for tech%nical papers in various formats. +.PP +The macro requests are defined below. +Many +.I nroff +and +.I troff +requests are unsafe in conjunction with +this package, but the following requests may be used with +impunity after the first +.BR .PP : +.LR .bp , +.LR .br , +.LR .sp , +.LR .ls , +.LR .na . +.PP +Output of the +.IR eqn (1), +.IR tbl (1), +.IR pic (1) +and +.IR grap (1) +preprocessors +for equations, tables, pictures, and graphs is acceptable as input. +.SH FILES +.B /sys/lib/tmac/tmac.s +.SH "SEE ALSO" +.br +M. E. Lesk, +``Typing Documents on the UNIX System: Using the \-ms Macros with Troff and Nroff'', +.I +Unix Research System Programmer's Manual, +Tenth Edition, Volume 2. +.br +.IR eqn (1), +.IR troff (1), +.IR tbl (1), +.IR pic (1) +.SH REQUESTS +.ta \w'..ND \fIdate\fR 'u +\w'Initial 'u +\w'Cause 'u +.br +.di x + \ka +.br +.di +.in \nau +.ti0 +Request Initial Cause Explanation +.ti0 + Value Break +.br +.in \nau +.ti0 +\fL\&.1C\fP yes yes One column format on a new page. +.ti0 +\fL\&.2C\fP no yes Two column format. +.ti0 +\fL\&.AB\fP no yes Begin abstract. +.ti0 +\fL\&.AE\fP - yes End abstract. +.ti0 +\fL\&.AI\fP no yes Author's institution follows. +Suppressed in +.BR .TM . +.ti0 +\fL\&.AT\fP no yes Print `Attached' and turn off line filling. +.ti0 +\fL\&.AU\fP\fP\fP \fIx y\fR no yes Author's name follows. +.IR x " is location and " y " is" +extension, ignored except in +.BR TM . +.ti0 +\fL\&.B\fP \fIx y\fR no no Print +.I x +in boldface, append +.IR y ; +if no argument switch to boldface. +.ti0 +\fL\&.B1\fP no yes Begin text to be enclosed in a box. +.ti0 +\fL\&.B2\fP no yes End boxed text. +.ti0 +\fL\&.BI\fP \fIx y\fR no no Print +.I x +in bold italic and append +.IR y ; +if no argument switch to bold italic. +.ti0 +\fL\&.BT\fP date no Bottom title, automatically invoked at +foot of page. +May be redefined. +.ti0 +\fL\&.BX\fP \fIx\fR no no Print +.I x +in a box. +.ti0 +\fL\&.CW\fP \fIx y\fR no no Constant width font for +.IR x , +append +.IR y ; +if no argument switch to constant width. +.ti0 +\fL\&.CT\fP no yes Print `Copies to' and turn off line filling. +.ti0 +\fL\&.DA\fP \fIx\fR nroff no `Date line' at bottom of page +is +.IR x . +Default is today. +.ti0 +\fL\&.DE\fP - yes End displayed text. +Implies +.BR .KE . +.ti0 +\fL\&.DS\fP \fIx\fR no yes Start of displayed text, +to appear verbatim line-by-line: +.L I +indented (default), +.L L +left-justified, +.L C +centered, +.L B +(block) centered with straight left margin. +Implies +.BR .KS . +.ti0 +\fL\&.EG\fP no - Print document in BTL format for `Engineer's Notes.' Must be first. +.ti0 +\fL\&.EN\fP - yes Space after equation +produced by +.I neqn +or +.IR eqn (1). +.ti0 +\fL\&.EQ\fP \fIx y\fR - yes Display equation. +Equation number is +.IR y . +Optional +.I x +is +.BR I ", " L ", " C +as in +.BR .DS . +.ti0 +\fL\&.FE\fP - yes End footnote. +.ti0 +\fL\&.FP\fP \fIx\fR - no Set font positions for a family, e.g., +.L .FP lucidasans +.ti0 +\fL\&.FS\fP no no Start footnote. +The note will be moved to the bottom of the page. +.ti0 +\fL\&.HO\fP - no `Bell Laboratories, Holmdel, +New Jersey 07733'. +.ti0 +\fL\&.I\fP \fIx y\fR no no Italicize +.IR x , +append +.IR y ; +if no argument switch to italic. +.ti0 +\fL\&.IH\fP no no `Bell Laboratories, Naperville, Illinois 60540' +.ti0 +\fL\&.IM\fP no no Print document in BTL format for an internal memorandum. Must be first. +.ti0 +\fL\&.IP\fP \fIx y\fR no yes Start indented paragraph, +with hanging tag +.IR x . +Indentation is +.I y +ens (default 5). +.ti0 +\fL\&.KE\fP - yes End keep. +Put kept text on next page if not enough room. +.ti0 +\fL\&.KF\fP no yes Start floating keep. +If the kept text must be moved to the next page, +float later text back to this page. +.ti0 +\fL\&.KS\fP no yes Start keeping following text. +.ti0 +\fL\&.LG\fP no no Make letters larger. +.ti0 +\fL\&.LP\fP yes yes Start left-blocked paragraph. +.ti0 +\fL\&.LT\fP no yes Start a letter; a non-empty first argument +produces a full Lucent letterhead, a second argument is a room number, +a third argument is a telephone number. +.ti0 +\fL\&.MF\fP - - Print document in BTL format for `Memorandum for File.' Must be first. +.ti0 +\fL\&.MH\fP - no `Bell Laboratories, Murray Hill, +New Jersey 07974'. +.ti0 +\fL\&.MR\fP - - Print document in BTL format for `Memorandum for Record.' Must be first. +.ti0 +\fL\&.ND\fP \fIdate\fR troff no Use date supplied (if any) only in +special BTL format positions; omit from page footer. +.ti0 +\fL\&.NH\fP \fIn\fR - yes Same as +.BR .SH , +with automatic section +numbers like `1.2.3'; +.I n +is subsection level (default 1). +.ti0 +\fL\&.NL\fP yes no Make letters normal size. +.ti0 +\fL\&.P1\fP - yes Begin program display in constant width font. +.ti0 +\fL\&.P2\fP - yes End program display. +.ti0 +\fL\&.PE\fP - yes End picture; see +.IR pic (1). +.ti0 +\fL\&.PF\fP - yes End picture; restore vertical +position. +.ti0 +\fL\&.PP\fP no yes Begin paragraph. +First line indented. +.ti0 +\fL\&.PS\fP \fIh w\fR - yes Start picture; height +and width in inches. +.ti0 +\fL\&.PY\fP - no `Bell Laboratories, Piscataway, New Jersey 08854' +.ti0 +\fL\&.QE\fP - yes End quoted material. +.ti0 +\fL\&.QP\fP - yes Begin quoted paragraph (indent both margins). +.ti0 +\fL\&.QS\fP - yes Begin quoted material (indent both margins). +.ti0 +\fL\&.R\fP yes no Roman text follows. +.ti0 +\fL\&.RE\fP - yes End relative indent level. +.ti0 +\fL\&.RP\fP no - Cover sheet and first page for released +paper. +Must precede other requests. +.ti0 +\fL\&.RS\fP - yes Start level of relative indentation +from which subsequent indentation is measured. +.ti0 +\fL\&.SG\fP \fIx\fR no yes Insert signature(s) of author(s), +ignored except in +.B .TM +and +.BR .LT . +.IR x " is the reference line (initials of author and typist)." +.ti0 +\fL\&.SH\fP - yes Section head follows, +font automatically bold. +.ti0 +\fL\&.SM\fP no no Make letters smaller. +.ti0 +\fL\&.TA\fP\ \fIx\fR... 5... no Set tabs in ens. +Default is 5 10 15 ... +.ti0 +\fL\&.TE\fP - yes End table; see +.IR tbl (1). +.ti0 +\fL\&.TH\fP - yes End heading section of table. +.ti0 +\fL\&.TL\fP no yes Title follows. +.ti0 +\fL\&.TM\fP\ \fIx\fR... no - Print document in BTL technical memorandum format. +Arguments are TM number, (quoted list of) case number(s), and file number. +Must precede other requests. +.ti0 +\fL\&.TR\fP \fIx\fR - - Print in BTL technical report format; report number is \fIx\fR. Must be first. +.ti0 +\fL\&.TS\fP \fIx\fR - yes Begin table; if +.I x +is +.B H +table heading is repeated on new pages. +.ti0 +\fL\&.UL\fP \fIx\fR - no Underline argument (even in troff). +.ti0 +\fL\&.UX\fP\ \fIy z\fP - no `\fIz\fRUNIX\fIy\fP'; +first use gives registered trademark notice. +.ti0 +\fL\&.WH\fP - no `Bell Laboratories, Whippany, +New Jersey 07981'. +.hc diff --git a/static/plan9-4e/man6/namespace.6 b/static/plan9-4e/man6/namespace.6 new file mode 100644 index 00000000..09a0b562 --- /dev/null +++ b/static/plan9-4e/man6/namespace.6 @@ -0,0 +1,82 @@ +.TH NAMESPACE 6 +.SH NAME +namespace \- name space description file +.SH DESCRIPTION +Namespace files describe how to construct a name space from scratch, +an operation normally performed by the +.I newns +subroutine +(see +.IR auth (2)) +which is typically called by +.IR init (8). +Each line specifies one name space operation. +Spaces and tabs separate arguments to operations; +no quotes or escapes are recognized. +Blank lines and lines with +.B # +as the first non-space character are ignored. +Environment variables of the form +.BI $ name +are expanded within arguments, +where +.I name +is a +.SM UTF +string terminated by white space, a +.BR / , +or a +.BR $ . +.PP +The known operations and their arguments are: +.TF 0 +.TP +.BR mount \ [ -abcC ]\ \fIservename\ old " \fR[\fIspec\fR\^\^] +Mount +.I servename +on +.IR old . +.TP +.BR bind \ [ -abcC "] \fInew old +Bind +.I new +on +.IR old . +.TP +.BR import \ [ -abc ]\ \fIhost\fR\ "[\fIremotepath\fR\^\^] \fImountpoint\fR +Import +.I remotepath +from machine +.I server +and attach it to +.IR mountpoint . +.TP +.BI cd \ dir +Change the working directory to +.IR dir . +.TP +.BR unmount \ [ \fInew\fR ]\ \fIold +Unmount +.I new +from +.IR old , +or everything mounted on +.I old +if +.I new +is missing. +.PD +.PP +The options for +.IR bind , +.IR mount , +and +.I import +are interpreted as in +.IR bind (1) +and +.IR import (4). +.SH "SEE ALSO" +.IR bind (1), +.IR namespace (4), +.IR init (8) diff --git a/static/plan9-4e/man6/ndb.6 b/static/plan9-4e/man6/ndb.6 new file mode 100644 index 00000000..00d3821e --- /dev/null +++ b/static/plan9-4e/man6/ndb.6 @@ -0,0 +1,285 @@ +.TH NDB 6 +.SH NAME +ndb \- Network database +.SH DESCRIPTION +.PP +The network database consists of files +describing machines known to the local +installation and machines known publicly. +The files comprise multi-line tuples made up of +attribute/value pairs of the form +.IB attr = value +or sometimes just +.IR attr . +Each line starting without white space starts a new tuple. +Lines starting with +.B # +are comments. +.PP +The file +.B /lib/ndb/local +is the root of the database. +Other files are included in the +database if a tuple with an +attribute-value pair of attribute +.B database +and no value exists in +.BR /lib/ndb/local . +Within the +.B database +tuple, +each pair with attribute +.B file +identifies a file to be included in the database. The files are searched +in the order they appear. +For example: +.IP +.EX +database= + file=/lib/ndb/common + file=/lib/ndb/local + file=/lib/ndb/global +.EE +.PP +declares the database to be composed of the three files +.BR /lib/ndb/common , +.BR /lib/ndb/local , +and +.BR /lib/ndb/global . +By default, +.B /lib/ndb/local +is searched before the others. +However, +.B /lib/ndb/local +may be included in the +.B database +to redefine its ordering. +.PP +Within tuples, pairs on the same line bind tighter than +pairs on different lines. +.PP +Programs search the database directly using the routines in +.IR ndb (2) +or indirectly using +.B ndb/cs +and +.B ndb/dns +(see +.IR ndb (8)). +Both +.B ndb/cs +and the routine +.I ndbipinfo +impose structure on the otherwise flat database by using +knowledge specific to the network. +The internet is made up of networks which can be subnetted +multiple times. A network must have an +.B ipnet +attribute and is uniquely identified by the values of it's +.B ip +and +.B ipmask +attributes. If the +.B ipmask +is missing, the relevant Class A, B or C one is used. +The network is subnetted if one or more +.BR ipsubmask 's +are specified. +A search for an attribute associated with a network or host starts +at the top-level Class A, B, or C network and works it's way down to the +specific entry. The attribute/value chosen is the one lowest down in the +search, i.e, closest to the host. +For example, consider at the following entries: +.IP +.EX +ipnet=murray-hill ip=135.104.0.0 ipmask=255.255.0.0 + ipsubmask=255.255.255.0 + dns=135.104.10.1 + ntp=ntp.cs.bell-labs.com +ipnet=plan9 ip=135.104.9.0 ipmask=255.255.255.0 + ntp=oncore.cs.bell-labs.com + smtp=smtp1.cs.bell-labs.com +ip=135.104.9.6 sys=anna dom=anna.cs.bell-labs.com + smtp=smtp2.cs.bell-labs.com +.EE +.LP +Here +.B anna +is on the subnet +.B plan9 +which is in turn on the class B net +.BR murray-hill . +If one were to search for +.BR anna 's +.B NTP +and +.B SMTP +servers, one would get +.B oncore.cs.bell-labs.com +and +.B smtp2.cs.bell-labs.com +respectively. +.PP +.I Ndb/cs +can be made to perform such network aware +searches by using metanames in the dialstring. +A metaname is a +.I $ +followed by an attribute name. +.I Ndb/cs +looks up the attribute relative to the system it is running +on. Thus, with the above example, if a program called +.IP +.EX + dial("tcp!$smtp!smtp", 0, 0, 0); +.EE +.LP +the dial would connect to the SMTP port of +.BR smtp2.cs.bell-labs.com . +.PP +A number of attributes are meaningful to programs and thus +reserved. +They are: +.TF restricted +.TP +.B sys +system name +.TP +.B dom +Internet domain name +.TP +.B ip +Internet address +.TP +.B ether +Ethernet address +.TP +.B bootf +file to download for initial bootstrap +.TP +.B ipnet +Internet network name +.TP +.B ipmask +Internet network mask +.TP +.B ipsubmask +Internet network mask of this network's subnets +.TP +.B ipgw +Internet gateway +.TP +.B auth +authentication server to be used +.TP +.B fs +file server to be used +.TP +.B tcp +a TCP service name +.TP +.B udp +a UDP service name +.TP +.B il +an IL service name +.TP +.B port +a TCP, UDP, or IL port number +.TP +.B restricted +a TCP service that can be called only by ports numbered +less that 1024 +.TP +.B proto +a protocol supported by a host. +The pair +.B proto=il +is needed by +.I cs +(see +.IR ndb (8)) +in tuples for hosts that support the IL protocol +.TP +.B dnsdomain +a domain name that +.I ndb/dns +adds onto any unrooted names when doing a search +There may be multiple +.B dnsdomain +pairs. +.TP +.B dns +a DNS server to use (for DNS and DHCP) +.TP +.B ntp +an NTP server to use (for DHCP) +.TP +.B smtp +an SMTP server to use (for DHCP) +.TP +.B time +a time server to use (for DHCP) +.TP +.B wins +a Windows name server (for DHCP) +.TP +.B mx +mail exchanger (for DNS and DHCP) +.TP +.B soa +start of area (for DNS) +.sp +.PD +.PP +The file +.B /lib/ndb/auth +is used during authentication to decide who has the power to `speak for' other +users; see +.IR authsrv (6). +.SH EXAMPLES +.LP +A tuple for the CPU server, spindle. +.LP +.EX +sys = spindle + dom=spindle.research.bell-labs.com + bootf=/mips/9powerboot + ip=135.104.117.32 ether=080069020677 + proto=il +.EE +.LP +Entries for the network +.B mh-astro-net +and its subnets. +.LP +.EX +ipnet=mh-astro-net ip=135.104.0.0 ipmask=255.255.255.0 + fs=bootes.research.bell-labs.com + ipgw=r70.research.bell-labs.com + auth=p9auth.research.bell-labs.com +ipnet=unix-room ip=135.104.117.0 + ipgw=135.104.117.1 +ipnet=third-floor ip=135.104.51.0 + ipgw=135.104.51.1 +.EE +.LP +Mappings between TCP service names and port numbers. +.LP +.EX +.ta \w'\fLtcp=sysmonxxxxx'u \w'\fLtcp=sysmonxxxxxport=512xxx'u +tcp=sysmon port=401 +tcp=rexec port=512 restricted +tcp=9fs port=564 +.EE +.SH FILES +.TP +.B /lib/ndb/local +first database file searched +.SH "SEE ALSO" +.IR dial (2), +.IR ndb (2), +.IR ndb (8), +.IR dhcpd (8), +.IR ipconfig (8), +.IR con (1) diff --git a/static/plan9-4e/man6/plot.6 b/static/plan9-4e/man6/plot.6 new file mode 100644 index 00000000..73edcf0e --- /dev/null +++ b/static/plan9-4e/man6/plot.6 @@ -0,0 +1,336 @@ +.TH PLOT 6 +.SH NAME +plot \- graphics interface +.SH DESCRIPTION +Files of this format are interpreted by +.IR plot (1) +to draw graphics on the screen. +A +.I plot +file is a +.SM UTF +stream of +instruction lines. +Arguments are delimited by spaces, tabs, or commas. +Numbers may be floating point. +Punctuation marks (except +.LR : ) +, +spaces, and tabs at the beginning of lines are ignored. +Comments run from +.L : +to newline. +Extra letters appended to a valid instruction are ignored. +Thus +.LR ...line , +.LR line , and +.L li +all mean the same thing. +Arguments are interpreted as follows: +.TP +1. +If an instruction requires no arguments, the rest of the line is ignored. +.TP +2. +If it requires a string argument, then all the line +after the first field separator is passed as argument. +Quote marks may be used to preserve leading blanks. +Strings may include newlines represented as +.LR \en . +.TP +3. +Between numeric arguments alphabetic characters and +punctuation marks are ignored. +Thus +.L +line from 5 6 to 7 8 +draws a line from (5, 6) to (7, 8). +.TP +4. +Instructions with numeric arguments remain in effect until +a new instruction is read. +Such commands may spill over many lines. Thus +the following sequence will draw a polygon +with vertices +(4.5, 6.77), (5.8, 5.6), (7.8, 4.55), and (10.0, 3.6). +.IP +.EX +move 4.5 6.77 +vec 5.8, 5.6 7.8 +4.55 10.0, 3.6 4.5, 6.77 +.EE +.PP +The instructions are executed in order. +The last designated point in a +.BR line ", " move ", " rmove , +.BR vec ", " rvec ", " arc , +or +.B point +command becomes the `current point' +.RI ( X,Y ) +for the next command. +.SS "Open & Close" +.PD0 +.TP 10 +.BI o " string" +Open plotting device. +For +.IR troff , +.I string +specifies the size of the plot +(default is +.LR 6i ). +.TP 10 +.B cl +Close plotting device. +.PD +.SS "Basic Plotting Commands" +.PD0 +.TP 10 +.B e +Start another frame of output. +.TP 10 +.BI m " x y" +(move) Current point becomes +.I "x y." +.TP 10 +.BI rm " dx dy" +Current point becomes +.I "X+dx Y+dy." +.TP 10 +.BI poi " x y" +Plot the point +.I "x y" +and make it the current point. +.TP 10 +.BI v " x y" +Draw a vector from the current point to +.I "x y." +.TP 10 +.BI rv " dx dy" +Draw vector from current point to +.RI X + dx +.RI Y + dy +.TP 10 +.BI li " x1 y1 x2 y2" +Draw a line from +.I "x1 y1" +to +.I "x2 y2." +Make the current point +.I "x2 y2." +.TP 10 +.BI t " string" +Place the +.I string +so that its +first character is centered on the current point (default). +If +.I string +begins with +.L \eC +.RL ( \eR ), +it is centered (right-adjusted) on the current point. +A backslash at the beginning of the string may +be escaped with another backslash. +.TP 10 +.BI a " x1 y1 x2 y2 xc yc r" +Draw a circular arc from +.I "x1 y1" +to +.I "x2 y2" +with center +.I "xc yc" +and radius +.IR r . +If the radius is positive, the arc is drawn counterclockwise; +negative, clockwise. +The starting point is exact but the ending point is approximate. +.TP 10 +.BI ci " xc yc r" +Draw a circle centered at +.I "xc yc" +with radius +.IR r . +If the range and frame parameters do not specify a square, +the `circle' will be elliptical. +.TP 10 +.BI di " xc yc r" +Draw a disc centered at +.I "xc yc" +with radius +.I r +using the filling color (see +.B cfill +below). +.TP 10 +.BI bo " x1 y1 x2 y2" +Draw a box with lower left corner at +.I "x1 y1" +and upper right corner at +.I "x2 y2." +.TP 10 +.BI sb " x1 y1 x2 y2" +Draw a solid box with lower left corner at +.I "x1 y1" +and upper right corner at +.I "x2 y2" +using the filling color (see +.B cfill +below). +.TP 10 +.BI par " x1 y1 x2 y2 xg yg" +Draw a parabola from +.I "x1 y1" +to +.I "x2 y2" +`guided' by +.I "xg yg." +The parabola passes through the midpoint of the line joining +.I "xg yg" +with the midpoint of the line +joining +.I "x1 y1" +and +.I "x2 y2" +and is tangent to the lines from +.I "xg yg" +to the endpoints. +.TP 10 +.BI "pol { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fP} }\fI" +Draw polygons with vertices +.I "x1 y1 ... xn yn" +and +.I "X1 Y1 ... Xm Ym." +If only one polygon is specified, the inner brackets are +not needed. +.TP 10 +.BI "fi { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fP} }\fI" +Fill a polygon. +The arguments are the same as those for +.B pol +except that the first vertex is automatically repeated to +close each polygon. +The polygons do not have to be connected. +Enclosed polygons appear as holes. +.TP 10 +.BI "sp { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fL} }\fI" +Draw a parabolic spline guided by +.I "x1 y1 ... xn yn" +with simple endpoints. +.TP 10 +.BI "fsp { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fL} }\fI" +Draw a parabolic spline guided by +.I "x1 y1 ... xn yn" +with double first endpoint. +.TP 10 +.BI "lsp { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fL} }\fI" +Draw a parabolic spline guided by +.I "x1 y1 ... xn yn" +with double last endpoint. +.TP 10 +.BI "dsp { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fL} }\fI" +Draw a parabolic spline guided by +.I "x1 y1 ... xn yn" +with double endpoints. +.TP 10 +.BI "csp { {" "x1 y1 ... xn yn" } " ... " { "X1 Y1 ... Xm Ym\fL} }\fI" +.TP 10 +.BI in " filename" +(include) Take commands from +.IR filename . +.TP 10 +.BI de " string " { " commands " } +Define +.I string +as +.IR commands . +.TP 10 +.BI ca " string scale" +Invoke commands defined as +.I string +applying +.I scale +to all coordinates. +.PD +.SS "Commands Controlling the Environment" +.PD0 +.TP 10 +.BI co " string" +Use color given by first character of +.IR string , +one of +.BR red , +.BR yellow , +.BR green , +.BR blue , +.BR cyan , +.BR magenta , +.BR white , +and +.BR kblack . +.TP 10 +.BI pe " string" +Use +.I string +as the style for drawing lines. +The available pen styles are: +.BR solid , +.BR dott [ed], +.BR short , +.BR long , +.BR dotd [ashed] , +.BR cdash , +.BR ddash +.TP 10 +.BI cf " string" +Color for filling (see +.BR co , +above). +.TP 10 +.BI ra " x1 y1 x2 y2" +The data will fall between +.I "x1 y1" +and +.I "x2 y2." +The plot will be magnified or reduced to fit +the device as closely as possible. +.IP +Range settings that exactly fill the plotting area +with unity scaling appear below for +devices supported by the filters of +.IR plot (1). +The upper limit is just outside the plotting area. +In every case the plotting area is taken to be square; +points outside may be displayable on +devices with nonsquare faces. +.TP 10 +.BI fr " px1 py1 px2 py2" +Plot the data in the fraction of the display +specified by +.I "px1 py1" +for lower left corner +and +.I "px2 py2" +for upper right corner. +Thus +.L frame .5 0 1. .5 +plots in the lower right +quadrant of the display; +.L frame 0. 1. 1. 0. +uses the whole display but +inverts the +.I y +coordinates. +.TP 10 +.B sa +Save the current environment, and move to a new one. +The new environment inherits the old one. +There are 7 levels. +.TP 10 +.B re +Restore previous environment. +.PD +.SH "SEE ALSO" +.IR plot (1), +.IR graph (1) diff --git a/static/plan9-4e/man6/plumb.6 b/static/plan9-4e/man6/plumb.6 new file mode 100644 index 00000000..bc58a506 --- /dev/null +++ b/static/plan9-4e/man6/plumb.6 @@ -0,0 +1,417 @@ +.TH PLUMB 6 +.SH NAME +plumb \- format of plumb messages and rules +.SH SYNOPSIS +.B #include +.SH DESCRIPTION +.SS "Message format +The messages formed by the +.IR plumb (2) +library are formatted for transmission between +processes into textual form, using newlines to separate +the fields. +Only the data field may contain embedded newlines. +The fields occur in a specified order, +and each has a name, corresponding to the elements +of the +.B Plumbmsg +structure, that is used in the plumbing rules. +The fields, in order, are: +.RS +.TF ndata +.TP +.B src +application/service generating message +.TP +.B dst +destination `port' for message +.TP +.B wdir +working directory (used if data is a file name) +.TP +.B type +form of the data, e.g. +.B text +.TP +.B attr +attributes of the message, in +.IB name = value +pairs separated by white space +(the value must follow the usual quoting convention if it contains +white space or quote characters or equal signs; it cannot contain a newline) +.TP +.B ndata +number of bytes of data +.TP +.B data +the data itself +.RE +At the moment, only textual data +.RB ( type=text ) +is supported. +.PD +.PP +All fields are optional, but +.B type +should usually be set since it describes the form of the data, and +.B ndata +must be an accurate count (possibly zero) of the number of bytes of data. +A missing field is represented by an empty line. +.SS "Plumbing rules +The +.B plumber +(see +.IR plumb (2)) +receives messages on its +.B send +port (applications +.I send +messages there), interprets and reformats them, and (typically) emits them from a destination port. +Its behavior is determined by a plumbing rules file, default +.BR /usr/$user/lib/plumbing , +which defines a set of pattern/action rules with which to analyze, rewrite, and dispatch +received messages. +.PP +The file is a sequence of rule sets, each of which is a set of one-line rules +called patterns and actions. +There must be at least one pattern and one action in each rule set. +(The only exception is that a rule set may contain nothing but +.B plumb +.B to +rules; such a rule set declares the named ports but has no other effect.) +A blank line terminates a rule set. +Lines beginning with a +.B # +character are commentary and are regarded as blank lines. +.PP +A line of the form +.EX + include \f2file\fP +.EE +substitutes the contents of +.I file +for the line, much as in a C +.B #include +statement. Unlike in C, the file name is not quoted. +If +.I file +is not an absolute path name, or one beginning +.B ./ +or +.BR ../ , +.I file +is looked for first in the directory in which the plumber is executing, +and then in +.BR /sys/lib/plumb . +.PP +When a message is received by the +.BR plumber , +the rule sets are examined in order. +For each rule set, if the message matches all the patterns in the rule set, +the actions associated with the rule set are triggered to dispose of the message. +If a rule set is triggered, the rest are ignored for this message. +If none is triggered, the message is discarded (giving a write error to the sender) +unless it has a +.B dst +field that specifies an existing port, in which case the message is emitted, unchanged, from there. +.PP +Patterns and actions all consist of three components: an +.IR object , +a +.IR verb , +and arguments. +These are separated by white space on the line. +The arguments may contain quoted strings and variable substitutions, +described below, and in some cases contain multiple words. +The object and verb are single words from a pre-defined set. +.PP +The object in a pattern is the name of an element of the message, such as +.B src +or +.BR data , +or the special case +.BR arg , +which refers to the argument component of the current rule. +The object in an action is always the word +.BR plumb . +.PP +The verbs in the pattern rules +describe how the objects and arguments are to be interpreted. +Within a rule set, the patterns are evaluated in sequence; if one fails, +the rule set fails. +Some verbs are predicates that check properties of the message; others rewrite +components of the message and implicitly always succeed. +Such rewritings are permanent, so rules that specify them should be placed after +all pattern-matching rules in the rule set. +.RS +.TF delete +.TP +.B add +The object must be +.BR attr . +Append the argument, which must be a sequence of +.IB name = value +pairs, to the list of attributes of the message. +.TP +.B delete +The object must be +.BR attr . +If the message has an attribute whose name is the argument, +delete it from the list of attributes of the message. +(Even if the message does not, the rule matches the message.) +.TP +.B is +If the text of the object is identical to the text of the argument, +the rule matches. +.TP +.B isdir +If the text of the object +is the name of an existing directory, the rule matches and +sets the variable +.B $dir +to that directory name. +.TP +.B isfile +If the text of the object is the name of an existing file (not a directory), +the rule matches and sets the variable +.B $file +to that file name. +.TP +.B matches +If the entire text of the object matches the regular expression +specified in the argument, the rule matches. +This verb is described in more detail below. +.TP +.B set +The value of the object is set to the value of the argument. +.RE +.PP +The +.B matches +verb has special properties that enable the rules to select which portion of the +data is to be sent to the destination. +By default, a +.B data +.B matches +rule requires that the entire text matches the regular expression. +If, however, the message has an attribute named +.BR click , +that reports that the message was produced by a mouse click within the +text and that the regular expressions in the rule set should be used to +identify what portion of the data the user intended. +Typically, a program such as an editor will send a white-space delimited +block of text containing the mouse click, using the value of the +.B click +attribute (a number starting from 0) to indicate where in the textual data the user pointed. +.PP +When the message has a +.B click +attribute, the +.B data +.B matches +rules extract the longest leftmost match to the regular expression that contains or +abuts the textual location identified by the +.BR click . +For a sequence of such rules within a given rule set, each regular expression, evaluated +by this specification, must match the same subset of the data for the rule set to match +the message. +For example, here is a pair of patterns that identify a message whose data contains +the name of an existing file with a conventional ending for an encoded picture file: +.EX + data matches '[a-zA-Z0-9_\-./]+' + data matches '([a-zA-Z0-9_\-./]+)\.(jpe?g|gif|bit|ps|pdf)' +.EE +The first expression extracts the largest subset of the data around the click that contains +file name characters; the second sees if it ends with, for example, +.BR \&.jpeg . +If only the second pattern were present, a piece of text +.B horse.gift +could be misinterpreted as an image file named +.BR horse.gif . +.PP +If a +.B click +attribute is specified in a message, it will be deleted by the +.B plumber +before sending the message if the +.B data +.B matches +rules expand the selection. +.PP +The action rules all have the object +.BR plumb . +There are only three verbs for action rules: +.RS +.TF client +.TP +.B to +The argument is the name of the port to which the message will be sent. +If the message has a destination specified, it must match the +.B to +port of the rule set or the entire rule set will be skipped. +(This is the only rule that is evaluated out of order.) +.TP +.B client +If no application has the port open, the arguments to a +.B plumb +.B start +rule specify a shell program to run in response to the message. +The message will be held, with the supposition that the program +will eventually open the port to retrieve it. +.TP +.B start +Like +.BR client , +but the message is discarded. +Only one +.B start +or +.B client +rule should be specified in a rule set. +.RE +.PP +The arguments to all rules may contain quoted strings, exactly as in +.IR rc (1). +They may also contain simple string variables, identified by a leading dollar sign +.BR $ . +Variables may be set, between rule sets, by assignment statements in the style of +.BR rc . +Only one variable assignment may appear on a line. +The +.B plumber +also maintains some built-in variables: +.RS +.TF $wdir +.TP +.B $0 +The text that matched the entire regular expression in a previous +.B data +.B matches +rule. +.BR $1 , +.BR $2 , +etc. refer to text matching the first, second, etc. parenthesized subexpression. +.TP +.B $attr +The textual representation of the attributes of the message. +.TP +.B $data +The contents of the data field of the message. +.TP +.B $dir +The directory name resulting from a successful +.B isdir +rule. +If no such rule has been applied, it is the string constructed +syntactically by interpreting +.B data +as a file name in +.BR wdir . +.TP +.B $dst +The contents of the +.B dst +field of the message. +.TP +.B $file +The file name resulting from a successful +.B isfile +rule. +If no such rule has been applied, it is the string constructed +syntactically by interpreting +.B data +as a file name in +.BR wdir . +.TP +.B $type +The contents of the +.B type +field of the message. +.TP +.B $src +The contents of the +.B src +field of the message. +.TP +.B $wdir +The contents of the +.B wdir +field of the message. +.RE +.SH EXAMPLE +The following is a modest, representative file of plumbing rules. +.EX +# these are generally in order from most specific to least, +# since first rule that fires wins. + +addr=':(#?[0-9]+)' +protocol='(https?|ftp|file|gopher|mailto|news|nntp|telnet|wais)' +domain='[a-zA-Z0-9_@]+([.:][a-zA-Z0-9_@]+)*/?[a-zA-Z0-9_?,%#~&/\e-]+' +file='([:.][a-zA-Z0-9_?,%#~&/\e-]+)*' + +# image files go to page +type is text +data matches '[a-zA-Z0-9_\e-./]+' +data matches '([a-zA-Z0-9_\e-./]+)\.(jpe?g|gif|bit)' +arg isfile $0 +plumb to image +plumb start page -w $file + +# URLs go to web browser +type is text +data matches $protocol://$domain$file +plumb to web +plumb start window webbrowser $0 + +# existing files, possibly tagged by line number, go to edit/sam +type is text +data matches '([.a-zA-Z0-9_/\-]+[a-zA-Z0-9_/\e-])('$addr')?' +arg isfile $1 +data set $file +attr add addr=$3 +plumb to edit +plumb start window sam $file + +# .h files are looked up in /sys/include and passed to edit/sam +type is text +data matches '([a-zA-Z0-9]+\e.h)('$addr')?' +arg isfile /sys/include/$1 +data set $file +attr add addr=$3 +plumb to edit +plumb start window sam $file +.EE +.PP +The following simple plumbing rules file is a good beginning set of rules. +.EX +# to update: cp /usr/$user/lib/plumbing /mnt/plumb/rules + +editor = acme +# or editor = sam +include basic +.EE +.SH FILES +.TF /usr/$user/lib/plumbing +.TP +.B /usr/$user/lib/plumbing +default rules file. +.TP +.B /mnt/plumb +mount point for +.IR plumber (4). +.TP +.B /sys/lib/plumb +directory for +.B include +files. +.TP +.B /sys/lib/plumb/fileaddr +public macro definitions. +.TP +.B /sys/lib/plumb/basic +basic rule set. +.SH "SEE ALSO" +.IR plumb (1), +.IR plumb (2), +.IR plumber (4), +.IR regexp (6) diff --git a/static/plan9-4e/man6/regexp.6 b/static/plan9-4e/man6/regexp.6 new file mode 100644 index 00000000..58cc2ee1 --- /dev/null +++ b/static/plan9-4e/man6/regexp.6 @@ -0,0 +1,129 @@ +.TH REGEXP 6 +.SH NAME +regexp \- regular expression notation +.SH DESCRIPTION +A +.I "regular expression" +specifies +a set of strings of characters. +A member of this set of strings is said to be +.I matched +by the regular expression. In many applications +a delimiter character, commonly +.LR / , +bounds a regular expression. +In the following specification for regular expressions +the word `character' means any character (rune) but newline. +.PP +The syntax for a regular expression +.B e0 +is +.IP +.EX +e3: literal | charclass | '.' | '^' | '$' | '(' e0 ')' + +e2: e3 + | e2 REP + +REP: '*' | '+' | '?' + +e1: e2 + | e1 e2 + +e0: e1 + | e0 '|' e1 +.EE +.PP +A +.B literal +is any non-metacharacter, or a metacharacter +(one of +.BR .*+?[]()|\e^$ ), +or the delimiter +preceded by +.LR \e . +.PP +A +.B charclass +is a nonempty string +.I s +bracketed +.BI [ \|s\| ] +(or +.BI [^ s\| ]\fR); +it matches any character in (or not in) +.IR s . +A negated character class never +matches newline. +A substring +.IB a - b\f1, +with +.I a +and +.I b +in ascending +order, stands for the inclusive +range of +characters between +.I a +and +.IR b . +In +.IR s , +the metacharacters +.LR - , +.LR ] , +an initial +.LR ^ , +and the regular expression delimiter +must be preceded by a +.LR \e ; +other metacharacters +have no special meaning and +may appear unescaped. +.PP +A +.L . +matches any character. +.PP +A +.L ^ +matches the beginning of a line; +.L $ +matches the end of the line. +.PP +The +.B REP +operators match zero or more +.RB ( * ), +one or more +.RB ( + ), +zero or one +.RB ( ? ), +instances respectively of the preceding regular expression +.BR e2 . +.PP +A concatenated regular expression, +.BR "e1\|e2" , +matches a match to +.B e1 +followed by a match to +.BR e2 . +.PP +An alternative regular expression, +.BR "e0\||\|e1" , +matches either a match to +.B e0 +or a match to +.BR e1 . +.PP +A match to any part of a regular expression +extends as far as possible without preventing +a match to the remainder of the regular expression. +.SH "SEE ALSO" +.IR awk (1), +.IR ed (1), +.IR grep (1), +.IR sam (1), +.IR sed (1), +.IR regexp (2) diff --git a/static/plan9-4e/man6/rewrite.6 b/static/plan9-4e/man6/rewrite.6 new file mode 100644 index 00000000..c54032c3 --- /dev/null +++ b/static/plan9-4e/man6/rewrite.6 @@ -0,0 +1,154 @@ +.TH REWRITE 6 +.SH NAME +rewrite \- mail rewrite rules +.SH SYNOPSIS +.B /mail/lib/rewrite +.SH DESCRIPTION +.IR Mail (1) +uses rewrite rules to convert mail destinations into +commands used to dispose of the mail. +Each line of the file +.F /mail/lib/rewrite +is a rule. +Blank lines and lines beginning with +.B # +are ignored. +.PP +Each rewriting rule consists of (up to) 4 strings: +.TF pattern +.TP +.I pattern +A regular expression in the style of +.IR regexp (6). +The +.I pattern +is applied to mail destination addresses. +The pattern match is case-insensitive +and must match the entire address. +.TP +.I type +The type of rule; see below. +.TP +.I arg1 +An +.IR ed (1) +style replacement string, with +.BI \e n +standing for the text matched by the +.IR n th +parenthesized subpattern. +.TP +.I arg2 +Another +.IR ed (1) +style replacement string. +.PD +.PP +In each of these fields the substring +.B \es +is replaced by the login id of the +sender and the substring +.B \el +is replaced by the name of the local machine. +.PP +When delivering a message, +.I mail +starts with the first rule and continues down the list until a pattern +matches the destination address. +It then performs one of the following actions depending on the +.I type +of the rule: +.TF alias +.TP +.B >> +Append the mail to the file indicated by expanding +.IR arg1 , +provided that file appears to be a valid mailbox. +.TP +.B | +Pipe the mail through the command formed from concatenating the +expanded +.I arg1 +and +.IR arg2 . +.TP +.B alias +Replace the address by the address(es) specified +by expanding +.I arg1 +and recur. +.TP +.B translate +Replace the address by the address(es) output by the +command formed by expanding +.I arg1 +and recur. +.PD +.PP +.I Mail +expands the addresses recursively until each address has matched a +.B >> +or +.B | +rule or until the recursion depth indicates a rewriting loop +(currently 32). +.PD +.PP +If +.IR mail (1) +is called with more than one address and +several addresses match +.B | +rules and result in the same +expanded +.IR arg1 , +the message is delivered to all those addresses +by a single command, +composed by concatenating the common expanded +.I arg1 +and each expanded +.IR arg2 . +This mail bundling is performed to reduce the number +of times the same message is transmitted across a +network. For example, with the following +rewrite rule +.PP +.EX + ([^!]*\.bell-labs\.com)!(.*) | "/mail/lib/qmail '\es' 'net!\e1'" "'\e2'" +.EE +.PP +if user +.B presotto +runs the command +.PP +.EX + % mail plan9.bell-labs.com!ken plan9.bell-labs.com!rob +.EE +.PP +there will follow only one execution of the command +.PP +.EX + /mail/lib/qmail presotto net!plan9.bell-labs.com ken rob +.EE +.PP +Here +.B /mail/lib/qmail +is an +.IR rc (1) +script used for locally queuing remote mail. +.PP +In the event of an error, the disposition of the mail depends on the name of the +command executing the rewrite. If the command is called +.B mail +and is run by +.BR $user , +the command will print an error and deposit the message in +.BR /mail/box/$user/dead.letter . +If the command is called +.BR rmail , +usually because it was invoked to deliver mail arriving over the network, +the message will be returned to the sender. The returned message will +appear to have been sent by user +.BR postmaster . +.SH "SEE ALSO" +.IR mail (1) diff --git a/static/plan9-4e/man6/smtpd.6 b/static/plan9-4e/man6/smtpd.6 new file mode 100644 index 00000000..687426ce --- /dev/null +++ b/static/plan9-4e/man6/smtpd.6 @@ -0,0 +1,306 @@ +.TH SMTPD 6 +.SH NAME +smtpd \- SMTP listener configuration +.SH DESCRIPTION +The +SMTP +daemon +of +.IR mail (1) +implements the slave side of the SMTP protocol +to accept incoming mail on TCP port 25. +In general, +.IR smtpd 's +default parameters +are sufficient for internal systems +on protected networks, but external or +gateway systems require additional +security mechanisms. +The files +.BR /mail/lib/smtpd.conf , +containing configuration parameters, +and +.BR /mail/lib/blocked , +containing +banished addresses, provide the means to +exercise these facilities. +.SS Input Format +In both files input lines +consist of a verb followed by one or more +parameters. These tokens are separated by white space or +commas and all characters following a +.B # +are comments. A +.B # +cannot be escaped. Continuation lines are +not supported, but verbs that take multiple parameters +can be restated on many lines and the associated +parameters accumulate into a single set. +All token processing is case-insensitive. +.PP +Many parameters are +.IR addresses , +either numeric IP addresses in CIDR notation +or a +.I "sender address" +in UUCP-style format. +.PP +An IP address in CIDR notation has the form +.PP +.EX + aaa.bbb.ccc.ddd/mask +.EE +.PP +consisting of a four octet IP address, a slash, +and a +.I mask length +specifying the number of significant high-order bits. +The lower the mask length, the larger the +range of addresses covered by the CIDR address; +see RFC 1878 for a discussion of mask lengths. +Missing low-order octets are assumed to be zero. +If a mask length is not given, a mask length of +16, 24, or 32 is assumed for addresses containing +two, three, or four octets, respectively. These +mask lengths select a class B, class C or Class D +address block. Notice that this convention differs +from the standard treatment, where the default mask length +depends on the allocation class of the network +block containing the address. +.PP +.I "Sender addresses" +are specified in UUCP notation as +follows: +.PP +.EX + [domain!]...domain!user +.EE +.PP +It is seldom necessary to specify more than one domain. +When +.I domain +is missing or +.BR * , +the address selects the specified user in all domains. +A +.I domain +of the form +.BI *. domain +selects the domain and all of its sub-domains. +For example, +.B example.com!user +only matches the account +.I user +in domain +.BR example.com , +while +.B *.example.com!user +selects that account in +.B example.com +and all of its sub-domains. +When +.I user +is omitted or +.BR * , +the address selects all users in the specified domain. +Finally, when +.B * +is the last character of the user name it is a wild-card +matching all user names beginning with +.IR user . +This limited pattern matching capability should be used with care. +For safety, the sender addresses +.BR * , +.BR ! , +.BR *! , +.B !* +and +.B *!* +are ignored. +.SS /mail/lib/smtpd.conf +This file contains configuration options +and parameters describing the local domain. +Many of the options can also be specified on the command +line; command line options always override the values in +this file. +Configuration options are: +.PD0 +.TP 10 +.BI defaultdomain " domain" +The name of the local domain; it is appended to addresses +lacking a domain qualification. +This is identical to the +.B -h +command line option. +.TP 10 +.BR norelay \ [ on\f1|\fPoff ] +If +.I on +is specified, relaying is prohibited +from unauthorized networks to external domains. +Authorized networks and domains must be specified +by the +.B ournets +and +.B ourdomains +verbs described below. Setting this option on is equivalent to specifying the +.B -f +command line flag, but the list of +networks and domains can only be specified in +this file. +.TP 10 +.BR verifysenderdom \ [ on\f1|\fPoff ] +When +.IR on , +.I smtpd +verifies that the first domain of the sender's address +exists. The test is cursory; it checks only that +there is a DNS delegation for the domain. +Setting the option on is equivalent to specifying the +.B -r +command line option and +is useful for detecting some unreturnable +messages as well as messages with randomly +generated domain names. +.TP 10 +.BR saveblockedmsg \ [ on\f1|\fPoff ] +When +.IR on , +causes copies of blocked messages to be saved +in subdirectories of +.BR /mail/queue.dump . +Directories are named with the date and file names +are random numbers. +If this option is +.I off +blocked messages are discarded. +Setting this option on is equivalent to specifying the +.B -s +command line option. +.TP 10 +.BR ournets " \fIIP address\fP [, \fIIP address\fP, ..., \fIIP address\fP]" +This option specifies trusted +source networks that are allowed to relay mail to external domains. +These are usually the internal networks of the local domain, but they +can also include friendly +external networks. Addresses +are in CIDR notation. +.TP 10 +.BR ourdomains " \fIdomain\fP [, \fIdomain\fP, ..., \fIdomain\fP]" +This option specifies destination domains that are allowed +to receive relayed mail. These are usually the domains +served by a gateway system. +Domain specifications conform to the format +for sender addresses given above. +.PD +.PP +When the +.B norelay +option is enabled or the +.B -f +command line option given, +relaying is allowed only if the source IP address is in +.B ournets +or the destination domain is specified in +.BR ourdomains . +.SS Blocked Addresses +When +.B /mail/lib/blocked +exists and is readable, +.I smtpd +reads a list of banned addresses from it. +Messages received from these addresses are +rejected with a 5\fIxx\fP-series SMTP error code. +There is no option +to turn blocking on or off; if the file is accessible, +blocking is enabled on all +.I smtpd +sessions, including those from trusted networks. +.PP +The command line format and address specifications +conform to the notation described above. If the parameters +of the verb is sender addresses in UUCP format, the line +must begin with an +.B * +character; if the parameters are one or more IP addresses, +the +.B * +must precede the verb. Most +verbs cause messages to be rejected; verbs +of this class generally select different error +messages. The remaining verbs specify addresses that +are always accepted, in effect overriding blocked addresses. +The file is processed in order, so an override must +precede its associated blocked address. +Supported verbs are: +.PD0 +.TP 10 +.BR dial " \fIIP address\fP [,..., \fIIP address\fP]" +The parameters are IP addresses associated with +dial-up ports. The rejection message states +that connections from dial-up ports are not accepted. Copies +of messages are never saved. +.TP 10 +.BR block " \fIaddress\fP [, ... \fIaddress\fP]" +Messages from addresses +matching the parameters +are rejected with an error message saying +that spam is not accepted. The message is saved if +the option is enabled. +.TP 10 +.BR relay " \fIaddress\fP [, ... \fIaddress\fP]" +This verb is identical to +.BR block , +but the error message states that +the message is rejected because the sending +system is being used as a spam relay. +.TP +.BR deny " \fIaddress\fP [, ... \fIaddress\fP]" +The +.B deny +command rejects a message when the +sender address matches one of its parameters. +The rejection message asks the sender to +contact +.BR postmaster @ +.I hostdomain +for further information. +This verb is usually used to block +inadvertently abusive traffic, for example, +mail loops and stuck senders. Messages are +never saved. +.TP +.BR allow " \fIaddress\fP [, ... \fIaddress\fP]" +The +.B allow +verb negates the effect of subsequent blocking commands. +It is useful when a large range of addresses contains +a few legitimate addresses, for example, when +a mail server is in a Class C network block +of modem ports. Rather than enumerate the dial ports, it is +easier to block the entire Class C with a +.B dial +command, and precede it with an override for +the address of the mail server. Similarly, +it is possible to block mail from an entire +domain while accepting mail from a few friendly +senders in the domain. +The verb +.B accept +is a synonym for +.BR allow . +.PD +.PP +.IR Scanmail (8) +describes spam detection +software that works well with +the capabilities described here +and +.IR mail (1) +defines additional +.I smtpd +command line arguments applicable +to exposed systems. +.SH "SEE ALSO" +.IR mail (1), +.IR scanmail (8) diff --git a/static/plan9-4e/man6/snap.6 b/static/plan9-4e/man6/snap.6 new file mode 100644 index 00000000..1553669d --- /dev/null +++ b/static/plan9-4e/man6/snap.6 @@ -0,0 +1,98 @@ +.TH SNAP 6 +.SH NAME +snap \- process snapshots +.SH DESCRIPTION +Process snapshots are used to +save a process image for debugging on +another machine or at another time. +They are like old Unix core dumps but +can hold multiple process images and +are smaller. +.PP +The first line of a snapshot begins with the prefix +``process snapshot'' and often contains +other information as well, such as creation time, +user name, system name, cpu type, and kernel type. +This information is intended for humans, not programs. +Programs reading snapshots should only +check that this line begins with the specified prefix. +.PP +Throughout the rest of the snapshot, decimal strings are +always right-justified, blank-padded to 11 characters, +and followed by a single space character. +.PP +The rest of the snapshot is one or more records, +each of which begins with a one-line header. +This header is a decimal process id followed by +an identification string, which denotes the type of +data in the record. +.PP +Records of type +.BR fd , +.BR fpregs , +.BR kregs , +.BR noteid , +.BR ns , +.BR proc , +.BR regs , +.BR segment , +and +.BR status +are all formatted as a decimal number +.I n +followed by +.I n +bytes of data. +This data is the contents of the file +of the same name found in +.BR /proc . +.PP +The format of the +.B mem +and +.B text +sections is not as simple. +These sections contain one or more page descriptions. +Each describes a one kilobyte page of data. +If the section is not a multiple of a kilobyte in size, +the last page will be shorter. +Each description begins with a one-byte +flag. +If the flag is +.BR r , +then it is followed by +a page of binary data. +If the flag is +.BR z , +then the data is understood to be zeros, +and is omitted. +If the flag is +.B m +or +.BR t , +then it is followed by two decimal strings +.I p +and +.IR o , +indicating that this page is the same +as the page at offset +.I o +of the memory or text +segment for process +.IR p . +This data must have been previously +described in the snapshot, and the offset +must be a multiple of a kilobyte. +.PP +It is not guaranteed that any of the sections +described above be in a process snapshot, +although the snapshot quickly becomes useless when +too much is missing. +.PP +Memory and text images may be incomplete. +The memory or text file for a given process +may be split across multiple disjoint sections +in the snapshot. +.SH SEE ALSO +.IR proc (3), +.IR snap (4). diff --git a/static/plan9-4e/man6/thumbprint.6 b/static/plan9-4e/man6/thumbprint.6 new file mode 100644 index 00000000..63be911a --- /dev/null +++ b/static/plan9-4e/man6/thumbprint.6 @@ -0,0 +1,41 @@ +.TH THUMBPRINT 6 +.SH NAME +thumbprint \- public key thumbprints +.SH DESCRIPTION +.PP +Applications in Plan 9 that use public keys for authentication, +for example by calling +.B tlsClient +and +.B okThumbprint +(see +.IR pushtls (2)), +check the remote side's public key by comparing against +thumbprints from a trusted list. +The list is maintained by people who set local policies +about which servers can be trusted for which applications, +thereby playing the role taken by certificate authorities +in PKI-based systems. +By convention, these lists are stored as files in +.B /sys/lib/tls/ +and protected by normal file system permissions. +.PP +Such a thumbprint file comprises lines made up of +attribute/value pairs of the form +.IB attr = value +or +.IR attr . +The first attribute must be +.B x509 +and the second must be +.BI sha1= {hex checksum of binary certificate}. +All other attributes are treated as comments. +The file may also contain lines of the form +.BI #include file +.PP +For example, a web server might have thumbprint +.EX +x509 sha1=8fe472d31b360a8303cd29f92bd734813cbd923c cn=*.cs.bell-labs.com +.EE +.SH "SEE ALSO" +.IR pushtls (2) diff --git a/static/plan9-4e/man6/users.6 b/static/plan9-4e/man6/users.6 new file mode 100644 index 00000000..f00a8194 --- /dev/null +++ b/static/plan9-4e/man6/users.6 @@ -0,0 +1,69 @@ +.TH USERS 6 +.SH NAME +users \- file server user list format +.SH DESCRIPTION +The permanent file servers each maintain a private list of users +and groups, in +.B /adm/users +by convention. +Each line in the file has the format +.IP +.IB num : name : leader :\fImembers\fP +.PP +where +.I num +is a decimal integer, +.I name +and +.I leader +are printable strings excluding the characters +.LR ? , +.LR = , +.LR + , +.LR - , +.LR / , +and +.LR : , +and +.I members +is a comma-separated list of such strings. +Such a line defines a user and a group with the given +.IR name ; +the group has a group leader given by +.I leader +and group members given by the user names in +.IR members . +The +.I leader +field may be empty, +in which case any group member is a group leader. +The +.I members +field may be empty. +.PP +Lines beginning with +.L # +are ignored. +.PP +The +.I num +in a line is a number used internally by a file server; +there should be no duplicate +.IR num s +in the file. +A negative +.I num +is special: a user with a negative +.I num +cannot attach to the file server. +The file +.B /adm/users +itself is owned by user +.IR adm , +having a negative +.IR num , +and write protected to others, +so it can only be changed via console commands. +.SH "SEE ALSO" +.IR intro (5), +.IR stat (5) diff --git a/static/plan9-4e/man6/utf.6 b/static/plan9-4e/man6/utf.6 new file mode 100644 index 00000000..0f49abf0 --- /dev/null +++ b/static/plan9-4e/man6/utf.6 @@ -0,0 +1,98 @@ +.TH UTF 6 +.SH NAME +UTF, Unicode, ASCII, rune \- character set and format +.SH DESCRIPTION +The Plan 9 character set and representation are +based on the Unicode Standard and on the ISO multibyte +.SM UTF-8 +encoding (Universal Character +Set Transformation Format, 8 bits wide). +The Unicode Standard represents its characters in 16 +bits; +.SM UTF-8 +represents such +values in an 8-bit byte stream. +Throughout this manual, +.SM UTF-8 +is shortened to +.SM UTF. +.PP +In Plan 9, a +.I rune +is a 16-bit quantity representing a Unicode character. +Internally, programs may store characters as runes. +However, any external manifestation of textual information, +in files or at the interface between programs, uses a +machine-independent, byte-stream encoding called +.SM UTF. +.PP +.SM UTF +is designed so the 7-bit +.SM ASCII +set (values hexadecimal 00 to 7F), +appear only as themselves +in the encoding. +Runes with values above 7F appear as sequences of two or more +bytes with values only from 80 to FF. +.PP +The +.SM UTF +encoding of the Unicode Standard is backward compatible with +.SM ASCII\c +: +programs presented only with +.SM ASCII +work on Plan 9 +even if not written to deal with +.SM UTF, +as do +programs that deal with uninterpreted byte streams. +However, programs that perform semantic processing on +.SM ASCII +graphic +characters must convert from +.SM UTF +to runes +in order to work properly with non-\c +.SM ASCII +input. +See +.IR rune (2). +.PP +Letting numbers be binary, +a rune x is converted to a multibyte +.SM UTF +sequence +as follows: +.PP +01. x in [00000000.0bbbbbbb] → 0bbbbbbb +.br +10. x in [00000bbb.bbbbbbbb] → 110bbbbb, 10bbbbbb +.br +11. x in [bbbbbbbb.bbbbbbbb] → 1110bbbb, 10bbbbbb, 10bbbbbb +.br +.PP +Conversion 01 provides a one-byte sequence that spans the +.SM ASCII +character set in a compatible way. +Conversions 10 and 11 represent higher-valued characters +as sequences of two or three bytes with the high bit set. +Plan 9 does not support the 4, 5, and 6 byte sequences proposed by X-Open. +When there are multiple ways to encode a value, for example rune 0, +the shortest encoding is used. +.PP +In the inverse mapping, +any sequence except those described above +is incorrect and is converted to rune hexadecimal 0080. +.SH FILES +.TF "/lib/unicode " +.TP +.B /lib/unicode +table of characters and descriptions, suitable for +.IR look (1). +.SH "SEE ALSO" +.IR ascii (1), +.IR tcs (1), +.IR rune (2), +.IR keyboard (6), +.IR "The Unicode Standard" . diff --git a/static/plan9-4e/man6/venti.conf.6 b/static/plan9-4e/man6/venti.conf.6 new file mode 100644 index 00000000..f8c2d77a --- /dev/null +++ b/static/plan9-4e/man6/venti.conf.6 @@ -0,0 +1,67 @@ +.TH VENTI.CONF 6 +.SH NAME +venti.conf \- a venti configuration file +.SH DESCRIPTION +A venti configuration file enumerates the various index sections and +arenas that constitute a venti system. +The components are indicated by the name of the file, typically +a disk partition, in which they reside. The configuration +file is the only location that file names are used. Internally, +venti uses the names assigned when the components were formatted +with +.IR fmtarenas (8) +or +.IR fmtisect (8). +In particular, by changing the configuration a +component can be copied to a different file. +.PP +The configuration file consists of lines in the form described below. +Lines starting with +.B # +are comments. +.TP +.BI index " name +Names the index for the system. +.TP +.BI arenas " file +.I File +contains a collection of arenas, formatted using +.IR fmtarenas (8). +.TP +.BI isect " file +.I File +contains an index section, formatted using +.IR fmtisect (8). +.PP +After formatting a venti system using +.IR fmtindex (8), +the order of arenas and index sections should not be changed. +Additional arenas can be appended to the configuration. +.SH EXAMPLE +.EX +# a sample venti configuration file +# +# formatted with +# venti/fmtarenas arena. /tmp/disks/arenas +# venti/fmtisect isect0 /tmp/disks/isect0 +# venti/fmtisect isect1 /tmp/disks/isect1 +# venti/fmtindex venti.conf +# +# server is started with +# venti/venti + +# the name of the index +index main + +# the index sections +isect /tmp/disks/isect0 +isect /tmp/disks/isect1 + +# the arenas +arenas /tmp/disks/arenas +.EE +.SH "SEE ALSO" +.IR venti (8), +.IR fmtarenas (8), +.IR fmtisect (8), +.IR fmtindex (8) diff --git a/static/plan9-4e/man6/vgadb.6 b/static/plan9-4e/man6/vgadb.6 new file mode 100644 index 00000000..a6335768 --- /dev/null +++ b/static/plan9-4e/man6/vgadb.6 @@ -0,0 +1,486 @@ +.TH VGADB 6 +.SH NAME +vgadb \- VGA controller and monitor database +.SH DESCRIPTION +.PP +The VGA database, +.BR /lib/vgadb , +consists of two parts, +the first describing how to identify and program a VGA controller +and the second describing the timing parameters for known +monitors to be loaded into a VGA controller to give a particular +resolution and refresh rate. +Conventionally, at system boot, the program +.B aux/vga +(see +.IR vga (8)) +uses the monitor type in +.BR /env/monitor , +the display resolution in +.BR /env/vgasize , +and the VGA controller information in the database to +find a matching monitor entry and initialize the VGA controller accordingly. +.PP +The file comprises multi-line entries made up of +attribute/value pairs of the form +.IB attr = value +or sometimes just +.IR attr . +Each line starting without white space starts a new entry. +Lines starting with +.B # +are comments. +.PP +The first part of the database, the VGA controller identification and +programming information, +consists of a number of entries with attribute +.B ctlr +and no value. +Within one of these entries the following attributes are +meaningful: +.TF 0xC0000 +.TP +.I nnnnn +an offset into the VGA BIOS area. +The value is a string expected to be found there that will +identify the controller. +For example, +.B 0xC0068="#9GXE64 Pro" +would identify a #9GXEpro VGA controller if the string +.B "#9GXE64 Pro" +was found in the BIOS at address 0xC0068. +There may be more than one identifier attribute per controller. +If a match cannot be found, the first few bytes of the BIOS +are printed to help identify the card and create a controller +entry. +.TP +.IB nnnnn - mmmmm +A range of the VGA BIOS area. +The value is a string as above, but the entire range +is searched for that string. +The string must begin at or after +.I nnnnn +and not contain any characters at or after +.IR mmmmm . +For example, +.B 0xC0000-0xC0200="MACH64LP" +identifies a Mach 64 controller with the +string +.B MACH64LP +occurring anywhere in the first 512 bytes of BIOS memory. +.TP +.B ctlr +VGA controller chip type. +This must match one of the VGA controller types +known to +.B /dev/vgactl +(see +.IR vga (3)) +and internally to +.BR aux/vga . +Currently, +.BR ark2000pv , +.BR clgd542x , +.BR ct65540 , +.BR ct65545 , +.BR cyber938x , +.BR et4000 , +.BR hiqvideo , +.BR ibm8514 , +.BR mach32 , +.BR mach64 , +.BR mach64xx , +.BR mga2164w , +.BR neomagic , +.BR s3801 , +.BR s3805 , +.BR s3928 , +.BR t2r4 , +.BR trio64 , +.BR virge , +.BR vision864 , +.BR vision964 , +.BR vision968 , +and +.B w30c516 +are recognized. +.TP +.B ramdac +RAMDAC controller type. +This must match one of the types +known internally to +.BR aux/vga . +Currently +.BR att20c490 , +.BR att20c491 , +.BR att20c492 , +.BR att21c498 , +.BR bt485 , +.BR rgb524mn , +.BR sc15025 , +.BR stg1702 , +.BR tvp3020 , +.BR tvp3025 , +and +.B tvp3026 +are recognized. +.TP +.B clock +clock generator type. +This must match one of the types +known internally to +.BR aux/vga . +Currently +.BR ch9294 , +.BR icd2061a , +.BR ics2494 , +.BR ics2494a , +.BR s3clock , +.BR tvp3025clock , +and +.B tvp3026clock +are recognized. +.TP +.B hwgc +hardware graphics cursor type. +This must match one of the types +known to +.B /dev/vgactl +and internally to +.BR aux/vga . +Currently +.BR ark200pvhwgc , +.BR bt485hwgc , +.BR clgd542xhwgc , +.BR clgd546xhwgc , +.BR ct65545hwgc , +.BR cyber938xhwgc , +.BR hiqvideohwgc , +.BR mach64xxhwgc , +.BR mga2164whwgc , +.BR neomagichwgc , +.BR rgb524hwgc , +.BR s3hwgc , +.BR t2r4hwgc , +.BR tvp3020hwgc , +and +.B tvp3026hwgc +are recognized. +.TP +.B membw +Memory bandwidth in megabytes per second. +.I Vga +chooses the highest refresh rate possible within the constraints +of the monitor (explained below) and the +card's memory bandwidth. +.TP +.B linear +Whether the card supports a large (>64kb) linear memory +window. The value is either +.B 1 +or +.B 0 +(equivalent to unspecified). +The current kernel graphics subsystem +requires a linear window; entries without +.B linear=1 +are of historic value only. +.TP +.B link +This must match one of the types +known internally to +.BR aux/vga . +Currently +.B vga +and +.B ibm8514 +are recognized. +The type +.B vga +handles generic VGA functions and should almost always be included. +The type +.B Ibm8514 +handles basic graphics accelerator initialization on controllers +such as the early S3 family of GUI chips. +.PD +.PP +The +.BR clock , +.BR ctlr , +.BR link , +and +.B ramdac +values can all take an extension following a +.B '-' +that can be used as a speed-grade +or subtype; matching is done without the extension. +For example, +.B ramdac=stg1702-135 +indicates the STG1702 RAMDAC has a maximum clock frequency of 135MHz, +and +.B clock=ics2494a-324 +indicates that the frequency table numbered +324 +should be used for the ICS2494A clock generator. +.PP +The functions internal to +.B aux/vga +corresponding to the +.BR clock , +.BR ctlr , +.BR link , +and +.B ramdac +values will be called in the order given for initialization. +Sometimes the clock should be set before the RAMDAC is initialized, +for example, depending on the components used. +In general, +.BR link=vga +will always be first and, +if appropriate, +.BR link=ibm8514 +will be last. +.PP +The entries in the second part of +.B /lib/vgadb +have as attribute the name of a monitor type +and the value is conventionally a resolution in the form +.IB X x Y\f1, +where +.I X +and +.I Y +are numbers representing width and height in pixels. +The monitor type (i.e. entry) +.B include +has special properties, described below and shown in the examples. +The remainder of the entry contains timing information for +the desired resolution. +Within one of these entries the following attributes are +meaningful: +.TF interlace +.TP +.B clock +the video dot-clock frequency in MHz required for this resolution. +The value 25.175 is known internally to +.IR vga (8) +as the baseline VGA clock rate. +.B defaultclock +the default video dot-clock frequency in MHz used +for this resolution when no +memory bandwidth is specified for the card +or when +.I vga +cannot determine the maximum clock frequency of the card. +.TP +.B shb +start horizontal blanking, in character clocks. +.TP +.B ehb +end horizontal blanking, in character clocks. +.TP +.B ht +horizontal total, in character clocks. +.TP +.B vrs +vertical refresh start, in character clocks. +.TP +.B vre +vertical refresh end, in character clocks. +.TP +.B vt +vertical total, in character clocks. +.TP +.B hsync +horizontal sync polarity. +Value must be +.B + +or +.BR - . +.TP +.B vsync +vertical sync polarity. +Value must be +.B + +or +.BR - . +.TP +.B interlace +interlaced mode. +Only value +.B v +is recognized. +.TP +.B alias +continue, replacing the +.B alias +line by the contents of the entry whose attribute is given as +.IR value . +.TP +.B include +continue, replacing this +.B include +line by the contents of the previously defined +.B include +monitor type with matching +.IR value . +(See the examples.) +Any non-zero attributes already set will not be overwritten. +This is used to save duplication of timing information. +Note that +.I value +is not parsed, it is only used as a string +to identify the previous +.BI include= value +monitor type entry. +.PD +.PP +The values given for +.BR shb , +.BR ehb , +.BR ht , +.BR vrs , +.BR vre , +.BR vt , +.BR hsync , +and +.B vsync +are beyond the +scope of this manual page. +See the book by +Ferraro +for details. +.SH EXAMPLES +Basic +.B ctlr +entry for a laptop with a Chips and Technology 65550 +controller: +.EX +ctlr # NEC Versa 6030X/6200MX + 0xC0090="CHIPS 65550 PCI & VL Accelerated VGA BIOS" + link=vga + ctlr=hiqvideo linear=1 + hwgc=hiqvideohwgc +.EE +A more complex entry. Note the extensions on the +.BR clock , +.BR ctlr , +and +.B ramdac +attributes. The order here is important: the RAMDAC clock input must be +initialized before the RAMDAC itself. The clock frequency is selected by +the +.B ET4000 +chip. +.EX +ctlr # Hercules Dynamite Power + 0xC0076="Tseng Laboratories, Inc. 03/04/94 V8.00N" + link=vga + clock=ics2494a-324 + ctlr=et4000-w32p + ramdac=stg1702-135 +.EE +Monitor entry for type +.B vga +(the default monitor type used by +.IR vga (8)) +and resolution 640x480x[18]. +.EX +include = 640x480@60Hz # 60Hz, 31.5KHz + clock=25.175 + shb=664 ehb=760 ht=800 + vrs=491 vre=493 vt=525 + +vga = 640x480 # 60Hz, 31.5KHz + include=640x480@60Hz +.EE +Entries for multisync monitors with video bandwidth up to 65MHz. +.EX +# +# Multisync monitors with video bandwidth up to 65MHz. +# +multisync65 = 1024x768 # 60Hz, 48.4KHz + include=1024x768@60Hz +multisync65 = 1024x768i # 87Hz, 35.5KHz (interlaced) + include=1024x768i@87Hz +multisync65 + alias=vga +.EE +Note how this builds on the existing +.B vga +entries. +.SH FILES +.TP +.B /lib/vgadb +.SH "SEE ALSO" +.IR ndb (2), +.IR vga (3), +.IR ndb (6), +.IR 9load (8), +.IR vga (8) +.br +Richard E. Ferraro, +.I +Programming Guide to the EGA, VGA and Super VGA Cards, +Third Edition +.SH BUGS +The database should provide a way +to use the PCI bus +as well as BIOS memory to identify cards. +.SH "ADDING A NEW MONITOR" +Adding a new monitor is usually fairly straightforward, as most modern monitors +are multisync and the only interesting parameter is the +maximum video bandwidth. +Once the timing parameters are worked out for a particular maximum +video bandwidth as in the example above, an entry for a new monitor +with that limit is simply +.EX +# +# Sony CPD-1304 +# Horizontal timing: +# Allowable frequency range: 28-50KHz +# Vertical timing: +# Allowable frequency range: 50-87Hz +# +cpd-1304 + alias=multisync65 +.EE +Even this is not necessary, as the monitor type could simply be +given as +.BR multisync65 . +.SH "ADDING A NEW VGA CONTROLLER" +While the use of this database formalizes the steps needed to +program a VGA controller, +unless you are lucky and all the important components on +a new VGA controller card are interconnected in the same way as an +existing entry, adding a new entry requires adding new internal +types to +.IR vga (8). +Fortunately, the unit of variety +has, for the most part, shifted from +individual components to entire +video chipsets. +Thus in lucky cases all that is necessary +is the addition of another +.B 0xNNNNN= +line to the entry for the controller. +This is particularly true in the case +of the ATI Mach 64 and the S3 Virge. +.PP +If you need to actually add support +for a controller with a different chipset, +you will need the data sheets for the VGA controller +as well as any RAMDAC or clock generator +(these are commonly integrated into the controller). +You will also need to know how these components interact. +For example, a common combination is an S3 86C928 VGA chip with +an ICD2061A clock generator. The ICD2061A is usually loaded by clocking +a serial bit-stream out of one of the 86C928 registers. +Similarly, the RAMDAC may have an internal clock-doubler and/or +pixel-multiplexing modes, in which case both the clock generator and +VGA chip must be programmed accordingly. +Hardware acceleration for rectangle fills +and block copies is provided in the kernel; +writing code to handle this is necessary +to achieve reasonable performance at high +pixel depths. diff --git a/static/plan9-4e/man7/0intro.7 b/static/plan9-4e/man7/0intro.7 new file mode 100644 index 00000000..754feac3 --- /dev/null +++ b/static/plan9-4e/man7/0intro.7 @@ -0,0 +1,8 @@ +.TH INTRO 7 +.SH NAME +intro \- introduction to databases +.SH DESCRIPTION +This manual section describes databases available on Plan 9 +and the commands that access them. +Some of them involve proprietary data that is not distributed outside +Bell Laboratories. diff --git a/static/plan9-4e/man7/INDEX.7 b/static/plan9-4e/man7/INDEX.7 new file mode 100644 index 00000000..d296e59e --- /dev/null +++ b/static/plan9-4e/man7/INDEX.7 @@ -0,0 +1,8 @@ +0intro 0intro +intro 0intro +astro astro +dict dict +juke juke +map map +mapdemo map +scat scat diff --git a/static/plan9-4e/man7/INDEX.html.7 b/static/plan9-4e/man7/INDEX.html.7 new file mode 100644 index 00000000..b87c21d6 --- /dev/null +++ b/static/plan9-4e/man7/INDEX.html.7 @@ -0,0 +1,33 @@ + +plan 9 man section 7 + + +[manual index] +

Plan 9 from Bell Labs - Section 7 - Databases

+
+
+
0intro +- introduction to databases +
intro + +
astro +- print astronomical information +
astro + +
dict +- dictionary browser +
dict + +
juke +- CDROM juke box +
juke + +
map +- draw maps on various projections +
map, mapdemo + +
scat +- sky catalogue and Digitized Sky Survey +
scat + +
diff --git a/static/plan9-4e/man7/Makefile b/static/plan9-4e/man7/Makefile new file mode 100644 index 00000000..57ec7ecb --- /dev/null +++ b/static/plan9-4e/man7/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.7) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man7/astro.7 b/static/plan9-4e/man7/astro.7 new file mode 100644 index 00000000..9d19e81b --- /dev/null +++ b/static/plan9-4e/man7/astro.7 @@ -0,0 +1,122 @@ +.TH ASTRO 7 +.SH NAME +astro \- print astronomical information +.SH SYNOPSIS +.B astro +[ +.B -dlpsatokm +] +[ +.B -c +n +] +[ +.B -C +d +] +[ +.B -e +.I obj1 +.I obj2 +] +.SH DESCRIPTION +.I Astro +reports upcoming celestial events, by default for 24 hours starting now. +The options are: +.TP +.B d +Read the starting date. +A prompt gives the input +format. +.TP +.B l +Read the north latitude, west longitude, and elevation of the observation point. +A prompt gives the input format. +If +.B l +is missing, the initial position is read from the file +.BR /lib/sky/here . +.TP +.B c +Report for +.I n +(default 1) successive days. +.TP +.B C +Used with +.BR -c , +set the interval to +.B d +days (or fractions of days). +.TP +.B e +Report distance between the centers of +objects, in arc seconds, during eclipses or occultations involving +.I obj1 +and +.IR obj2 . +.TP +.B p +Print the positions of objects at the +given time rather than searching for interesting +conjunctions. +For each, the name is followed by +the right ascension (hours, minutes, seconds), +declination (degrees, minutes, seconds), +azimuth (degrees), +elevation (degrees), +and semidiameter (arc seconds). +For the sun and moon, the magnitude is also printed. +The first line of output presents the date and time, +sidereal time, and the latitude, longitude, and elevation. +.TP +.B s +Print output in English words suitable for speech synthesizers. +.TP +.B a +Include a list of artificial earth satellites for interesting events. +(There are no orbital elements for the satellites, so this option +is not usable.) +.TP +.B t +Read +ΔT +from standard input. +ΔT +is the difference between ephemeris and +universal time (seconds) due to the slowing of the earth's rotation. +ΔT +is normally calculated from an empirical formula. +This option is needed only for very accurate timing of +occultations, eclipses, etc. +.TP +.B o +Search for stellar occultations. +.TP +.B k +Print times in local time (`kitchen clock') +as described in the +.B timezone +environment variable. +.TP +.B m +Includes a single comet in the list of objects. +This is modified (in the source) to refer to an approaching comet +but in steady state +usually refers to the last interesting comet (currently Hale-Bopp, C/1995 O1). +.SH FILES +.TF /lib/sky/estartab +.TP +.B /lib/sky/estartab +ecliptic star data +.TP +.B /lib/sky/here +default latitude (N), longitude (W), and elevation (meters) +.SH SOURCE +.B /sys/src/cmd/astro +.SH SEE ALSO +.IR scat (7) +.SH BUGS +The +.B k +option reverts to GMT outside of 1970-2036. diff --git a/static/plan9-4e/man7/dict.7 b/static/plan9-4e/man7/dict.7 new file mode 100644 index 00000000..5fc47634 --- /dev/null +++ b/static/plan9-4e/man7/dict.7 @@ -0,0 +1,163 @@ +.TH DICT 7 +.SH NAME +dict \- dictionary browser +.SH SYNOPSIS +.B dict +[ +.B -k +] +[ +.B -d +.I dictname +] +[ +.B -c +.I command +] +[ +.I pattern +] +.SH DESCRIPTION +.I Dict +is a dictionary browser. +If a +.I pattern +is given on the command line, +.I dict +prints all matching entries; +otherwise it repeatedly accepts and executes commands. +The options are +.TF -d\ \fIdictname\fP +.TP +.BI -d " dictname" +Use the given dictionary. +The default is +.BR oed , +the second edition of the Oxford English Dictionary. +A list of available dictionaries is printed by option +.BR -d? . +.TP +.BI -c " command" +Execute one command and quit. +The command syntax is described below. +.TP +.B -k +Print a pronunciation key. +.PD +.PP +Patterns are regular expressions (see +.IR regexp (6)), +with an implicit leading +.L ^ +and trailing +.LR $ . +Patterns are matched against an index of headwords and variants, +to form a `match set'. +By default, both patterns and the index are folded: +upper case characters are mapped into their lower case equivalents, +and Latin accented characters are mapped into their non-accented +equivalents. +In interactive mode, there is always a `current match set' +and a `current entry' within the match set. +Commands can change either or both, as well as print the entries +or information about them. +.PP +Commands have an address followed by a command letter. +Addresses have the form: +.TF /\fIre\fP/.\fIn\fP +.TP +.BI / re / +Set the match set to all entries matching the regular expression +.IR re , +sorted in dictionary order. +Set the current entry to the first of the match set. +.TP +.BI ! re ! +Like +.BI / re / +but use exact matching, i.e., without case and accent folding. +.TP +.I n +An integer +.I n +means change the current entry to the +.IR n th +of the current match set. +.TP +.BI # n +The integer +.I n +is an absolute byte offset into the raw dictionary. +(See the +.B A +command, below.) +.TP +.IB addr + +After setting the match set and current entry according to +.IR addr , +change the match set and current entry to be the next entry +in the dictionary (not necessarily in the match set) after +the current entry. +.TP +.IB addr - +Like +.IB addr + +but go to previous dictionary entry. +.PD +.PP +The command letters come in pairs: a lower case and the +corresponding upper case letter. +The lower case version prints something about the current +entry only, and advances the current entry to the next +in the match set (wrapping around to the beginning after +the last). +The upper case version prints something about all of the +match set and resets the current entry to the beginning of +the set. +.TF \fLa,A\fP +.TP +.BR p , P +Print the whole entry. +.TP +.BR h , H +Print only the headword(s) of the entry. +.TP +.BR a , A +Print the dictionary byte offset of the entry. +.TP +.BR r , R +Print the whole entry in raw format (without translating +special characters, etc.). +.PD +.PP +If no command letter is given for the first command, +.B H +is assumed. +After an +.BR H , +the default command is +.BR p . +Otherwise, the default command is the previous command. +.SH FILES +.B /lib/dict/oed2 +.br +.B /lib/dict/oed2index +.br +Other files in +.BR /lib . +.SH "SEE ALSO" +.IR regexp (6) +.SH SOURCE +.B /sys/src/cmd/dict +.SH BUGS +A font with wide coverage of the Unicode Standard +should be used for best results. +(Try +.BR /lib/font/bit/pelm/unicode.9.font .) +.br +If the +.I pattern +doesn't begin with +a few literal characters, matching takes a long time. +.br +The dictionaries are not distributed outside Bell Labs. diff --git a/static/plan9-4e/man7/juke.7 b/static/plan9-4e/man7/juke.7 new file mode 100644 index 00000000..421d5afe --- /dev/null +++ b/static/plan9-4e/man7/juke.7 @@ -0,0 +1,52 @@ +.TH JUKE 7 +.SH NAME +juke \- +.SM CDROM +juke box +.SH SYNOPSIS +.B 9fs juke +.SH DESCRIPTION +The +.I juke +file system is a stand-alone file server, +.BR jukefs , +that stores copies of +.SM CDROM\c +s +in a simulation of the true juke box that it replaces. +Each `disc' in the juke box appears as a file in +.B /n/juke +or in a subdirectory of +.BR /n/juke . +Here are descriptions of some of them. +.nr zz \w'\f(CWsupercomputing.93\fP'u/1n+2 +.TP \n(zz +.B plan9.1992 +The 1992 Plan 9 release. +.TP +.B plan9.1995 +The 1995 Plan 9 release. +.TP +.B dss/dss.??? +Digitized Sky Survey (102 discs covering the night sky); access with +.IR scat (7). +.TP +.B eg/* +Chess end games. +.PP +To see the contents of a +.SM CDROM\c +, start +.B 9660srv +(see +.IR dossrv (4)) +and mount the service with the file name of the +.SM CDROM +as the attach specifier. +.SH BUGS +There should be a way to access the contents of the +.SM CDROM\c +s +without running +.B 9660srv +locally. diff --git a/static/plan9-4e/man7/map.7 b/static/plan9-4e/man7/map.7 new file mode 100644 index 00000000..abb5b942 --- /dev/null +++ b/static/plan9-4e/man7/map.7 @@ -0,0 +1,676 @@ +.TH MAP 7 +.SH NAME +map, mapdemo \- draw maps on various projections +.SH SYNOPSIS +.B map +.I projection +[ +.I option ... +] +.PP +.B mapdemo +.PP +.SH DESCRIPTION +.I Map +prepares on the standard output a +map suitable for display by any +plotting filter described in +.IR plot (1). +A menu of projections is produced in response to an unknown +.IR projection . +.I Mapdemo +is a short course in mapping. +.PP +The default data for +.I map +are world shorelines. +Option +.B -f +accesses more detailed data +classified by feature. +.TP +.BR -f " [ \fIfeature\fR ... ]" +Features are ranked 1 (default) to 4 from major to minor. +Higher-numbered ranks include all lower-numbered ones. +Features are +.RS +.TF country[1-3] +.TP +.BR shore [ 1 - 4 ] +seacoasts, lakes, and islands; option +.B -f +always shows +.B shore1 +.TP +.BR ilake [ 1 - 2 ] +intermittent lakes +.TP +.BR river [ 1 - 4 ] +rivers +.TP +.BR iriver [ 1 - 3 ] +intermittent rivers +.TP +.BR canal [ 1 - 3 ] +.BR 3 =irrigation +canals +.TP +.BR glacier +.TP +.BR iceshelf [ 12 ] +.TP +.BR reef +.TP +.BR saltpan [ 12 ] +.TP +.BR country [ 1 - 3 ] +.BR 2 =disputed +boundaries, +.BR 3 =indefinite +boundaries +.TP +.BR state +states and provinces (US and Canada only) +.PD +.RE +.PP +In other options +coordinates are in degrees, with north latitude +and west longitude counted as positive. +.TP 0 +.BI -l " S N E W" +Set the southern and northern latitude +and the eastern and western longitude limits. +Missing arguments are filled out from the list +\-90, 90, \-180, 180, +or lesser limits suitable to the +projection at hand. +.TP +.BI -k " S N E W +Set the scale as if for a map with limits +.B -l +.I "S N E W"\f1. +Do not consider any +.B -l +or +.B -w +option in setting scale. +.TP +.BI -o " lat lon rot" +Orient the map in a nonstandard position. +Imagine a transparent gridded sphere around the globe. +Turn the overlay about the North Pole +so that the Prime Meridian (longitude 0) +of the overlay coincides with meridian +.I lon +on the globe. +Then tilt the North Pole of the +overlay along its Prime Meridian to latitude +.I lat +on the globe. +Finally again turn the +overlay about its `North Pole' so +that its Prime Meridian coincides with the previous position +of meridian +.IR rot . +Project the map in +the standard form appropriate to the overlay, but presenting +information from the underlying globe. +Missing arguments are filled out from the list +90, 0, 0. +In the absence of +.BR - o , +the orientation is 90, 0, +.IR m , +where +.I m +is the middle of the longitude range. +.TP +.BI -w " S N E W" +Window the map by the specified latitudes +and longitudes in the tilted, rotated coordinate system. +Missing arguments are filled out from the list \-90, 90, \-180, 180. +(It is wise to give an encompassing +.B -l +option with +.BR -w . +Otherwise for small windows computing time +varies inversely with area!) +.TP +.BI -d " n" +For speed, plot only every +.IR n th +point. +.TP +.B -r +Reverse left and right +(good for star charts and inside-out views). +.ns +.TP +.B -v +Verso. +Switch to a normally suppressed sheet of the map, such as the +back side of the earth in orthographic projection. +.TP +.B -s1 +.br +.ns +.TP +.B -s2 +Superpose; outputs for a +.B -s1 +map (no closing) and a +.B -s2 +map (no opening) may be concatenated. +.TP +.BI -g " dlat dlon res" +Grid spacings are +.IR dlat , +.IR dlon . +Zero spacing means no grid. +Missing +.I dlat +is taken to be zero. +Missing +.I dlon +is taken the same as +.IR dlat . +Grid lines are drawn to a resolution of +.I res +(2° or less by default). +In the absence of +.BR - g , +grid spacing is 10°. +.TP +.BI -p " lat lon extent" +Position the point +.I lat, lon +at the center of the plotting area. +Scale the map so that the height (and width) of the +nominal plotting area is +.I extent +times the size of one degree of latitude +at the center. +By default maps are scaled and positioned +to fit within the plotting area. +An +.I extent +overrides option +.BR -k . +.TP +.BI -c " x y rot" +After all other positioning and scaling operations +have been performed, rotate the image +.I rot +degrees counterclockwise about the center +and move the center to position +.IR x , +.IR y , +where the nominal plotting area is +.RI \-1≤ x ≤1, +.RI \-1≤ y ≤1. +Missing arguments are taken to be 0. +.BR -x +Allow the map to extend outside the nominal plotting area. +.TP +.BR -m " [ \fIfile\fP ... ]" +Use +map data from named files. +If no files are named, omit map data. +Names that do not exist as pathnames are looked up in +a standard directory, which contains, in addition to the +data for +.BR -f , +.RS +.LP +.TF counties +.TP +.B world +World Data Bank I (default) +.TP +.B states +US map from Census Bureau +.TP +.B counties +US map from Census Bureau +.PD +.RE +.IP +The environment variables +.B MAP +and +.B MAPDIR +change the default +map and default directory. +.TP +.BI -b " \fR[\fPlat0 lon0 lat1 lon1\fR... ]" +Suppress the drawing of the normal boundary +(defined by options +.BR -l +and +.BR -w ). +Coordinates, if present, define the vertices of a +polygon to which the map is clipped. +If only two vertices are given, they are taken to be the +diagonal of a rectangle. +To draw the polygon, give its vertices as a +.B -u +track. +.TP +.BI -t " file ..." +The +.I files +contain lists of points, +given as latitude-longitude pairs in degrees. +If the first file is named +.LR - , +the standard input is taken instead. +The points of each list are plotted as connected `tracks'. +.IP +Points in a track file may be followed by label strings. +A label breaks the track. +A label may be prefixed by +\fL"\fR, +.LR : , +or +.L ! +and is terminated by a newline. +An unprefixed string or a string prefixed with +.L +" +is displayed at the designated point. +The first word of a +.L : +or +.L ! +string names a special symbol (see option +.BR -y ). +An optional numerical second word is a scale factor +for the size of the symbol, 1 by default. +A +.L : +symbol is aligned with its top to the north; a +.L ! +symbol is aligned vertically on the page. +.TP +.BI -u " file ..." +Same as +.BR -t , +except the tracks are +unbroken lines. +.RB ( -t +tracks appear as dot-dashed lines if the plotting filter supports them.) +.TP +.BI -y " file +The +.I file +contains +.IR plot (6)-style +data for +.L : +or +.L ! +labels in +.B -t +or +.B -u +files. +Each symbol is defined by a comment +.BI : name +then a sequence of +.L m +and +.L v +commands. +Coordinates (0,0) fall on the plotting point. +Default scaling is as if the nominal plotting range were +.LR "ra -1 -1 1 1" ; +.L ra +commands in +.I file +change the scaling. +.SS Projections +Equatorial projections centered on the Prime Meridian +(longitude 0). +Parallels are straight horizontal lines. +.PP +.PD 0 +.TP 1.5i +.B mercator +equally spaced straight meridians, conformal, +straight compass courses +.TP +.B sinusoidal +equally spaced parallels, +equal-area, same as +.LR "bonne 0" . +.TP +.BI cylequalarea " lat0" +equally spaced straight meridians, equal-area, +true scale on +.I lat0 +.TP +.B cylindrical +central projection on tangent cylinder +.TP +.BI rectangular " lat0" +equally spaced parallels, equally spaced straight meridians, true scale on +.I lat0 +.TP +.BI gall " lat0" +parallels spaced stereographically on prime meridian, equally spaced straight +meridians, true scale on +.I lat0 +.TP +.B mollweide +(homalographic) equal-area, hemisphere is a circle +.br +.B gilbert() +sphere conformally mapped on hemisphere and viewed orthographically +.TP +.B gilbert +globe mapped conformally on hemisphere, viewed orthographically +.PD +.PP +Azimuthal projections centered on the North Pole. +Parallels are concentric circles. +Meridians are equally spaced radial lines. +.PP +.PD 0 +.TP 1.5i +.B azequidistant +equally spaced parallels, +true distances from pole +.TP +.B azequalarea +equal-area +.TP +.B gnomonic +central projection on tangent plane, +straight great circles +.TP +.BI perspective " dist" +viewed along earth's axis +.I dist +earth radii from center of earth +.TP +.B orthographic +viewed from infinity +.TP +.B stereographic +conformal, projected from opposite pole +.TP +.B laue +.IR radius " = tan(2\(mu" colatitude ), +used in X-ray crystallography +.TP +.BI fisheye " n" +stereographic seen from just inside medium with refractive index +.I n +.TP +.BI newyorker " r" +.IR radius " = log(" colatitude / r ): +.I New Yorker +map from viewing pedestal of radius +.I r +degrees +.PD +.PP +Polar conic projections symmetric about the Prime Meridian. +Parallels are segments of concentric circles. +Except in the Bonne projection, +meridians are equally spaced radial +lines orthogonal to the parallels. +.PP +.PD 0 +.TP 1.5i +.BI conic " lat0" +central projection on cone tangent at +.I lat0 +.TP +.BI simpleconic " lat0 lat1" +equally spaced parallels, true scale on +.I lat0 +and +.I lat1 +.TP +.BI lambert " lat0 lat1" +conformal, true scale on +.I lat0 +and +.I lat1 +.TP +.BI albers " lat0 lat1" +equal-area, true scale on +.I lat0 +and +.I lat1 +.TP +.BI bonne " lat0" +equally spaced parallels, equal-area, +parallel +.I lat0 +developed from tangent cone +.PD +.PP +Projections with bilateral symmetry about +the Prime Meridian +and the equator. +.PP +.PD 0 +.TP 1.5i +.B polyconic +parallels developed from tangent cones, +equally spaced along Prime Meridian +.TP +.B aitoff +equal-area projection of globe onto 2-to-1 +ellipse, based on +.I azequalarea +.TP +.B lagrange +conformal, maps whole sphere into a circle +.TP +.BI bicentric " lon0" +points plotted at true azimuth from two +centers on the equator at longitudes +.IR ±lon0 , +great circles are straight lines +(a stretched +.IR gnomonic +) +.TP +.BI elliptic " lon0" +points plotted at true distance from +two centers on the equator at longitudes +.I ±lon0 +.TP +.B globular +hemisphere is circle, +circular arc meridians equally spaced on equator, +circular arc parallels equally spaced on 0- and 90-degree meridians +.TP +.B vandergrinten +sphere is circle, +meridians as in +.IR globular , +circular arc parallels resemble +.I mercator +.PD +.PP +Doubly periodic conformal projections. +.PP +.TP 1.5i +.B guyou +W and E hemispheres are square +.PD 0 +.TP +.B square +world is square with Poles +at diagonally opposite corners +.TP +.B tetra +map on tetrahedron with edge +tangent to Prime Meridian at S Pole, +unfolded into equilateral triangle +.TP +.B hex +world is hexagon centered +on N Pole, N and S hemispheres are equilateral +triangles +.PD +.PP +Miscellaneous projections. +.PP +.PD 0 +.TP 1.5i +.BI harrison " dist angle" +oblique perspective from above the North Pole, +.I dist +earth radii from center of earth, looking +along the Date Line +.I angle +degrees off vertical +.TP +.BI trapezoidal " lat0 lat1" +equally spaced parallels, +straight meridians equally spaced along parallels, +true scale at +.I lat0 +and +.I lat1 +on Prime Meridian +.PD +.br +.B lune(lat,angle) +conformal, polar cap above latitude +.I lat +maps to convex lune with given +.I angle +at 90\(deE and 90\(deW +.PP +Retroazimuthal projections. +At every point the angle between vertical and a straight line to +`Mecca', latitude +.I lat0 +on the prime meridian, +is the true bearing of Mecca. +.PP +.PD 0 +.TP 1.5i +.BI mecca " lat0" +equally spaced vertical meridians +.TP +.BI homing " lat0" +distances to Mecca are true +.PD +.PP +Maps based on the spheroid. +Of geodetic quality, these projections do not make sense +for tilted orientations. +For descriptions, see corresponding maps above. +.PP +.PD 0 +.TP 1.5i +.B sp_mercator +.TP +.BI sp_albers " lat0 lat1" +.SH EXAMPLES +.TP +.L +map perspective 1.025 -o 40.75 74 +A view looking down on New York from 100 miles +(0.025 of the 4000-mile earth radius) up. +The job can be done faster by limiting the map so as not to `plot' +the invisible part of the world: +.LR "map perspective 1.025 -o 40.75 74 -l 20 60 30 100". +A circular border can be forced by adding option +.LR "-w 77.33" . +(Latitude 77.33° falls just inside a polar cap of +opening angle arccos(1/1.025) = 12.6804°.) +.TP +.L +map mercator -o 49.25 -106 180 +An `equatorial' map of the earth +centered on New York. +The pole of the map is placed 90\(de away (40.75+49.25=90) +on the +other side of the earth. +A 180° twist around the pole of the map arranges that the +`Prime Meridian' of the map runs from the pole of the +map over the North Pole to New York +instead of down the back side of the earth. +The same effect can be had from +.L +map mercator -o 130.75 74 +.TP +.L +map albers 28 45 -l 20 50 60 130 -m states +A customary curved-latitude map of the United States. +.TP +.L +map harrison 2 30 -l -90 90 120 240 -o 90 0 0 +A fan view covering 60° on either +side of the Date Line, as seen from one earth radius +above the North Pole gazing at the +earth's limb, which is 30° off vertical. +The +.B -o +option overrides the default +.BR "-o 90 0 180" , +which would rotate +the scene to behind the observer. +.SH FILES +.TF /lib/map/[1-4]?? +.TP +.B /lib/map/[1-4]?? +World Data Bank II, for +.B -f +.TP +.B /lib/map/* +maps for +.B -m +.TP +.B /lib/map/*.x +map indexes +.TP +.B /bin/aux/mapd +Map driver program +.SH SOURCE +.B /sys/src/cmd/map +.SH "SEE ALSO" +.IR map (6), +.IR plot (1), +.IR road (7) +.SH DIAGNOSTICS +`Map seems to be empty'\(ema coarse survey found +zero extent within the +.B -l +and +.BR -w +bounds; for maps of limited extent +the grid resolution, +.IR res , +or the limits may have to be refined. +.SH BUGS +Windows (option +.BR -w ) +cannot cross the Date Line. +No borders appear along edges arising from +visibility limits. +Segments that cross a border are dropped, not clipped. +Excessively large scale or +.B -d +setting may cause long line segments to be dropped. +.I Map +tries to draw grid lines dotted and +.B -t +tracks dot-dashed. +As very few plotting filters properly support +curved textured lines, these lines are likely to +appear solid. +The west-longitude-positive convention +betrays Yankee chauvinism. +.I Gilbert +should be a map from sphere to sphere, independent of +the mapping from sphere to plane. diff --git a/static/plan9-4e/man7/scat.7 b/static/plan9-4e/man7/scat.7 new file mode 100644 index 00000000..d9bf8db8 --- /dev/null +++ b/static/plan9-4e/man7/scat.7 @@ -0,0 +1,335 @@ +.TH SCAT 7 +.SH NAME +scat \- sky catalogue and Digitized Sky Survey +.SH SYNOPSIS +.B scat +.SH DESCRIPTION +.I Scat +looks up items in catalogues of objects +outside the solar system +and implements database-like manipulations +on sets of such objects. +It also provides an interface to +.IR astro (7) +to plot the locations of solar system objects. +Finally, it displays images from the +Space Telescope Science Institute's +Digitized Sky Survey, keyed to the catalogues. +.PP +Items are read, one per line, from the standard input +and looked up in the catalogs. +Input is case-insensitive. +The result of the lookup becomes the set of objects available +to the database commands. +After each lookup or command, if more than two objects are +in the set, +.I scat +prints how many objects are in the set; otherwise it +prints the objects' +descriptions or cross-index listings (suitable for input to +.IR scat ). +An item is in one of the following formats: +.TP +.B ngc1234 +Number 1234 in the New General Catalogue of +Nonstellar Objects, NGC2000.0. +The output identifies the type +.RB( Gx =galaxy, +.BR Pl =planetary +nebula, +.BR OC =open +cluster, +.BR Gb =globular +cluster, +.BR Nb =bright +nebula, +.BR C+N =cluster +associated with nebulosity, +.BR Ast =asterism, +.BR Kt =knot +or nebulous region in a galaxy, +.BR *** =triple +star, +.BR D* =double +star, +.BR ? =uncertain, +.BR - =nonexistent, +.BR PD =plate +defect, and +(blank)=unverified or unknown), +its position in 2000.0 coordinates, +its size in minutes of arc, a brief description, and popular names. +.TP +.B ic1234 +Like NGC references, but from the Index Catalog. +.TP +.B sao12345 +Number 12345 in the Smithsonian Astrophysical Star Catalogue. +Output identifies the visual and photographic magnitudes, +2000.0 coordinates, proper motion, spectral type, multiplicity and variability +class, and HD number. +.TP +.B m4 +Catalog number 4 in Messier's catalog. +The output is the NGC number. +.TP +.B abell1701 +Catalog number 1701 in the Abell and Zwicky +catalog of clusters of galaxies. +Output identifies the magnitude of the tenth brightest member of the cluster, +radius of the cluster in degrees, its distance in megaparsecs, +2000.0 coordinates, galactic latitude and longitude, +magnitude range of the cluster (the `distance group'), +number of members (the `richness group'), population +per square degree, and popular names. +.TP +.B planetarynebula +The set of NGC objects of the specified type. +The type may be a compact NGC code or a full name, as above, with no blank. +.TP +\fL"α umi"\fP +Names are provided in double quotes. +Known names are the Greek +letter designations, proper names such as Betelgeuse, bright variable stars, +and some proper names of stars, NGC objects, and Abell clusters. +Greek letters may be spelled out, e.g. +.BR alpha . +Constellation names must be the three-letter abbreviations. +The output +is the SAO number. +For non-Greek names, catalog numbers and names are listed for all objects with +names for which the given name is a prefix. +.TP +.B 12h34m -16 +Coordinates in the sky are translated to the nearest `patch', +approximately one square degree of sky. +The output is the coordinates identifying the patch, +the constellations touching the patch, and the Abell, NGC, and SAO +objects in the patch. +The program prints sky positions in several formats corresponding +to different precisions; any output format is understood as input. +.TP +.B umi +All the patches in the named constellation. +.TP +.B mars +The planets are identified by their names. +The names +.B shadow +and +.B comet +refer to the earth's penumbra at lunar distance and the comet installed in the current +.IR astro (7). +The output is the planet's name, right ascension and declination, azimuth and altitude, and phase +for the moon and sun, as shown by +.BR astro . +The positions are current at the start of +.I scat 's +execution; see the +.B astro +command in the next section for more information. +.PP +The commands are: +.TF print +.TP +.BI add " item" +Add the named item to the set. +.TP +.BI keep " class ..." +Flatten the set and cull it, keeping only the specified classes. +The classes may be specific NGC types, +all stars +.RB ( sao ), +all NGC objects +.RB ( ngc ), +all M objects +.RB ( m ), +all Abell clusters +.RB ( abell ), +or a specified brightness range. +Brightness ranges are specified by a leading +.B > +or +.B < +followed by a magnitude. +Remember that brighter objects have lesser magnitudes. +.TP +.BI drop " class ..." +Complement to +.BR keep . +.TP +.BI flat +Some items such as patches represents sets of items. +.I Flat +flattens the set so +.I scat +holds all the information available for the objects in the set. +.TP +.BI print +Print the contents of the set. If the information seems meager, try +flattening the set. +.TP +.BI expand " n" +Flatten the set, +expand the area of the sky covered by the set to be +.I n +degrees wider, and collect all the objects in that area. +If +.I n +is zero, +.I expand +collects all objects in the patches that cover the current set. +.TP +.BI astro " option" +Run +.IR astro (7) +with the specified +.I options +(to which will be appended +.BR -p ), +to discover the positions of the planets. +.BR Astro 's +.B -d +and +.B -l +options can be used to set the time and place; by default, it's right now at the coordinates in +.BR /lib/sky/here . +Running +.B astro +does not change the positions of planets already in the display set, +so +.B astro +may be run multiple times, executing e.g. +.B "add mars" +each time, to plot a series of planetary positions. +.TP +.BI plot " option" +Expand and plot the set in a new window on the screen. +Symbols for NGC objects are as in Sky Atlas 2000.0, except that open clusters +are shown as stippled disks rather than circles. +Abell clusters are plotted as a triangle of ellipses. +The planets are drawn as disks of representative color with the first letter of the name +in the disk (lower case for inferior planets; upper case for superior); +the sun, moon, and earth's shadow are unlabeled disks. +Objects larger than a few pixels are plotted to scale; however, +.I scat +does not have the information necessary to show the correct orientation for galaxies. +.IP +The option +.B nogrid +suppresses the lines of declination and right ascension. +By default, +.I scat +labels NGC objects, Abell clusters, and bright stars; option +.B nolabel +suppresses these while +.B alllabel +labels stars with their SAO number as well. +The default size is 512×512; options +.B dx +.I n +and +.BR dy +.I n +set the +.I x +and +.I y +extent. +The option +.B zenithup +orients the map so it appears as it would in the sky at the time and +location used by the +.B astro +command +.RI ( q.v. ). +.IP +The output is designed to look best on an LCD display. +CRTs have trouble with the thin, grey lines and dim stars. +The option +.B nogrey +uses white instead of grey for these details, improving visibility +at the cost of legibility when plotting on CRTs. +.TP +.B "plate \f1[[\f2ra dec\f1] \f2rasize\f1 [\f2decsize\f1]]" +Display the section of the Digitized Sky Survey (plate scale +approximately 1.7 arcseconds per pixel) centered on the +given right ascension and declination or, if no position is specified, the +current set of objects. The maximum area that will be displayed +is one degree on a side. The horizontal and vertical sizes may +be specified in the usual notation for angles. +If the second size is omitted, a square region is displayed. +If no size is specified, the size is sufficient to display the centers +of all the +objects in the current set. If a single object is in the set, the +500×500 pixel block from the survey containing the center +of the object is displayed. +The survey is stored in the CD-ROM juke box; run +.B 9fs +.B juke +before running +.IR scat . +.TP +.BI gamma " value" +Set the gamma for converting plates to images. Default is \-1.0. +Negative values display white stars, positive black. +The images look best on displays with depth 8 or greater. +.I Scat +does not change the hardware color map, which +should be set externally to a grey scale; try the command +.B getmap gamma +(see +.IR getmap (9.1)) +on an 8-bit color-mapped display. +.PD +.SH EXAMPLES +Plot the Messier objects and naked-eye stars in Orion. +.EX + ori + keep m <6 + plot nogrid +.EE +.PP +Draw a finder chart for Uranus: +.EX + uranus + expand 5 + plot +.EE +.PP +Show a partial lunar eclipse: +.EX + astro -d + 2000 07 16 12 45 + moon + add shadow + expand 2 + plot +.EE +.PP +Draw a map of the Pleiades. +.EX + "alcyone" + expand 1 + plot +.EE +.PP +Show a pretty galaxy. +.EX + ngc1300 + plate 10' +.EE +.SH FILES +.B /lib/sky/*.scat +.SH SOURCE +.B /sys/src/cmd/scat +.SH SEE ALSO +.IR astro (7) +.br +.B /lib/sky/constelnames\ \ +the three-letter abbreviations of the constellation names. +.PP +The data was provided by the Astronomical Data Center at the NASA Goddard +Space Flight Center, except for NGC2000.0, which is Copyright © 1988, Sky +Publishing Corporation, used (but not distributed) by permission. The Digitized Sky Survey, 102 +CD-ROMs, is not distributed with the system. diff --git a/static/plan9-4e/man8/0intro.8 b/static/plan9-4e/man8/0intro.8 new file mode 100644 index 00000000..f96a521b --- /dev/null +++ b/static/plan9-4e/man8/0intro.8 @@ -0,0 +1,8 @@ +.TH INTRO 8 +.SH NAME +intro \- introduction to system administration +.SH DESCRIPTION +This manual section describes commands for system administration +as well as various utility programs necessary for the system +but not routinely invoked +by a user. diff --git a/static/plan9-4e/man8/9load.8 b/static/plan9-4e/man8/9load.8 new file mode 100644 index 00000000..bffcb43c --- /dev/null +++ b/static/plan9-4e/man8/9load.8 @@ -0,0 +1,407 @@ +.TH 9LOAD 8 +.SH NAME +9load, ld \- PC bootstrap program +.SH SYNOPSIS +.I "(Under MS-DOS) +.br +[ +.I drive +:][ +.I path +.RB ] ld +[ +.I 9load +] +.SH DESCRIPTION +.I 9load +and +.I ld +are programs that reside in a FAT file system and bootstrap Plan 9. +.I 9load +loads the kernel, but it cannot be run from DOS; use +.I ld +to bootstrap (by starting +.IR 9load ) +if DOS is running. +.I 9load +is run automatically by the boot procedures described below; +it cannot be run directly by hand. +There are three bootstrap sequences: +.IP \- +BIOS, MBR, disk partition PBS, +.IR 9load , +kernel +.IP \- +BIOS, floppy PBS, +.IR 9load , +kernel +.IP \- +BIOS, MBR, DOS, +.IR ld , +.IR 9load , +kernel. +.PP +Details follow. +.PP +.I 9load +is a bootstrap program that loads and starts a program, +typically the kernel, on a PC. +It is run by the PC partition boot sector program (PBS), +which usually resides in the first +sector of the active partition. +A copy of the Plan 9 PBS is kept in +.BR /386/pbs , +but due to the ``cylinder-head-sector'' (CHS) addressing mode of old BIOSes, it can only +operate up to 8.5GB into the disk. +Plan 9 partitions further into the disk +can only be booted using +.BR /386/pbslba , +and then only if the machine's BIOS supports +linear block addressing (LBA) mode for disk transfers. +.PP +When booting from floppy or hard disk, the BIOS loads the +first sector of the medium at location 0x7C00. In the +case of a floppy, this is the PBS. In the case of a hard +disk it it the master boot record (MBR). +The MBR copies itself to address +.BR 0x600 , +finds the active partition and loads its PBS at address +.BR 0x7C00 . +A copy of the Plan 9 MBR is kept in +.BR /386/mbr ; +some commercial MBRs cannot read sectors +past 2GB. +The Plan 9 MBR can read sectors up to 8.5GB into +the disk, and further if the BIOS supports LBA. +The single file +.B /386/mbr +detects whether the BIOS supports LBA and +acts appropriately, defaulting to CHS mode +when LBA is not present. +The PBSs cannot do this due to code size considerations. +The Plan 9 MBR is suitable for booting non-Plan 9 +operating systems, +and (modulo the large disk constraints just described) +non-Plan 9 MBRs are suitable for booting Plan 9. +.PP +Thus the default sequence is: BIOS, MBR, PBS, +.IR 9load , +kernel. +.PP +Because it contains many device drivers for different +disks and networks, +.I 9load +is larger than 64K and cannot be run as a DOS +.RB `` .com '' +executable. +A stripped-down version that knows about disks but not networks, +called +.I ld +(really +.BR ld.com ), +fits in 64K and can be used under DOS to load and start a program (default +.IR 9load ) +from the FAT16 partition. +Its command line argument is of the same format as the +.I bootfile +specifiers described below. +This profusion of loaders is unfortunate, but at least +.I ld +and +.I 9load +are compiled from the same source. +.PP +.I 9load +begins execution at address +.B 0x80010000 +(64K) and +loads the +.I bootfile +at the entry address specified by the header, +usually +.BR 0x80100020 . +After loading, control is passed to the entry location. +.PP +In summary, +Plan 9 can be booted on a PC two different ways: +either by booting MS-DOS and using +.I ld +to start +.I 9load +in the appropriate directory, +or by booting directly from a Plan 9 boot floppy or disk +partition +prepared using +.B format +to install the appropriate files and bootstrap sectors +(see +.IR prep (8)). +.PP +The +.IR bootfile , +which may be compressed with +.IR gzip (1), +can be specified to +.I 9load +as a +.B bootfile= +entry in +.IR plan9.ini , +or if booting from the ethernet, by a BOOTP server. +If the +.B plan9.ini +file contains multiple +.B bootfile= +entries, +.I 9load +will present a numerical menu of the choices; type +the corresponding number to select an entry. +.PP +The format of the +.I bootfile +name is +.IB device ! file +or +.IB device ! partition ! file\f1. +If +.BI ! file +is omitted, the default for the particular +.I device +is used. +Supported +.I devices +are +.TF \fLethern +.TP +.BI fd n +An MS-DOS floppy disk. +.I N +specifies the floppy drive, either +0 or 1. +The +.I bootfile +is the contents of the MS-DOS +.IR file . +There is no default file. +For compatibility with hard disks, a +.I partition +may be given, but only +.B dos +is recognized: +.BI fd0!dos! file\f1. +.TP +.BI ether n +Ethernet. +.I N +specifies the Ethernet device number. +If a +.I partition +is specified, it is taken to be the name of a host machine +from which to load the kernel. +.I file +is determined by the +.B /lib/ndb +(see +.IR ndb (6)) +entry for this PC. +.TP +.BI sd Cn +Non-floppy disk. +The device name format is described in +.IR sd (3). +A +.I partition +must be given and must +name a partition containing a FAT file system. +The name +.B dos +refers to the first DOS partition on a given device. +It is common for Plan 9 partitions to contain a small +FAT file system for configuration. +By convention, this partition is called +.BR 9fat . +There is no default partition or pathname. +.PD +.PP +When +.I 9load +starts running at physical address 0x10000, +it switches to 32-bit mode. +It then double maps the first 16Mb of physical memory to +virtual addresses 0 and 0x80000000. +Physical memory from 0x300000 upwards is used as data +space. +Next, in order to find configuration information, +.I 9load +searches all units on devices +.BR fd +and +.BI sd Cn \fR, +in that order, for a file called +.B plan9\eplan9.ini +or +.B plan9.ini +(see +.IR plan9.ini (8)) +on a partition named +.B dos +or +.BR 9fat . +If one is found, searching stops and the file is read into memory +at physical address 0x1200 +where it can be found later by any loaded +.IR bootfile . +Some options in +.B plan9.ini +are used by +.IR 9load : +.TF bootfile=manual +.TP +.B console +.TP +.B baud +Specifies the console device and baud rate if not a display. +.TP +.BI ether n +Ethernet interfaces. These can be used to load the +.I bootfile +over a network. +Probing for Ethernet interfaces is too prone to error. +.TP +.BI bootfile= bootfile +Specifies the +.IR bootfile . +This option is overridden by a command-line argument. +.TP +.B bootfile=auto +Default. +.TP +.B bootfile=local +Like +.IR auto , +but do not attempt to load over the network. +.TP +.B bootfile=manual +After determining which devices are available for loading from, +enter prompt mode. +.PD +.PP +When the search for +.B plan9.ini +is done, +.I 9load +proceeds to determine which bootfile to load. +If there was no +.I bootfile +option, +.I 9load +chooses a default +from the following prioritized device list: +.EX + fd sd ether +.EE +.I 9load +then attempts to load the +.I bootfile +unless +the +.B bootfile=manual +option was given, in which case prompt mode is entered immediately. +If the default device is +.BR fd , +.I 9load +will prompt the user for input before proceeding with the +default bootfile load after 5 seconds; +this prompt is omitted if +a command-line argument or +.I bootfile +option +was given. +.PP +.I 9load +prints the list of available +.IR device s +and +enters prompt mode on encountering any error +or if directed to do so by a +.B bootfile=manual +option. +In prompt mode, the user is required to type +a +.IB bootfile +in response to the +.L "Boot from: +prompt. +.PP +.I 9load +parses the master boot record and Plan 9 partition tables +(see +.IR prep (8)), +leaving partitioning information appended to the +in-memory contents of +.I plan9.ini +for the +.IR bootfile . +This is used by +.IR sd (3) +to initialize partitions so that +.IR kfs (4) +file systems can be mounted as the root file system. +A more extensive partitioning is typically done by +.I fdisk +and +.I prep +as part of +.I termrc +or +.I cpurc +(see +.IR cpurc (8)). +.PP +A +control-P +character typed at any time on the console causes +.B 9load +to perform a hardware reset +(Ctrl-Alt-Del can also be used on a PC keyboard). +.PP +When loaded from a PBS (rather than from +.IR ld.com ), +.I 9load +must be contiguously allocated on +the disk. +See +.IR dossrv (4) +for information on ensuring this. +.SH FILES +.RI [ drive :] +[ +.I path +.RB ] 9load +.br +.RI [ drive :] +[ +.I path +.RB ] ld +.br +.IB "FAT filesystem" :\eplan9\eplan9.ini +.br +.IB "FAT filesystem" :\eplan9.ini +.SH SOURCE +.B /sys/src/boot/pc +.SH "SEE ALSO" +.IR plan9.ini (8), +.IR prep (8) +.SH BUGS +.PP +Much of the work done by +.B 9load +is duplicated by the loaded kernel. +.PP +If +.I ld +detects an installed MS-DOS Extended Memory Manager, +it attempts to de-install it, but the technique +used may not always work. +It is safer not to install the Extended Memory Manager before running +.IR ld . diff --git a/static/plan9-4e/man8/9pcon.8 b/static/plan9-4e/man8/9pcon.8 new file mode 100644 index 00000000..23ba23ce --- /dev/null +++ b/static/plan9-4e/man8/9pcon.8 @@ -0,0 +1,160 @@ +.TH 9PCON 8 +.SH NAME +9pcon \- 9P to text translator +.SH SYNOPSIS +.B aux/9pcon +[ +.B -cn +] +[ +.B -m +.I msize +] +.I service +.SH DESCRIPTION +.I 9pcon +provides a textual interface to +.IR service , +a conventional 9P server. +By default, +.I 9pcon +interprets +.I service +as a file to be opened. +The +.B -c +flag causes +.I 9pcon +to interpret +.I service +as a command to run which will carry out a +(binary) 9P +conversation over file descriptors 0 and 1. +The +.B -n +flag +causes +.I 9pcon +to interpret +.I service +as a network address to dial. +.PP +Once the connection is established, +.I 9pcon +prints R-messages as they arrive from the server, +and sends T-messages as they are typed on standard input. +There is no prompt. +Lines beginning with # are ignored. +The syntax for T-messages is one of: +.IP +.B Tversion +.I msize +.I version +.br +.B Tauth +.I afid +.I uname +.I aname +.br +.B Tattach +.I fid +.I afid +.I uname +.I aname +.br +.B Twalk +.I fid +.I newfid +.I wname... +.br +.B Topen +.I fid +.I mode +.br +.B Tcreate +.I fid +.I name +.I perm +.I mode +.br +.B Tread +.I fid +.I offset +.I count +.br +.B Twrite +.I fid +.I offset +.I data +.br +.B Tclunk +.I fid +.br +.B Tremove +.I fid +.br +.B Tstat +.I fid +.br +.B Twstat +.I fid +.I name +.I uid +.I gid +.I mode +.I mtime +.I length +.br +.B Tflush +.I oldtag +.LP +See +.IR intro (5) +for a description of the fields in each message. +For the most part, the syntax mirrors the description +of the messages in section 5. +The exceptions are that +the tags on the T-messages are added automatically; +.BR Twalk 's +.I nwname +count is inferred from the number of +.I wnames +given; +and +.BR Twstat 's +.I dir +is in expanded form rather than being an opaque byte sequence. +Note that since commands are parsed with +.B tokenize +(see +.IR getfields (2)), +it is easy to pass empty strings for absent +.IR name , +.IR uid , +and +.I gid +fields. +To ease specifying default integer fields, the +.B Twstat +message recognizes +.B ~0 +in the +.IR mode , +.IR mtime , +and +.I length +arguments. +For example, +.EX + Twstat 101 '' '' sys ~0 ~0 ~0 +.EE +sends a +.I wstat +message that attempts to change the group id associated with +.SH SOURCE +.B /sys/src/cmd/aux/9pcon.c +.SH SEE ALSO +.IR intro (5) +.SH BUGS +There should be a flag to wait for responses, +to facilitate scripting. diff --git a/static/plan9-4e/man8/INDEX.8 b/static/plan9-4e/man8/INDEX.8 new file mode 100644 index 00000000..6a86e3c4 --- /dev/null +++ b/static/plan9-4e/man8/INDEX.8 @@ -0,0 +1,157 @@ +0intro 0intro +intro 0intro +9load 9load +ld 9load +9pcon 9pcon +apm apm +auth auth +auth.srv auth +changeuser auth +convkeys auth +convkeys2 auth +disable auth +enable auth +guard.srv auth +login auth +printnetkey auth +status auth +wrkey auth +boot boot +booting booting +buildindex buildindex +checkarenas checkarenas +checkindex checkindex +cpurc cpurc +termrc cpurc +cron cron +dhcpd dhcpd +rarpd dhcpd +tftpd dhcpd +drawterm drawterm +fmtarenas fmtarenas +fmtindex fmtindex +fmtisect fmtisect +exsort fs +fs fs +fsconfig fsconfig +echo httpd +httpd httpd +imagemap httpd +man2html httpd +save httpd +init init +ipconfig ipconfig +rip ipconfig +ftpd ipserv +imap4d ipserv +ipserv ipserv +rexexec ipserv +rlogind ipserv +telnetd ipserv +kfscmd kfscmd +ksync kfscmd +il17007 listen +il17008 listen +il17009 listen +il17013 listen +il17031 listen +il19 listen +il565 listen +il566 listen +il7 listen +il9 listen +listen listen +tcp110 listen +tcp113 listen +tcp143 listen +tcp17007 listen +tcp17009 listen +tcp17013 listen +tcp19 listen +tcp21 listen +tcp23 listen +tcp25 listen +tcp513 listen +tcp515 listen +tcp53 listen +tcp564 listen +tcp565 listen +tcp566 listen +tcp567 listen +tcp7 listen +tcp9 listen +tcp993 listen +lp lp +dump9660 mk9660 +mk9660 mk9660 +mkext mkfs +mkfs mkfs +mkpaqfs mkpaqfs +mksacfs mksacfs +aux/accupoint mouse +aux/mouse mouse +mouse mouse +na na +cs ndb +csquery ndb +dns ndb +dnsdebug ndb +dnsquery ndb +ipquery ndb +mkdb ndb +mkhash ndb +mkhosts ndb +ndb ndb +query ndb +newuser newuser +9auth nfsserver +nfsserver nfsserver +pcnfsd nfsserver +portmapper nfsserver +pcmcia pcmcia +gping ping +hogports ping +ping ping +traceroute ping +plan9.ini plan9.ini +ppp ppp +pppoe ppp +pptp ppp +pptpd ppp +fdisk prep +format prep +mbr prep +prep prep +qer qer +runq qer +rdarena rdarena +reboot reboot +applychanges replica +applylog replica +compactdb replica +replica replica +updatedb replica +scanmail scanmail +testscan scanmail +scuzz scuzz +secstore secstore +secstored secstore +secuser secstore +securenet securenet +snoopy snoopy +stats stats +swap swap +timesync timesync +tlssrv tlssrv +udpecho udpecho +bootfloppy update +bootplan9 update +bootwin9x update +bootwinnt update +personalize update +setup.9fat update +setup.disk update +setup.kfs update +update update +venti venti +vga vga diff --git a/static/plan9-4e/man8/INDEX.html.8 b/static/plan9-4e/man8/INDEX.html.8 new file mode 100644 index 00000000..0bb88c67 --- /dev/null +++ b/static/plan9-4e/man8/INDEX.html.8 @@ -0,0 +1,237 @@ + +plan 9 man section 8 + + +[manual index] +

Plan 9 from Bell Labs - Section 8 - System Administration

+
+
+
0intro +- introduction to system administration +
intro + +
9load +- PC bootstrap program +
9load, ld + +
9pcon +- 9P to text translator +
9pcon + +
apm +- Advanced Power Management 1.2 BIOS interface +
apm + +
auth +- maintain authentication databases +
changeuser, wrkey, convkeys, convkeys2, printnetkey, status, auth.srv, guard.srv, login, disable, enable + +
boot +- connect to the root file server +
boot + +
booting +- bootstrapping procedures +
booting + +
buildindex +- rebuild a Venti index +
buildindex + +
checkarenas +- check the integrity, and optionally fix, Venti arenas +
checkarenas + +
checkindex +- check the integrity and optionally fix a Venti index +
checkindex + +
cpurc +- boot script +
cpurc, termrc + +
cron +- clock daemon +
cron + +
dhcpd +- Internet booting +
dhcpd, rarpd, tftpd + +
drawterm +- connect to Plan 9 CPU servers from other operating systems +
drawterm + +
fmtarenas +- format a file into a number of Venti arenas +
fmtarenas + +
fmtindex +- format a Venti index +
fmtindex + +
fmtisect +- format a Venti index section +
fmtisect + +
fs +- file server maintenance +
fs, exsort + +
fsconfig +- configuring a file server +
fsconfig + +
httpd +- HTTP server +
httpd, echo, save, imagemap, man2html + +
init +- initialize machine upon booting +
init + +
ipconfig +- Internet configuration and routing +
ipconfig, rip + +
ipserv +- Internet remote access daemons +
telnetd, rlogind, rexexec, ftpd, imap4d + +
kfscmd +- kfs administration +
kfscmd, ksync + +
listen +- listen for calls on a network device +
listen, il7, il9, il19, il565, il566, il17007, il17008, il17009, il17013, il17031, tcp7, tcp9, tcp19, tcp21, tcp23, tcp25, tcp53, tcp110, tcp113, tcp143, tcp513, tcp515, tcp564, tcp565, tcp566, tcp567, tcp993, tcp17007, tcp17009, tcp17013 + +
lp +- PostScript preprocessors +
lp + +
mk9660 +- create an ISO-9660 CD image +
dump9660, mk9660 + +
mkfs +- archive or update a file system +
mkfs, mkext + +
mkpaqfs +- make a compressed read-only file system +
mkpaqfs + +
mksacfs +- make a compressed file system +
mksacfs + +
mouse +- configure a mouse to a port +
aux/mouse, aux/accupoint + +
na +- assembler for the Symbios Logic PCI-SCSI I/O Processors +
na + +
ndb +- network database +
query, mkhash, mkdb, cs, csquery, dns, dnsquery, ipquery, dnsdebug, mkhosts + +
newuser +- adding a new user +
newuser + +
nfsserver +- NFS service +
nfsserver, portmapper, pcnfsd, 9auth + +
pcmcia +- identify a PCMCIA card +
pcmcia + +
ping +- probe the Internet +
ping, gping, traceroute, hogports + +
plan9.ini +- configuration file for PCs +
plan9.ini + +
ppp +- point to point protocol +
ppp, pppoe, pptp, pptpd + +
prep +- prepare hard and floppy diskettes, flashes +
prep, fdisk, format, mbr + +
qer +- queue management for spooled files +
qer, runq + +
rdarena +- extract a Venti arena +
rdarena + +
reboot +- reboot the system upon loss of remote file server connection +
reboot + +
replica +- simple client-server replica management +
applychanges, applylog, compactdb, updatedb + +
scanmail +- spam filters +
scanmail, testscan + +
scuzz +- SCSI target control +
scuzz + +
secstore +- secstore commands +
secstored, secuser + +
securenet +- Digital Pathways SecureNet Key remote authentication box +
securenet + +
snoopy +- spy on network packets +
snoopy + +
stats +- display graphs of system activity +
stats + +
swap +- establish a swap file +
swap + +
timesync +- synchronize the system clock to a time source +
timesync + +
tlssrv +- TLS server +
tlssrv + +
udpecho +- echo UDP packets +
udpecho + +
update +- administration for local file systems +
bootfloppy, bootplan9, bootwin9x, bootwinnt, personalize, setup.9fat, setup.disk, setup.kfs, update + +
venti +- an archival block storage server +
venti + +
vga +- configure a VGA card +
vga + +
diff --git a/static/plan9-4e/man8/Makefile b/static/plan9-4e/man8/Makefile new file mode 100644 index 00000000..a2af6bc6 --- /dev/null +++ b/static/plan9-4e/man8/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.8) + +include ../../mandoc.mk diff --git a/static/plan9-4e/man8/apm.8 b/static/plan9-4e/man8/apm.8 new file mode 100644 index 00000000..23fdd668 --- /dev/null +++ b/static/plan9-4e/man8/apm.8 @@ -0,0 +1,111 @@ +.TH APM 8 +.SH NAME +apm \- Advanced Power Management 1.2 BIOS interface +.SH SYNOPSIS +.I (in plan9.ini) +.B apm0= +.PP +bind -a '#P' /dev +.PP +.B aux/apm +[ +.B -d +.I device +] +[ +.B -m +.I mountpoint +] +[ +.B -s +.I service +] +.SH DESCRIPTION +.I Aux/apm +presents at +.I mountpoint +(default +.BR /mnt/apm ) +an interface to the APM 1.2 BIOS +(see +.IR apm (3)) +.I device +(the default is to try +.BR /dev/apm , +followed by +.BR #P/apm ). +If a +.I service +is specified, the interface will be +posted at +.BI /srv/ service +as well. +.PP +The directory contains the following files. +.TP +.B battery +Contains one line for each battery in the system. +Each line lists three fields: the status (a string, one of +.BR unknown , +.BR high , +.BR low , +.BR critical , +or +.BR charging ), +the percent charge remaining, and +an estimate of the amount of time left in seconds. +If either or both of the last two are unknown, +the corresponding field will be zero. +.TP +.B ctl +The +.B ctl +file is used to set power management modes for +various parts of the system. +Control messages are of the form +.RI `` device " " verb ,'' +where +.I device +is one of +.BR system , +.BR display , +.BR storage , +.BR lpt , +.BR eia , +.BR network , +and +.BR pcmcia , +and +.I verb is one of +.BR enable , +.BR disable , +.BR standby , +and +.BR on . +.B Enable +and +.B disable +control whether power management is active +for the device, while +.B standby +puts the device into standby mode +and +.B on +brings it back to full power. +.TP +.B event +Reads from this file will block until an APM event +has occurred. +A large enough read is guaranteed to return +an integral number of textual event descriptions, one per line. +.SH SOURCE +.B /sys/src/cmd/aux/apm.c +.br +.B /acme/bin/Battery +.SH BUGS +The verbs +.B suspend +and +.B off +should be supported but doing so requires +nontrivial help from the kernel. diff --git a/static/plan9-4e/man8/auth.8 b/static/plan9-4e/man8/auth.8 new file mode 100644 index 00000000..5aabf0ac --- /dev/null +++ b/static/plan9-4e/man8/auth.8 @@ -0,0 +1,194 @@ +.TH AUTH 8 +.SH NAME +changeuser, wrkey, convkeys, convkeys2, printnetkey, status, auth.srv, guard.srv, login, disable, enable \- maintain authentication databases +.SH SYNOPSIS +.B auth/changeuser +.RB [ -np ] +.I user +.PP +.B auth/wrkey +.PP +.B auth/convkeys +.RB [ -p ] +.I keyfile +.PP +.B auth/convkeys +.RB [ -p ] +.I keyfile +.PP +.B auth/printnetkey +.I user +.PP +.B auth/status +.I user +.PP +.B auth/enable +.I user +.PP +.B auth/disable +.I user +.PP +.B auth/auth.srv +.PP +.B auth/guard.srv +.PP +.B auth/login +.I user +.SH DESCRIPTION +These administrative commands run only on the authentication server. +.IR Changeuser +manipulates an authentication database file system served by +.IR keyfs (4) +and used by file servers. +There are two authentication databases, +one holding information about Plan 9 accounts +and one holding SecureNet keys. +A +.I user +need not be installed in both databases +but must be installed in the Plan 9 database to connect to a Plan 9 service. +.PP +.I Changeuser +installs or changes +.I user +in an authentication database. +It does not install a user on a Plan 9 file server; see +.IR fs (8) +for that. +.PP +Option +.B -p +installs +.I user +in the Plan 9 database. +.I Changeuser +asks twice for a password for the new +.IR user . +If the responses do not match +or the password is too easy to guess +the +.I user +is not installed. +.I Changeuser +also asks for an APOP secret. +This secret is used in the APOP (RFC1939), +CRAM (RFC2195), and +Microsoft challenge/response protocols used for +POP3, IMAP, and VPN access. +.PP +Option +.B -n +installs +.I user +in the SecureNet database and prints out a key for the SecureNet box. +The key is chosen by +.IR changeuser . +.PP +If neither option +.B -p +or option +.B -n +is given, +.I changeuser +installs the +.I user +in the Plan 9 database. +.PP +.I Changeuser +prompts for +biographical information such as email address, +user name, sponsor and department number and +appends it to the file +.B /adm/netkeys.who +or +.BR /adm/keys.who . +.PP +.I Wrkey +prompts for a machine key, host owner, and host domain and stores them in +local non-volatile RAM. +.PP +.I Convkeys +re-encrypts the key file +.IR keyfile . +Re-encryption is performed in place. +Without the +.B -p +option +.I convkeys +uses the key stored in +.B /dev/keys +to decrypt the file, and encrypts it using the new key. +By default, +.I convkeys +prompts twice for the new password. +The +.B -p +forces +.I convkeys +to also prompt for the old password. +The format of +.I keyfile +is described in +.IR keyfs (4). +.PP +The format of the key file changed between Release 2 +and 3 of Plan 9. +.I Convkeys2 +is like +.IR convkeys . +However, in addition to rekeying, it converts from +the previous format to the Release 3 format. +.PP +.I Printnetkey +displays the network key as it should be entered into the +hand-held Securenet box. +.PP +.I Status +is a shell script that prints out everything known about +a user and the user's key status. +.PP +.I Enable/disable +are shell scripts that enable/disable both the Plan 9 and +Netkey keys for individual users. +.PP +.I Auth.srv +is the program, run only on the authentication server, that handles ticket requests +on IL port 566. +It is started +by an incoming call to the server +requesting a conversation ticket; its standard input and output +are the network connection. +.I Auth.srv +executes the authentication server's end of the appropriate protocol as +described in +.IR authsrv (6). +.PP +.I Guard.srv +is similar. It is called whenever a foreign (e.g. Unix) system wants +to do a SecureNet challenge/response authentication. +.PP +.I Login +allows a user to change his authenticated id to +.IR user . +.I Login +sets up a new namespace from +.B /lib/namespace +and exec's +.IR rc (1) +under the new id. +.SH FILES +.TF /sys/lib/httppasswords +.TP +.B /adm/keys.who +List of users in the Plan 9 database. +.TP +.B /adm/netkeys.who +List of users in the SecureNet database. +.TP +.B /sys/lib/httppasswords +List of realms and passwords for HTTP access. +.SH SOURCE +.B /sys/src/cmd/auth +.SH "SEE ALSO" +.IR keyfs (4), +.IR securenet (8) diff --git a/static/plan9-4e/man8/boot.8 b/static/plan9-4e/man8/boot.8 new file mode 100644 index 00000000..65d292cf --- /dev/null +++ b/static/plan9-4e/man8/boot.8 @@ -0,0 +1,258 @@ +.TH BOOT 8 +.SH NAME +boot \- connect to the root file server +.SH SYNOPSIS +.B /boot +[ +.B -fkm +] +[ +.BI -u username +] +[ +.IB method ! fs-addr +] +.SH DESCRIPTION +.PP +.I Boot +is the first program run after a kernel has been loaded. +It connects to the file server that will serve the +root, performs any authentication needed to +connect to that server, and +.IR exec (2)'s +the +.IR init (8) +program. +It is started by the kernel, never run directly by the user. See +.IR booting (8) +for information about the process of loading the kernel (and +.IR boot ) +into memory. +.PP +Once loaded, the kernel initializes its data structures and devices. +It sets the two environment variables +.B /env/cputype +and +.B /env/terminal +to describe the processor. +It then binds a place-holder file server, +.IR root (3), +onto +.B / +and crafts an initial process whose sole function is to +.IR exec (2) +.BR /boot , +a binary which is compiled into +.IR root (3). +.PP +The command line passed depends +on the information passed from boot ROM +to kernel. +Machines that boot directly from ROM (that is, most machines other than PCs) +pass the boot line given to the ROM directly to +.IR boot . +.PP +On the PC, each line in the DOS file +.B plan9.ini +of the form +.IB name = value +is passed to the boot program as an environment +variable with the same name and value. +The command line is +.IP +.B /386/9dos +.IB method ! server +.PP +(The first argument is ignored by +.IR boot .) +.I Boot +must determine the file +.I server +to use +and a +.I method +with which to connect to it. +Typically this will name a file server on the network, +or state that the root file system is on local disk and name the partition. +The complete list of methods is given below. +.PP +.I Boot +must also set a user name to be used +as the owner of devices and all console +processes and an encryption key to be used +when challenged. +.I Boot +will prompt for these. +.PP +Method and address are prompted for first. +The prompt lists all valid methods, with the default in brackets, for example: +.IP +.EX +root is from (il, local!#S/sdC0/fs)[il]: +.EE +.PP +A newline picks the default. +Other possible responses are +.I method +or +.IB method ! address\f1. +To aid in automatic reboot, the default is automatically +taken on CPU servers if nothing is typed within 15 seconds. +.PP +The other interactions depend on whether the system +is a +terminal or a CPU server. +.SS Terminal +.PP +The terminal must have a +.I username +to set. +If none is specified with the +.B -u +option, +.I boot +will prompt for one on the console: +.IP +.EX +user: +.EE +.PP +The user will also be prompted for a password to +be used as an encryption key on each +.IR attach (5): +.IP +.EX +password: +.EE +.PP +With most +.I methods +.I boot +can now connect to the file server. +However, with the serial line +.I methods +.B 9600 +and +.BR 19200 , +the actual mechanics of setting up the complete connection +are too varied to put into the boot program. +Instead +.I boot +lets the user set up the connection. +It prints a prompt on the console and then simulates +a dumb terminal between the user and the serial line: +.IP +.EX +Connect to file system now, type ctrl-d when done. +(Use the view or down arrow key to send a break) +.EE +.PP +The user can now type at the modem to +dial the number. What is typed depends on +the modem and is beyond this discussion. +.PP +When the user types a control-D, +.I boot +stops simulating a terminal and starts the file +system protocol over the serial line. +.PP +Once connected, +.I boot +mounts +the root file system before +.B / +and makes the connection available as +.B #s/boot +for subsequent processes to +.B mount +(see +.IR bind (2)). +.I Boot +completes by +.IR exec (2)'ing +.B /$objtype/init +.BR -t . +If the +.B -m +option is given it is also passed as an option to +.IR init . +.PP +If the kernel has been built with the cache file system, +.IR cfs (4), +the local disk partition +.BI /dev/sd XX /cache +(where +.B XX +is a unit specifier) +exists, and the root file system is from a remote server, +then the kernel will insert a user level cache +process between the remote server and the local namespace +that caches all remote accesses on the local partition. +The +.B -f +flag commands +.B cfs +to reformat the cache partition. +.SS CPU Servers +.PP +The user owning devices and console processes on CPU servers +and that user's domain and encryption key are +read from NVRAM on all machines except PC's. +PC's keep the information in the disk partition +.BI /dev/sd XX /nvram\f1. +If a +.B -k +option is given or if no stored information is found +.I boot +will prompt for all three items and store them. +.IP +.EX +password: +authid: bootes +authdom: research.bell-labs.com +.EE +.PP +The key is used for mutual authentication of the server and its clients. +The domain and id identify the owner of the key. +.PP +Once connected, +.I boot +behaves as on the terminal except for +.IR exec (2)'ing +.B /$objtype/init +.BR -c . +.SS Booting Methods +.PP +The methods available to any system depend on what was +compiled into the kernel. +The complete list of booting methods are listed below. +.TP 8 +.B il +connect via Ethernet using the IL protocol. +.TP 8 +.B tcp +connect via Ethernet using the TCP protocol. +This method is used only if the initial file server +is on a Unix system. +.TP 8 +.B local +connect to the local file system. +.PP +For the +.B il +and +.B tcp +methods, +the address must be a numeric IP address. +If no address is specified, +a file server address will be found from another +system on the network using the BOOTP protocol and +the Plan 9 vendor-specific fields. +.SH FILES +.B #s/boot +.SH SOURCE +.B /sys/src/9/boot +.SH "SEE ALSO" +.IR root (3), +.IR dhcpd (8), +.IR init (8) diff --git a/static/plan9-4e/man8/booting.8 b/static/plan9-4e/man8/booting.8 new file mode 100644 index 00000000..a8dd4fdd --- /dev/null +++ b/static/plan9-4e/man8/booting.8 @@ -0,0 +1,158 @@ +.TH BOOTING 8 +.SH NAME +booting \- bootstrapping procedures +.SH SYNOPSIS +none +.SH DESCRIPTION +This manual page collects the incantations required to bootstrap Plan 9 machines. +Some of the information here is specific to the installation at Bell Labs; +some is generic. +.PP +If a CPU server is up, BOOTP/DHCP and TFTP will run from there; +if not, the necessary files and services must be available on a separate machine, +such as a Unix system, to use these protocols for bootstrapping. +.PP +Be sure to read +.IR boot (8) +to understand what happens after the kernel is loaded. +.SS Terminals +To bootstrap a diskless terminal or a CPU server, a file server must be running. +PCs can boot from a floppy disk or any FAT16 partition. +On all the terminals, typing two control-T's followed by a lower-case +.B r +reboots the machine; +other methods of rebooting are mentioned for some machines. +.SS PCs +To boot a PC, it is necessary to get +.B /386/9load +loaded into memory. +There are many ways to do this. A Plan 9 boot floppy prepared by +.B format +(see +.IR prep (8)) +will load +.B 9load +when the PC is reset or powered on. +Other methods are described in +.IR 9load (8). +.B 9load +then locates and loads a Plan 9 kernel, using configuration information +from the file +.B plan9.ini +stored in the +.B 9fat +configuration partition or on a DOS file system. +See +.IR 9load (8) +for details. +.PP +Once the kernel is booted, it behaves like the others. +See +.IR boot (8) +for details. +.SS Alpha PCs +Alpha PCs must be booted via TFTP using the SRM console. +If the system has ARC firmware instead, SRM may be downloaded from +.IP +.EX +http://www.compaq.com/ +.EE +.PP +You must configure the SRM firmware to load the file +.BR /alpha/bootalphapc . +The following commands may be used (replace +.B ewa0 +with the name of your ethernet device, if different): +.IP +.EX +set boot_reset ON +set boot_file /alpha/bootalphapc +set bootdef_dev ewa0 +set ewa0_inet_init bootp +set ewa0_protocols BOOTP +.EE +.PP +This secondary bootstrap program will first load the file +.BR /alpha/conf/ +(substituting the IP address of the system as obtained via bootp). +This file is expected to be in +.IR plan9.ini (8) +format (the file +.B /alpha/conf/10.0.0.2 +may be used as a template). +It then loads the kernel via tftp, using the value of +.B bootfile +to tell it which file to load; this should be +.B /alpha/9apc +for terminals. +.SS CPU Servers +The Plan 9 CPU servers are multi-user, so they do not request a user name +when booting. +On the CPU servers, typing a control-P on the console reboots the machine. +.SS PC CPU Server +Proceed as for the PC terminal, but load +.B /386/9pccpu +or +.BR /386/9pccpudisk . +.SS Alpha PC CPU Server +Proceed as for the Alpha PC terminal, but use +.B /alpha/9apccpu +as the value of +.BR bootfile . +.SS SGI Challenge multiprocessor CPU Server +The Challenge ROM monitor can boot from the Ethernet. +To boot from the Ethernet, type +.IP +.EX +.B bootp()/mips/9ch +.EE +.PP +or use the ROM command +.B setenv +to set the variable +.B bootfile +to that same string and type +.BR boot . +To load a different file, tell +.B bootp +which file to load, +and to force the download to come from a particular system, +.BR bootp()system:file . +Any arguments after +.B bootp()file +are passed to +.BR /boot . +If you are running a Plan 9 +.SM BOOTP +server (see +.IR dhcpd (8)), +the file name can be omitted and the +file specified by the +.B bootf +parameter for the machine in +.BR /lib/ndb +will be downloaded by default. +.PP +Once the kernel is loaded, +it prompts for the Ethernet +protocol to use to reach the root file server; request the default. +.PP +.SS File servers +The CPU servers and terminals run essentially the same program, but +the Plan 9 file servers run a distinct system. +The file servers accept only the commands described in +.IR fs (8) +on their consoles. +.SS PC File Server +Boot the PC file server like a regular PC, loading the appropriate file system kernel. +.SH "SEE ALSO" +.IR 9load (8), +.IR boot (8), +.IR fs (8), +.IR init (8), +.IR plan9.ini (8) +.SH SOURCE +Sources for the various boot programs are under +.BR /sys/src/boot . +.SH BUGS +The file server should be able to boot from its own disk. diff --git a/static/plan9-4e/man8/buildindex.8 b/static/plan9-4e/man8/buildindex.8 new file mode 100644 index 00000000..43d03e10 --- /dev/null +++ b/static/plan9-4e/man8/buildindex.8 @@ -0,0 +1,62 @@ +.TH BUILDINDEX 8 +.SH NAME +buildindex \- rebuild a Venti index +.SH SYNOPSIS +.B venti/buildindex +[ +.B -B +.I blockcachesize +] +[ +.B -Z +] +.I venti.config +.I tmp +.SH DESCRIPTION +.I Buildindex +populates the index for the Venti system described in +.IR venti.config . +The index must have previously been formatted using +.IR fmtindex (8). +This command is typically used to build a new index for a Venti +system when the old index becomes too small, or to rebuild +an index after media failure. +Small errors in an index can usually be fixed with +.IR checkindex (8). +.PP +The +.I tmp +file, usually a disk partition, must be large enough to store a copy of the index. +This temporary space is used to perform a merge sort of index entries +generated by reading the arenas. +.PP +Options to +.I buildindex +are: +.TP +.BI -B " blockcachesize +The amount of memory, in bytes, to use for caching raw disk accesses while running +.IR buildindex . +(This is not a property of the created index.) +The default is 8k. +The units for the size can be specified by appending +.LR k , +.LR m , +or +.LR g +to indicate kilobytes, megabytes, or gigabytes respectively. +.TP +.B -Z +Do not zero the index. +This option should only be used when it is known that the index was already zeroed. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8), +.IR checkindex (8), +.IR fmtindex (8), +.IR venti.conf (6) +.SH BUGS +Should allow an individual index section to be rebuilt. +The merge sort could be performed in the space used to store the +index rather than requiring a temporary file. diff --git a/static/plan9-4e/man8/checkarenas.8 b/static/plan9-4e/man8/checkarenas.8 new file mode 100644 index 00000000..e817c9cb --- /dev/null +++ b/static/plan9-4e/man8/checkarenas.8 @@ -0,0 +1,34 @@ +.TH CHECKARENAS 8 +.SH NAME +checkarenas \- check the integrity, and optionally fix, Venti arenas +.SH SYNOPSIS +.B venti/checkarenas +[ +.B -afv +] +.I file +.SH DESCRIPTION +.I Checkarenas +examines the Venti arenas contained in the given +.IR file . +The program detects various error conditions, and optionally attempts +to fix any errors that are found. +.PP +Option to +.I checkarenas +are: +.TP +.B -a +For each arena, scan the entire data section. +If this option is omitted, only the end section of +the arena is examined. +.TP +.B -f +Attempt to fix any errors that are found. +.TP +.B -v +Increase the verbosity of output. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8) diff --git a/static/plan9-4e/man8/checkindex.8 b/static/plan9-4e/man8/checkindex.8 new file mode 100644 index 00000000..2ae21f51 --- /dev/null +++ b/static/plan9-4e/man8/checkindex.8 @@ -0,0 +1,52 @@ +.TH CHECKINDEX 8 +.SH NAME +checkindex \- check the integrity and optionally fix a Venti index +.SH SYNOPSIS +.B venti/checkindex +[ +.B -f +] +[ +.B -B +.I blockcachesize +] +.I venti.config +.I tmp +.SH DESCRIPTION +.I Checkindex +examines the Venti index described in +.IR venti.config . +The program detects various error conditions including: +blocks that are not indexed, index entries for blocks that do not exist, +and duplicate index entries. +If requested, an attempt can be made to fix errors that are found. +.PP +The +.I tmp +file, usually a disk partition, must be large enough to store a copy of the index. +This temporary space is used to perform a merge sort of index entries +generated by reading the arenas. +.PP +Option to +.I checkindex +are: +.TP +.BI -B " blockcachesize +The amount of memory, in bytes, to use for caching raw disk accesses while running +.IR checkindex . +The default is 8k. +The units for the size can be specified by appending +.LR k , +.LR m , +or +.LR g +to indicate kilobytes, megabytes, or gigabytes respectively. +.TP +.B -f +Attempt to fix any errors that are found. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8), +.IR buildindex (8), +.IR venti.conf (6) diff --git a/static/plan9-4e/man8/cpurc.8 b/static/plan9-4e/man8/cpurc.8 new file mode 100644 index 00000000..13fe0df4 --- /dev/null +++ b/static/plan9-4e/man8/cpurc.8 @@ -0,0 +1,67 @@ +.TH CPURC 8 +.SH NAME +cpurc, termrc \- boot script +.SH SYNOPSIS +.B cpurc +.PP +.B termrc +.SH DESCRIPTION +After the kernel boots, it execs +.B /boot +(see +.IR root (3)), +which in turn execs +.BR /$cputype/init . +.IR Init (8) +sets the +.B $service +environment variable to +.B cpu +or +.BR terminal , +and then invokes the appropriate +.B rc +script to bring the system up. +.PP +Based on the values of +.B $sysname +and +.B $terminal +these scripts start appropriate network processes and +administrative daemons and enable swapping. +.I Cpurc +sets +.B /env/boottime +to the time +.I cpurc +was executed and +.B /env/NPROC +to a value suitable for parallel compilation in +.IR mk (1). +.PP +These files should be edited by local installations +to reflect the configuration of their systems. +If an executable file +.B /sys/lib/sysconfig/termrc/$sysname +exists for the machine named +.BR $sysname , +.I termrc +will execute it as its last act. +This action is suppressed, as is automatic initialization of the mouse and +VGA on a PC, if the user is +.BR none . +.SH FILES +.TF /sys/lib/sysconfig/termrc +.TP +.B /sys/lib/sysconfig/termrc +machine-specific configuration scripts for +.IR termrc . +.SH SOURCE +.B /rc/bin/cpurc +.br +.B /rc/bin/termrc +.SH "SEE ALSO" +.IR srv (4), +.IR namespace (6), +.IR init (8), +.IR listen (8) diff --git a/static/plan9-4e/man8/cron.8 b/static/plan9-4e/man8/cron.8 new file mode 100644 index 00000000..a6fbf40d --- /dev/null +++ b/static/plan9-4e/man8/cron.8 @@ -0,0 +1,111 @@ +.TH CRON 8 +.SH NAME +cron \- clock daemon +.SH SYNOPSIS +.B auth/cron +[ +.B -c +] +.SH DESCRIPTION +.I Cron +executes commands at specified dates and times according +to instructions in the files +.BI /cron/ user /cron\f1. +It runs only on an authentication server. +Option +.B -c +causes +.I cron +to create +.BI /cron/ user +and +.BI /cron/ user /cron +for the current user; +it can be run from any Plan 9 machine. +.PP +Blank lines and lines beginning with +.B # +in these files are ignored. +Entries are lines with fields +.IP +.I +minute hour day month weekday host command +.PP +.I Command +is a string, which may contain spaces, that is passed to an +.IR rc (1) +running on +.I host +for execution. +The first five fields are integer patterns for +.PD0 +.RS +.TP \w'month\ of\ year\ \ 'u +minute +0\-59 +.TP +hour +0\-23 +.TP +day of month +1\-31 +.TP +month of year +1\-12 +.TP +day of week +0\-6; 0=Sunday +.PD +.RE +.PP +The syntax for these patterns is +.IP +.EX +time : '*' + | range +range : number + | number '-' number + | range ',' range +.EE +.PP +Each number must be in the appropriate range. +Hyphens specify inclusive ranges of valid times; +commas specify lists of valid time ranges. +.PP +To run the job, +.I cron +calls +.I host +and authenticates remote execution, equivalent to running +.B rx +.I host +.I command +(see +.IR con (1)). +The user's profile is run with +.B $service +set to +.BR rx . +.PP +.I Cron +is not a reliable service. +It skips commands if it cannot reach +.I host +within two minutes, or if the +.I cron +daemon is +not running at the appropriate time. +.SH EXAMPLES +Here is the job that mails system news. +.IP +.EX +% cat /cron/upas/cron +# send system news +15 8-17, 21 *** helix /mail/lib/mailnews +% +.EE +.SH SOURCE +.B /sys/src/cmd/auth/cron.c +.SH "SEE ALSO" +.IR con (1), +.IR rc (1) diff --git a/static/plan9-4e/man8/dhcpd.8 b/static/plan9-4e/man8/dhcpd.8 new file mode 100644 index 00000000..838a38ed --- /dev/null +++ b/static/plan9-4e/man8/dhcpd.8 @@ -0,0 +1,272 @@ +.TH DHCPD 8 +.SH NAME +dhcpd, rarpd, tftpd \- Internet booting +.SH SYNOPSIS +.PP +.B ip/dhcpd +.RB [ -mdsnp ] +.RB [ -f +.IR ndb-file ] +.RB [ -x +.IR netmtpt ] +.RB [ -M +.IR secs ] +[ +.I address +.I n +]* +.PP +.B ip/rarpd +.RB [ -d ] +.RB [ -e +.IR etherdev ] +.RB [ -x +.IR netmtpt ] +.PP +.B ip/tftpd +.RB [ -dr ] +.RB [ -h +.IR homedir ] +.RB [ -x +.IR netmtpt ] +.SH DESCRIPTION +These programs support booting over the Internet. +They should all be run on the same server to +allow other systems to be booted. +.I Dhcpd +and +.I tftpd +are used to boot everything; +.I rarpd +is an extra piece just for Suns. +.PP +.I Dhcpd +runs the +.SM BOOTP +and +.SM DHCP +protocols. +Clients use these protocols to obtain configuration information. +This information comes from attribute/value pairs in the network database +(see +.IR ndb (6) +and +.IR ndb (8)). +DHCP requests are honored both for static addresses found in +the NDB and for dynamic addresses listed in the command line. +DHCP requests are honored if either: +.br +\- there exists an NDB entry +containing both the ethernet address of the requester and +an IP address on the originating network or subnetwork. +.br +\- a free dynamic address exists on the originating network or subnetwork. +.PP +A BOOTP request is honored it all of the following are true: +.br +\- there exists an NDB entry +containing both the ethernet address of the requester and +an IP address on the originating network or subnetwork. +.br +\- the entry contains a +.B bootf= +attribute +.br +\- the file in the +.B bootf= +attribute is readable. +.PP +Dynamic addresses are specified on the command line as a list +of addresses and number pairs. +For example, +.EX + ip/dhcpd 10.1.1.12 10 10.2.1.70 12 +.EE +directs +.I dhcpd +to return dynamic addresses 10.1.1.12 through 10.1.1.21 inclusive +and 10.2.1.70 through 10.2.1.81 inclusive. +.PP +.I Dhcpd +maintains a record of all dynamic addresses in the directory +.BR /lib/ndb/dhcp , +one file per address. +If multiple servers have access to this common directory, +they will correctly coordinate their actions. +.PP +Attributes come from either the NDB entry for the system, the entry for its +subnet, or the entry for its network. The system entry has precedence, +then the subnet, then the network. +The NDB attributes used are: +.TF ipmask +.TP +.B ip +the IP address +.TP +.B ipmask +the IP mask +.TP +.B ipgw +the default IP gateway +.TP +.B dom +the domain name of the system +.TP +.B fs +the default Plan 9 name server +.TP +.B auth +the default Plan 9 authentication server +.TP +.B dns +a domain name server +.TP +.B ntp +a network time protocol server +.TP +.B time +a time server +.TP +.B wins +a +.SM NETBIOS +name server +.TP +.B www +a World Wide Web proxy +.TP +.B pop3 +a POP3 mail server +.TP +.B smtp +an SMTP mail server +.TP +.B bootf +the default boot file +.PD +.PP +.I Dhcpd +will answer +.SM BOOTP +requests only if it has been specifically targeted or if it +has read access to the boot file for the requester. That means that the requester +must specify a boot file in the request or one has to exist in NDB for +.I dhcpd +to answer. +.I Dhcpd +will answer all +.SM DHCP +requests for which it can associate an IP address with the +requester. +The options are: +.TP +.B d +Print debugging to standard output. +.TP +.B m +Mute: don't reply to requests, just log them and what +.I dhcpd +would have done. +.TP +.B f +Specify a file other than +.B /lib/ndb/local +as the network database. +.TP +.B s +Sleep 2 seconds before answering requests. This is used to make a server +be a backup only. +.TP +.B n +Don't answer +.SM BOOTP +requests. +.TP +.B p +Answer +.SM DHCP +requests from +.SM PPTP +clients only. +.TP +.B x +The IP stack to use is mounted at +.IR netmtpt . +The default is +.BR /net . +.TP +.B M +Use +.I secs +as the minimum lease time. +.PD +.PP +.I Rarpd +performs the Reverse Address Resolution Protocol, translating +Ethernet addresses into IP addresses. +The options are: +.TP +.B d +Print debugging to standard output. +.TP +.B e +Use the Ethernet mounted at +.BI /net/ etherdev\f1. +.TP +.B x +The IP stack to use is mounted at +.IR netmtpt . +The default is +.BR /net . +.PD +.PP +.I Tftpd +transfers files to systems that are booting. +It runs as user +.B none +and can only access files with global read permission. +The options are: +.TP +.B d +Print debugging to standard output. +.TP +.B x +The IP stack to use is mounted at +.IR netmtpt . +The default is +.BR /net . +.TP +.B h +Change directory to +.IR homedir . +The default is +.BR /lib/tftpd . +All requests for files with non-rooted file names are served starting at this +directory with the exception of files of the form +.BR xxxxxxxx.SUNyy . +These are Sparc kernel boot files where +.B xxxxxxxx +is the hex IP address of the machine requesting the kernel and +.B yy +is an architecture identifier. +.I Tftpd +looks up the file in the network database using +.I ipinfo +(see +.IR ndb (2)) +and responds with the boot file specified for that particular +machine. +If no boot file is specified, the transfer fails. +.I Tftpd +supports only octet mode. +.TP +.B r +Restricts access to only those files rooted in the +.IR homedir . +.PD +.SH FILES +.BR /lib/ndb/dhcp " directory of dynamic address files +.SH SOURCE +.B /sys/src/cmd/ip +.SH "SEE ALSO" +.IR ndb (6) diff --git a/static/plan9-4e/man8/drawterm.8 b/static/plan9-4e/man8/drawterm.8 new file mode 100644 index 00000000..2f5a1d50 --- /dev/null +++ b/static/plan9-4e/man8/drawterm.8 @@ -0,0 +1,124 @@ +.TH DRAWTERM 8 +.SH NAME +drawterm \- connect to Plan 9 CPU servers from other operating systems +.SH SYNOPSIS +.B drawterm +[ +.B -a +.I authaddr +] +[ +.B -c +.I cpuaddr +] +[ +.B -d +depth +] +[ +.B -r +root +] +[ +.B -nm +] +.SH DESCRIPTION +.I Drawterm +is +.I not +a Plan 9 program. +It is a program that users of non-Plan 9 systems can use +to establish graphical +.IR cpu (1) +connections with Plan 9 CPU servers. +Just as a real Plan 9 terminal does, +.I drawterm +serves its local name space +as well as some devices (the keyboard, mouse, and screen) +to a remote CPU server, which mounts this name space +on +.B /mnt/term +and starts a shell. +Typically, either explicitly or via the profile, one uses the shell +to start +.IR rio (1). +.PP +By default, +drawterm +uses the CPU server +.B CPUSERV +and the authentication server +.BR AUTHSERV . +The +.B -a +and +.B -c +options specify alternate servers. +(Edit the source to set appropriate local values for the variables +.B AUTHSERV +and +.BR CPUSERV ). +.PP +On Windows systems, the file system served by the +terminal (and mounted on +.BR /mnt/term ) +is the tree rooted at +.BR c:/ . +The +.B -r +option specifies a different file system root. +In Windows, the depth of the virtual screen +provided by +drawterm +matches the depth of the actual screen. +To present a screen with a different depth, use the +.B -d +option. +Both options do nothing on non-Windows systems. +.PP +The +.B -n +option causes +drawterm to prompt for authentication via +.IR netkey -style +challenge/response rather than using +the password-based protocol typically used +by terminals. +.PP +By default, drawterm queues mouse events to +guard against lost events due to network latency. +The +.B -m +option turns this behavior off. +.PP +Drawterm has been ported to +Digital Unix, +Irix, +Linux, +Solaris, +and +Windows. +Binaries are kept in +.BR /sys/src/cmd/unix/drawterm/bin . +.SH SOURCE +.B /sys/src/cmd/unix/drawterm +.SH DIAGNOSTICS +The Unix versions of drawterm print diagnostics +to standard error. +The Windows version displays message boxes. +.SH "SEE ALSO +.IR cpu (1), +.IR rio (1) +.SH BUGS +Although at first +.I drawterm +may seem like a Plan 9 terminal, in fact it is just a way to provide a CPU server +with some terminal devices. +The difference is important because one cannot run terminal-resident programs +when using +.IR drawterm . +The illusion can be improved by delicate adjustments in +.BR /usr/$user/lib/profile . +.PP +It would be nice to be able to change the default servers +without recompiling. diff --git a/static/plan9-4e/man8/fmtarenas.8 b/static/plan9-4e/man8/fmtarenas.8 new file mode 100644 index 00000000..b9f18816 --- /dev/null +++ b/static/plan9-4e/man8/fmtarenas.8 @@ -0,0 +1,64 @@ +.TH FMTARENAS 8 +.SH NAME +fmtarenas \- format a file into a number of Venti arenas +.SH SYNOPSIS +.B venti/fmtarenas +[ +.B -Z +] +[ +.B -a +.I arenasize +] +[ +.B -b +.I blocksize +] +.I name +.I file +.SH DESCRIPTION +.I Fmtarenas +formats the given +.IR file , +typically a disk partition, into a number of +.IR venti (8) +arenas. +The arenas are given names of the form +.IR name%d , +where +.I %d +is replaced with a sequential number starting at 0. +.PP +Option to +.I fmtarenas +are: +.TP +.BI -a " arenasize +The arenas are of +.I arenasize +bytes. The default is 512 megabytes, which was selected to provide a balance +between the number of arenas and the ability to copy an arena to external +media such as recordable CDs and tapes. +.TP +.BI -b " blocksize +The size, in bytes, for read and write operations to the file. +The size is recorded in the file, and is used by applications that access the arenas. +The default is 8k. +.TP +.B -Z +Do not zero the data sections of the arenas. +Using this option reduces the formatting time +but should only be used when it is known that the file was already zeroed. +.PP +The units for the various sizes can be specified by appending +.LR k , +.LR m , +or +.LR g +to indicate kilobytes, megabytes, or gigabytes respectively. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8), +.IR fmtisect (8), +.IR fmtindex (8) diff --git a/static/plan9-4e/man8/fmtindex.8 b/static/plan9-4e/man8/fmtindex.8 new file mode 100644 index 00000000..ec98f209 --- /dev/null +++ b/static/plan9-4e/man8/fmtindex.8 @@ -0,0 +1,60 @@ +.TH FMTINDEX 8 +.SH NAME +fmtindex \- format a Venti index +.SH SYNOPSIS +.B venti/fmtindex +[ +.B -a +] +.I venti.config +.SH DESCRIPTION +.I Fmtindex +takes the +.IR venti.conf (6) +file +.I venti.config +and initializes the index sections to form a usable index structure. +The arena files and index sections must have previously been formatted +using +.IR fmtarenas (8) +and +.IR fmtisect (8) +respectively. +.PP +The function of a Venti index is to map a Sha1 fingerprint to a location +in the data section of one of the arenas. The index is composed of +blocks, each of which contains the mapping for a fixed range of possible +fingerprint values. +.I Fmtindex +determines the mapping between Sha1 values and the blocks +of the collection of index sections. Once this mapping has been determined, +it cannot be changed without rebuilding the index. +The basic assumption in the current implementation is that the index +structure is sufficiently empty that individual blocks of the index will rarely +overflow. The total size of the index should be about 2% to 10% of +the total size of the arenas, but the exact depends both the index block size +and the compressed size of block stored to Venti. +.PP +.I Fmtindex +also computes a mapping between a linear address space and +the data section of the collection of arenas. The +.B -a +option can be used to add additional arenas to an index. +To use this feature, +add the new arenas to +.I venti.config +after the existing arenas and then run +.I fmtindex +.BR -a . +.PP +A copy of the above mappings is stored in the header for each of the index sections. +These copies enable +.IR buildindex (8) +to restore a single index section without rebuilding the entire index. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8), +.IR fmtarenas (8), +.IR fmtisect (8), +.IR venti.conf (6) diff --git a/static/plan9-4e/man8/fmtisect.8 b/static/plan9-4e/man8/fmtisect.8 new file mode 100644 index 00000000..b82966ba --- /dev/null +++ b/static/plan9-4e/man8/fmtisect.8 @@ -0,0 +1,50 @@ +.TH FMTISECT 8 +.SH NAME +fmtisect \- format a Venti index section +.SH SYNOPSIS +.B venti/fmtisect +[ +.B -Z +] +[ +.B -b +.I blocksize +] +.I name +.I file +.SH DESCRIPTION +.I Fmtisect +formats the given +.IR file , +typically a disk partition, as a Venti index section with the specified +.IR name . +One or more formatted index sections are combined into a Venti +index using +.IR fmtindex (8). +Each of the index sections within an index must have a unique name. +.PP +Options to +.I fmtisect +are: +.TP +.BI -b " blocksize +The size, in bytes, for read and write operations to the file. +All the index sections within a index must have the same block size. +The default is 8k. The units for the size can be specified by appending +.LR k , +.LR m , +or +.LR g +to indicate kilobytes, megabytes, or gigabytes respectively. +.TP +.B -Z +Do not zero the index. +Using this option reduces the formatting time +but should only be used when it is known that the file was already zeroed. +.PP +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8), +.IR fmtarenas (8), +.IR fmtindex (8) diff --git a/static/plan9-4e/man8/fs.8 b/static/plan9-4e/man8/fs.8 new file mode 100644 index 00000000..7c53e72f --- /dev/null +++ b/static/plan9-4e/man8/fs.8 @@ -0,0 +1,678 @@ +.TH FS 8 +.SH NAME +fs, exsort \- file server maintenance +.SH SYNOPSIS +.PD 0 +.B help +[ +.I command ... +] +.PP +.B arp +.I subcommand +.PP +.B cfs +.I filesystem +.PP +.B check +.RI [ options ] +.PP +.B clri +.RI [ file ...] +.PP +.B cpu +.RI [ proc ] +.PP +.B create +.I path uid gid perm +.RB [ lad ] +.PP +.B cwcmd +.I subcommand +.PP +.B date +.RB [[ +- ] +.IR seconds ] +.PP +.B duallow +.RI [ uid ] +.PP +.B dump +.PP +.B files +.PP +.B flag +.I flag +[ +.I channel +] +.PP +.B fstat +[ +.I files +] +.PP +.B halt +.PP +.B hangup +.I channel +.PP +.B newuser +.I name +.RI [ options ] +.PP +.B noattach +.PP +.B passwd +.PP +.B profile +.RB [ 01 ] +.PP +.B remove +.RI [ files ...] +.PP +.B route +.I subcommand +.PP +.BR stat [ adesw ] +.PP +.B stats +.RB [[ - ] +.IR flags ...] +.PP +.B sync +.PP +.B time +.I command +.PP +.B trace +.RI [ number ] +.PP +.B users +.RI [ file ] +.PP +.B version +.PP +.B who +.RI [ user ...] +.PP +.B wormeject +[ +.I tunit +] +.PP +.B wormingest +[ +.I tunit +] +.PD +.PP +.B disk/exsort +.RB [ -w ] +.RI [ file ] +.SH DESCRIPTION +Except for +.IR exsort , +these commands are available only on the console of an +.IR fs (4) +file server. +.PP +The console requires the machine's password to be supplied before +accepting commands. Typing a control-D will cause +the server to request +the password again. +.PP +.I Help +prints a `usage string' for the named +.IR commands , +by default all commands. +Also, many commands print menus of their options if given +incorrect or incomplete parameters. +.PP +.I Arp +has two +.IR subcommands : +.B print +prints the contents of the ARP cache and +.B flush +flushes it. +.PP +.I Cfs +changes the current file system, that is, the file tree to which +commands +.RB ( check , +.BR clri , +.BR create , +.BR newuser , +.BR profile , +.BR remove , +and +.BR users ) +apply. +The initial +.I filesystem +is +.BR main . +.PP +.I Check +verifies the consistency of the current file system. +With no options it checks and reports the status. +It suspends service while running. +Options are: +.TF touch +.PD +.TP +.B rdall +Read every block in the file system (can take a +.I long +time). +Normally, +.I check +will stop short of the actual contents +of a file and just verify the block addresses. +.TP +.B tag +Fix bad +.IR tags ; +each block has a tag that acts as a backwards pointer for +consistency checking. +.TP +.B ream +Fix bad tags +and also clear the contents +of blocks that have bad tags. +.TP +.B pfile +Print every file name. +.TP +.B pdir +Print every directory name. +.TP +.B free +Rebuild the list of free blocks +with all blocks that are not referenced. +This option is only useful on non-cache/WORM +file systems. +If the filesystem was modified, the summary printed +at the conclusion of the check may not reflect the true +state of the freelist and may also print a list of +.I missing +blocks. +These +.I missing +blocks are actually on the free list and the true +state of the filesystem can be determined by running +.I check +with no arguments. +.TP +.B bad +Each block address that is out of range or duplicate is cleared. +Note that only the second and subsequent +use of a block is cleared. +Often the problems in a file system are +caused by one bad file that has a lot of +garbage block addresses. +In such a case, +it is wiser to use +.I check +to find the bad file +(by number of diagnostic messages) +and then use +.I clri +to clear the addresses in that file. +After that, +.I check +can be used to reclaim the free list. +.TP +.B touch +Cause every directory and indirect block not on the current WORM disk +to be advanced to the current WORM on the next dump. +This is a discredited idea to try to keep operating +on the knee of the cache working set. +Buy more cache disk. +.PP +.I Clri +clears the internal directory entry and abandons storage +associated with +.IR files . +It ignores the usual rules for sanity, such as checking against +removing a non-empty directory. +A subsequent +.B check +.B free +will place the abandoned storage in the free list. +.PP +.I Cpu +prints the CPU utilization and state of the processes in the file server. +If the name of a process type argument is given, +then CPU utilization for only those processes is printed. +.PP +.I Create +creates a file on the current file system. +.I Uid +and +.I gid +are names or numbers from +.BR /adm/users . +.I Perm +is the low 9 bits of the permission mode of the file, in octal. +An optional final +.BR l , +.BR a , +or +.BR d +creates a locked file, append-only file, or directory. +.PP +.I Cwcmd +controls the cached WORM file systems. The subcommands are: +.TP +.BI mvstate " state1 state2 " [ platter ] +States are +.BR none , +.BR dirty , +.BR dump , +.BR dump1 , +.BR error , +.BR read , +and +.BR write . +A +.B mvstate +.B dump1 +.B dump +will cause I/O errors in the last dump to be retried. +A +.B mvstate +.B dump1 +.B write +will cause I/O errors in the last dump to be retried in +reallocated slots in the next dump. +A +.B mvstate +.B read +.B none +will flush the cache associated with the WORM. +A +.B mvstate +.B dump +.B write +aborts the background process dumping to WORM; as a consequence it +leaves holes in the dump file system. +Other uses are possible but arcane. +The optional +.I platter +limits affected blocks to those on that platter. +.TP +.BR prchain " [\fIstart\fP] [\fLback\fP] +Print the chain of superblocks for the directory containing the +roots of the dumped file systems, starting at block number +.I start +(default 0) going forward (backwards if +.B back +is supplied). +.TP +.BR savecache " [\fIpercent\fP] +Copy the block numbers, in native endian longwords, of blocks in the +.B read +state to the file +.BR /adm/cache +for use by +.BR disk/exsort . +If an argument is given, +then that percent (most recently used) of each cache bucket +is copied. +.TP +.BR loadcache " [\fIdskno\fP] +Read +.B /adm/cache +and for every block there on WORM disk +.IR dskno , +read the block from WORM to the cache. +If +.I dskno +is not supplied, all blocks in +.B /adm/cache +are read. +.TP +.BR startdump \ [ 01 ] +Suspend +.RB ( 0 ) +or restart +.RB ( 1 ) +the background dump process. +.TP +.B touchsb +Verify that the superblock on the WORM is readable, ignoring the cached copy. +.TP +.B acct +Prints how many times each user has caused the system to allocate new space on the WORM; +the units are megabytes. +.TP +.B clearacct +Clears the accounting records for +.BR acct . +.PP +.I Date +prints the current date. It may be adjusted +using +.BI +- seconds\f1. +With no sign, it sets the date to the absolute number of seconds +since 00:00 Jan 1, 1970 GMT; with a sign it trims the current +time. +.PP +.I Duallow +sets permissions such that +the named +.I user +can read and search any directories. +This is the permission necessary to do a +.IR du (1) +command anywhere in the file system to discover disk usage. +.PP +.I Dump +starts a dump to WORM immediately for all file systems that have +a WORM associated. +File service is suspended while the cache is scanned; +service resumes when the copy to WORM starts. +.PP +.I Files +prints for every connection the number of allocated fids. +.PP +.I Fstat +prints the current status of each named +.IR file , +including uid, gid, wuid (uid of the last user to modify the file), +size, qid, and disk addresses. +.PP +.I Flag +toggles flags, initially all off: +.TF attachxx +.TP +.B arp +Report ARP activity. +.TP +.B attach +Report as connections are made to the file server. +.TP +.B chat +(Very noisy.) Print all 9P messages to and from the server. +.TP +.B route +Report received RIP packets. +.TP +.B ro +Report I/O on the WORM device. +.PD +.PP +If given a second numeric +.I channel +argument, +as reported by +.IR who , +the flag is altered only on that connection. +.PP +.I Halt +does a +.B sync +and halts the machine, returning to the boot ROM. +.PP +.I Hangup +clunks all the fids on the named +.IR channel , +which has the same format as in the output of the +.I who +command. +.PP +.I Newuser +requires a +.I name +argument. +With no options it adds user +.IR name , +with group leader +.IR name , +to +.B /adm/users +and makes the directory +.BI /usr/ name +owned by user and group +.IR name . +The options are +.TF =leaderxx +.TP +.B ? +Print the entry for +.IR name . +.TP +.B : +Add a group: add the name to +.B /adm/users +but don't create the directory. +By convention, groups are numbered starting from 10000, users from 0. +.TP +.I newname +Rename existing user +.I name +to +.IR newname . +.TP +.BI = leader +Change the leader of +.I name +to +.IR leader . +If +.I leader +is missing, remove the existing leader. +.TP +.BI + member +Add +.I member +to the member list of +.IR name . +.TP +.BI - member +Remove existing +.I member +from the member list of +.IR name . +.PD +.PP +After a successful +.I newuser +command the file server overwrites +.B /adm/users +to reflect the internal state of the user table. +.PP +.I Noattach +disables +.IR attach (5) +messages, in particular for system maintenance. +Previously attached connections are unaffected. +Another +.I noattach +will enable normal behavior. +.PP +.I Passwd +sets the machine's password and writes it in non-volatile RAM. +.PP +.I Profile +.B 1 +clears the profiling buffer and enables profiling; +.I profile +.B 0 +stops profiling and writes the data to +.B /adm/kprofdata +for use by +.B kprof +(see +.IR prof (1)). +If a number is not specified, the profiling state toggles. +.PP +.I Remove +removes +.IR files . +.PP +.I Route +maintains an IP routing table. The +.I subcommands +are: +.TF "add dest gate mask" +.TP +.B add \f2dest gate \fP[\f2mask\fP] +Add a static route from IP address +.I dest +using gateway +.I gate +with an optional subnet +.IR mask . +.TP +.B delete \f2dest\fP +Delete an entry from the routing table. +.TP +.B print +Display the contents of the routing table. +.TP +.B ripon +Enables the table to be filled from RIP packets. +.TP +.B ripoff +Disables the table from being updated by RIP packets. +.PD +.PP +The +.I stat +commands are connected with a service or device identified by the +last character of the name: +.BR d , +SCSI targets; +.BR e , +Ethernet controllers; +.BR w , +cached WORM. +The +.I stata +command prints overall statistics about the file system. +The +.I stats +command takes an optional argument identifying the characters +of +.I stat +commands to run. The option is remembered and becomes the +default for subsequent +.I stats +commands if it begins with a minus sign. +.PP +.I Sync +writes dirty blocks in memory to the magnetic disk cache. +.PP +.I Time +reports the time required to execute the +.IR command . +.PP +.I Trace +with no options prints the set of queue-locks held by each process in +the file server. If things are quiescent, there should be no output. +With an argument +.I number +it prints a stack traceback of that process. +.PP +.I Users +uses the contents of +.I file +(default +.BR /adm/users ) +to initialize the file server's internal representation of the users +structure. +Incorrectly formatted entries in +.I file +will be ignored. +If file is explicitly +.BR default , +the system builds a minimal functional users table internally; +this can help recover from disasters. +If the +.I file +cannot be read, you +.I must +run +.IP +.EX +users default +.EE +.PP +for the system to function. The +.B default +table looks like this: +.IP +.EX +-1:adm:adm: +0:none:adm: +1:tor:tor: +10000:sys:: +10001:map:map: +10002:doc:: +10003:upas:upas: +10004:font:: +10005:bootes:bootes: +.EE +.PP +.I Version +reports when the file server was last compiled and last rebooted. +.PP +.I Who +reports, one per line, the names of users connected to the file server and the +status of their connections. +The first number printed on each line is the channel number of the connection. +If +.I users +are given the output selects connections owned by those users. +.PP +.I Wormeject +moves the WORM disk in slot +.I tunit +to the output shelf. +.PP +.I Wormingest +moves the WORM disk from the input shelf to +slot +.IR tunit . +.PP +When the file server boots, it prints the message +.IP +.EX +for config mode hit a key within 5 seconds +.EE +.PP +If a character is typed within 5 seconds of the message appearing, +the server will enter config mode. +See +.IR fsconfig (8) +for the commands available in config mode. +The system also enters config mode if, at boot time, +the non-volatile RAM does not appear to contain a valid configuration. +.PP +.I Exsort +is a regular command to be run on a CPU server, not on the file server +console. +It reads the named +.I file +(default +.BR /adm/cache ) +and sorts the cache disk block numbers contained therein. +It assumes the numbers are 4-byte integers and guesses the +endianness by looking at the data. +It then prints statistics about the cache. +With option +.B -w +it writes the sorted data back to +.IR file . +.SH SOURCE +.B /sys/src/fs +.br +.B /sys/src/cmd/disk/exsort.c +.SH SEE ALSO +.IR fs (4) +.br +Ken Thompson, +``The Plan 9 File Server''. diff --git a/static/plan9-4e/man8/fsconfig.8 b/static/plan9-4e/man8/fsconfig.8 new file mode 100644 index 00000000..76ea6742 --- /dev/null +++ b/static/plan9-4e/man8/fsconfig.8 @@ -0,0 +1,249 @@ +.TH FSCONFIG 8 +.SH NAME +fsconfig \- configuring a file server +.SH SYNOPSIS +.B service +.I name +.PP +.B config +.I device +.PP +.B filsys +.I name +.I device +.PP +.B ream +.I name +.PP +.B recover +.I name +.PP +.B ip +.I ipaddr +.PP +.B ipgw +.I ipaddr +.PP +.B ipmask +.I ipaddr +.PP +.B ipauth +.I ipaddr +.PP +.B ipsntp +.I ipaddr +.PP +.B end +.SH DESCRIPTION +When a file server's configuration has not been set, +or by explicit request early in the server's initialization (see +.IR fs (8)), +the server enters `config mode'. The commands described here +apply only in that mode. They establish configuration constants +that are typically valid for the life of the server, and therefore +need be run only once. If the non-volatile RAM on the server +gets erased, it will be necessary to recreate the configuration. +.PP +In these commands, +.I ipaddr +is an IP address in the form +.BR 111.103.94.19 +and +.I name +is a text string without white space. +The syntax of a +.I device +is more complicated: +.TP +.BI w n1 . n2 . n3 +A SCSI disk on target id +.IR n2 , +unit +.IR n1 , +and partition +.IR n3 . +A single number specifies a unit, while two numbers specify +.IB unit . partition\f1, +with the missing numbers defaulting to zero. +Any one of the numbers may be replaced by +.BI < m - n > +to represent the values +.I m +through +.I n +inclusive. For example, +.B (w<1-4>) +is the concatenation of SCSI targets 1 through 4. +.TP +.BI l n1 . n2 . n3 +.TP +.BI r n1 . n2 . n3 +The same as +.BR w , +but leaving a single block at the beginning for a label +.BI ( l ), +or not. +These are are only really relevant when used as +.I device3 +in the +.B j +device (see below). +.TP +.BI ( device... ) +A pseudo-device formed from the concatenation of the +.I devices +in the list. The devices are +.I not +blank- or comma-separated. +.TP +.BI [ device... ] +A pseudo-device formed from the block-wise interleaving of the +.I devices +in the list. The size of the result is the number of devices times +the size of the smallest device. +.TP +.BI p device . n1 . n2 +A partition starting at +.IR n1 % +from the beginning of +.I device +with a length +.IR n2 % +of the size of the device. +Parenthesize +.I device +if it contains periods. +.TP +.BR j (\f2device1\ device2\f1...)\f2device3 +.I Device1 +is the SCSI juke box interface. +The +.IR device2 s +are the SCSI drives in the jukebox and +.I device3 +represents the demountable platters in the juke box. +.TP +.BI f device +A pseudo-WORM disk: blocks on +.I device +can be written only once and may not be read unless written. +.TP +.BI c device1device2 +A cached WORM. The first +.I device +is the cache, the second the WORM. +.TP +.BI o +(Letter o) The read-only (dump) file system +of the previously defined cached WORM file system. +.PP +The +.B service +command sets the textual name of the server as known in +the network databases. +.PP +The configuration information is stored in block zero on a +device whose device string is written in non-volatile RAM. +The +.B config +command identifies the +.I device +on which the information is recorded. +.PP +The +.I filsys +command configures a file system on +.I device +and calls it +.IR name . +.I Name +is used as the specifier in +.B attach +messages to connect to that file system. +(The file system +.CW main +is the one attached to if the specifier is null; see +.IR attach (5)). +.PP +The +.I ream +command initializes the named file system. It overwrites +any previous file system on the same device +and creates an empty root directory +on the device. +If +.I name +is +.BR main , +the file server, until the next reboot, +will accept +.B wstat +messages +(see +.IR stat (5)) +that change the owner and group of files, +to enable initializing a fresh file system from a +.IR mkfs (8) +archive. +.PP +For the +.I recover +command, the +named file system +must be a cached WORM. +.I Recover +clears the associated magnetic cache and initializes the file +system, effectively resetting its contents to the last dump. +.PP +The rest of the commands record IP addresses: the file server's address +.RI ( ip ), +the local gateway's +.RI ( ipgw ), +the local authentication server's +.RI ( ipauth ), +the local subnet mask +.RI ( ipmask ), +and the address of a system running an SNTP server. +.I Ipauth +should be +.B 0.0.0.0 +if the system is doing its own authentication rather than +calling an external authentication server. +.PP +The various configuration commands only record what to do; they write +no data to disk. The command +.I end +exits config mode and begins running the file server proper. +The server will then perform whatever I/O is required to establish +the configuration. +.SH EXAMPLE +Initialize a file server +.B kgbsun +with a single file system interleaved between SCSI targets 3 and 4. +.IP +.EX +service kgbsun +config w3 +filsys main [w<3-4>] +ream main +.EE +.PP +Initialize a file server +.B kremvax +with a single disk on target 0 partitioned as a cached pseudo-WORM +file system with the cache on the third quarter of the drive +and the pseudo-WORM on the interleave of the first, second, and +fourth quarters. +.IP +.EX +service kremvax +config p(w0)50.1 +filsys main cp(w0)50.25f[p(w0)0.25p(w0)25.25p(w0)75.25] +filsys dump o +ream main +.EE +.SH SOURCE +.BR /sys/src/fs/port/config.c +.SH "SEE ALSO +Ken Thompson, +``The Plan 9 File Server''. diff --git a/static/plan9-4e/man8/httpd.8 b/static/plan9-4e/man8/httpd.8 new file mode 100644 index 00000000..2e569b85 --- /dev/null +++ b/static/plan9-4e/man8/httpd.8 @@ -0,0 +1,196 @@ +.TH HTTPD 8 +.SH NAME +httpd, echo, save, imagemap, man2html \- HTTP server +.SH SYNOPSIS +.PP +.B ip/httpd/httpd +.RB [ -a +.IR srvaddr ] +.RB [ -d +.IR domain ] +.RB [ -n +.IR namespace ] +.RB [ -w +.IR webroot ] +.PP +.B ip/httpd/echo +.RB [ -b +.IR inbuf ] +.RB [ -d +.IR domain ] +.RB [ -r +.IR remoteip ] +.RB [ -w +.IR webroot ] +.RB [ -N +.IR netdir ] +.I method version uri +.RI [ search ] +.PP +.B ip/httpd/save +.RB [ -b +.IR inbuf ] +.RB [ -d +.IR domain ] +.RB [ -r +.IR remoteip ] +.RB [ -w +.IR webroot ] +.RB [ -N +.IR netdir ] +.I method version uri +.RI [ search ] +.PP +.B ip/httpd/imagemap +.RB [ -b +.IR inbuf ] +.RB [ -d +.IR domain ] +.RB [ -r +.IR remoteip ] +.RB [ -w +.IR webroot ] +.RB [ -N +.IR netdir ] +.I method version uri +.PP +.B ip/httpd/man2html +.RB [ -b +.IR inbuf ] +.RB [ -d +.IR domain ] +.RB [ -r +.IR remoteip ] +.RB [ -w +.IR webroot ] +.RB [ -N +.IR netdir ] +.I method version uri +.RI [ search ] +.SH DESCRIPTION +.I Httpd +serves the +.I webroot +directory of the file system described by +.I namespace +(default +.BR /lib/namespace.httpd ), +using version 1.1 of the HTTP protocol. +It announces the service +.I srvaddr +(default +.BR tcp!*!http ), +and listens for incoming calls. +.PP +.I Httpd +supports only the GET and HEAD methods of the HTTP protocol; +some magic programs support POST as well. +Persistent connections are supported for HTTP/1.1 or later clients; +all connections close after a magic command is executed. +The Content-type +(default application/octet-stream) +and Content-encoding +(default binary) +of a file are determined by looking for suffixes of the file name in +.BR /sys/lib/mimetype . +.PP +Each requested URI is looked up in a redirection table, read from +.BR /sys/lib/httpd.rewrite . +If a prefix of the URI matches a redirection path, +the URI is rewritten using a replacement path, +and a redirect is sent to the HTTP client. +If the replacement path does not specify a server name, +and the request has no explicit host, +then +.I domain +is the host name used in the redirection. +.PP +Before opening any file, +.I httpd +looks for a file in the same directory called +.BR .httplogin . +If the file exists, the directory is considered +locked and the client must specify a user name +and password machine a pair in the file. +.B .httplogin +contains a list of space or newline separated tokens, each +possibly delimited by single quotes. The first +is a domain name presented to the HTTP client. +The rest are pairs of user name and password. +Thus, there can be many user name/password pairs +valid for a directory. +.PP +If the requested URI begins with +.BI /magic/ server /\f1, +.I httpd +executes the file +.BI /bin/ip/httpd/ server +to finish servicing the request. +.IR Method +and +.IR version +are those received on the first line of the request. +.I Uri +is the remaining portion of the requested URI. +.I Inbuf +contains the rest of the bytes read by the server, +and +.I netdir +is the network directory for the connection. +There are routines for processing command arguments, +parsing headers, etc. in the httpd library, +.BR /sys/src/cmd/ip/httpd/libhttpd.a.$O . +See +.B httpd.h +in that directory and existing magic commands for more details. +.PP +.I Echo +is a trivial server that just returns the method, URI, any search, +the headers, and the message body sent by the client. +.PP +.I Save +writes a line to +.BI /usr/web/save/ uri .data +and returns the contents of +.BI /usr/web/save/ uri .html. +Both files must be accessible for the request to succeed. +The saved line includes the current time +and either the search string from a HEAD or GET +or the first line of the body from a POST. +It is used to record form submissions. +.PP +.I Imagemap +processes an HTML imagemap query. +It looks up a the point +.I search +in the image map file given by +.IR uri , +and returns a redirection to the appropriate page. +The map file defaults to NCSA format. +Any entries after a line starting with the word +.B #cern +are interpreted in CERN format. +.PP +.I Man2html +converts +.IR man (6) +format manual pages into html. +It includes some abilities to search the manuals. +.SH FILES +.TF /lib/namespace.httpd +.TP +.B /sys/lib/mimetype +content type description file +.TP +.B /lib/namespace.httpd +default namespace file for httpd +.TP +.B /sys/lib/httpd.rewrite +redirection file +.SH SOURCE +.B /sys/src/cmd/ip/httpd +.SH "SEE ALSO" +.I newns +in +.IR auth (2), +.IR listen (8) diff --git a/static/plan9-4e/man8/init.8 b/static/plan9-4e/man8/init.8 new file mode 100644 index 00000000..94c3a465 --- /dev/null +++ b/static/plan9-4e/man8/init.8 @@ -0,0 +1,87 @@ +.TH INIT 8 +.SH NAME +init \- initialize machine upon booting +.SH SYNOPSIS +.B /$cputype/init +[ +.B -ctm +] [ +.I command ... +] +.SH DESCRIPTION +.I Init +initializes the machine: it establishes the name space (see +.IR namespace (4) +and +.I newns +in +.IR auth (2)), +and environment (see +.IR env (3)) +and starts a shell +.RI ( rc (1)) +on the console. +If a +.I command +is supplied, that is run instead of the shell. +On a CPU server the invoked shell runs +.IR cpurc (8) +before accepting commands on the console; +on a terminal, it runs +.IR termrc +and then the user's profile. +Options +.B -t +(terminal) +and +.B -c +(CPU) +force the behavior to correspond to the specified service class. +Otherwise +.I init +uses the value of the environment variable +.B $service +to decide the service class. +.PP +.I Init +sets environment variables +.B $service +(either to the incoming value or according to +.B -t +or +.BR -c ), +.B $objtype +(to the value of +.BR $cputype ), +.B $user +(to the contents of +.BR #c/user ), +and +.B $timezone +(to the contents of +.BR /adm/timezone/local ). +.PP +With option +.B -m +.I init +starts only an interactive shell +regardless of the +.I command +or service class. +.PP +On a CPU server, +.I init +requires the machine's password to be supplied before starting +.I rc +on the console. +.PP +.I Init +is invoked by +.IR boot (8), +which sets the arguments as appropriate. +.SH SOURCE +.B /sys/src/cmd/init.c +.SH "SEE ALSO" +.IR rc (1), +.IR auth (2), +.IR boot (8) diff --git a/static/plan9-4e/man8/ipconfig.8 b/static/plan9-4e/man8/ipconfig.8 new file mode 100644 index 00000000..ef547979 --- /dev/null +++ b/static/plan9-4e/man8/ipconfig.8 @@ -0,0 +1,205 @@ +.TH IPCONFIG 8 +.SH NAME +ipconfig, rip \- Internet configuration and routing +.SH SYNOPSIS +.B ip/ipconfig +.RB [ -ndDrG ] +.RB [ -b +.IR baud ] +.RB [ -m +.IR mtu ] +.RB [ -g +.IR gateway ] +.RB [ -h +.IR hostname ] +.RB [ -x +.IR netmtpt ] +.I type +.I device +.RI [ verb ] +.RI [ local-addr ] +.RI [ mask ] +.RI [ remote-addr ] +.RI [ file-server-addr ] +.RI [ auth-server-addr ] +.PP +.B ip/rip +.RB [ -bdr ] +.RB [ -x +.IR netmtpt ] +.SH DESCRIPTION +.I Ipconfig +binds a device interface (default +.BR /net/ether0 ) +to a mounted IP stack (default +.BR /net ) +and configures the interface with a local address, a +mask, and a remote address. The addresses can be specified +in the command line or obtained via DHCP. If DHCP is +requested, it will also obtain the addresses of DNS +servers, NTP servers, gateways, a Plan 9 file server, +and a Plan 9 authentication server. If this is the first +interface on the IP stack, the information will be +written to +.B /net/ndb +in the form of an +.IR ndb (8) +entry. +.PP +.I Type +may be +.BR ether , +.BR ppp , +or +.BR gbe . +The +.B gbe +type is equivalent to +.B ether +except that it allows jumbo packets. +For +.B ppp +the device can be any byte stream device. +.PP +The verb (default +.IR add ) +determines the action performed. The verbs are: +.TP +.B add +if the device is not bound to the IP stack, bind it. +Add the given local address, mask, and remote address to the interface. +An interface may have multiple addresses. +.TP +.B remove +remove the address from the device interface. +.TP +.B unbind +unbind the device interface and all its addresses from the +IP stack. +.PP +The options are: +.TP +.B x +use the IP stack mounted at +.I netmtpt +instead of at +.BR /net . +.TP +.B g +the default gateway. +.TP +.B d +use DHCP to determine any unspecified configuration parameters. +.TP +.B r +by default, +.I ipconfig +exits after trying DHCP for 15 seconds with no answer. +This option directs +.I ipconfig +instead to fork a background +process that keeps trying forever. +.TP +.B h +the hostname to add to DHCP requests. Some DHCP +servers, such as the one used by COMCAST, will not respond +unless a correct hostname is in the request. +.TP +.B n +determine parameters but don't configure the interface. +.TP +.B b +the baud rate to use on a serial line +when configuring +.BR PPP . +.TP +.B D +turn on debugging. +.TP +.B G +use only generic DHCP options. Without this option, +.I ipconfig +adds to requests a Vendor Class option with value +.BI plan9_$ cputype +and also requests vendor specific options 128 and 129 which we +interpret as the Plan 9 file server and auth server. +Replies to these options contain a list of IP addresses for possible +file servers and auth servers. +.TP +.B m +the maximum IP packet size to use on this +interface. +.PP +If DHCP is requested, a process is forked +off to renew the lease before it +runs out. If the lease does run out, this +process will remove any configured addresses +from the interface. +.PP +.I Rip +runs the routing protocol RIP. +It listens for RIP packets on connected networks and +updates the kernel routing tables. +The options are: +.TP +.B b +broadcasts routing information onto the networks. +.TP +.B n +gathers routing information but doesn't write to the +route table. This is useful with +.B \-d +to debug a network. +.TP +.B x +use the IP stack mounted at +.I netmtpt +instead of at +.BR /net . +.TP +.B d +turn on (voluminous) debugging. +.PP +.SH EXAMPLE +Configure Ethernet 0 as the primary IP interface. +Get all addresses via DHCP. Start up a connection server +and DNS resolver for this IP stack. +.IP +.EX +% bind -b '#l0' /net +% bind -a '#I0' /net +% ip/ipconfig +% ndb/cs +% ndb/dns -r +.EE +.PP +Add a second address to the stack. +.IP +.EX +% ip/ipconfig ether /net/ether0 add 12.1.1.2 255.255.255.0 +.EE +.PP +At Lucent our primary IP stack is always to the company's internal +firewall-protected network. The following creates an external +IP stack to directly access the outside Internet. Note that the +connection server uses a different set of +.I ndb +files. This prevents us from confusing inside and outside name/address +bindings. +.IP +.EX +% bind -b '#l1' /net.alt +% bind -b '#I1' /net.alt +% ip/ipconfig -x /net.alt -g 204.178.31.1 ether /net.alt/ether1\\ + 204.178.31.6 255.255.255.0 +% ndb/cs -x /net.alt -f /lib/ndb/external +% ndb/dns -sx /net.alt -f /lib/ndb/external +% aux/listen -d /rc/bin/service.alt /net.alt/tcp +% aux/listen -d /rc/bin/service.alt /net.alt/il +.EE +.SH SOURCE +.B /sys/src/cmd/ip/ipconfig.c +.br +.B /sys/src/cmd/ip/rip.c +.SH "SEE ALSO" +.IR ndb (6) diff --git a/static/plan9-4e/man8/ipserv.8 b/static/plan9-4e/man8/ipserv.8 new file mode 100644 index 00000000..313a125f --- /dev/null +++ b/static/plan9-4e/man8/ipserv.8 @@ -0,0 +1,239 @@ +.TH IPSERV 8 +.SH NAME +telnetd, rlogind, rexexec, ftpd, imap4d \- Internet remote access daemons +.SH SYNOPSIS +.PP +.B ip/telnetd +.RB [ -adnptN ] +.RB [ -u +.IR user ] +.PP +.B ip/rlogind +.PP +.B ip/rexexec +.PP +.B ip/ftpd +.RB [ -adp ] +.RB [ -n +.IR namepace-file ] +.PP +.B ip/imap4d +.RB [ -ap ] +.RB [ -d +.IR smtpdomain ] +.RB [ -s +.IR servername ] +.PP +.SH DESCRIPTION +These programs support remote access across the Internet. All expect the +network connection to be standard input, output, and error. They are normally +started from scripts in +.B /rc/bin/service +(see +.IR listen (8)). +.PP +.I Telnetd +allows login from a remote client. +There are three types of login: +.TF anonymous +.TP +.I normal +Normal users log in by encrypting and returning a +challenge printed by +.IR telnetd . +The user can use either the +.IR netkey +program +(see +.IR passwd (1)) +or a SecureNet handheld authenticator to encrypt the challenge. +.B /lib/namespace +defines the namespace. +.TP +.I noworld +Users in group +.B noworld +in +.BR /adm/users +authenticate with a password in the clear. +.B /lib/namespace.noworld +defines the namespace. +.TP +.I anonymous +User +.B none +requires no authentication. +.B /lib/namespace +defines the namespace. +.PD +.PP +The options are: +.TP +.B a +allow anonymous login by +.B none +.TP +.B d +print debugging to standard error +.TP +.B p +don't originate any telnet control codes +.TP +.B n +turn on local character echoing and imply the +.B p +option +.TP +.B t +trusted, that is, don't authenticate +.TP +.B u +use +.I user +as the local account name +.TP +.B N +permit connections by `noworld' users only. +.PD +.PP +.I Rlogind +logs in using the BSD remote login protocol. +.I Rlogind +execs +.I telnetd +.B -nu +after completing its initial handshake. +.PP +.I Rexexec +executes a command locally for a remote client. It uses the +standard Plan 9 authentication (see +.IR authsrv (6)). +.PP +.I Ftpd +runs the Internet file transfer protocol. Users may transfer +files in either direction between the local and +remote machines. +As for +.IR telnetd , +there are three types of login: +.TF anonymous +.TP +.I normal +Normal users authenticate +via the same challenge/response as for +.IR telnetd . +.BI /usr/ username /lib/namespace.ftp +or, if that file does not exist, +.B /lib/namespace +defines the namespace. +.TP +.I noworld +Users in group +.B noworld +in +.B /adm/users +login using a password in the clear. +.B /lib/namespace.noworld +defines the namespace. +.TP +.I anonymous +Users +.B anonymous +and +.B none +require no authentication. +The argument to the +.B \-n +option (default +.IR /lib/namespace.ftp ) +defines the namespace. +Anonymous users may only store files in the subtree +below +.BR /incoming . +.PD +.PP +The options are: +.TP +.B a +allow anonymous access +.TP +.B n +the namespace for anonymous users (default +.BR /lib/namespace.ftp ) +.TP +.B d +write debugging output to standard error +.PP +.I Imap4d +provides access to a user's mailboxes via the IMAP4rev1 protocol. +Only files rooted in +.BI /mail/box/ username / +are accessible. +The list of subscribed mailboxes is contained in +.BI /mail/box/ username /imap.subscribed , +and initially contains only +.BR INBOX , +IMAP's name for the user's mailbox. +A shadow file, +.IB mailbox .imp , +is created for each mailbox examined. +.PP +The options are: +.TP +.B a +Assume the user is already authenticated. +By default, the user must authenticate using +CRAM-MD5 or +.IR securenet (8) +challenge/response authentication. +.TP +.B p +Allow login authentication. This option +should only be enabled for servers using +an encrypted connection, such as SSL, +and when enabled, all non-encrypted connections should be disallowed. +.I Imap4d +does not enforce this policy. +.TP +.B s +The server's name. +If none is provided, +.B cs +(see +.IR ndb (8)) +is queried or +.B /env/sysname +is used. +.TP +.B d +The local mail domain. +Defaults to the server +.B /env/site +in the mail server's domain. +.SH FILES +.B /lib/namepace +.br +.BI /usr/ username /lib/namespace.ftp +.br +.B /lib/namespace.world +.br +.B /lib/namespace.ftp +.br +.BI /mail/box/ username / mailbox +.br +.BI /mail/box/ username / mailbox .imp +.br +.BI /mail/box/ username /imap.subscribed +.SH SOURCE +.B /sys/src/cmd/ip/telnetd.c +.br +.B /sys/src/cmd/ip/rlogind.c +.br +.B /sys/src/cmd/ip/rexexec.c +.br +.B /sys/src/cmd/ip/ftpd.c +.br +.B /sys/src/cmd/ip/imap4d/ +.br +.SH "SEE ALSO" +.IR ftpfs (4) diff --git a/static/plan9-4e/man8/kfscmd.8 b/static/plan9-4e/man8/kfscmd.8 new file mode 100644 index 00000000..e2122a6f --- /dev/null +++ b/static/plan9-4e/man8/kfscmd.8 @@ -0,0 +1,198 @@ +.TH KFSCMD 8 +.SH NAME +kfscmd, ksync \- kfs administration +.SH SYNOPSIS +.B disk/kfscmd +.RB [ -n +.IR name ] +cmd ... +.PP +.B disk/ksync +.SH DESCRIPTION +.I Kfs +is a local user-level file server for a Plan 9 terminal with a disk. +.I Kfscmd +transmits commands to the +.I kfs +server (see +.IR kfs (4)). +The +.B -n +option changes the name of the kfs service to +.BI kfs. name +(by default, full name is just +.BR kfs ). +.PP +.I Ksync +executes the +.B sync +command for all active +.I kfs +servers. +.PP +The known commands are described below. +Note that some commands are multiple words and +should be quoted to appear as a single argument to +.IR rc (1). +.TP \w'\fLallowoff\ \fIn'u +.B allow +Turn permission checking off (to simplify administration). +.TP +.B allowoff +.TP +.B disallow +Turn permission checking on. +.TP +.B noauth +Disable authentication of users. +.TP +.B halt +Write all changed blocks and stop the file system. +.TP +.B start +The opposite of halt; restart the file system. +.TP +.B help +Print the list of commands. +.TP +.BI "rename " "file name" +Change the name of +.I file +to +.IR name . +.I Name +may be a single path element or a full path; if it is a full path, +every element along the path must exist except the last. +.TP +.BI "newuser " user +Add +.I user +to +.B /adm/users +and make the standard directories needed for booting. +.TP +.BI "remove " file +Remove +.I file +and place its blocks on the free list. +.TP +.BI "clri " file +Remove +.I file +but do not place the blocks on the free list. +This command can be used to remove files that have duplicated blocks. +The non-duplicate blocks can be retrieved by checking the file system +with option +.B f +(see below). +.TP +.BI create \ file\ owner\ group\ mode\ [adl] +Create the file. Owner and group are users in +.B /adm/users +and mode is an octal number. +If present, +.L a +creates an append only file, +.L d +creates a directory, and +.L l +creates a file that is exclusive-use. +.TP +.B sync +Write to disk all of the dirty blocks in the memory cache. +.TP +.B atime +Toggle whether atimes are updated as files and directories +are accessed. By default, atimes are updated. On laptops it can be +useful to turn off atime updates to reduce disk accesses. +.TP +.B stats +Report statistics about the performance of the file system. +.TP +.B user +Re-initialize authentication information by reading +.BR /adm/users . +.TP +.BI cfs " filsys +Change the `console' to the named file system (default is the main system). +.TP +.B chat +Toggle tracing of 9P messages. +.TP +.B check [PRdfprtw] +Check the file system. +The options are +.PD 0 +.RS +.TP +.B p +print the names of directories as they are checked. +.TP +.B P +print the names of all files as they are checked. +.TP +.B r +read all of the data blocks and check the tags. +.TP +.B f +rebuild the list of free blocks. +.TP +.B d +delete redundant references to a block. +.TP +.B t +fix bad tags. +.TP +.B c +fix bad tags and clear the contents of the block. +.TP +.B w +write all of the blocks that are touched. +.RE +.PD +.TP +.BI listen " [address] +Start a listener to serve the network at +.IR address , +default +.BR il!*!17008 . +This feature is intended to facilitate small networks of a couple +machines in the situation when convenience is more +important than performance. +This command is only useful on machines with +(possibly simulated) NVRAM, which needs to be readable +to the +.I kfs +processes; +see +.I readnvram +in +.IR authsrv (2). +The production file server +(see +.IR fs (4)) +is strongly encouraged for anything more than casual use. +.TP +.B noneattach +When listening to the network, the default behavior is that the user +.B none +may only attach over connections that have already +authenticated as someone else. +This prevents just anyone from being +able to dial your server and attach as +.BR none . +The +.B noneattach +command toggles whether +.B none +can attach without such a chaperone. +.PD +.SH SOURCE +.B /sys/src/cmd/disk/kfscmd.c +.br +.B /$objtype/bin/disk/ksync +.SH "SEE ALSO" +.IR kfs (4), +.IR mkfs (8), +.IR prep (8), +.IR sd (3) diff --git a/static/plan9-4e/man8/listen.8 b/static/plan9-4e/man8/listen.8 new file mode 100644 index 00000000..4e4c5378 --- /dev/null +++ b/static/plan9-4e/man8/listen.8 @@ -0,0 +1,172 @@ +.TH LISTEN 8 +.SH NAME +listen, il7, il9, il19, il565, il566, il17007, il17008, il17009, il17013, il17031, tcp7, tcp9, tcp19, tcp21, tcp23, tcp25, tcp53, tcp110, tcp113, tcp143, tcp513, tcp515, tcp564, tcp565, tcp566, tcp567, tcp993, tcp17007, tcp17009, tcp17013 \- listen for calls on a network device +.SH SYNOPSIS +.B aux/listen +.RB [ -q ] +.RB [ -d +.IR srvdir ] +.RB [ -t +.IR trustsrvdir ] +.RB [ -n +.IR namespace ] +.RI[ net +.RI [ name ]] +.SH DESCRIPTION +.I listen +announces itself to a network as +.I name +(by default the contents of +.BR /env/sysname ) +and listens for inbound calls to local services. +.I Net +is the network protocol on which to listen, by default +.BR /net/il . +The services available are executable files in +.I srvdir +or +.IR trustsrvdir . +If neither +.I srvdir +nor +.I trustsrvdir +is given, +.I listen +looks for executable files in +.BR /bin/service . +Services found in +.I srvdir +are executed as user +.BR none ; +services found in +.I trustsrvdir +as executed as the user who started +.IR listen . +Option +.B -q +suppresses affirmative log information; +option +.B -n +sets an alternate +.I namespace +file (default +.BR /lib/namespace ). +.PP +Service names are made by concatenating the name of +the network with the name of the service or port. +For example, +an inbound call on the TCP network for port 565 executes service +.BR tcp565 . +.PP +The following services are available in +.BR /bin/service . +.TF il17005\ tcp17005 +.TP +.B il19 tcp19 +.B chargen +service. +.TP +.B il17007 tcp17007 +serve a piece of the name space using the Plan 9 file system protocol, +with authentication (typically used by +.IR cpu (1)). +.TP +.B tcp564 +like 17007, without authentication (used by Unix +systems to see Plan 9 files). +.TP +.B il17008 +like 17007, but serves the root of the tree, forgoing the negotiation for which subtree to serve. +.TP +.B il17009 tcp17009 +remote execution. +.TP +.B "il17013 tcp17013" +server for +.IR cpu (1) +command. +.TP +.B il17031 +server for +.IR ramfs (4). +.TP +.B il565 tcp565 +report the address of the incoming call. +.TP +.B tcp21 +FTP daemon +.TP +.B tcp515 +LP daemon; see +.IR lp (8). +.TP +.B tcp23 +.B telnet +terminal connection. +.TP +.B tcp25 +mail delivery. +.TP +.B tcp513 +.B rlogin +terminal connection. +.TP +.B il7 tcp7 +echo any bytes received (bit mirror) +.TP +.B il9 tcp9 +consume any bytes received (bit bucket) +.TP +.B tcp53 +TCP port for DNS. +.TP +.B tcp110 +POP3 port. +.TP +.B tcp143 +IMAP4rev1 port. +.TP +.B tcp113 +.B Ident +port (always reports +.BR none ). +.TP +.B tcp567 +Plan 9 ticket service. +.PD +.PP +The following services are available in +.BR /bin/service.auth . +.TF il565\ tcp565 +.TP +.B tcp566 +check a SecureNet box. +.TP +.B il566 +authentication requests. +.TP +.B tcp993 +Secure IMAP4rev1 port. +.SH FILES +.TF /env/sysname +.TP +.B /net/il +by convention, IL device bind point +.TP +.B /net/tcp +by convention, TCP device bind point +.TP +.B /env/sysname +default announced name +.SH SOURCE +The source to +.I listen +is in +.BR /sys/src/cmd/aux/listen.c . +The other commands are +.IR rc (1) +scripts in +.BR /rc/bin/service . +.SH "SEE ALSO" +.IR authsrv (6), +.IR dial (2) diff --git a/static/plan9-4e/man8/lp.8 b/static/plan9-4e/man8/lp.8 new file mode 100644 index 00000000..f4502bc9 --- /dev/null +++ b/static/plan9-4e/man8/lp.8 @@ -0,0 +1,126 @@ +.TH LP 8 +.SH NAME +lp \- PostScript preprocessors +.SH DESCRIPTION +These programs are part of the +.IR lp (1) +suite. +Each corresponds to a +.I process +in the +.BI -p process +option of +.I lp +and exists as an +.IR rc (1) +script in +.B /sys/lib/lp/process +that provides an interface to a PostScript conversion program in +.BR /$cputype/bin/aux . +The list of processors follows; +after each description is a bracketed list of +.I lp +options to which the processor responds: +.TF \fIp9bitpost\fP +.TP +.I dpost +converts +.IR troff (1) +output for device +.SM post +to PostScript. +This is used for files troff'ed on our +.SM UNIX +systems that do not handle +.SM UTF +characters. +.RB [ DLcimnorxy ] +.TP +.I dvipost +converts +.IR tex (1) +output to PostScript. +.RB [ Lcinor ] +.TP +.I g3post +converts CCITT Group 3 FAX data to PostScript. +.RB [ DLm ] +.TP +.I gifpost +converts GIF image data to PostScript. +.RB [ DLm ] +.TP +.I generic +is the default processor. +It uses +.IR file (1) +to determine the type of input and executes the correct +processor for a given (input, printer) pair. +.TP +.I hpost +adds a header page to the beginning of a PostScript printer +job so that it may be separated from other jobs in the output bin. +The header has the image of the job's owner from the directory of faces (see +.IR face (6)). +Page reversal is also done in this processor. +.TP +.I jpgpost +converts JPEG image data to PostScript. +.RB [ DLm ] +.TP +.I noproc +passes files through untouched. +.TP +.I p9bitpost +.na +converts a Plan 9 image to PostScript, such as +.B /dev/screen +for the whole screen, +.B /dev/window +for that window's data, +and +.B /dev/wsys/.../window +for some other window's data. +.RB [ DLm ] +.ad +.TP +.I pdfpost +converts PDF data to PostScript. +.TP +.I post +passes PostScript through, adding option patches for paper tray information. +This does not always work with PostScript generated on other systems. +.TP +.I ppost +converts +.SM UTF +text to PostScript. +.RB [ DLcfilmnorxy ] +.TP +.I tr2post +converts +.IR troff (1) +output for device +.SM utf +(the default) to PostScript. +See +.B /sys/lib/troff/font/devutf +directory for troff font width table descriptions. +See also the +.B /sys/lib/postscript/troff +directory for mappings of +troff +.SM UTF +character space to PostScript +font space. +.RB [ DLcimnorxy ] +.SH SOURCE +.B /sys/src/cmd/postscript +.SH SEE ALSO +.IR lp (1) +.SH BUGS +The +.I file +command is not always smart enough to deal with certain file +types. +There are PostScript conversion programs that do not have processors to drive them. diff --git a/static/plan9-4e/man8/mk9660.8 b/static/plan9-4e/man8/mk9660.8 new file mode 100644 index 00000000..0f50b7fe --- /dev/null +++ b/static/plan9-4e/man8/mk9660.8 @@ -0,0 +1,231 @@ +.TH MK9660 8 +.SH NAME +dump9660, mk9660 \- create an ISO-9660 CD image +.SH SYNOPSIS +.B disk/mk9660 +[ +.B -:D +] +[ +.B -9cjr +] +[ +.B -b +.I bootfile +] +[ +.B -p +.I proto +] +[ +.B -s +src +] +[ +.B -v +volume +] +.I image +.PP +.B disk/dump9660 +[ +.B -:D +] +[ +.B -9cjr +] +[ +.B -p +.I proto +] +[ +.B -s +src +] +[ +.B -v +volume +] +[ +.B -m +.I maxsize +] +[ +.B -n +.I now +] +.I image +.SH DESCRIPTION +.I Mk9660 +writes to the random access file +.I image +an ISO-9660 CD image containing the +files named in +.I proto +(default +.BR /sys/lib/sysconfig/proto/allproto ) +from the file tree +.I src +(default +.BR / ). +The +.I proto +file is formatted as described in +.IR mkfs (8). +.PP +The created CD image will be in ISO-9660 +format, but by default the file names will +be stored in UTF-8 with no imposed length +or character restrictions. +The +.B -c +flag causes +.I mk9660 +to use only file names in ``8.3'' form +that use digits, letters, and underscore. +File names that do not conform are changed +to +.BI D nnnnnn +(for directories) +or +.BI F nnnnnn +(for files); +a key file +.B _CONFORM.MAP +is created in the root +directory to ease the reverse process. +.PP +If the +.B -9 +flag is given, the system use fields at the end of +each directory entry will be populated with +Plan directory information (owner, group, mode, +full name); this is interpreted by +.IR 9660srv . +.PP +If the +.B -j +flag is given, the usual directory tree is written, +but an additional tree in Microsoft Joliet format is +alos added. +This second tree can contain long Unicode file names, +and can be read by +.I 9660srv +as well as most versions of Windows +and many Unix clones. +The characters +.BR * , +.BR : , +.BR ; , +.BR ? , +and +.B \e +are allowed in Plan 9 file names but not in Joliet file names; +non-conforming file names are translated +and a +.B _CONFORM.MAP +file written +as in the case of the +.B -c +option. +.PP +If the +.B -r +flag is given, Rock Ridge extensions are written in the +format of the system use sharing protocol; +this format provides Posix-style file metadata and is +common on Unix platforms. +.PP +The options +.BR -c , +.BR -9 , +.BR -j , +and +.B -r +may be mixed freely with the exception that +.B -9 +and +.B -r +are mutually exclusive. +.PP +The +.B -v +flag sets the volume title; +if unspecified, the base name of +.I proto +is used. +.PP +The +.B -: +flag causes +.B mk9660 +to replace colons in scanned file names with spaces; +this is the inverse of the map applied by +.IR dossrv (4) +and is useful for writing Joliet CDs containing data +from FAT file systems. +.PP +The +.B -b +option creates a bootable CD. +Bootable CDs contain pointers to floppy images which are +loaded and booted by the BIOS. +.I Bootfile +should be the name of the floppy image to use; +it is a path relative to the root of the created CD. +That is, the boot floppy image must be listed in the +.I proto +file already: +the +.B -b +flag just creates a pointer to it. +.PP +The +.B -D +flag creates immense amounts of debugging output +on standard error. +.PP +.I Dump9660 +is similar in specification to +.I mk9660 +but creates and updates backup CD images in the style of +the +.I dump +file system +(see +.IR fs (4)). +The dump is file-based rather than block-based: +if a file's contents have not changed since the last +backup, only its directory entry will be rewritten. +.PP +The +.B -n +option specifies a time (in seconds since January 1, 1970) +to be used for naming the dump directory. +.PP +The +.B -m +option specifies a maximum size for the image; +if a backup would cause the image to grow larger than +.IR maxsize , +it will not be written, and +.I dump9660 +will exit with a non-empty status. +.SH EXAMPLE +.PP +Create an image of the Plan 9 source tree, +including a conformant ISO-9660 directory tree, +Plan 9 extensions in the system use fields, and +a Joliet directory tree. +.IP +.EX +disk/mk9660 -9cj -s /n/bootes -p plan9proto cdimage +.EE +.SH SOURCE +.B /sys/src/cmd/disk/9660 +.SH "SEE ALSO" +.I 9660srv +(in +.IR dossrv (4)), +.IR cdfs (4), +.IR mkfs (8) diff --git a/static/plan9-4e/man8/mkfs.8 b/static/plan9-4e/man8/mkfs.8 new file mode 100644 index 00000000..796539ab --- /dev/null +++ b/static/plan9-4e/man8/mkfs.8 @@ -0,0 +1,187 @@ +.TH MKFS 8 +.SH NAME +mkfs, mkext \- archive or update a file system +.SH SYNOPSIS +.B disk/mkfs +.RB [ -aprvxU ] +.RB [ -d +.IR root ] +.RB [ -n +.IR name ] +.RB [ -s +.IR source ] +.RB [ -u +.IR users ] +.RB [ -z +.IR n ] +.I proto ... +.PP +.B disk/mkext +.RB [ -d +.IR name ] +.RB [ -u ] +.RB [ -h ] +.RB [ -v ] +.RB [ -x ] +.I file ... +.SH DESCRIPTION +.I Mkfs +copies files from the file tree +.I source +(default +.BR / ) +to a +.B kfs +file system (see +.IR kfs (4)). +The kfs service is mounted on +.I root +(default +.BR /n/kfs ), +and +.B /adm/users +is copied to +.IB root /adm/users\f1. +The +.I proto +files are read +(see +.IR proto (2) +for their format) +and any files specified in them that are out of date are copied to +.BR /n/kfs . +.PP +.I Mkfs +copies only those files that are out of date. +Such a file is first copied into a temporary +file in the appropriate destination directory +and then moved to the destination file. +Files in the +.I kfs +file system that are not specified in the +.I proto +file +are not updated and not removed. +.PP +The options to +.I mkfs +are: +.TF "s source" +.TP +.B a +Instead of writing to a +.B kfs +file system, write an archive file to standard output, suitable for +.IR mkext . +All files in +.IR proto , +not just those out of date, are archived. +.TP +.B x +For use with +.BR -a , +this option writes a list of file names, dates, and sizes to standard output +rather than producing an archive file. +.TP +.BI "d " root +Copy files into the tree rooted at +.I root +(default +.BR /n/kfs ). +This option suppresses setting the +.B uid +and +.B gid +fields when copying files. +Use +.B -U +to reenable it. +.TP +.BI "n " name +Use +.RI kfs. name +as the name of the kfs service (default +.BR kfs ). +.TP +.B p +Update the permissions of a file even if it is up to date. +.TP +.B r +Copy all files. +.TP +.BI "s " source +Copy from files rooted at the tree +.IR source . +.TP +.BI "u " users +Copy file +.I users +into +.B /adm/users +in the new system. +.TP +.B v +Print the names of all of the files as they are copied. +.TP +.BI "z " n +Copy files assuming kfs block +.I n +(default 1024) +bytes long. +If a block contains only 0-valued bytes, it is not copied. +.PD +.PP +.I Mkext +unpacks archive files made by the +.B -a +option of +.IR mkfs . +The +.B -d +option specifies a directory (default +.BR / ) +to serve as the root of the unpacked file system. +The +.B -u +option, to be used only when initializing a new +.IR fs (4) +file system, sets the owners of the files created to correspond to +those in the archive and restores the modification times of the files. +(This is only permitted at the initial load of the files into a file +system.) +Each file on the command line is unpacked in one pass through the archive. +If the file is a directory, +all files and subdirectories of that directory are also unpacked. +When a file is unpacked, the entire path is created if it +does not exist. +If no files are specified, the entire archive is unpacked; +in this case, missing intermediate directories are not created. +The +.B -v +option prints the names and sizes of files as they are extracted; +.B -h +prints headers for the files on standard output +instead of unpacking the files. +.SH EXAMPLES +.PP +Make an archive to establish a new file system: +.IP +.EX +disk/mkfs -a -u files/adm.users -s dist proto > arch +.EE +.PP +Unpack that archive onto a new file system: +.IP +.EX +srv il!newfs +mount -c /srv/il!newfs /n/newfs +disk/mkext -u -d /n/newfs < arch +.EE +.SH SOURCE +.B /sys/src/cmd/disk/mkfs.c +.br +.B /sys/src/cmd/disk/mkext.c +.SH "SEE ALSO" +.IR prep (8), +.IR kfscmd (8), +.IR sd (3) diff --git a/static/plan9-4e/man8/mkpaqfs.8 b/static/plan9-4e/man8/mkpaqfs.8 new file mode 100644 index 00000000..691f4856 --- /dev/null +++ b/static/plan9-4e/man8/mkpaqfs.8 @@ -0,0 +1,52 @@ +.TH MKPAQFS 8 +.SH NAME +mkpaqfs \- make a compressed read-only file system +.SH SYNOPSIS +.B mkpaqfs +[ +.B -u +] [ +.B -b +.I blocksize +] [ +.B -l +.I label +] [ +.B -o +.I file +] [ +.I source +] +.SH DESCRIPTION +.I Mkpaqfs +copies files from the file tree +.I source +(default +.BR . ) +to a the +.IR paqfs (4) +file system archive +.IR file . +.PP +The files and directory structure are divided into +.I blocksize +(default +.BR 4096 ) +byte blocks. +Larger blocks make large files more compact but take longer to access. +.I Blocksize +must be in the range of 512 bytes to 52K bytes. +If the +.B -u +option is set, the blocks are not compressed. +Otherwise each block is compressed using the +.IR flate (2) +compression algorithm. +The +.B -l +option embeds a label of up to 32 bytes within the file header and may be +useful for identifying the file system. +.SH SOURCE +.B /sys/src/cmd/paqfs/mkpaqfs.c +.SH "SEE ALSO" +.IR paqfs (4) diff --git a/static/plan9-4e/man8/mksacfs.8 b/static/plan9-4e/man8/mksacfs.8 new file mode 100644 index 00000000..fbeb11c2 --- /dev/null +++ b/static/plan9-4e/man8/mksacfs.8 @@ -0,0 +1,38 @@ +.TH MKSACFS 8 +.SH NAME +mksacfs \- make a compressed file system +.SH SYNOPSIS +.B disk/mksacfs +.RB [ -u ] +.RB [ -b +.IR blocksize ] +.RB [ -o +.IR file ] +.I source +.SH DESCRIPTION +.I Mksacfs +copies files from the file tree +.I source +(default +.BR . ) +to a the +.IR sacfs (4) +file system archive +.IR file . +.PP +The files and directory structure are divided into +.I blocksize +(default +.BR 4096 ) +byte blocks. +Larger blocks make large files more compact but take longer to access. +.I Blocksize +must be at least 116. +If +.B -u +is given, the blocks are not compressed. +Otherwise each block is compressed using an efficient compression algorithm. +.SH SOURCE +.B /sys/src/cmd/disk/sacfs/mksacfs.c +.SH "SEE ALSO" +.IR sacfs (4) diff --git a/static/plan9-4e/man8/mouse.8 b/static/plan9-4e/man8/mouse.8 new file mode 100644 index 00000000..a3bb52ea --- /dev/null +++ b/static/plan9-4e/man8/mouse.8 @@ -0,0 +1,120 @@ +.TH MOUSE 8 +.SH NAME +aux/mouse, aux/accupoint \- configure a mouse to a port +.SH SYNOPSIS +.B aux/mouse +[ +.B -b +.I baud +] [ +.B -d +.I type +] [ +.B -n +] +.I port +.PP +.B aux/accupoint +.SH DESCRIPTION +.B Mouse +queries a mouse on a serial or PS2 port for +its type and then configures the port and the +mouse to be used to control the cursor. +.PP +.I Port +can be either a port number (e.g. +.B 0 +or +.BR 1 ) +or the string +.B ps2 +or +.BR ps2intellimouse . +The initialization can be automated by setting +.BR mouseport +in +.IR plan9.ini (8), +which will enable a call to +.I mouse +in +.B termrc +(see +.IR cpurc (8)). +.PP +The option +.B -d +provides a default mouse type should +.B mouse +fail to determine it. The +types are: +.IP C +Logitech type C mouse +.IP W +Logitech type W mouse +.IP M +Microsoft compatible mouse +.PP +The +.B -n +flag queries the mouse and reports its type but does not set the device type. +.PP +The +.B -b +flag sets the baud rate for communication; it is effectual only for serial mice. +.SH +.I Accupoint +is a process, to be used with +.IR pipefile (1), +that processes events from an AccuPoint II pointing device +with four buttons, such as on Toshiba Portégé 3440CT and 3480CT +laptops, converting events on the two extra buttons +(which appear as buttons 4 and 5 in the +.IR mouse (3) +interface) into a simulation of button 2. +These extra buttons on laptops are in turn simulations of Intellimouse +scrolling buttons and have peculiar properties: they generate +only `down' events that repeat automatically, like a keypad, in +an approximation of the Intellimouse scroll wheel. +.I Accupoint +overcomes this behavior to produce a reasonable approximation of +a normal mouse button 2: +it makes left button act like a regular button 2, but is slow to release (the +program must wait for a repeat time before it knows the button has been released), +while the right button generates a fast button 2 `click'. +To use +.IR accupoint , +add a line like this to +.B /usr/$user/lib/profile +or to a system-dependent configuration script in +.B termrc +(see +.IR cpurc (8)): +.EX +.IP +pipefile -dr /bin/aux/accupoint /dev/mouse +.EE +.PP +Before running +.IR accupoint , +the mouse should be configured as an +.B intellimouse +or +.BR ps2intellimouse . +.SH SOURCE +.B /sys/src/cmd/aux/mouse.c +.br +.B /sys/src/cmd/aux/accupoint.c +.SH SEE ALSO +.IR cons (3), +.IR cpurc (8), +.IR pipefile (1). +.SH BUGS +Due to the limitations of +.IR pipefile (1), +when running +.I accupoint +it is difficult restart +.IR rio (1) +if it has exited. + + diff --git a/static/plan9-4e/man8/na.8 b/static/plan9-4e/man8/na.8 new file mode 100644 index 00000000..eb0a111e --- /dev/null +++ b/static/plan9-4e/man8/na.8 @@ -0,0 +1,33 @@ +.TH NA 8 +.SH NAME +na \- assembler for the Symbios Logic PCI-SCSI I/O Processors +.SH SYNOPSIS +.B aux/na file +.SH DESCRIPTION +The SYM53C8XX series of PCI-SCSI I/O Processors contain +loadable microcode to control their operation. +The microcode is written in a language called SCRIPTS. +.I Aux/na +is an assembler for the SCRIPTS programming language. +It assembles SCRIPTS code in +.I file +into an array of assembled SCRIPTS +instructions, patches, defines and enums +that can be included in a C device driver. +.SH SOURCE +.TF /sys/src/cmd/aux/na +.TP +.B /sys/src/cmd/aux/na +.SH "SEE ALSO" +Symbios Logic, +``PCI-SCSI I/O Processors Programming Guide Version 2.1'' +.br +.TF /sys/src/9/*/sd53c8xx.c +.TP +.B /sys/src/9/*/sd53c8xx.n +SCRIPTS source code +.TP +.B /sys/src/9/*/sd53c8xx.c +driver for the SYM53C8XX series of PCI-SCSI controllers +.SH AUTHOR +Nigel Roles (ngr@9fs.org) diff --git a/static/plan9-4e/man8/ndb.8 b/static/plan9-4e/man8/ndb.8 new file mode 100644 index 00000000..322a1373 --- /dev/null +++ b/static/plan9-4e/man8/ndb.8 @@ -0,0 +1,459 @@ +.TH NDB 8 +.SH NAME +query, mkhash, mkdb, cs, csquery, dns, dnsquery, ipquery, dnsdebug, mkhosts \- network database +.SH SYNOPSIS +.B ndb/query +[ +.B -f +.I dbfile +] +.I "attr value" +[ +.I rattr +] +.br +.B ndb/ipquery +.I "attr value" +.I rattr... +.br +.B ndb/mkhash +.I "file attr" +.br +.B ndb/cs +[ +.B -n +] [ +.B -f +.I dbfile +] [ +.B -x +.I netmtpt +] +.br +.B ndb/csquery +[ +.B -s +] +[ +.B server +[ +.I addr... +] +] +.br +.B ndb/dns +[ +.B -rs +] [ +.B -f +.I dbfile +] [ +.B -x +.I netmtpt +] +.br +.B ndb/dnsquery +.br +.B ndb/dnsdebug +[ +.B -rx +] +[ [ +.BI @ server +] +.I domain-name +[ +.I type +] ] +.br +.B ndb/mkdb +.SH DESCRIPTION +The network database holds administrative information used by +network programs such as +.IR dhcpd (8), +.IR ipconfig (8), +.IR con (1), +etc. +.PP +.I Ndb/query +searches the database for an attribute of type +.I attr +and value +.IR value . +If +.I rattr +is not specified, all entries matched by the search are returned. +If +.I rattr +is specified, the value of the first pair with attribute +.I rattr +of all the matched entries is returned. +.PP +.I Ndb/ipquery +uses +.I ndbipinfo +(see +.IR ndb (2)) +to search for the values of the attributes +.I rattr +corresponding to the system +with entries of attribute type +.I attr +and +value +.IR value . +.PP +.I Ndb/mkhash +creates a hash file for all entries with attribute +.I attr +in database file +.IR file . +The hash files are used by +.I ndb/query +and by the ndb library routines. +.PP +.I Ndb/cs +is a server used by +.IR dial (2) +to translate network names. +It is started at boot time. +It finds out what networks are configured +by looking for +.B /net/*/clone +when it starts. +It can also be told about networks by writing +to +.B /net/cs +a message of the form: +.IP +.B "add net1 net2 ..." +.PP +.I Ndb/cs +also sets the system name in +.B /dev/sysname +if it can figure it out. +The options are: +.TP +.B -f +supplies the name of the data base file to use, +default +.BR /lib/ndb/local . +.TP +.B -x +specifies the mount point of the +network. +.TP +.B -n +causes cs to do nothing but set the system name. +.PP +.I Ndb/csquery +can be used to query +.I ndb/cs +to see how it resolves addresses. +.I Ndb/csquery +prompts for addresses and prints out what +.I ndb/cs +returns. +.I Server +defaults to +.BR /net/cs . +If any +.I addrs +are specified, +.I ndb/csquery +prints their translations and immediately exits. +The exit status will be nil only if all addresses +were successfully translated +The +.B -s +flag sets exit status without printing any results. +.PP +.I Ndb/dns +is a server used by +.I ndb/cs +and by remote systems to translate Internet domain names. +.I Ndb/dns +is started at boot time. +By default +.I dns +serves only requests written to +.BR /net/dns . +The options are: +.TP +.B -f +supplies the name of the data base file to use, +default +.BR /lib/ndb/local . +.TP +.B -x +specifies the mount point of the +network. +.TP +.B -s +also answer domain requests sent to UDP port 53. +.TP +.B -r +defer to other servers to resolve queries. +.PP +When the +.B -r +option is specified, the servers used come from the +.I dns +attribute in the database. For example, to specify a set of dns servers that +systems on the network +.IR mh-net : +.EX + +ipnet=mh-net ip=135.104.0.0 ipmask=255.255.0.0 + dns=ns1.cs.bell-labs.com + dns=ns2.cs.bell-labs.com +dom=ns1.cs.bell-labs.com ip=135.104.1.11 +dom=ns2.cs.bell-labs.com ip=135.104.1.12 + +.EE +.PP +The server for a domain is indicated by a database entry containing +both a +.I dom +and a +.I ns +attribute. +For example, the entry for the Internet root is: +.EX + +dom= + ns=A.ROOT-SERVERS.NET + ns=B.ROOT-SERVERS.NET + ns=C.ROOT-SERVERS.NET +dom=A.ROOT-SERVERS.NET ip=198.41.0.4 +dom=B.ROOT-SERVERS.NET ip=128.9.0.107 +dom=C.ROOT-SERVERS.NET ip=192.33.4.12 + +.EE +The last three lines provide a mapping for the +server names to their ip addresses. This is only +a hint and will be superseded from whatever is learned +from servers owning the domain. +.PP +The root of a domain subtree served by the local database is indicated +by an entry with an +.B soa +attribute. +For example, the Bell Labs CS research domain is: +.EX + +dom=cs.bell-labs.com soa= + refresh=3600 ttl=3600 + ns=plan9.bell-labs.com + ns=ns1.cs.bell-labs.com + ns=ns2.cs.bell-labs.com + mb=presotto@plan9.bell-labs.com + mx=mail.research.bell-labs.com pref=20 + mx=plan9.bell-labs.com pref=10 + +.EE +Here, the +.B mb +entry is the mail address of the person responsible for the +domain (default +.BR postmaster ). +The +.B mx +entries list mail exchangers for the domain name and +.B refresh +and +.B ttl +define the area refresh interval and the minimum TTL for +records in this domain. +.PP +Delegation of a further subtree to another set of name servers +is indicated by an +.B soa=delegated +attribute. +.EX + +dom=bignose.cs.research.bell-labs.com + soa=delegated + ns=anna.cs.research.bell-labs.com + ns=dj.cs.research.bell-labs.com + +.EE +Nameservers within the delegated domain (as in this example) +must have their IP addresses listed elsewhere in +.I ndb +files. +.PP +Wild-carded domain names can also be used. +For example, to specify a mail forwarder for all Bell Labs research systems: +.EX + +dom=*.research.bell-labs.com + mx=research.bell-labs.com + +.EE +`Cname' aliases may be established by adding a +.B cname +attribute giving the real domain name; +the name attached to the +.B dom +attribute is the alias. +`Cname' aliases are severely restricted; +the aliases may have no other attributes than +.B dom +and are daily further restricted in their use by new RFCs. +.EX + +cname=anna.cs.research.bell-labs.com dom=www.cs.research.bell-labs.com + +.EE +.I Ndb/dnsquery +can be used to query +.I ndb/dns +to see how it resolves requests. +.I Ndb/dnsquery +prompts for commands of the form +.IP +.I "domain-name request-type" +.LP +where +.I request-type +can be +.BR ip , +.BR mx , +.BR ns , +.BR cname , +.BR ptr .... +In the case of the inverse query type, +.BR ptr , +.I dnsquery +will reverse the ip address and tack on the +.B .in-addr.arpa +for you. +.PP +.I Ndb/dnsdebug +is like +.I ndb/dnsquery +but bypasses the local server. +It communicates via UDP with the domain name servers +in the same way that the local resolver would and displays +all packets received. +The query can be specified on the command line or +can be prompted for. +The queries look like those of +.I ndb/dnsquery +with one addition. +.I Ndb/dnsdebug +can be directed to query a particular name server by +the command +.BI @ name-server\f1. +From that point on, all queries go to that name server +rather than being resolved by +.IR dnsdebug . +The +.B @ +command returns query resolution to +.IR dnsdebug . +Finally, any command preceded by a +.BI @ name-server +sets the name server only for that command. +.PP +Normally +.I dnsdebug +uses the +.B /net +interface and the database file +.BR /lib/ndb/local. +The +.B -x +option directs +.I dnsdebug +to use the +.B /net.alt +interface and +.B /lib/ndb/external +file. +The +.B -r +option is the same as for +.IR ndb/dns . +.PP +.I Ndb/mkdb +is used in concert with +.IR awk (1) +scripts to convert +uucp systems files and IP host files +into database files. +It is very specific to the situation at Murray Hill. +.PP +When the database files change underfoot, +.I ndb/cs +and +.I ndb/dns +track them properly. Nonetheless, to keep the database searches efficient +it is necessary to run +.I ndb/mkhash +whenever the files are modified. +It may be profitable to control this by a frequent +.IR cron (8) +job. +.PP +.I Ndb/mkhosts +generates a BSD style +.BR hosts , +.BR hosts.txt , +and +.B hosts.equiv +files from an ndb data base file specified on the +command line (default +.BR /lib/ndb/local ). +For local reasons the files are called +.BR hosts.1127 , +.BR astro.txt , +and +.BR hosts.equiv . +.SH EXAMPLES +.EX +% ndb/query sys helix +sys=helix dom=helix.research.bell-labs.com bootf=/mips/9powerboot + ip=135.104.117.31 ether=080069020427 + proto=il +% ndb/dnsquery +> plan9.bell-labs.com ip +plan9.bell-labs.com ip 204.178.31.2 +> 204.178.31.2 ptr +2.31.178.204.in-addr.arpa ptr plan9.bell-labs.com +2.31.178.204.in-addr.arpa ptr ampl.com +> +.EE +.SH FILES +.TF /lib/ndb/local.*xxx +.TP +.B /lib/ndb/local +first database file searched +.TP +.B /lib/ndb/local.* +hash files for +.B /lib/ndb/local +.TP +.B /srv/cs +service file for +.I ndb/cs +.TP +.B /net/cs +where +.B /srv/cs +gets mounted +.TP +.B /srv/dns +service file for +.I ndb/dns +.TP +.B /net/dns +where +.B /srv/dns +gets mounted +.SH SOURCE +.B /sys/src/cmd/ndb +.SH SEE ALSO +.IR ndb (2) +.IR ndb (6) diff --git a/static/plan9-4e/man8/newuser.8 b/static/plan9-4e/man8/newuser.8 new file mode 100644 index 00000000..2d385245 --- /dev/null +++ b/static/plan9-4e/man8/newuser.8 @@ -0,0 +1,119 @@ +.TH NEWUSER 8 +.SH NAME +newuser \- adding a new user +.SH SYNOPSIS +.B /sys/lib/newuser +.SH DESCRIPTION +To establish a new user on Plan 9, +add the user's name to +.B /adm/users +by running the +.B newuser +command on the console of the file server +(see +.IR users (6) +and +.IR fs (8)). +Next, give the user a password using the +.B changeuser +command on the console of the authentication server +(see +.IR auth (8)). +At this point, the user can bootstrap a terminal using the new name and +password. +The terminal will only get as far as running +.BR rc , +however, as no +.B profile +exists for the user. +.PP +The +.IR rc (1) +script +.B /sys/lib/newuser +sets up a sensible environment for a new user of Plan 9. +Once the terminal is running +.BR rc , +type +.IP +.EX +/sys/lib/newuser +.EE +.PP +to build the necessary directories in +.B /usr/$user +and create a reasonable initial profile in +.BR /usr/$user/lib/profile +and +plumbing rules in +.BR /usr/$user/lib/plumbing +(see +.IR plumber (4)). +The script then runs the profile which, as its last step, brings up +.IR rio (1). +At this point the user's environment is established and running. +(There is no need to reboot.) +It may be prudent at this point to run +.IR passwd (1) +to change the password, depending on how the initial password was chosen. +.PP +The +.B profile +built by +.B /sys/lib/newuser +looks like this: +.IP +.EX +bind -a $home/bin/rc /bin +bind -a $home/bin/$cputype /bin +bind -c tmp /tmp +font = /lib/font/bit/pelm/euro.9.font +switch($service){ +case terminal + plumber + upas/fs + echo -n accelerated > '#m/mousectl' + echo -n 'res 3' > '#m/mousectl' + prompt=('term% ' ' ') + fn term%{ $* } + exec rio +case cpu + if (test -e /mnt/term/mnt/wsys) { + # rio already running + bind -a /mnt/term/mnt/wsys /dev + echo -n $sysname > /dev/label + } + bind /mnt/term/dev/cons /dev/cons + bind /mnt/term/dev/consctl /dev/consctl + bind -a /mnt/term/dev /dev + prompt=('cpu% ' ' ') + fn cpu%{ $* } + upas/fs + news + if (! test -e /mnt/term/mnt/wsys) { + # cpu call from drawterm + font=/lib/font/bit/pelm/latin1.8.font + exec rio + } +case con + prompt=('cpu% ' ' ') + news +} +.EE +.PP +Sites may make changes to +.B /sys/lib/newuser +that reflect the properties of the local environment. +.PP +Use the +.B -c +option of +.IR mail (1) +to create a mailbox. +.SH "SEE ALSO" +.IR passwd (1), +.IR rio (1), +.IR namespace (4), +.IR users (6), +.IR auth (8), +.IR fs (8) diff --git a/static/plan9-4e/man8/nfsserver.8 b/static/plan9-4e/man8/nfsserver.8 new file mode 100644 index 00000000..95394314 --- /dev/null +++ b/static/plan9-4e/man8/nfsserver.8 @@ -0,0 +1,164 @@ +.TH NFSSERVER 8 +.SH NAME +nfsserver, portmapper, pcnfsd, 9auth \- NFS service +.SH SYNOPSIS +.B aux/nfsserver +[ +.I rpc-options... +] +[ +.I nfs-options... +] +.br +.B aux/pcnfsd +[ +.I rpc-options... +] +.br +.B aux/portmapper +[ +.I rpc-options... +] +.SH DESCRIPTION +These programs collectively provide NFS access to Plan 9 file servers. +.IR Nfsserver , +.IR pcnfsd , +and +.I portmapper +run on a Plan 9 CPU server, and should be started in that order. +All users on client machines have the +access privileges of the Plan 9 user +.LR none . +.PP +The +.I rpc-options +are all intended for debugging: +.nr zz \w'\f5-a\f2 addr'+2n/1n +.TP \n(zz +.B -r +Reject: answer all RPC requests by returning the +.B AUTH_TOOWEAK +error. +.TP +.B -v +Verbose: show all RPC calls and internal program state, including 9P messages. +(In any case, the program creates a file +.BI /srv/ name .chat +where +.I name +is that of the program; echoing +.L 1 +or +.L 0 +into this file sets or clears the +.B -v +flag dynamically.) +.TP +.B -D +Debug: show all RPC messages (at a lower level than +.BR -v ). +This flag may be repeated to get more detail. +.TP +.B -C +Turn off caching: do not answer RPC requests using the +RPC reply cache. +.PP +The +.I nfs-options +are: +.TP \n(zz +.BI -a " addr" +Set up NFS service for the 9P server at network address +.IR addr . +.TP +.BI -f " file" +Set up NFS service for the 9P server at +.I file +(typically an entry in +.BR /srv ). +.TP +.B -n +Do not allow per-user authentication. +.TP +.BI -c " file" +.I File +contains the uid/gid map configuration. It is read at startup +and subsequently every hour (or if +.L c +is echoed into +.BR /srv/nfsserver.chat ). +Blank lines or lines beginning with +.L # +are ignored; lines beginning with +.L ! +are executed as commands; otherwise lines contain four fields +separated by white space: a regular expression (in the notation of +.IR regexp (6)) +for a class of servers, a regular expression for +a class of clients, a file of user id's (in the format of a Unix +password file), and a file of group id's (same format). +.PP +NFS clients must be in the Plan 9 +.B /lib/ndb +database. +The machine name is deduced from the IP address via +.BR ndb/query . +The machine name specified in the NFS Unix credentials +is completely ignored. +.PP +.I Pcnfsd +is a toy program that authorizes PC-NFS clients. All clients +are mapped to uid=1, gid=1 +.RB ( daemon +on most systems) regardless of name or password. +.SH EXAMPLES +A simple +.B /lib/ndb/nfs +might contain: +.PP +.EX +!9fs tcp!ivy +\&.+ [^.]+\e.cvrd\e.hall\e.edu /n/ivy/etc/passwd /n/ivy/etc/group +.EE +.PP +A typical entry in +.B /rc/bin/cpurc +might be: +.PP +.EX +aux/nfsserver -a il!bootes -a il!fornax -c /lib/ndb/nfs +aux/pcnfsd +aux/portmapper +.EE +.PP +Assuming the cpu server's name is +.BR eduardo , +the mount commands on the client would be: +.PP +.EX +/etc/mount -o soft,intr eduardo:bootes /n/bootes +/etc/mount -o soft,intr eduardo:fornax /n/fornax +.EE +.PP +Note that a single instance of +.I nfsserver +may provide access to several 9P servers. +.SH FILES +.TF /lib/ndb/nfs +.TP +.B /lib/ndb/nfs +List of uid/gid maps. +.TP +.B /sys/log/nfs +Log file. +.SH SOURCE +.B /sys/src/cmd/9nfs +.SH BUGS +It would be nice to provide authentication for users, but Unix systems +provide too low a level of security to be trusted in a Plan 9 world. +.SH SEE ALSO +RFC1057, +.I "RPC: Remote Procedure Call Protocol Specification, Version 2." +.br +RFC1094, +.I "NFS: Network File System Protocol Specification." diff --git a/static/plan9-4e/man8/pcmcia.8 b/static/plan9-4e/man8/pcmcia.8 new file mode 100644 index 00000000..027a7f99 --- /dev/null +++ b/static/plan9-4e/man8/pcmcia.8 @@ -0,0 +1,23 @@ +.TH PCMCIA 8 +.SH NAME +pcmcia \- identify a PCMCIA card +.SH SYNOPSIS +.B aux/pcmcia +[ +.I file +] +.SH DESCRIPTION +.B Aux/pcmcia +translates the PCMCIA information structure from +.I file +(default +.BR #y/pcm0attr ) +into a readable description and writes it to +standard output. +.SH FILES +.TF #y/pcm0attr +.TP +.B #y/pcm0attr +The attribute memory of the card in the PCMCIA slot. +.SH SOURCE +.B /sys/src/cmd/aux/pcmcia.c diff --git a/static/plan9-4e/man8/ping.8 b/static/plan9-4e/man8/ping.8 new file mode 100644 index 00000000..a78ba99c --- /dev/null +++ b/static/plan9-4e/man8/ping.8 @@ -0,0 +1,146 @@ +.TH PING 8 +.SH NAME +ping, gping, traceroute, hogports \- probe the Internet +.SH SYNOPSIS +.B ping +[ +.B -d +] [ +.B -i +.I interval +] [ +.B -s +.I size +] [ +.B -n +.I count +] +.I destination +.PP +.B gping +[ +.B -r +] [ +.B -l +] [ +.B -i +.I interval +] +.I destination +[ +.I destination +\&... ] +.PP +.B traceroute +[ +.B -dn +][ +.B -t +.I tries +] +.I dest +.PP +.B hogports +.B [\fImtpt\fP/]\fIproto\fP!\fIaddress\fP!\fIstartport\fP[-\fIendport\fP] +.SH DESCRIPTION +.I Ping +sends ICMP echo requests to a system and returns the time +for a response. It can be used to determine the network delay +and whether or not the destination is up. +.PP +The options are: +.TP +.B n +requests that a total of +.I count +messages be sent, default 32. +.TP +.B i +sets the time between messages +to be +.I interval +milliseconds, default 1000 ms. +.TP +.B s +sets the length of the message to be +.I size +bytes, ICMP header included. +The size cannot be smaller than 32 or +larger than 8192. The default is +64. +.TP +.B d +causes message numbers to be printed +so that one can see the order with which +messages are received and which are lost. +.PP +.I Gping +is a +.I ping +with a graphical display. It +presents separate graphs for each destination +specified. +.PP +The options are: +.TP +.B r +display round trip time in seconds. +This is the default. +.TP +.B l +display percentage of lost messages. +A message is considered lost if not +replied to in 10 seconds. The percentage +is an exponentially weighted average. +.TP +.B i +sets the time between messages +to be +.I interval +milliseconds, default 5000 ms. +.PP +Graphs can be dropped and added using +the button 3 menu. Clicking button 1 +on a datapoint displays the value of the +datapoint and the time it was recorded. +.PP +.I Traceroute +displays the IP addresses and average round trip times to all +routers between the machine it is run on and +.IR dest . +It does this by sending packets to +.I dest +with increasing times to live (TTL) in their headers. +Each router that a packet expires at replies with an ICMP +warning message. +The options are: +.TP +.B d +print debugging to standard error +.TP +.B n +just print out IP numbers, don't try to +look up the names of the routers. +.TP +.B t +send +.I tries +packets at each TTL value (default 1). +.PP +.I Hogports +announces on a range of ports to keep them from other processes. +For example, to keep anyone from making a vncserver visible on +the network mounted at +.BR /net.alt : +.EX + + ip/hogports /net.alt/tcp!*!5900-5950 +.EE +.SH SOURCE +.B /sys/src/cmd/ip/ping.c +.br +.B /sys/src/cmd/ip/gping.c +.br +.B /sys/src/cmd/ip/traceroute.c +.br +.B /sys/src/cmd/ip/hogports.c diff --git a/static/plan9-4e/man8/plan9.ini.8 b/static/plan9-4e/man8/plan9.ini.8 new file mode 100644 index 00000000..6cfb2b55 --- /dev/null +++ b/static/plan9-4e/man8/plan9.ini.8 @@ -0,0 +1,815 @@ +.TH PLAN9.INI 8 +.SH NAME +plan9.ini \- configuration file for PCs +.SH SYNOPSIS +.I none +.SH DESCRIPTION +When booting Plan 9 on a PC, the DOS program +.IR 9load (8) +first reads a DOS file +containing configuration information from the boot disk. +This file, +.BR plan9.ini , +looks like a shell script containing lines of the form +.PP +.EX + name=\f2value\fP +.EE +.LP +each of which defines a kernel or device parameter. +.PP +For devices, the generic format of +.I value +is +.PP +.EX + type=TYPE [port=N] [irq=N] [mem=N] [size=N] [dma=N] [ea=N] +.EE +.LP +specifying the controller type, +the base I/O port of the interface, its interrupt +level, the physical starting address of any mapped memory, +the length in bytes of that memory, the DMA channel, +and for Ethernets an override of the physical network address. +Not all elements are relevant to all devices; the relevant values +and their defaults are defined below in the description of each device. +.PP +The file is used by +.B 9load +and the kernel to configure the hardware available. +The information it contains is also passed to the boot +process, and subsequently other programs, +as environment variables +(see +.IR boot (8)). +However, values whose names begin with an asterisk +.B * +are used by the kernel and are not converted into environment variables. +.PP +The following sections describe how variables are used. +.SS \fLetherX=value\fP +This defines an Ethernet interface. +.IR X , +a unique monotonically increasing number beginning at 0, +identifies an Ethernet card to be probed at system boot. +Probing stops when a card is found or there is no line for +.BR etherX+1 . +After probing as directed by the +.BI ether X +lines, any remaining ethernet cards that can be automatically +detected are added. +Almost all cards can be automatically detected. +This automatic probing is only done by the kernel, not by +.IR 9load (8). +Thus, if you want to load a kernel over the ethernet, you need +to specify an +.B ether0 +line so that +.I 9load +can find the ethernet card, even if the kernel would +have automatically detected it. +.PP +Some cards are software configurable and do not require all options. +Unspecified options default to the factory defaults. +.PP +Known types are +.TP +.B ne2000 +Not software configurable. 16-bit card. +Defaults are +.EX + port=0x300 irq=2 mem=0x04000 size=0x4000 +.EE +The option (no value) +.B nodummyrr +is needed on some (near) clones to turn off a dummy remote read in the driver. +.TP +.B amd79c970 +The AMD PCnet PCI Ethernet Adapter (AM79C970). +(This is the ethernet adapter used by VMware.) +Completely configurable, no options need be given. +.TP +.B wd8003 +Includes WD8013 and SMC Elite and Elite Ultra cards. There are varying degrees +of software configurability. Cards may be in either 8-bit or 16-bit slots. +Defaults are +.EX + port=0x280 irq=3 mem=0xD0000 size=0x2000 +.EE +BUG: On many machines only the 16 bit card works. +.TP +.B elnk3 +The 3COM Etherlink III series of cards including the 5x9, 59x, and 905 and 905B. +Completely configurable, no options need be given. +The media may be specified by setting +.B media= +to the value +.BR 10BaseT , +.BR 10Base2 , +.BR 100BaseTX , +.BR 100BaseFX , +.BR aui , +and +.BR mii . +If you need to force full duplex, because for example the Ethernet switch does not negotiate correctly, +just name the word (no value) +.B fullduplex +or +.BR 100BASE-TXFD . +Similarly, to force 100Mbit operation, specify +.BR force100 . +Port 0x110 is used for the little ISA configuration dance. +.TP +.B 3c589 +The 3COM 3C589 series PCMCIA cards, including the +3C562 and the 589E. +There is no support for the modem on the 3C562. +Completely configurable, no options need be given. +Defaults are +.EX + port=0x240 irq=10 +.EE +The media may be specified as +.B media=10BaseT +or +.BR media=10Base2 . +.TP +.B ec2t +The Linksys Combo PCMCIA EthernetCard (EC2T), +EtherFast 10/100 PCMCIA cards (PCMPC100) and integrated controllers (PCM100), +the Netgear FA410TX 10/100 PCMCIA card +and the Accton EtherPair-PCMCIA (EN2216). +Completely configurable, no options need be given. +Defaults are +.EX + port=0x300 irq=9 +.EE +These cards are NE2000 clones. +Other NE2000 compatible PCMCIA cards may be tried +with the option +.EX + id=string +.EE +where +.B string +is a unique identifier string contained in the attribute +memory of the card (see +.IR pcmcia (8)); +unlike most options in +.BR plan9.ini , +this string is case-sensitive. +The option +.B dummyrr=[01] +can be used to turn off (0) or on (1) a dummy remote read in the driver +in such cases, +depending on how NE2000 compatible they are. +.TP +.B i82557 +Cards using the Intel 8255[789] Fast Ethernet PCI Bus LAN Controller such as the +Intel EtherExpress PRO/100B. +Completely configurable, no options need be given. +If you need to force the media, specify +one of the options (no value) +.BR 10BASE-T , +.BR 10BASE-2 , +.BR 10BASE-5 , +.BR 100BASE-TX , +.BR 10BASE-TFD , +.BR 100BASE-TXFD , +.BR 100BASE-T4 , +.BR 100BASE-FX , +or +.BR 100BASE-FXFD . +.TP +.B 2114x +Cards using the Digital Equipment (now Intel) 2114x PCI Fast Ethernet Adapter Controller, +for example the Netgear FA310. +Completely configurable, no options need be given. +Media can be specified the same was as for the +.BR i82557 . +Some cards using the +.B PNIC +and +.B PNIC2 +near-clone chips may also work. +.\" .TP +.\" .B ga620 +.\" Netgear GA620 and GA620T Gigabit Ethernet cards, +.\" and other cards using the Alteon Acenic chip such as the +.\" Alteon Acenic fiber and copper cards, +.\" the DEC DEGPA-SA and the SGI Acenic. +.\" Completely configurable. +.TP +.B wavelan +Lucent Wavelan (Orinoco) IEEE 802.11b +and compatible PCMCIA cards. +Compatible cards include the Dell TrueMobile 1150 +and the Linksys Instant Wireless Network PC Card. +Port and IRQ defaults are 0x180 and 3 respectively. + +These cards take a number of unique options to aid in +identifying the card correctly on the 802.11b network. +The network may be +.I "ad hoc" +or +.I managed +(i.e. use an access point): +.EX + mode=[adhoc, managed] +.EE +and defaults to +.IR managed . +The 802.11b network to attach to +.RI ( managed +mode) +or identify as +.RI ( "ad hoc" +mode), +is specified by +.EX + essid=string +.EE +and defaults to a null string. +The card station name is given by +.EX + station=string +.EE +and defaults to +.IR "Plan 9 STA" . +The channel to use is given by +.EX + channel=number +.EE +where +.I number +lies in the range 1 to 16 inclusive; +the channel is normally negotiated automatically. + +If the card is capable of encryption, +the following options may be used: +.EX + crypt=[off, on] +.EE +and defaults to +.IR on . +.EX + key\fIN\fP=string +.EE +sets the encryption key +.I n +(where +.I n +is in the range 1 to 4 inclusive) to +.IR string ; +this will also set the transmit key to +.I n +(see below). +.EX + txkey=number +.EE +sets the transmit key to use to be +.I number +in the range 1 to 4 inclusive. +If it is desired to exclude or include unencrypted packets +.EX + clear=[off, on] +.EE +configures reception and defaults to inclusion. + +The defaults are intended to match the common case of +a managed network with encryption and a typical entry would +only require, for example +.EX + essid=left-armpit key2=fishcalledraawaru +.EE +if the port and IRQ defaults are used. +These options may be set after boot by writing to the device's +.I ctl +file using a space as the separator between option and value, e.g. +.EX + echo 'key2 fishcalledraawaru' > /net/ether0/0/ctl +.EE +.TP +.B wavelanpci +PCI ethernet adapters that use the same Wavelan +programming interface. +Currently the only tested cards are those based on the +Intersil Prism 2.5 chipset. +.TP +.B 83815 +National Semiconductor DP83815-based adapters, notably +the Netgear FA311, Netgear FA312, and various SiS built-in +controllers such as the SiS900. +On the SiS controllers, the ethernet address is not detected properly; +specify it with an +.B ea= +attribute. +.\" .TP +.\" .B 83820 +.\" National Semiconductor DP83820-based gigabit ethernet adapters, notably +.\" the D-Link DGE-500T. +.TP +.B rtl8139 +The Realtek 8139. +.TP +.B 82543gc +The Intel RS-82543GC gigabit ethernet controller, +as found on the Intel PRO/1000[FT] server adapter. +The older non-[FT] cards based on the 82542 (LSI L2A1157) +chip are not supported, although support would probably be +easy to add. +.TP +.B smc91cxx +SMC 91cXX chip-based PCMCIA adapters, notably the SMC EtherEZ card. +.TP +.B sink +A +.B /dev/null +for ethernet packets \(em the interface discards sent +packets and never receives any. +This is used to provide a test bed for +some experimental ethernet bridging software. +.SS \fLusbX=type=uhci port=xxx irq=xxx\fP +This specifies the settings for a USB UHCI controller. +Like the ethernet controllers, USB controllers are autodetected +after scanning for the ones listed in +.IR plan9.ini . +Thus, most systems will not need a +.B usbX +line. +.SS \fLscsiX=value\fP +This defines a SCSI interface which cannot be automatically detected +by the kernel. +.PP +Known types are +.TP +.B aha1542 +The Adaptec 154x series of controllers (and clones). +Almost completely configurable, only the +.EX + port=0x300 +.EE +option need be given. +.PP +NCR/Symbios/LSI Logic 53c8xx-based adapters +and Mylex MultiMaster (Buslogic BT-*) adapters are +automatically detected and need no entries. +.PP +By default, the NCR 53c8xx driver searches for up to 32 controllers. +This can be changed by setting the variable +.BR *maxsd53c8xx . +.PP +By default the Mylex driver resets SCSI cards by using +both the hard reset and SCSI bus reset flags in the driver interface. +If a variable +.BR *noscsireset +is defined, the SCSI bus reset flag is omitted. +.SS Uarts +Plan 9 automatically configures COM1 and COM2, if found, +as +.B eia0 +(port 0x3F8, IRQ4) +and +.B eia1 +(port 0x2F8, IRQ3) +respectively. +These devices can be disabled by adding a line: +.EX + eia\fIX\fP=disabled +.EE +This is typically done in order to reuse the IRQ for +another device. +.PP +Plan 9 used to support various serial concentrators, +including the TTC 8 serial line card and various models +in the Star Gate Avanstar series of intelligent serial boards. +These are no longer supported; the much simpler +Perle PCI-Fast4, PCI-Fast8, and PCI-Fast16 controllers +have taken their places. +These latter cards are automatically detected +and need no configuration lines. +.PP +The line +.B serial=type=com +can be used to specify settings for a PCMCIA modem. +.SS \fLmouseport=value\fP +This specifies where the mouse is attached. +.I Value +can be +.TP +.B ps2 +the PS2 mouse/keyboard port. The BIOS setup procedure +should be used to configure the machine appropriately. +.TP +.B ps2intellimouse +an Intellimouse on the PS2 port. +.TP +.B 0 +for COM1 (currently not supported) +.TP +.B 1 +for COM2 (currently not supported) +.SS \fLmodemport=value\fP +Picks the UART line to call out on. +This is used when connecting to a file server over +an async line. +.I Value +is the number of the port. +.SS \fLpcmciaX=type=XXX irq=value\fP +If the default IRQ for the +PCMCIA +is correct, this entry can be omitted. The value of +.B type +is ignored. +.SS \fLconsole=value params\fP +This is used to specify the console device. +The default +value is +.BR cga ; +a number +.B 0 +or +.B 1 +specifies +.I COM1 +or +.I COM2 +respectively. +A serial console is initially configured with the +.IR uart (3) +configuration string +.B b9600 +.B l8 +.B pn +.BR s1 , +specifying 9600 baud, +8 bit bytes, no parity, and one stop bit. +If +.I params +is given, it will be used to further +configure the uart. +Notice that there is no +.B = +sign in the +.I params +syntax. +For example, +.EX + console=0 b19200 po +.EE +would use COM1 at 19,200 baud +with odd parity. +.SS \fLbootfile=value\fP +This is used to direct the actions of +.IR 9load (8) +by naming the device and file from which to load the kernel. +.SS \fLrootdir=dir\fP +.SS \fLrootspec=spec\fP +These are used by +.IR 9load (8) +to identify the directory +.I dir +to make the root directory for the kernel, and the +file system specifier +.I spec +(see +.B mount +in +.IR bind (2)) +on which it can be found. +These are usually used to test variant file systems for distributions, etc. +.SS \fLbootargs=value\fP +The value of this variable is passed to +.IR boot (8) +by the kernel as the name of the root file system. +For example, if the system is to run from a local +.IR kfs (4) +partition, the definition might read +.BR bootargs=local!#S/sdC0/fs . +.SS \fLcfs=value\fP +This gives the name of the file holding the disk partition +for the cache file system, +.IR cfs (4). +Extending the +.B bootargs +example, one would write +.BR cfs=#S/sdC0/cache . +.SS \fLbootdisk=value\fP +This deprecated variable was used to specify the disk used by +the cache file system and other disk-resident services. +It is superseded by +.B bootargs +and +.BR cfs . +.SS \fLpartition=value\fP +This defines the partition table +.IR 9load (8) +will examine to find disk partitioning information. +By default, a partition table in a Plan 9 partition +is consulted; if no such table is found, an old-Plan 9 +partition table on the next-to-last or last sector +of the disk is consulted. +A value of +.B new +consults only the first table, +.B old +only the second. +.SS \fL*maxmem=value\fP +This defines the maximum physical address that the system will scan when sizing memory. +By default the operating system will scan up to 768 megabytes, but setting +.B *maxmem +will limit the scan. +If the system has more than 768 megabytes, you must set +.B *maxmem +for the kernel to find it. +.B *maxmem +must be less than 1.75 gigabytes. +.SS \fL*kernelpercent=value\fP +This defines what percentage of available memory is reserved for the kernel allocation pool. +The remainder is left for user processes. The default +.I value +is +.B 30 +on CPU servers, +.B 60 +on terminals with less than 16MB of memory, +and +.B 40 +on terminals with memories of 16MB or more. +Terminals use more kernel memory because +.IR draw (3) +maintains its graphic images in kernel memory. +This deprecated option is rarely necessary in newer kernels. +.SS \fL*nomce=value\fP +If machine check exceptions are supported by the processor, +then they are enabled by default. +Setting this variable to +.B 1 +causes them to be disabled even when available. +.SS \fL*nomp=value\fP +A multiprocessor machine will enable all processors by default. +Setting +.B *nomp +restricts the kernel to starting only one processor and using the +traditional interrupt controller. +.SS \fL*ncpu=value\fP +Setting +.B *ncpu +restricts the kernel to starting at most +.I value +processors. +.SS \fL*pcimaxbno=value\fP +This puts a limit on the maximum bus number probed +on a PCI bus (default 255). +For example, a +.I value +of 1 should suffice on a 'standard' motherboard with an AGP slot. +This, and +.B *pcimaxdno +below are rarely used and only on troublesome or suspect hardware. +.SS \fL*pcimaxdno=value\fP +This puts a limit on the maximum device number probed +on a PCI bus (default 31). +.\" .SS \fL*nobios=\fP +.\" what does this do? something with pci +.SS \fLioexclude=value\fP +Specifies a list of ranges I/O ports to exclude from use by drivers. +Ranges are inclusive on both ends and separated by commas. +For example: +.EX + ioexclude=0x330-0x337,0x430-0x43F +.EE +.SS \fLapm0=\fP +This enables the ``advanced power management'' interface +as described in +.IR apm (3) +and +.IR apm (8). +The main feature of the interface is the ability to watch +battery life (see +.IR stats (8)). +It is not on by default because it causes problems on some laptops. +.SS \fLmonitor=value\fP +.SS \fLvgasize=value\fP +These are used not by the kernel but by +.I termrc +(see +.IR cpurc (8)) +when starting +.IR vga (8). +.SS \fL*dpms=value\fP +This is used to specify the screen blanking behavior of the MGA4xx +video driver. +Values are +.BR standby , +.BR suspend , +and +.BR off . +The first two specify differing levels of power saving; +the third turns the monitor off completely. +.SS \fLnvr=value\fP +This is used by a file server kernel to locate a file holding information +to configure the file system. +The file cannot live on a SCSI disk. +The default is +.B fd!0!plan9.nvr +(sic), +unless +.B bootfile +is set, in which case it is +.B plan9.nvr +on the same disk as +.BR bootfile . +The syntax is either +.BI fd! unit ! name +or +.BI hd! unit ! name +where +.I unit +is the numeric unit id. +This variant syntax is a vestige of the file server kernel's origins. +.SS \fLaudioX=value\fP +This defines a sound interface. +.PP +Known types are +.TP +.B sb16 +Sound Blaster 16. +.TP +.B ess1688 +A Sound Blaster clone. +.PP +The DMA channel may be any of 5, 6, or 7. +The defaults are +.EX + port=0x220 irq=7 dma=5 +.EE +.SS \fLfs=a.b.c.d\fP +.SS \fLauth=a.b.c.d\fP +These specify the IP address of the file and authentication server +to use when mounting a network-provided root file system. +They are used only if the addresses cannot be determined via DHCP. +.SH Multiple Configurations +.PP +A +.B plan9.ini +file may contain multiple configurations, +each within a block beginning with a line +.EX + [tag] +.EE +A special block with the tag +.B menu +gives a list of blocks from which the user may +interactively select the contents of +.BR plan9.ini . +There may also be multiple blocks with the tag +.B common +which will be included in all selections; +if any lines appear in +.B plan9.ini +before the first block, +they are treated as a +.B common +block. +.LP +Within the +.B menu +block the following configuration lines are allowed: +.SS \fLmenuitem=tag[, description] +The block identified by +.B tag +will appear in the presented menu. +The menu entry will consist of the +.B tag +unless the optional +.B description +is given. +.SS \fLmenudefault=tag[, timeout] +Identifies a default block to be given in the +menu selection prompt. +If the optional +.B timeout +is given (in seconds), +the default block will be selected if there is no user +input within the timeout period. +.SS \fLmenuconsole=value[, baud] +Selects a serial console upon which to present the menu +as no +.B console +or +.B baud +configuration information will have been processed yet +(the +.B plan9.ini +contents are still to be decided...). +.LP +In response to the menu being printed, +the user is prompted to select a menu item from the list. +If the numeric response is followed by a +.BR p , +the selected configuration is printed and the menu presented +again. +.LP +The line +.EX + menuitem=tag +.EE +is prefixed to the selected configuration as an aid to +user-level initialization scripts. +.SH EXAMPLES +.PP +A representative +.BR plan9.ini : +.IP +.EX +% cat /n/c:/plan9.ini +ether0=type=3C509 +mouseport=ps2 +modemport=1 +serial0=type=generic port=0x3E8 irq=5 +monitor=445x +vgasize=1600x1200x8 +% +.EE +.PP +Minimum CONFIG.SYS and AUTOEXEC.BAT files to use +COM2 as a console: +.IP +.EX +% cat /n/c:/config.sys +SHELL=COMMAND.COM COM2 /P +% cat /n/c:/autoexec.bat +@ECHO OFF +PROMPT $p$g +PATH C:\eDOS;C:\eBIN +mode com2:96,n,8,1,p +SET TEMP=C:\eTMP +% +.EE +.PP +Simple +.B plan9.ini +with multiple configurations: +.IP +.EX +[menu] +menuitem=vga, Plan 9 with VGA +menuitem=novga, Plan 9 no automatic VGA +menudefault=vga + +[vga] +monitor=multisync135 +vgasize=1024x768x8 + +[novga] + +[common] +ether0=type=i82557 +audio0=type=sb16 port=0x220 irq=5 dma=1 +.EE +.PP +With this, the following menu will be presented on boot: +.IP +.EX +Plan 9 Startup Menu: +==================== + 1. Plan 9 with VGA + 2. Plan 9 no automatic VGA +Selection[default==1]: +.EE +.PP +Selecting item 1 generates the following +.B plan9.ini +to be used by the remainder of the bootstrap process: +.IP +.EX +menuitem=vga +monitor=multisync135 +vgasize=1024x768x8 +ether0=type=i82557 +audio0=type=sb16 port=0x220 irq=5 dma=1 +.EE +.PP +and selecting item 2: +.IP +.EX +menuitem=novga +ether0=type=i82557 +audio0=type=sb16 port=0x220 irq=5 dma=1 +.EE +.SH "SEE ALSO" +.IR 9load (8), +.IR booting (8), +.IR boot (8) +.SH BUGS +Being able to set the console device to other than a +display is marginally useful on file servers; MS-DOS +and the programs which run under it are so tightly bound +to the display that it is necessary to have a display if any +setup or reconfiguration programs need to be run. +Also, the delay before any messages appear at boot time +is disconcerting, as any error messages from the BIOS +are lost. +.PP +This idea is at best an interesting experiment that needs another iteration. diff --git a/static/plan9-4e/man8/ppp.8 b/static/plan9-4e/man8/ppp.8 new file mode 100644 index 00000000..28e250bf --- /dev/null +++ b/static/plan9-4e/man8/ppp.8 @@ -0,0 +1,275 @@ +.TH PPP 8 +.SH NAME +ppp, pppoe, pptp, pptpd \- point to point protocol +.SH SYNOPSIS +.B ip/ppp +[ +.B -CPScdfu +][ +.B -b +.I baud +][ +.B -m +.I mtu +][ +.B -p +.I dev +][ +.B -s +.IR username : secret +][ +.B -x +.I netmntpt +][ +.B -t +.I modemcmd +] +[ +.I local +[ +.I remote +] ] +.PP +.B ip/pppoe +[ +.B -m +.I mtu +] +[ +.B -P +] +[ +.B -d +] +[ +.B -s +.IR username : secret +] +[ +.B -x +.I pppnetmntpt +] +.I etherdir +.PP +.B ip/pptp +[ +.B -P +] +[ +.B -d +] +[ +.B -s +.IR username : secret +] +[ +.B -w +.I window +] +[ +.B -x +.I pppnetmntpt +] +.I server +.PP +.B ip/pptpd +[ +.B -d +] [ +.B -p +.I pppnetmtpt +] [ +.B -w +.I window +] [ +.B -D +.I fraction +] +.I tcp-dir +.SH DESCRIPTION +The Point to Point Protocol is used to encapsulate Internet Protocol packets +for transfer over serial lines or other protocol connections. +.I Ppp +can run either as a client or, with the +.I \-S +option, as a server. The only differences between a client and a server is +that the server will not believe any local address the client tries to +supply it and that the server always initiates the authentication of the +client. +.PP +With no option, +.I ppp +communicates with the remote system via standard input and output. +This is useful if a program wants to use +.I ppp +in a communications stream. However, the normal mode is to +specify a communications device, usually a serial line with a modem. +.PP +PPP supports the following options: +.TP +.B p +communicate over +.I dev +instead of standard I/O +.TP +.B u +before starting the PPP porotcol with the remote end, shuttle +bytes between the device and standard I/O until an EOF on standard +input. This allows a user to start +.I ppp +and then type commands at a modem before +.I ppp +takes over +.TP +.B b +set the baud rate on the communications device +.TP +.B f +make PPP add HDLC framing. This is necessary when using +PPP over a serial line or a TCP connection +.TP +.B m +set the maximum transfer unit (default 1450) +.TP +.B P +use this as the primary IP interface; set the default +route through this interface and write it's configuration +to +.B /net/ndb +.TP +.B s +supplies the user name and secret +to be used in authenticating to the remote side. +The +.I username +is optional, the default being the local user id. +We support both PPP CHAP and MS CHAP +.TP +.B S +run as a server +.TP +.B x +use the IP stack mounted at +.I netmntpt +.TP +.B t +before starting the PPP protocol, write +.I modemcmd +to the device +.TP +.B c +disallow packet compression +.TP +.B C +disallow ip header compression +.PD +.PP +If both the +.I local +and +.I remote +addresses are specified, don't ask the other end for either +or believe it if it supplies one. If either is missing, get +it from the remote end. +.PP +.I Pppoe +is a PPP over ethernet (PPPoE) client. +It invokes +.I ppp +to start a PPP conversation which is +tunneled in PPPoE packets on +the ethernet device mounted at +.I etherdir +(default +.BR /net/ether0 ). +The options are: +.TP +.B A +insist on an access concentrator named +.I acname +during PPPoE discovery +.TP +.B S +insist on a service named +.I srvname +during PPPoE discovery +.TP +.B d +write debugging output to standard error, +and pass +.B -d +to +.I ppp +.TP +.B m +pass +.B -m +.I mtu +to +.IR ppp , +default 1492 +.TP +.B s +pass +.B -s +.IR username : secret +to +.I ppp +.TP +.B x +pass +.B -x +.I pppnetmntpt +to +.I ppp +.PD +.PP +.I Pptp +is a client for a PPTP encrypted tunnel. +.I Server +is the name of the server to dial. +.I Pptp +takes the same options as +.IR pppoe , +except for the lack of a +.B -m +option and the addition of a +.B -w +option. +The +.B -w +option specifies the local send window size +(default 16) in packets. +.PP +.I Pptpd +is the server side of a PPTP encrypted tunnel. +.I Tcpdir +is the directory of a TCP connection to the client. +The TCP connection is used to control the tunnel while +packets are sent back and forth using PPP inside of +GRE packets. +The options are: +.TP +.B d +write debugging output to standard error. +.TP +.B p +use the IP stack mounted at +.I pppnetmtpt +to terminate the PPP connection. +.TP +.B w +set the receive window to +.IR window . +.TP +.B D +drop +.I fraction +of the received packets. This is used for testing. +.PD +.SH SOURCE +.B /sys/src/cmd/ip/ppp +.br +.B /sys/src/cmd/ip/pptpd.c +.br +.B /sys/src/cmd/ip/pppoe.c diff --git a/static/plan9-4e/man8/prep.8 b/static/plan9-4e/man8/prep.8 new file mode 100644 index 00000000..e2b945bf --- /dev/null +++ b/static/plan9-4e/man8/prep.8 @@ -0,0 +1,657 @@ +.TH PREP 8 +.SH NAME +prep, fdisk, format, mbr \- prepare hard and floppy diskettes, flashes +.SH SYNOPSIS +.B disk/prep +[ +.B -abcfnprw +] +[ +.B -s +.I sectorsize +] +.I plan9partition +.PP +.B disk/fdisk +[ +.B -abfprw +] +[ +.B -s +.I sectorsize +] +.I disk +.PP +.B disk/format +[ +.B -dfvx +] +[ +.B -b +.I bootblock +] +[ +.B -c +.I csize +] +[ +.B -l +.I label +] +[ +.B -r +.I nresrv +] +[ +.B -t +.I type +] +.I disk +[ +.IR file ... +] +.PP +.B disk/mbr +[ +.B -m +.I mbrfile +] +.SH DESCRIPTION +A partition table is stored on a hard disk to specify the division of +the physical disk into a set of logical units. +On PCs, the partition table is stored at the end of the master boot record +of the disk. +Partitions of type +.B 0x39 +are Plan 9 partitions. +The names of PC partitions are chosen by convention from the type: +.BR dos , +.BR plan9 , +etc. +Second and subsequent partitions of the same type on a given disk are given +unique names by appending a number (or a period and a number if the name +already ends in a number). +.PP +Plan 9 partitions (and Plan 9 disks on non-PCs) are +themselves divided, using a textual partition table, called the Plan 9 partition table, in the second +sector of the partition (the first is left for architecture-specific boot data, such as PC boot blocks). +The table is a sequence of lines of the format +.BI part " name start end" \fR, +where +.I start +and +.I end +name the starting and ending sector. +Sector 0 is the first sector of the Plan 9 partition or disk, +regardless of its position in a larger disk. +Partition extents do not contain the ending sector, +so a partition from 0 to 5 and a partition from 5 to 10 +do not overlap. +.PP +The Plan 9 partition often contains a number of +conventionally named subpartitions. +They include: +.TF cache +.TP +.B 9fat +A small FAT file system used to hold +configuration information +(such as +.B plan9.ini +and +.BR plan9.nvr ) +and kernels. +This typically begins in the first sector +of the partition, and contains the partition +table as a ``reserved'' sector. +See the discussion of the +.B -r +option to +.IR format . +.TP +.B cache +A +.IR cfs (4) +file system cache. +.TP +.B fs +A +.IR kfs (4) +file system. +.TP +.B swap +A +.IR swap (8) +swap partition. +.PD +.PP +.I Fdisk +edits the PC partition table and is usually +invoked with a disk like +.B /dev/sdC0/data +as its argument, while +.I prep +edits the Plan 9 partition table +and is usually invoked with a disk partition +like +.B /dev/sdC0/plan9 +as its argument. +.I Fdisk +works in units of disk ``cylinders'': the cylinder +size in bytes is printed when +.I fdisk +starts. +.I Prep +works in units of disk sectors, which are almost always 512 bytes. +.I Fdisk +and +.I prep +share most of their options: +.TP +.B -a +Automatically partition the disk. +.I Fdisk +will create a Plan 9 +partition in the largest unused area on the disk, +doing nothing if a +Plan 9 partition already exists. +If no other partition on the disk is marked active (i.e. marked as the boot partition), +.I fdisk +will mark the new partition active. +.I Prep +will create +.BR 9fat , +.BR swap , +and +.B fs +partitions, doing +nothing if the disk +has already been partitioned. +If the +.B -c +option is present, +.I prep +will also create a +.B cache +partition. +If the +.B -n +option is present, +.I prep +will create a one-sector +.B nvram +partition. +.TP +.B -b +Start with a blank disk, ignoring any extant partition table. +.TP +.B -p +Print a sequence of commands that when sent to the disk device's +.B ctl +file +will bring the partition +table information kept by +the +.IR sd (3) +driver up to date. +Then exit. +.I Prep +will check to see if it is being called with a disk partition +(rather than an entire disk) as its argument; if so, it +will translate the printed sectors by the partition's offset +within the disk. +Since +.I fdisk +operates on a table of unnamed partitions, +it assigns names based on the partition type +(e.g., +.BR plan9 , +.BR dos , +.BR ntfs , +.BR linux , +.BR linuxswap ) +and resolves collisions by appending a numbered suffix. +(e.g., +.BR dos , +.BR dos.1 , +.BR dos.2 ). +.TP +.B -r +In the absence of the +.B -p +and +.B -w +flags, +.I prep +and +.I fdisk +enter an interactive partition editor; +the +.B -r +flag runs the editor in read-only mode. +.TP +.BI -s " sectorsize" +Specify the disk's sector size. +In the absence of this flag, +.I prep +and +.I fdisk +look for a disk +.B ctl +file and read it to find the disk's sector size. +If the +.B ctl +file cannot be found, a message is printed and +a sector size of 512 bytes is assumed. +.TP +.B -w +Write the partition table to the disk and exit. +This is useful when used in conjunction with +.B -a +or +.BR -b . +.PP +If neither the +.B -p +flag nor the +.B -w +flag is given, +.I prep +and +.I fdisk +enter an interactive partition editor that +operates on named partitions. +The PC partition table distinguishes between +primary partitions, which can be listed in the boot +sector at the beginning of the disk, +and secondary (or extended) partitions, arbitrarily +many of which may be chained together in place +of a primary partition. +Primary partitions are named +.BR p \fIn\fR, +secondary partitions +.BR s \fIn\fR. +The number of primary partitions plus number of contiguous chains of +secondary partitions cannot exceed four. +.PP +The commands are as follows. +In the descriptions, read ``sector'' as ``cylinder'' when using +.IR fdisk . +.TP +.B "a\fR \fIname\fR [ \fIstart\fR [ \fIend\fR ] ]" +Create a partition named +.I name +starting at sector offset +.I start +and ending at offset +.IR end . +The new partition will not be created if +it overlaps an extant partition. +If +.I start +or +.I end +are omitted, +.I prep +and +.I fdisk +will prompt for them. +.I Start +and +.I end +may be expressions using the operators +.BR + , +.BR - , +.BR * , +and +.BR / , +numeric constants, and the +pseudovariables +.B . +and +.BR $ . +At the start of the program, +.B . +is set to zero; each time a partition is +created, it is set to the end sector +of the new partition. +It can also be explicitly set using the +.B . +command. +When evaluating +.IR start , +.B $ +is set to one past the last disk sector. +When evaluating +.IR end , +.B $ +is set to the maximum value that +.I end +can take on without running off the disk +or into another partition. +Finally, the expression +.IB n % +evaluates to +.RI ( n × disksize )/100. +As an example, +.B a +.B . +.B .+20% +creates a new partition starting at +.B . +that takes up a fifth of the disk, +and +.B a +.B 1000 +.B $ +creates a new partition starting at +sector 1000 and +extending as far as possible. +.TP +.B ".\fR \fInewdot" +Set the value of the variable +.B . +to +.IR newdot , +which is an arithmetic expression as described +in the discussion of the +.B a +command. +.TP +.BI d " name" +Delete the named partition. +.TP +.B h +Print a help message listing command synopses. +.TP +.B p +Print the disk partition table. +Unpartitioned regions are also listed. +The table consists of a number of lines containing +partition name, beginning and ending sectors, +and total size. +A +.B ' +is prefixed to the names of partitions +whose entries have been modified but not written to disk. +.I Fdisk +adds to the end of each line a textual partition type, +and places a +.B * +next to the name of the active partition +(see the +.B A +command below). +.TP +.B P +Print the partition table in the format accepted by the disk's +.B ctl +file, which is also the format of the output of the +.B -p +option. +.TP +.B w +Write the partition table to disk. +.I Prep +will also inform the kernel of the changed +partition table. +The write will fail if any programs have any +of the disk's partitions open. +If the write fails (for this or any other reason), +.I prep +and +.I fdisk +will attempt to restore the partition table to +its former state. +.TP +.B q +Quit the program. +If the partition table has been modified but not written, +a warning is printed. +Typing +.B q +again will quit the program. +.PP +.I Fdisk +also has the following commands. +.TP +.BI A " name" +Set the named partition active. +The active partition is the one whose boot block is used +when booting a PC from disk. +.TP +.B e +Print the names of empty slots in the partition table, i.e., the +valid names to use when creating a new partition. +.PD +.PP +.I Format +prepares for use the floppy diskette or hard disk partition in the file named +.IR disk , +for example +.B /dev/fd0disk +or +.BR /dev/sdC0/9fat . +The options are: +.TP +.B -f +Do not physically format the disc. Used +to install a FAT file system on a +previously formatted disc. If +.I disk +is not a floppy device, this flag is a no-op. +.TP +.B -t +specify a density and type of disk to be prepared. +The possible +.I types +are: +.RS +.TP +.B 3½DD +3½" double density, 737280 bytes +.TP +.B 3½HD +3½" high density, 1474560 bytes +.TP +.B 5¼DD +5¼" double density, 368640 bytes +.TP +.B 5¼HD +5¼" high density, 1146880 bytes +.TP +.B hard +fixed disk +.PD +.PP +The default when +.I disk +is a floppy drive is the highest possible on the device. +When +.I disk +is a regular file, the default is +.BR 3½HD . +When +.I disk +is an +.IR sd (3) +device, the default is +.BR hard . +.RE +.TP +.B -d +initialize a FAT file system on the +.IR disk . +.TP +.B -b +use the contents of +.I bootblock +as a bootstrap block +to be installed in sector 0. +.PD +.PP +The remaining options have effect only when +.B -d +is specified: +.TP +.B -c +use a FAT cluster size of +.I csize +sectors when creating the FAT. +.TP +.B -l +add a +.I label +when creating the FAT file system. +.TP +.BI -r +mark the first +.I nresrv +sectors of the partition as ``reserved''. +Since the first sector always contains the +FAT parameter block, this really marks +the +.IR nresrv -1 +sectors starting at sector 1 as ``reserved''. +When formatting the +.B 9fat +partition, +.B -r +.B 2 +should be used to jump over the partition table sector. +.PD +.PP +Again under +.BR -d , +any +.I files +listed are added, in order, +to the root +directory of the FAT file system. The files are +contiguously allocated. +If a file is named +.BR 9load , +it will be created with the +.B SYSTEM +attribute set so that +.IR dossrv (4) +keeps it contiguous when modifying it. +.PP +.I Format +checks for a number of common mistakes; in particular, +it will refuse to format a +.B 9fat +partition unless +.B -r +is specified with +.I nresrv +larger than two. +It also refuses to format a raw +.IR sd (3) +partition that begins at offset zero in the disk. +(The beginning of the disk should contain an +.I fdisk +partition table with master boot record, +not a FAT file system or boot block.) +Both checks are disabled by the +.B -x +option. +The +.B -v +option prints debugging information. +.PP +The file +.B /386/pbs +is an example of a suitable +.I bfile +to make the disk a boot disk. +It gets loaded by the BIOS at 0x7C00, +reads the root directory into address 0x7E00, and looks at +the first root directory entry. +If that file is called +.BR 9LOAD , +it uses +single sector reads to load the file into address 0x10000 and then +jumps to the loaded file image. +The file +.B /386/pbslba +is similar, but because it uses LBA addressing (not supported +by all BIOSes), it can access more than the first 8.5GB of the disk. +.PP +.I Mbr +installs a new boot block in sector 0 (the master boot record) +of a disk such as +.BR /dev/sdC0/data . +This boot block should not be confused with the +boot block used by +.IR format , +which goes in sector 0 of a partition. +Typically, the boot block in the master boot record +scans the PC partition table to find an active +partition and then executes the boot block for +that partition. +The partition boot block then loads a bootstrap +program such as +.IR 9load (8), +which then loads the operating system. +If MS-DOS or Windows 9[58] is already installed +on your hard disk, the master boot record +already has a suitable boot block. +Otherwise, +.B /386/mbr +is an appropriate +.IR mbrfile . +It detects and uses LBA addressing when available +from the BIOS (the same could not +be done in the case of +.B pbs +due to space considerations). +If the +.I mbrfile +is not specified, a boot block is installed that +prints a message explaining that the disk is not bootable. +.SH EXAMPLES +Initialize the kernel disk driver with the partition information +from the FAT boot sectors. +If Plan 9 partitions exist, pass that partition information as well. +.IP +.EX +for(disk in /dev/sd??) { + if(test -f $disk/data && test -f $disk/ctl) + disk/fdisk -p $disk/data >$disk/ctl + for(part in $disk/plan9*) + if(test -f $part) + disk/prep -p $part >$disk/ctl +} +.EE +.PP +Create a Plan 9 boot floppy on a previously formatted diskette: +.IP +.EX +disk/format -b /386/pbs -df /dev/fd0disk /386/9load /tmp/plan9.ini +.EE +.PP +Initialize the blank hard disk +.BR /dev/sdC0/data . +.IP +.EX +disk/mbr -m /386/mbr /dev/sdC0/data +disk/fdisk -baw /dev/sdC0/data +disk/prep -baw /dev/sdC0/plan9 +disk/format -b /386/pbs -d -r 2 /dev/sdC0/9fat 9load 9pcdisk plan9.ini +.EE +.PP +.SH SOURCE +.B /sys/src/cmd/disk/prep +.br +.B /sys/src/boot/pc +.SH SEE ALSO +.IR floppy (3), +.IR sd (3), +.IR 9load (8) +.SH BUGS +.I Format +can create FAT12 and FAT16 +file systems, but not FAT32 file systems. +The boot block can only read from +FAT12 and FAT16 file systems. diff --git a/static/plan9-4e/man8/qer.8 b/static/plan9-4e/man8/qer.8 new file mode 100644 index 00000000..93d6ed6a --- /dev/null +++ b/static/plan9-4e/man8/qer.8 @@ -0,0 +1,226 @@ +.TH QER 8 +.SH NAME +qer, runq \- queue management for spooled files +.SH SYNOPSIS +.B qer +[ +.B -q +.I subdir +] +[ +.B -f +.I file +] +.I root tag reply args +.br +.B runq +[ +.B -adsE +] +[ +.B -f +.I file +] +[ +.B -q +.I subdir +] +[ +.B -l +.I load +] +[ +.B -t +.I time +] +[ +.B -r +.I nfiles +] +[ +.B -n +.I nprocs +] +.I root cmd +.SH DESCRIPTION +.I Qer +creates a control and a data file in a queue directory. +The control file contents consist of the +.IR tag , +.IR reply , +and +.I args +separated by spaces. +The data file contains the standard input to +.IR qer . +The files are created in the directory +.IR root / subdir , +where +.I subdir +is the argument to +.B -q +if present, else the contents of +.BR /dev/user . +The names of the control and data files differ only +in the first character which is `C' and `D' respectively. +.IR Mktemp (2) +is used to create the actual names of the control and +data file. +.P +Some commands, such as +.I fax +(see +.IR telco (4)), +must queue more files than just the data file. +Each +.I file +following a +.B \-f +flag is copied into the queue directory. The names +of the copies differ from the name of the data file +only in the first character. The first one is +starts with 'F', the second 'G', etc. +.P +.I Runq +processes the files queued by +.IR qer . +Without the +.B -a +option, +.I runq +processes all requests in the directory +.IR root / subdir , +where +.I subdir +is the argument to +.B -q +if present, else the contents of +.BR /dev/user . +With the +.B -a +it processes all requests. +Each request is processed by executing the command +.I cmd +with the contents of the control file as its arguments, +the contents of the data file as its standard input, and +standard error appended to the error file +.BR E.XXXXXX . +.P +The action taken by +.I runq +depends on the return status of +.IR cmd . +If +.I cmd +returns a null status, the processing is assumed successful and the +control, data, and error files are removed. +If +.I cmd +returns an error status containing the word +.LR Retry , +the files are left to be reprocessed at a later time. +For any other status, an error message is mailed +to the requester and the files are removed. +.I Runq +uses the +.I reply +field in the control file as +a mail address to which to send an error notification. +The notification contains the contents of the control +file to identify the failed request. +.P +To avoid reprocessing files too often, the following algorithm is used: +a data file younger than one hour will not be processed if its +error file exists and was last modified within the preceding 10 minutes. +A data file older than one hour will not be processed if its error +file exists and was last modified within the preceding hour. +The +.B -E +flag causes all files to be reprocessed regardless of +the file times. +.P +The +.B -d +option causes debugging output on standard error +describing the progress through the queues. +.P +The +.B -t +flags specifies the number of hours +that retries will continue after a send +failure. The default is 48 hours. +.P +The +.BR -r +flag limits the number of files that are processed in a single pass of a queue. +.I Runq +accumulates the entire directory containing a queue before processing any +files. When a queue contains many files and the system does not +have enough memory, +.I runq +exits without making progress. This flag forces +.I runq +to process the directory in chunks, allowing the queue to +be drained incrementally. It is most useful in combination with the +.I -q +flag. +.P +The +.BR -s , +.BR -n , +and +.B -l +flags are only meaningful with the +.B -a +flag. They control amount of parallelism that +is used when sweeping all of the queues. The argument following the +.B -n +flag specifies the number of queues that are swept +in parallel; the default is 50. The argument following the +.B -l +flag specifies the total number of queues that are being swept. +By default, there is no limit. The number of active sweeps +is cumulative over all active executions of +.IR runq . +The +.B -s +flag forces each queue directory to be processed by exactly +one instance of +.IR runq . +This is useful on systems that connect to slow +external systems and prevents all the queue sweeps from +piling up trying to process a few slow systems. +.PP +.I Runq +is often called from +.IR cron (8) +by an entry such as +.IP +.EX +0,10,20,30,40,50 * * * * kremvax + runq -a /mail/queue /mail/lib/remotemail +.EE +.LP +The entry must be a single line; it is folded here only so it fits on the page. +.SH FILES +.TF \fIroot\fP/\fIuser\fP/[F-Z].XXXXXX +.TP +.B \fIroot\fP/\fIuser\fP +queue directory for +.I user +.TP +.B \fIroot\fP/\fIuser\fP/D.XXXXXX +data file +.TP +.B \fIroot\fP/\fIuser\fP/C.XXXXXX +control file +.TP +.B \fIroot\fP/\fIuser\fP/E.XXXXXX +error file +.TP +.B \fIroot\fP/\fIuser\fP/[F-Z].XXXXXX +secondary data files +.SH SOURCE +.B /sys/src/cmd/upas/q +.SH "SEE ALSO" +.IR mail (1) diff --git a/static/plan9-4e/man8/rdarena.8 b/static/plan9-4e/man8/rdarena.8 new file mode 100644 index 00000000..071011ab --- /dev/null +++ b/static/plan9-4e/man8/rdarena.8 @@ -0,0 +1,30 @@ +.TH RDARENA 8 +.SH NAME +rdarena \- extract a Venti arena +.SH SYNOPSIS +.B venti/rdarena +[ +.B -v +] +.I venti.config +.I arena +.SH DESCRIPTION +.I Rdarena +extracts the named +.I arena +from the Venti system described by the +.IR venti.conf (6) +file +.I venti.config +and writes this arena to standard output. +This command is typically used to back up an arena to external media. +The +.B -v +option generates more verbose output on standard error. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti (8) +.SH BUGS +There is currently no way to restore a Venti system from a collection of extracted +arenas. diff --git a/static/plan9-4e/man8/reboot.8 b/static/plan9-4e/man8/reboot.8 new file mode 100644 index 00000000..0dd8f4d5 --- /dev/null +++ b/static/plan9-4e/man8/reboot.8 @@ -0,0 +1,20 @@ +.TH REBOOT 8 +.SH NAME +reboot \- reboot the system upon loss of remote file server connection +.SH SYNOPSIS +.B aux/reboot +[ +.I file +] +.SH DESCRIPTION +.I Reboot +stats +.IR file , +default +.BR /$\fIcputype\fP/init , +once a minute. If the stat times out, +.I reboot +reboots the system. This is used to restart diskless cpu +servers whenever their file server connection is broken. +.SH SOURCE +.B /sys/src/cmd/aux/reboot.c diff --git a/static/plan9-4e/man8/replica.8 b/static/plan9-4e/man8/replica.8 new file mode 100644 index 00000000..fa578c2a --- /dev/null +++ b/static/plan9-4e/man8/replica.8 @@ -0,0 +1,303 @@ +.TH REPLICA 8 +.SH NAME +applychanges, applylog, compactdb, updatedb \- simple client-server replica management +.SH SYNOPSIS +.B replica/compactdb +.I db +.br +.B replica/updatedb +[ +.B -cl +] +[ +.B -p +.I proto +] +[ +.B -r +.I root +] +[ +.B -t +.I now +.I n +] +[ +.B -u +.I uid +] +[ +.B -x +.I path +] ... +.I db +.br +.B replica/applylog +[ +.B -cnsuv +] +.I clientdb +.I clientroot +.I serverroot +[ +.I path ... +] +.br +.B replica/applychanges +[ +.B -nuv +] +[ +.B -p +.I proto +] +[ +.B -x +.I path +] ... +.I clientdb +.I clientroot +.I serverroot +[ +.I path ... +] +.SH DESCRIPTION +These four tools collectively provide simple log-based +client-server replica management. +The shell scripts described in +.IR replica (1) +provide a more polished interface. +.PP +Both client and server maintain textual databases of file system +metadata. Each line is of the form +.sp 0.5 +\h'0.25i' +.I path +.I mode +.I uid +.I gid +.I mtime +.I length +.sp 0.5 +Later entries for a +.I path +supersede previous ones. +A line with the string +.B REMOVED +in the +.I mode +field annuls all previous entries for that +.IR path . +The entries in a file are typically kept sorted by +.I path +but need not be. +These properties facilitate updating the database atomically +by appending to it. +.I Compactdb +reads in a database and writes out an equivalent one, +sorted by path and without outdated or annulled records. +.PP +A replica is further described on the server by a textual +log listing creation and deletion of files and changes +to file contents and metadata. +Each line is of the form: +.sp 0.5 +\h'0.25i' +.I time +.I gen +.I verb +.I path +.I serverpath +.I mode +.I uid +.I gid +.I mtime +.I length +.sp 0.5 +The +.I time +and +.I gen +fields are both decimal numbers, providing an ordering +for log entries so that incremental tools need not process +the whole log each time they are run. +The +.IR verb , +a single character, +describes the event: +addition of a file +.RB ( a ), +deletion of a file +.RB ( d ), +a change to a file's contents +.RB ( c ), +or a change to a file's metadata +.RB ( m ). +.I Path +is the file path on the client; +.I serverpath +the path on the server (these are different when the +optional fifth field in a proto file line is given; +see +.IR proto (2)). +.IR Mode , +.IR uid , +.IR gid , +and +.I mtime +are the files metadata as in the +.B Dir +structure (see +.IR stat (5)). +For deletion events, the metadata is that of the deleted file. +For other events, the metadata is that after the event. +.PP +.I Updatedb +scans the file system rooted at +.I root +for changes not present in +.IR db , +noting them by appending new entries to the database +and by writing log events to standard output. +The +.B -c +option causes +.I updatedb +to consider only file and metadata changes, ignoring file additions and deletions. +By default, the log events have +.I time +set to the current system time +and use incrementing +.I gen +numbers starting at 0. +The +.B -t +option can be used to specify a different time and starting number. +If the +.B -u +option is given, all database entries and log events will use +.I uid +rather than the actual uids. +The +.B -x +option (which may be specified multiple times) excludes the named path +and all its children from the scan. +If the +.B -l +option is given, the database is not changed and the +.I time +and +.I gen +fields are omitted from the log events; +the resulting output is intended to be a human-readable +summary of file system activity since the last scan. +.PP +.I Applylog +is used to propagate changes from server to client. +It applies the changes listed in a log +(read from standard input) +to the file system rooted at +.IR clientroot , +copying files when necessary from the file system rooted at +.IR serverroot . +By default, +.I replapplylog +does not attempt to set the uid on files; the +.B -u +flag enables this. +.I Applylog +will not overwrite local changes made to replicated files. +When it detects such conflicts, by default it prints an error describing +the conflict and takes no action. +If the +.B -c +flag is given, +.I replapplylog +still takes no action, but does so silently and will not +report the conflicts in the future. +(The conflict is resolved in favor of the client.) +If the +.B -s +flag is given, +.I replapplylog +overwrites the local changes. +(The conflict is resolved in favor of the server.) +.PP +.I Applychanges +is, in some sense, the opposite of +.IR applylog ; +it scans the client file system for changes, and applies +those changes to the server file system. +.I Applychanges +will not overwrite remote changes made to replicated files. +For example, if a file is copied from server to client and subsequently +changed on both server and client, +.I applychanges +will not copy the client's new version to the server, because +the server also has a new version. +.I Applychanges +and +.I applylog +detect the same conflicts; to resolve conflicts reported by +.IR applychanges , +invoke +.I applylog +with the +.B -c +or +.B -s +flags. +.SH EXAMPLE +One might +keep a client kfs file system up-to-date +against a server file system using these tools. +First, connect to a CPU server with a high-speed +network connection to the file server and scan +the server file system, updating the server database and log: +.EX + repl=$home/lib/replica + proto=/sys/lib/sysconfig/proto/portproto + db=$repl/srv.portproto.db + log=$repl/srv.portproto.log + + 9fs $fs + replica/updatedb -p $proto -r /n/$fs -x $repl $db >>$log + replica/compactdb $db >/tmp/a && mv /tmp/a $db +.EE +.PP +Then, update the client file system: +.EX + repl=$home/lib/replica + db=$repl/cli.portproto.db + log=$repl/srv.portproto.log + + 9fs $fs + 9fs kfs + replica/applylog $db /n/kfs /n/$fs <$log + replica/compactdb $db >/tmp/a && mv /tmp/a $db +.EE +.PP +The +.B $repl +directory is excluded from the sync so that multiple +clients can each have their own local database. +The shell scripts in +.B /rc/bin/replica +are essentially a further development of this example. +.PP +The Plan 9 distribution update program +operates similarly, but omits the first scan; +it is assumed that the Plan 9 developers run +scans manually when the distribution +file system changes. +The manual page +.IR replica (1) +describes this in full. +.SH SEE ALSO +.IR replica (1) +.SH BUGS +These tools assume that +.I mtime +combined with +.I length +is a good indicator of changes to a file's contents. diff --git a/static/plan9-4e/man8/scanmail.8 b/static/plan9-4e/man8/scanmail.8 new file mode 100644 index 00000000..ce639f72 --- /dev/null +++ b/static/plan9-4e/man8/scanmail.8 @@ -0,0 +1,447 @@ +.TH SCANMAIL 8 +.SH NAME +scanmail, testscan \- spam filters +.SH SYNOPSIS +.B upas/scanmail +[ +.I options +] +[ +.I qer-args +] +.I root +.B mail +.I sender system rcpt-list +.PP +.B upas/testscan +[ +.B -avd +] +[ +.B -p +.I patfile +] +[ +.I filename +] +.SH DESCRIPTION +.B Scanmail +accepts a mail message supplied on standard input, +applies a file of patterns to a portion of it, +and dispatches +the message based +on the results. +It exactly replaces the +generic queuing command +.IR qer (8) +that is executed from the +.IR rc (1) +script +.B /mail/lib/qmail +in the mail processing pipeline. +Associated with each pattern is an +.I action +in order of decreasing priority: +.in +5 +.TP 10 +.B dump +the message is deleted and a log entry is written to +.B /sys/log/smtpd +.TP 10 +.B hold +the message is placed in a queue for human inspection +.TP +.B log +a line containing the matching portion of the message is written to a log +.in -5 +.PP +If no pattern matches or only patterns with an action of +.B log +match, the message is accepted and +.I scanmail +queues the message for delivery. +.I Scanmail +meshes with the blocking facilities +of +.IR smtpd (6) +to provide several layers of +filtering on gateway systems. In all cases the sender +is notified that the message has been successfully +delivered, +leaving the sender unaware that the message has been potentially delayed or deleted. +.PP +.I Scanmail +accepts the arguments of +.IR qer (8) +as well as the following: +.TF filename +.TP +.B -c +Save a copy of each message in a +randomly-named file in +directory +.BR /mail/copy . +.TP +.B -d +Write debugging information to standard error. +.TP +.B -h +Queue +.I held +messages by sending domain name. +The +.B -q +option must specify a root directory; messages +are queued in subdirectories of this directory. +If the +.B -h +option is not specified, +messages are accumulated in a subdirectory of +.B /mail/queue.hold +named for the contents of +.BR /dev/user , +usually +.BR none . +.TF filename +.TP +.B -n +Messages are never held for inspection, but are delivered. Also known as +.IR "vacation mode" . +.TP +.BI -p " filename" +Read the patterns from +.I filename +rather than +.BR /mail/lib/patterns . +.TP +.BI -q " holdroot" +Queue deliverable messages in subdirectories of +.IR holdroot . +This option is the same as the +.B -q +option of +.IR qer (8) +and must be present if the +.B -h +option is given. +.TP +.B -s +Save deleted +messages. Messages are stored, one per randomly-named file, +in subdirectories of +.B /mail/queue.dump +named with the date. +.TP +.B -t +Test mode. The pattern matcher is applied but the message is +discarded and the result is not logged. +.TP +.B -v +Print the highest priority match. +This is useful +with the +.B -t +option for testing the pattern matcher without actually +sending a message. +.PD +.PP +.I Testscan +is the command line version of +.IR scanmail . +If +.I filename +is missing, it applies the pattern set to +the message on standard input. Unlike +.IR scanmail , +which finds the highest priority match, +.I testscan +prints all matches in the portion of the message under test. +It is useful for testing a pattern set or +implementing a personal filter +using the +.B pipeto +file in a user's mail directory. +.I Testscan +accepts the following options: +.TP +.B -a +Print matches in the complete input message +.TP +.B -d +Enable debug mode +.TP +.B -v +Print the message after conversion to canonical form +.RI ( q.v. ). +.TP +.BI -p " filename" +Read the patterns from +.I filename +rather than +.BR /mail/lib/patterns . +.SS Canonicalization +Before pattern matching, both programs convert a portion of +the message header and the beginning of the +message to a canonical form. The amount of the header +and message body processed are set by +compile-time parameters in the source files. +The canonicalization process converts letters to lower-case and +replaces consecutive spaces, tabs and newline characters +with a single space. HTML commands are +deleted except for the parameters following +.B A +.BR HREF , +.B IMG +.BR SRC , +and +.B IMG +.B BORDER +directives. Additionally, the following MIME escape sequences +are replaced by their ASCII +equivalents: +.PP +.EX + Escape Seq ASCII + ---------- ----- + =2e . + =2f / + =20 + =3d = +.EE +and the sequence +.I = +is elided. +.I Scanmail +assembles the sender, destination domain and recipient fields of +the command line into a string that is +subjected to the same canonical processing. +Following canonicalization, the command line and +the two long strings containing +the header and the message body are passed to the +matching engine for analysis. +.SS Pattern Syntax +The matching engine compiles the pattern set +and matches it to each canonicalized input string. +Patterns are specified one per line +as follows: +.PP +.EX + {*}\fIaction\fP: \fIpattern-spec\fP {~~\fIoverride\fP...~~\fIoverride\fP} +.EE +.PP +On all lines, a +.B # +introduces a comment; there is no way to escape this character. +.PP +Lines beginning with +.B * +contain a +.I pattern-spec +that is a string; otherwise, the the +.I pattern-spec +is a regular expression in the style of +.IR regexp (6). +Regular expression matching is many +times less efficient than string matching, so it is +wiser to enumerate several similar strings +than to combine them into a regular expression. +The +.I action +is a keyword terminated by a +.B : +and separated from the pattern by optional white-space. +It must be one of the following: +.TP 10 +.B dump +if the pattern matches, the message is deleted. If the +.B -s +command line option is set, the message is saved. +.TP 10 +.B hold +if the pattern matches, the message is queued in a subdirectory +of +.B /mail/queue.hold +for manual inspection. After inspection, the queue can be swept +manually using +.B runq +(see +.IR qer (8)) +to deliver messages that were inadvertently matched. +.TP 10 +.B header +this is the same as the +.B hold +action, except the pattern is only applied to the message header. +This optimization is useful for patterns that match header fields +that are unlikely to be present in the body of the message. +.TP 10 +.B line +the sender and a section of the message around the match are written to +the file +.BR /sys/log/lines . +The message is always delivered. +.TP 10 +.B loff +patterns of this type are applied only to the canonicalized command line. +When a match occurs, all patterns with +.B line +actions are disabled. This is useful for limiting +the size of the log file by excluding repetitive messages, such +as those from mailing lists. +.PP +Patterns are accumulated into pattern sets sharing the same action. +The matching engine applies the +.B dump +pattern set first, then the +.B header +and +.B hold +pattern sets, and finally the +.B line +pattern set. Each pattern set is applied three times: +to the canonicalized command line, to the message header, and +finally to the message body. The ordering of patterns +in the pattern file is insignificant. +.PP +The +.I pattern-spec +is a string of characters terminated by a +.BR newline , +.B # +or override indicator, +.BR ~~ . +Trailing white-space is deleted but +patterns containing leading or trailing white-space can +be enclosed in double-quote +characters. A pattern containing a double-quote +must be enclosed in double-quote +characters and preceded by a backslash. +For example, the pattern +.PP +.EX + "this is not \\"spam\\"" +.EE +.PP +matches the string \fLthis is not "spam"\fP. +The +.I pattern-spec +is followed by zero or more +.I override +strings. When the specific pattern matches, +each override is applied and +if one matches, it cancels the effect of the pattern. +Overrides must be strings; regular expressions are not supported. +Each override is introduced by the string +.BR ~~ +and continues until a subsequent +.BR ~~ , +.B # +or +.BR newline , +white-space included. +A +.B ~~ +immediately followed by a +.B newline +indicates a line continuation and further overrides continue +on the following line. +Leading white-space +on the continuation line is ignored. For example, +.PP +.EX + *hold: sex.com~~essex.com~~sussex.com~~sysex.com~~ + lasex.com~~cse.psu.edu!owner-9fans +.EE +.PP +matches all input containing the string +.B sex.com +except for messages that also contain the +strings in the override list. Often it +is desirable to override a pattern based on +the name of the sender or +recipient. For this reason, each override +pattern is applied to the header and the command line as well +as the section of the +canonicalized input containing the matching data. +Thus a pattern matching the command line or the header +searches both the command line and the header +for overrides while a match in the body searches +the body, header and command line for overrides. +.PP +The structure of the pattern file and the matching +algorithm define the strategy for detecting +and filtering unwanted messages. Ideally, a +.B hold +pattern selects a message for inspection and if it +is determined to be undesirable, a specific +.B dump +pattern is added to delete further instances +of the message. Additionally, it is often +useful to block the sender by updating the +.B smtpd +control file. +.PP +In this regime, patterns with a +.I dump +action, generally match phrases +that are likely to be unique. Patterns that +hold a message for inspection +match phrases commonly found in undesirable material and +occasionally in legitimate messages. Patterns +that log matches are less specific yet. In all +cases the ability to override a pattern by +matching another string, allows repetitive messages +that trigger the pattern, such as mailing lists, +to pass the filter after the first one is processed +manually. The +.B -s +option allows deleted messages to be salvaged +by either manual or semi-automatic review, supporting +the specification of more aggressive patterns. +Finally, the utility of the pattern matcher is not +confined to filtering spam; it is a generally useful +administrative tool for deleting inadvertently harmful +messages, for example, mail loops, stuck senders or viruses. +It is also useful for collecting or counting messages +matching certain criteria. +.SH FILES +.TF /mail/queue.dump/* +.TP +.B /mail/lib/patterns +default pattern file +.TP +.B /sys/log/smtpd +log of deleted messages +.TP +.B /mail/log/lines +file where +.I log +matches are logged +.TP +.B /mail/queue/* +directories where legitimate messages are queued for delivery +.TP +.B /mail/queue.hold +directory where held messages are queued for inspection +.TP +.B /mail/queue.dump/* +directory where +.I dumped +messages are stored when the +.B -s +command line option is specified. +.TP +.B /mail/copy/* +directory where copies of all incoming messages +are stored. +.SH SOURCE +.TP +.B /sys/src/cmd/upas/scanmail +.SH "SEE ALSO" +.IR mail (1), +.IR qer (8), +.IR smtpd (6) +.SH BUGS +.I Testscan +does not report a match when the body of a message +contains exactly one line. diff --git a/static/plan9-4e/man8/scuzz.8 b/static/plan9-4e/man8/scuzz.8 new file mode 100644 index 00000000..2aed5c94 --- /dev/null +++ b/static/plan9-4e/man8/scuzz.8 @@ -0,0 +1,370 @@ +.TH SCUZZ 8 +.SH NAME +scuzz \- SCSI target control +.SH SYNOPSIS +.B scuzz +[ +.B -q +] +[ +[ +.B -r +] +.I sddev +] +.SH DESCRIPTION +.I Scuzz +is an interactive program for exercising +raw SCSI devices. +Its intended purpose is to investigate and manipulate +odd devices without the effort of writing a special driver, +such as shuffling the media around on an optical jukebox. +It reads commands from standard input and applies them to a SCSI target +(other devices accessed through the +.IR sd (3) +interface, +such as ATA(PI) devices, +may also work). +If +.I sddev +is given on the command line, an +.B open +(see below) +is immediately applied to the target. +On successful completion of a command, +.BI ok " n +is printed, where +.I n +is the number of bytes transferred to/from the target; +the +.B -q +command line option suppresses the +.B ok +message. +.SS Commands +.TP +.BI help " command +.B Help +is rudimentary and prints a one line synopsis for the named +.IR command , +or for all commands if no argument is given. +.TP +.B probe +.B Probe +attempts an +.B inquiry +command on all SCSI units, +and prints the result preceded by the name of those +targets which respond. +.LP +The +.B help +and +.B probe +commands may be given at any time. +.TP +.BI open\ [ -r ] sddev +.B Open +must be given before any of the remaining commands will be accepted. +Internally, +unless the +.B -r +option is given, +.B open +issues +.B ready +then +.BR inquiry , +followed by a device class-specific command to determine the +logical block size of the target. +.I Sddev +is an +.IR sd (3) +device directory like +.IR /dev/sdC0 . +.TP +.B close +.B Close +need only be given if another target is to be opened in the current +session. +.LP +The remaining commands are in rough groups, +intended for specific classes of device. +With the exception of the +.BR read , +.BR write , +and +.B space +commands, +all arguments are in the style of ANSI-C integer constants. +.TP +.B ready +Test Unit Ready +checks if the unit is powered up and ready to do +.B read +and +.B write +commands. +.TP +.B rezero +Rezero +Unit requests that a disk be brought to a known state, +usually by seeking to track zero. +.TP +.B rewind +.B Rewind +positions a tape at the beginning of current partition +(there is usually only one partition, the beginning of tape). +.TP +.B reqsense +Request Sense retrieves Sense Data concerning an error or +other condition and is usually issued following the completion of a command +that had check-condition status. +.I Scuzz +automatically issues a +.B reqsense +in response to a check-condition status and prints the result. +.TP +.B format +Format +Unit performs a ``low level'' format of a disk. +.TP +.B rblimits +Read Block Limits +reports the possible block lengths for the logical unit. Tapes only. +.TP +.BI read " file nbytes +.B Read +transfers data from the target to the host. +A missing +.I nbytes +causes the entire device to be read. +.TP +.BI write " file nbytes +.B Write +transfers data from the host to the target. +A missing +.I nbytes +causes the entire input file to be transferred. +.IP +The first argument to the +.BR read +and +.BR write +commands specifies a source +.RB ( write ) +or destination +.RB ( read ) +for the I/O. +The argument is either a plain file name or +.B | +followed by a command to be executed by +.IR rc (1). +The argument may be quoted in the style of +.IR rc (1). +.TP +.BI seek " offset whence +.B Seek +requests the target to seek to a position on a disk, +arguments being in the style of +.IR seek (2); +.I whence +is 0 by default. +.IP +.I Scuzz +maintains an internal notion of where the current target +is positioned. +The +.BR seek , +.BR read , +.BR write , +.BR rewind , +.BR rezero , +and +.B wtrack +commands all manipulate the internal offset. +.TP +.BI filemark " howmany +Write Filemarks +writes one (default) or more filemarks on a tape. +.TP +.BI space\ [ -b ]\ [ -f ]\ [[ "--\fP]\fIhowmany\fP]" +.B Space +positions a tape forwards or backwards. +The arguments +specify logical block +.RB ( -b ) +or +filemark +.RB ( -f ) +spacing; +default is +.BR -b . +If +.I howmany +is negative +it specifies spacing backwards, +and should be preceded by +.B -- +to turn off any further +option processing. +Default is 1. +.TP +.B inquiry +.B Inquiry +is issued to determine the device type of a particular target, +and to determine some basic information about the implemented options and +the product name. +.TP +.BI modeselect bytes... +.TP +.BI modeselect6 bytes... +Mode +Select +is issued to set variable parameters in the target. +.I Bytes +given as arguments comprise all the data for the target; +see an appropriate manual for the format. +The default is the 10-byte form of the command; +modeselect6 is the 6-byte version. +.TP +.BI modesense\ [ page [ nbytes ]] +.TP +.BI modesense6\ [ page [ nbytes ]] +Mode +Sense +reports variable and fixed parameters from the target. +If no +.I page +is given, +all pages are returned. +.I Nbytes +specifies how many bytes should be returned. +The default is the 10-byte form of the command; +modesense6 is the 6-byte version. +.TP +.BI start\ [ code ] +.TP +.BI stop\ [ code ] +.TP +.BI eject\ [ code ] +.TP +.BI ingest\ [ code ] +.BR Start , +.BR stop , +.BR eject , +and +.B ingest +are synonyms for Start/Stop Unit with different default values of +.IR code . +Start/Stop Unit is typically used to spin up and spin down a rotating +disk drive. +.I Code +is 0 to stop, +1 to start and +3 to eject (if the device supports ejection of the medium). +.TP +.B capacity +Read Capacity reports the number of blocks and the block +size of a disk. +.LP +The following commands are specific to CD and CD-R/RW devices. +A brief description of each is given; see the SCSI-3 +Multimedia Commands (MMC) Specification for details of arguments +and interpretation of the results. +.TP +.BI blank\ [ track/LBA [ type ]] +Erase a CD-RW disk. +Type identifies the method and coverage of the blanking. +.TP +.BI rtoc\ [ track/session-number [ ses ]] +The Read TOC/PMA command transfers data from one of the tables of contents +(TOC or PMA) on the CD medium. +.TP +.B rdiscinfo +(Note the spelling.) +Provides information about disks, including incomplete CD-R/RW. +.TP +.BI rtrackinfo\ [ track ] +Provides information about a track, regardless of its status. +.TP +.B cdpause +.TP +.B cdresume +Pause/resume playback. +.TP +.B cdstop +Stop playback. +.TP +.BI cdplay\ [ track-number ]\ or\ [ -r [ "LBA\fP[\fIlength\fP]]]" +Play audio. +With no arguments, starts at the beginning of the medium. +If a track number is given, the table of contents is read +to find the playback start point. +If the +.B -r +option is given, block addressing is used to find the +playback start point. +.TP +.BI cdload\ [ slot ] +.TP +.BI cdunload\ [ slot ] +Load/unload a disk from a changer. +.TP +.B cdstatus +Read the mechanism status. +.LP +The following commands are specific to Media Changer devices. +A brief description of each is given; see the SCSI-3 +Medium Changer Commands (SMC) Specification for details of arguments. +.TP +.B einit +Initialize element status. +.TP +.BI estatus type [ length ] +Report the status of the internal elements. +Type 0 reports all element types. +.TP +.BI mmove transport\ source\ destination [ invert ] +Move medium. +.SH FILES +.TF /dev/sdXX/raw +.TP +.B /dev/\fIsdXX\fP/raw +raw SCSI interface for command, I/O, and status. +.SH SOURCE +.B /sys/src/cmd/scuzz +.SH "SEE ALSO" +.IR sd (3) +.br +.IR "Small Computer System Interface - 2 (X3T9.2/86-109)" , +Global Engineering Documents +.br +.IR "SCSI Bench Reference" , +ENDL Publications +.br +.IR "SCSI-3 Multimedia Commands (MMC) Specification" , +www.t10.org +.br +.IR "SCSI-3 Medium Changer Commands (SMC) Specification" , +www.t10.org +.SH BUGS +Only a limited subset of SCSI commands has been implemented (as needed). +.LP +Only one target can be open at a time. +.LP +LUNs other than 0 are not supported. +.LP +No way to force 6- or 10- byte commands. +.LP +Should be recoded to use +.IR scsi (2) +in order to get more complete sense code descriptions. +.LP +.I Scuzz +betrays its origins by spelling +.B rdiscinfo +with a +.B c +even though the devices it manipulates are spelled with a +.BR k . diff --git a/static/plan9-4e/man8/secstore.8 b/static/plan9-4e/man8/secstore.8 new file mode 100644 index 00000000..33835184 --- /dev/null +++ b/static/plan9-4e/man8/secstore.8 @@ -0,0 +1,47 @@ +.TH SECSTORE 8 +.SH NAME +secstored, secuser \- secstore commands +.SH SYNOPSIS +.br +.B auth/secstored +[-S servername] +[-s tcp!*!5356] +[-x] +.br +.B auth/secuser +username +.br +.PP +.SH DESCRIPTION +.PP +.I Secstored +serves requests from +.IR secstore (1). +The +.B -x +option announces on +.B /net.alt/tcp!*!5356 +instead of the default +.BR /net . +.PP +.I Secuser +is an administrative command that runs on the +secstore machine, normally the authserver, +to create new accounts and +to change status on existing accounts. +It prompts for account information such as +password and expiration date, writing to +.BR /adm/secstore/who/$uid . +.SH FILES +.B /adm/secstore/who/$uid +secstore account name, expiration date, verifier +.br +.B /adm/secstore/store/$uid/ +users' files +.br +.B /lib/ndb/auth +for mapping local userid to RADIUS userid +.SH SOURCE +.B /sys/src/cmd/auth/secstore +.SH SEE ALSO +.IR secstore (1) diff --git a/static/plan9-4e/man8/securenet.8 b/static/plan9-4e/man8/securenet.8 new file mode 100644 index 00000000..cdd4f23d --- /dev/null +++ b/static/plan9-4e/man8/securenet.8 @@ -0,0 +1,128 @@ +.TH SECURENET 8 +.SH NAME +securenet \- Digital Pathways SecureNet Key remote authentication box +.SH DESCRIPTION +The +.I SecureNet +box is used to authenticate connections to Plan 9 from a foreign system +such as a +Unix +machine or plain terminal. +The box, which looks like a calculator, +performs DES encryption with a key held in its memory. +Another copy of the key is kept on the authentication server. +Each box is protected from unauthorized use by a four digit PIN. +.PP +When the system requires SecureNet authentication, +it prompts with a numerical challenge. +The response is compared to one +generated with the key stored on the authentication server. +Respond as follows: +.PP +Turn on the box and enter your PIN at the +.B EP +prompt, +followed by the +.B ENT +button. +Enter the challenge at +.B Ed +prompt, +again followed +.BR ENT . +Then type to Plan 9 the response generated by the box. +If you make a mistake at any time, reset the box +by pressing +.BR ON . +The authentication server compares the response generated by the box +to one computed internally. If they match, the user is accepted. +.PP +The box will lose its memory if given the wrong PIN +five times in succession or if its batteries are removed. +.PP +To reprogram it, type a +.B 4 +at the +.B E0 +prompt. +.PP +At the +.B E1 +prompt, enter your key, which consists of eight three-digit octal numbers. +While you are entering these digits, +the box displays a number ranging from 1 to 8 on the left side of the display. +This number corresponds to the octal number you are entering, +and changes when you enter the first digit of the next number. +.PP +When you are done entering your key, press +.B ENT +twice. +.PP +At the +.B E2 +prompt, enter a PIN for the box. +.PP +After you confirm by retyping the PIN at the +.B E3 +prompt, you can use the box as normal. +.PP +You can change the PIN using the following procedure. +First, turn on the box and enter your current PIN at the +.B EP +prompt. +Press +.B ENT +three times; +this will return you to the +.B EP +prompt. +Enter your PIN again, followed by +.BR ENT ; +you should see a +.B Ed +prompt with a +.B - +on the right side of the display. +Enter a +.B 0 +and press +.BR ENT . +You should see the +.B E2 +prompt; follow the instructions above for entering a PIN. +.PP +The +.I SecureNet +box +performs the same encryption as the +.B netcrypt +routine +(see +.IR encrypt (2)). +The entered challenge, a decimal number between 0 and 100000, +is treated as a text string with trailing binary zero fill to 8 bytes. +These 8 bytes are encrypted with the DES algorithm. +The first four bytes are printed on the display as hexadecimal numbers. +However, when set up as described, +the box does not print hexadecimal digits greater than 9. +Instead, it prints a 2 for an A, B, or C, and a 3 for a D, E, or F. +If a +.B 5 +rather than a +.B 4 +is entered at the +.B E0 +print, the hexadecimal digits are printed. +This is not recommended, as letters are +too easily confused with digits on the +.I SecureNet +display. +.SH "SEE ALSO" +.IR encrypt (2), +.IR auth (2) +.br +Digital Pathways, Mountain View, California +.SH BUGS +The box is clumsy to use and too delicate. +If carried in a pocket, +it can turn itself on and wear out the batteries. diff --git a/static/plan9-4e/man8/snoopy.8 b/static/plan9-4e/man8/snoopy.8 new file mode 100644 index 00000000..cc4e225a --- /dev/null +++ b/static/plan9-4e/man8/snoopy.8 @@ -0,0 +1,170 @@ +.TH SNOOPY 8 +.SH NAME +snoopy \- spy on network packets +.SH SYNOPSIS +.B snoopy +[ +.B -?stdC +] [ +.B -f +.I filter-expression +] [ +.B -N +.I n +] [ +.B -h first-header +] [ +packet-file +] +.SH DESCRIPTION +.PP +.I Snoopy +reads packets from a packet source (default +.BR /net/ether0 ), +matches them to a filter (by default anything matches), and writes +matching packets to standard output either in human readable form (default) +or in a binary trace format that can be reinput to +.IR snoopy . +.PP +The human readable format consists of multiple lines per packet. +The first line contains the milliseconds since the +trace was started. Subsequent ones are indented with a tab +and each contains the dump of a single protocol header. The last line +contains the dump of any contained data. For example, a +.SM BOOTP +packet would look like: +.sp +.EX +324389 ms + ether(s=0000929b1b54 d=ffffffffffff pr=0800 ln=342) + ip(s=135.104.9.62 d=255.255.255.255 id=5099 frag=0000... + udp(s=68 d=67 ck=d151 ln= 308) + bootp(t=Req ht=1 hl=16 hp=0 xid=217e5f27 sec=0 fl=800... + dhcp(t=Request clientid=0152415320704e7266238ebf01030... +.EE +.PP +The binary format consists of: +.IP +2 bytes of packet length, msb first +.IP +8 bytes of nanosecond time, msb first +.IP +the packet +.PP +Filters are expressions specifying protocols to be traced +and specific values for fields in the protocol headers. +The grammar is: +.sp +.EX +expr : protocol + | field '=' value + | protocol '(' expr ')' + | '(' expr ')' + | expr '||' expr + | expr '&&' expr +.EE +.PP +The values for and can +be obtained using the +.B -? +option. It will list each known protocol, +which subprotocols it can multiplex to, +and which fields can be used for filtering. +For example, the listing for ethernet is currently: +.sp +.EX +ether's filter attr: + s - source address + d - destination address + a - source|destination address + t - type +ether's subprotos: + ip + arp + rarp + ip6 +.EE +.PP +The format of depends on context. In general, +ethernet addresses are entered as a string of hex +digits; IP numbers in the canonical `.' format for v4 and `:' format +for v6; and ports in decimal. +.PP +.IR Snoopy 's +options are: +.TP +.B -t +input is a binary trace file. The default assumes +a packet device, one packet per read. +.TP +.B -d +output will be a binary trace file. The default is +human readable. +.TP +.B -s +force one output line per packet. The +default is multiline. +.TP +.B -C +compute correct checksums and if doesn't match +the contained one, add a field +.B !ck=\fIxxxx\fP +where +.I xxxx +is the correct checksum. +.TP +.B -N +dump +.I n +data bytes per packet. The default is 32. +.TP +.B -f +use +.I filter-exression +to filter the packet stream. The default is +to match all packets. +.TP +.B -h +assume the first header per packet to be +.IR first-header . +The default is +.IR ether . +.SH EXAMPLES +the following would display only +.SM BOOTP +and +.SM ARP +packets: +.sp +.EX +% snoopy -f 'arp | bootp' +after optimize: ether( arp | ip( udp( bootp ) ) ) +.EE +.PP +The first line of output shows the completed filter +expression. +.I Snoopy +will fill in other protocols as necessary to complete +the filter and then optimize to remove redundant +comparisons. +.PP +To save all packets between 135.104.9.2 to 135.104.9.6 and +later display those to/from TCP port 80: +.sp +.EX +% ramfs +% snoopy -df 'ip(s=135.104.9.2&d=135.104.9.6)|\\ + ip(s=135.104.9.6&d=135.104.9.2)' > /tmp/quux + +% snoopy -tf 'tcp(sd=80)' /tmp/quux +.EE +.SH FILES +.TP +.B /net/ether +Ethernet device +.SH SOURCE +.B /sys/src/cmd/ip/snoopy +.SH BUGS +At the moment it only dumps ethernet packets because there's +no device to get IP packets without the media header. This will +be corrected soon. diff --git a/static/plan9-4e/man8/stats.8 b/static/plan9-4e/man8/stats.8 new file mode 100644 index 00000000..97716d6c --- /dev/null +++ b/static/plan9-4e/man8/stats.8 @@ -0,0 +1,145 @@ +.TH STATS 8 +.SH NAME +stats \- display graphs of system activity +.SH SYNOPSIS +.B stats +[ +.BI - option +] +[ +.I machine +\&... +] +.SH DESCRIPTION +.I Stats +displays a rolling graph of various statistics collected by the operating +system and updated once per second. +The statistics may be from a remote +.I machine +or multiple +.IR machines , +whose graphs will appear in adjacent columns. +The columns are labeled by the machine names and the number +of processors on the machine if it is a multiprocessor. +.PP +The right mouse button presents a menu to enable and disable the display +of various statistics; by default, +.I stats +begins by showing the load average on the executing machine. +.PP +The +lower-case +.I options +choose the initial set to display: +.TF [t]tlbpurge +.TP +.B "b battery +percentage battery life remaining. +.TP +.B "c context +number of process context switches per second. +.TP +.B +.B "e ether +total number of packets sent and received per second. +.TP +.B +.B "E etherin,out +number of packets sent and received per second, displayed as separate graphs. +.TP +.B "f fault +number of page faults per second. +.TP +.B "i intr +number of interrupts per second. +.TP +.B "l load +(default) system load average. +The load is computed as a running average of +the number of processes ready to run, multiplied by 1000. +.TP +.B "m mem +total pages of active memory. +The graph displays the fraction +of the machine's total memory in use. +.TP +.B +.B "n etherin,out,err +number of packets sent and received per second, and total number of errors, displayed as separate graphs. +.TP +.B "p tlbpurge +number of translation lookaside buffer flushes per second. +.TP +.B "s syscall +number of system calls per second. +.TP +.B "t tlbmiss +number of translation lookaside buffer misses per second. +.TP +.B "w swap +number of valid pages on the swap device. +The swap is displayed as a +fraction of the number of swap pages configured by the machine. +.TP +.B "8 802.11b +display the signal strength detected by the 802.11b wireless ether card; the value +is usually below 50% unless the receiver is in the same room as the transmitter, so +a midrange value represents a strong signal. +.PD +.PP +The graphs are plotted with time on the horizontal axis. +The vertical axes range from 0 to 1000, multiplied by the number of processors on the machine +when appropriate. +The only exceptions are +memory +and swap space, +which display fractions of the total available, and the Ethernet error count, +which goes from 0 to 10.. +If the value of the parameter is too large for the visible range, its value is shown +in decimal in the upper left corner of the graph. +.PP +Upper-case options control details of the display. +All graphs are affected; there is no mechanism to +affect only one graph. +.TP +.BI -S " scale +Sets a scale factor for the displays. A value of 2, for example, +means that the highest value plotted will be twice as large as the default. +.TP +.B -L +Plot all graphs with logarithmic +.I y +axes. +The graph is plotted so the maximum value that would be displayed on +a linear graph is 2/3 of the way up the +.I y +axis and the total range of the graph is a factor of 1000; thus the +.I y +origin is 1/100 of the default maximum value and the top of the graph is +10 times the default maximum. +.TP +.B -Y +If the display is large enough to show them, +place value markers along the +.I y +axes of the graphs. +Since one set of markers serves for all machines across the display, +the values in the markers disregard scaling factors due to multiple processors +on the machines. On a graph for a multiprocessor, +the displayed values will be larger +than the markers indicate. +The markers appear along the right, and the markers +show values appropriate to the rightmost machine; this only +matters for graphs such as memory that have machine-specific +maxima. +.PD +.SH FILES +.B /net/ether0/0/stats +.br +.B #c/swap +.br +.B #c/sysstat +.SH SOURCE +.B /sys/src/cmd/stats.c +.SH BUGS +Some machines do not have TLB hardware. diff --git a/static/plan9-4e/man8/swap.8 b/static/plan9-4e/man8/swap.8 new file mode 100644 index 00000000..09cea94a --- /dev/null +++ b/static/plan9-4e/man8/swap.8 @@ -0,0 +1,30 @@ +.TH SWAP 8 +.SH NAME +swap \- establish a swap file +.SH SYNOPSIS +.B swap +.I file +.SH DESCRIPTION +.I Swap +establishes a file or device for the system to swap on. +If +.I file +is a device, the device is used directly; if a directory, +a unique file is created in that directory on which to swap. +The environment variable +.B swap +is set to the full name of the resulting file. +The number of blocks available in the file or device +must be at least the number of swap blocks configured +at system boot time. +.PP +If a swap channel has already been set and no blocks +are currently valid in the file the old file will be +closed and then replaced. If any blocks are valid on +the device an error is returned instead. +.SH SOURCE +.B /sys/src/cmd/swap.c +.SH BUGS +Swapping to a file served by a user-level process, such as +.IR kfs (4), +can lead to deadlock; use raw devices or remote files instead. diff --git a/static/plan9-4e/man8/timesync.8 b/static/plan9-4e/man8/timesync.8 new file mode 100644 index 00000000..dcfd09a7 --- /dev/null +++ b/static/plan9-4e/man8/timesync.8 @@ -0,0 +1,95 @@ +.TH TIMESYNC 8 +.SH NAME +timesync \- synchronize the system clock to a time source +.SH SYNOPSIS +.B aux/timesync +[ +.B -a +.I accuracy +] +[ +.B -s +.I netroot +] +[ +.B -frnDdLil +] +[ +.I timeserver +] +.SH DESCRIPTION +.B Aux/timesync +synchronizes the system clock to a time source, by default a +file server. +The options are: +.TP +.B -f +synchronize to a file server. If +.I timeserver +is missing, use +.BR /srv/boot . +.TP +.B -r +synchronize to the local real time clock, +.BR #r/rtc . +.TP +.B -L +used with +.B -r +to indicate the real time clock is in +local time rather than GMT. This is +useful on PCs that also run the +Windows OS. +.TP +.B -n +synchronize to an NTP server. If +.I timeserver +is missing, dial the server +.BR udp!$ntp!ntp . +.TP +.B -D +print debugging to standard error +.TP +.B -d +put file containing last determined clock +frequency in directory +.IR dir , +default +.BR /tmp . +.TP +.B -i +stands for impotent. +.I Timesync +announces what it would do but doesn't do it. +This is useful for tracking alternate time sources. +.TP +.B -a +specifies the +.I accuracy +in nanoseconds to which the +clock should be synchronized. This determines +how often the reference clock is accessed. +.TP +.B -s +causes +.I timesync +to listen for UDP NTP requests on the +network rooted at +.IR netroot . +Up to 4 +.B -s +options are allowed. +.TP +.B -l +turns on logging to +.BR /sys/log/timesync . +.SH FILES +.TF /tmp/ts...timeserver +.TP +.B /tmp/ts...timeserver +where the last frequency guess is kept +.TP +.B /sys/log/timesync +log file +.SH SOURCE +.B /sys/src/cmd/aux/timesync.c diff --git a/static/plan9-4e/man8/tlssrv.8 b/static/plan9-4e/man8/tlssrv.8 new file mode 100644 index 00000000..fc23426b --- /dev/null +++ b/static/plan9-4e/man8/tlssrv.8 @@ -0,0 +1,38 @@ +.TH TLSSRV 8 +.SH NAME +tlssrv \- TLS server +.SH SYNOPSIS +.PP +.B tlssrv +.RB [ -k +.IR keydir ] +.RB [ -l +.IR logfile ] +.RB [ -r +.IR remotesys ] +target +.SH DESCRIPTION +.I Tlssrv +is a helper program, typically exec'd in a +.B /bin/service/ +file to establish an SSL or TLS connection before launching +the target server, for example IMAPS or HTTPS. +.PP +.I Keydir +holds the server certificate and private key. +.PP +The specified +.I logfile +is by convention the same as for the target server. +.I Remotesys +is mainly used for logging. When invoked from +.B /bin/service/ +it is written +.B -r'{cat +.BR $3/remote} . +.SH FILES +.TF /sys/lib/ssl +.SH SOURCE +.B /sys/src/cmd/tlssrv.c +.SH "SEE ALSO" +.IR listen (8) diff --git a/static/plan9-4e/man8/udpecho.8 b/static/plan9-4e/man8/udpecho.8 new file mode 100644 index 00000000..60117974 --- /dev/null +++ b/static/plan9-4e/man8/udpecho.8 @@ -0,0 +1,16 @@ +.TH UDPECHO 8 +.SH NAME +udpecho \- echo UDP packets +.SH SYNOPSIS +.PP +.B ip/udpecho +[ +.B -x +.I ext +] +.SH DESCRIPTION +.PP +Listen on UDP port 7 and echo back any packets +received. +This should only be run for testing since it can +be used to disguise the identity of someone doing a denial of service attack. diff --git a/static/plan9-4e/man8/update.8 b/static/plan9-4e/man8/update.8 new file mode 100644 index 00000000..2519f213 --- /dev/null +++ b/static/plan9-4e/man8/update.8 @@ -0,0 +1,127 @@ +.TH UPDATE 8 +.SH NAME +bootfloppy, bootplan9, bootwin9x, bootwinnt, personalize, setup.9fat, setup.disk, +setup.kfs, update \- administration for local file systems +.SH SYNOPSIS +.B pc/bootfloppy +.I floppydisk +.I plan9.ini +.br +.B pc/bootplan9 +.I /dev/sdXX +.br +.B pc/bootwin9x +.br +.B pc/bootwinnt +.br +.B pc/personalize +.br +.B pc/setup.9fat +.I /dev/sdXX/9fat +.I plan9.ini +.br +.B pc/setup.disk +.I /dev/sdXX +.I plan9.ini +.br +.B pc/update +.PD +.SH DESCRIPTION +These programs help maintain a file system on a local disk for a private machine. +.PP +.I Setup.disk +partitions a disk +and makes a new file system on the disk. +It then calls +.IR setup.9fat , +.IR update , +and +.I personalize +to initialize the file system. +.PP +.I Setup.9fat +formats the named +.I 9fat +partition, +installing +.BR /386/9load , +.BR /386/9pcdisk , +and the named +.I plan9.ini +file. +.PP +.I Update +copies the current kernel to the disk and updates +files on the local file system by copying them from the main file server +(named by the environment variable +.BR $fileserver ). +The files it updates are specified by the +.IR mkfs (8) +prototype file +.BR /sys/lib/sysconfig/proto/386proto . +.PP +.I Personalize +removes the contents of the +.B /usr +directory on the local disk and copies a minimal set of files for +the user who runs the command. +.PP +The boot scripts prepare various ways to bootstrap Plan 9. +.I Bootfloppy +creates a boot floppy containing +.BR 9load , +a zeroed 512-byte +.BR plan9.nvr , +and the named file as +.BR plan9.ini . +.I Bootplan9 +sets the +.B 9fat +partition to be the active partition, the one +used at boot time. +.I Bootwin9x +edits the files +.BR config.sys , +.BR msdos.sys , +and +.B autoexec.bat +on the drive mounted by +.B c: +to provide Plan 9 +as a boot menu option. +These system files are first backed up +as +.BR config.p9 , +.BR msdos.p9 , +and +.BR autoexec.p9 . +.I Bootwinnt +edits the Windows NT +boot loader menu contained in +the first FAT partition's +.I boot.ini +to provide Plan 9 +as an option. +It is first backed up as +.IR boot.p9 . +If backup files already exist, +.I bootwin9x +and +.I bootwinnt +do nothing. +.SH FILES +.TF /sys/lib/sysconfig/proto/ +.TP +.B /sys/lib/sysconfig/proto/ +.IR Mkfs (8) +prototype files. +.SH SOURCE +.B /rc/bin/pc/* +.SH "SEE ALSO" +.IR kfs (4), +.IR 9load (8), +.IR mkfs (8), +.IR prep (8), +.IR sd (3) +.br +``Installing the Plan 9 Distribution''. diff --git a/static/plan9-4e/man8/venti.8 b/static/plan9-4e/man8/venti.8 new file mode 100644 index 00000000..91bc9b99 --- /dev/null +++ b/static/plan9-4e/man8/venti.8 @@ -0,0 +1,196 @@ +.TH VENTI 8 +.SH NAME +venti \- an archival block storage server +.SH SYNOPSIS +.B venti/venti +[ +.B -dw +] +[ +.B -a +.I ventiaddress +] +[ +.B -B +.I blockcachesize +] +[ +.B -c +.I config +] +[ +.B -C +.I cachesize +] +[ +.B -h +.I httpaddress +] +[ +.B -I +.I icachesize +] +.SH DESCRIPTION +.I Venti +is a block storage server intended for archvial data. +In a Venti server, +the Sha1 hash of a block's contents acts as the block +identifier for read and write operations. +This approach enforces a write-once policy, preventing accidental or +malicious destruction of data. In addition, duplicate copies of a +block are coalesced, reducing the consumption of storage and +simplifying the implementation of clients. +.PP +Storage for +.I venti +consists of a data log and an index, both of which +can be spread across multiple files. +The files containing the data log are themselves divided into self-contained sections called arenas. +Each arena contains a large number of data blocks and is sized to +facilitate operations such as copying to removable media. +The index provides a mapping between the a Sha1 fingerprint and +the location of the corresponding block in the data log. +.PP +The index and data log are typically stored on raw disk partitions. +To improve the robustness, the data log should be stored on +a device that provides RAID functionality. The index does +not require such protection, since if necessary, it can +can be regenerated from the data log. +The performance of +.I venti +is typically limited to the random access performance +of the index. This performance can be improved by spreading the +index accross multiple disks. +.PP +The storage for +.I venti +is initialized using +.IR fmtarenas (8), +.IR fmtisect (8), +and +.IR fmtindex (8). +A configuration file, +.IR venti.conf (6), +ties the index sections and data arenas together. +.PP +A Venti +server is accessed via an undocumented network protocol. +Two client applications are included in this distribution: +.IR vac (1) +and +.IR vacfs (4). +.I Vac +copies files from a Plan 9 file system to Venti, creating an +archive and returning the fingerprint of the root. +This archive can be mounted in Plan 9 using +.IR vacfs . +These two commands enable a rudimentary backup system. +A future release will include a Plan 9 file system that uses +Venti as a replacement for the WORM device of +.IR fs (4). +.PP +The +.I venti +server provides rudimentary status information via +a built-in http server. The URL files it serves are: +.TP +.B stats +Various internal statistics. +.TP +.B index +An enumeration of the index sections and all non empty arenas, including various statistics. +.TP +.B storage +A summary of the state of the data log. +.TP +.B xindex +An enumeration of the index sections and all non empty arenas, in XML format. +.PP +Several auxiliary utilities aid in maintaining the storage for Venti. +With the exception of +.IR rdarena (8), +these utilities should generally be run after killing the +.I venti +server. +The utilities are: +.TP +.IR checkarenas (8) +Check the integrity, and optionally fix, Venti arenas. +.TP +.IR checkindex (8) +Check the integrity, and optionally fix, a Venti index +.TP +.IR buildindex (8) +Rebuild a Venti index. +.TP +.IR rdarena (8) +Extract a Venti arena and write to standard output. +.PP +Options to +.I venti +are: +.TP +.BI -a " ventiaddress +The network address on which the server listens for incoming connections. +The default is +.LR tcp!*!venti . +.TP +.BI -B " blockcachesize +The size, in bytes, of memory allocated to caching raw disk blocks. +.TP +.BI -c " config +Specifies the +Venti +configuration file. +Defaults to +.LR venti.conf . +.TP +.BI -C " cachesize +The size, in bytes, of memory allocated to caching +Venti +blocks. +.TP +.BI -d +Produce various debugging information on standard error. +.TP +.BI -h " httpaddress +The network address of Venti's built-in +http +server. +The default is +.LR tcp!*!http . +.TP +.BI -I " icachesize +The size, in bytes, of memory allocated to caching the index mapping fingerprints +to locations in +.IR venti 's +data log. +.TP +.B -w +Enable write buffering. This option increase the performance of writes to +.I venti +at the cost of returning success to the client application before the +data has been written to disk. Use of this option is recommended. +.PP +Note, the units for the various cache sizes above can be specified by appending a +.LR k , +.LR m , +or +.LR g +to indicate kilobytes, megabytes, or gigabytes respectively. +.SH SOURCE +.B /sys/src/cmd/venti +.SH "SEE ALSO" +.IR venti.conf (6), +.IR fmtarenas (8), +.IR fmtisect (8), +.IR fmtindex (8), +.IR vac (1), +.IR vacfs (4). +.IR checkarenas (8), +.IR checkindex (8), +.IR buildindex (8), +.IR rdarena (8) +.br +Sean Quinlan and Sean Dorward, +``Venti: a new approach to archival storage''. diff --git a/static/plan9-4e/man8/vga.8 b/static/plan9-4e/man8/vga.8 new file mode 100644 index 00000000..5344f328 --- /dev/null +++ b/static/plan9-4e/man8/vga.8 @@ -0,0 +1,189 @@ +.TH VGA 8 +.SH NAME +vga \- configure a VGA card +.SH SYNOPSIS +.B aux/vga +[ +.B -BcdilpvV +] +[ +.B -b +.I bios-string +] +[ +.B -m +.I monitor +] +[ +.B -x +.I file +] +[ +.I mode +[ +.I size +] +] +.SH DESCRIPTION +.B Aux/vga +configures a VGA controller for various display sizes and depths. +Using the monitor type specified in +.B /env/monitor +(default +.BR vga ) +and the +.I mode +given as argument +(default +.BR 640x480x1 ), +.B aux/vga +uses the database of known VGA controllers and monitors in +.B /lib/vgadb +(see +.IR vgadb (6)) +to configure +the display via the devices provided by +.IR vga (3). +The options are: +.TP +.BI -b " bios-string" +use the VGA database entry corresponding to +.I bios-string +(e.g. +\fL0xC0045="Stealth 64 DRAM Vers. 2.02"\fR) +rather than looking for identifying strings in the BIOS +memory. +.TP +.B -B +dump the BIOS memory (in hex) to standard output and exit. +.TP +.B -c +disable the use of the hardware graphics cursor. +(Since there is no software cursor, this disables the cursor entirely.) +.TP +.B -d +include the color palette in whatever actions are performed, +usually printing the contents. +.TP +.B -i +when used with +.B -p +display the register values that will be loaded. +.TP +.B -l +load the desired mode. +.TP +.BI -m " monitor" +override the +.B /env/monitor +value. +.B /env/monitor +is usually set by including it in the +.B plan9.ini +file read by the PC boot program +.IR 9load (8). +.TP +.B -p +print the current or expected register values at appropriate points depending on +other options. +.TP +.B -v +print a trace of the functions called. +.TP +.B -V +print a verbose trace of the functions called. +.TP +.B -x " file" +use +.I file +as the VGA database rather than +.BR /lib/vgadb . +.PP +.I Mode +is of the form +.IB X x Y x Z +, where +.IR X , +.IR Y , +and +.I Z +are numbers specifying the display height, width, and depth respectively. +The mode must appear in +.B /lib/vgadb +as a value for one of the monitor entries. +The usual modes are +.BR 640x480x[18] , +.BR 800x600x[18] , +.BR 1024x768x[18][i] , +.BR 1280x1024x[18][i] , +.BR 1376x1024x8 , +and +.BR 1600x1200x8 . +A trailing +.L i +indicates interlaced operation. +The default mode is +.BR 640x480x8 . +.I Size +is of the form +.I X x Y +and configures the display to have a virtual +screen of the given size. +The physical screen will pan to follow the mouse. +This is useful on displays with small screens, +such as laptops, but can be confusing. +.SH EXAMPLES +Change the display resolution: +.IP +.EX +aux/vga -l 1600x1200x8 +.EE +.PP +Print the current VGA controller registers. +It is usually best to redirect the output of a +.B -p +command to a file to prevent confusion caused by using the VGA +controller while trying to dump its state: +.IP +.EX +aux/vga -p >/tmp/x +.EE +.PP +Force the VGA controller to a known state: +.IP +.EX +aux/vga -m vga -l +.EE +.PP +Print the current VGA controller state and what would be loaded +into it for a new resolution, but don't do the load: +.IP +.EX +aux/vga -ip 1376x1024x8 >/tmp/x +.EE +.PP +.SH FILES +.TF /env/monitor +.TP +.B /env/monitor +display type (default +.IR vga ). +.TP +.B /lib/vgadb +VGA configuration file. +.SH SOURCE +.B /sys/src/cmd/aux/vga +.SH SEE ALSO +.IR vga (3), +.IR vgadb (6), +.IR 9load (8) +.SH BUGS +.B Aux/vga +makes every effort possible to verify that the mode it is about +to load is valid and will bail out with an error message +before setting any registers if it encounters a problem. +However, things can go wrong, especially when playing with a +new VGA controller or monitor setting. +It is useful in such cases to have +the above command for setting the controller to a known state +at your fingertips. diff --git a/static/unix-v10/=.1 b/static/unix-v10/=.1 new file mode 100644 index 00000000..509409e8 --- /dev/null +++ b/static/unix-v10/=.1 @@ -0,0 +1,123 @@ +.TH = 1 +.CT 1 shell +.SH NAME +=, ==, =p, ==p \- redo previous shell command +.SH SYNOPSIS +.B = +[ +.I pattern +] +[ +.I substitution ... +] +.br +.B == +[ +.I pattern +] +[ +.I substitution ... +] +.br +.B =p +[ +.I pattern +] +[ +.I substitution ... +] +.br +.B ==p +[ +.I pattern +] +[ +.I substitution ... +] +.SH DESCRIPTION +The +.I = +command provides a simple history mechanism for the shell, +.IR sh (1). +The environment variable +.BR HISTORY , +if set, +names a file to which +the shell appends the text of each command before execution. +.I = +searches the history file for the most recent +command that matches the +.I pattern, +performs the +.IR substitutions, +and executes it. +The +.I pattern +must agree with an initial substring of the original +command except for variations in spacing. +If no +.I pattern +is specified, the most recent command is selected. +If no +substitution +is specified, the command is executed without modification. +.PP +.PP +Substitutions have the form +.IP +.IB old = new +.LP +specifying that the string +.I old +in the command is to be replaced by +.I new. +Substitutions are made in order +and operate on the first match. +.PP +The +.I == +command is identical to +.IR = , +but allows the substituted command to be edited before running. +The command is printed, +and a modification request is read from the terminal. +Generally each character in the request specifies how to +modify the character immediately above it: +.TP +.B # +Delete the character. +.PD 0 +.TP +.B % +Replace the character with a space. +.TP +.B ^ +Insert the rest of the request line before the character. +.TP +.B $ +Replace the characters in the command from this position on +with the rest of the request line. +.IP "space or tab" +Leave the character(s) unchanged. +.TP +.B = +Must be the first and only edit character. +Back up to the next most recent +match in the history file +and try again. +.IP "any other" +This character replaces the one above it. +.PD +.PP +If the request line is longer than the command, +the overhang is appended to the command. +.PP +.I =p +and +.I ==p +behave like +.I = +and +.IR == , +except that they print the command on +their standard output instead of executing it. diff --git a/static/unix-v10/Makefile b/static/unix-v10/Makefile new file mode 100644 index 00000000..f47052cd --- /dev/null +++ b/static/unix-v10/Makefile @@ -0,0 +1,14 @@ +SUBDIRS = man1 \ + man2 \ + man3 \ + man4 \ + man5 \ + man6 \ + man7 \ + man8 \ + man9 + +export OS="Unix V10" + +include ../subdir.mk + diff --git a/static/unix-v10/man1/2500.1 b/static/unix-v10/man1/2500.1 new file mode 100644 index 00000000..bfdec3a4 --- /dev/null +++ b/static/unix-v10/man1/2500.1 @@ -0,0 +1,120 @@ +.TH 2500 1 +.CT 1 graphics comm_dev +.SH NAME +2500 \- BVH2500 videotape recorder +.SH SYNOPSIS +.B 2500 +[ +.B -lq +] +.SH DESCRIPTION +.I 2500 +is an interpreter of commands to control +a SONY BVH2500 1-inch video recorder, whose +inputs and outputs have already been set up. +The options are +.TP +.B -l +Create a log file; useful in pursuit of bugs. +.TP +.B -q +Suppress the initial status report. +.PP +Most of the commands require an intimate knowledge of the equipment. +The simpler commands are described below; +see the +.B help +command for a complete list. +Times are given as +.B "[[hrs.]min.]sec.fr" +where there are 30 frames per second. +The commands are +.TF viewxxxxxx +.TP 10n +.BI cue \ t +Move the tape to time +.IR t . +.TP +.B help +Produce a list of all commands. +.TP +.BI loop "\ t0 t1 fps" +Play from +.I t0 +through +.I t1 +and back again at +.I fps +frames per second. +.TP +.B play +Start playing the tape from the current frame. +.TP +.BI snap \ n +When in still record mode, record the current input onto the next +.I n +frames. +A missing +.I n +is taken to be 1. +.TP +.B status +Print some status information. +The command +.B status status +prints all available status information. +.TP +.BI still \ t +Go into still record mode and cue to time +.IR t . +The command returns before the tape transport is done; +usually it must be followed by +.LR wait . +.TP +.B still mode on|off +Turn still mode on or off. +.TP +.B stop +Stop the tape transport. +.TP +.BI view " t0 t1" +Play from +.I t0 +through +.I t1. +.B wait +Wait for the previous tape transport command to finish. +.TP +.B ! +Interpret the rest of the line as a +.IR sh (1) +command. +.TP +.B # +Comment. Ignore the rest of the line. +.PD +.PP +.SH EXAMPLES +Assuming you have already set up the video switch to feed the BVH2500, +the following script will record (or rerecord) a movie starting at 2 minutes. +.EX +still 2.0.0 +wait +!generate an image +snap 1 +# repeat the last two lines as necessary +still mode off +stop +.EE +.br +.SH BUGS +The BVH2500 will misbehave if the pause between +.BR snap s +(in still record mode) is too long, +or if you record for many hours on end. +The latter problem can be avoided by using scripts that run +for 2 or 3 hours and sleeping for 10 minutes between scripts +with the tape transport off. +.br +Commands in the help list are (incorrectly) capitalized. + diff --git a/static/unix-v10/man1/300.1 b/static/unix-v10/man1/300.1 new file mode 100644 index 00000000..c100fe71 --- /dev/null +++ b/static/unix-v10/man1/300.1 @@ -0,0 +1,228 @@ +.TH 300 1 +.SH NAME +300, 300s \- handle special functions of DASI 300 and 300s terminals +.SH SYNOPSIS +.B 300 +[ +.B +12 +] +[ +.B \-n +] +[ +.BI \-d t,l,c +] +.PP +.B 300s +[ +.B +12 +] +[ +.B \-n +] +[ +.BI \-d t,l,c +] +.SH DESCRIPTION +.I 300\^ +supports special functions and optimizes the use of the +.SM DASI +300 +(\s-1GSI\s+1 300 or +.SM DTC +300) terminal; +.I 300s\^ +performs the same functions for the +.SM DASI +300s (\s-1GSI\s+1 300s or +.SM DTC +300s) terminal. +It converts half-line forward, half-line reverse, and full-line reverse +motions to the correct vertical motions. +It also +attempts to draw Greek letters and other special symbols. +It permits convenient use of 12-pitch text. +It also reduces printing time 5 to 70%. +.I 300\^ +can be used +to print equations neatly, in the sequence: +.PP +.RS +neqn file +.B \&.\|.\|. +\(bv nroff \(bv 300 +.PP +.RE +.SM WARNING: +if your terminal has a +.SM PLOT +switch, make sure it is turned +.I on\^ +before +.I 300\^ +is used. +.PP +The behavior of +.I 300\^ +can be modified by the optional flag arguments to handle +12-pitch text, fractional line spacings, messages, and delays. +.TP 9 +.B +12 +permits use of 12-pitch, 6 lines/inch text. +.SM DASI +300 terminals normally allow only two combinations: 10-pitch, 6 lines/inch, +or 12-pitch, 8 lines/inch. +To obtain the 12-pitch, 6 lines per inch combination, the user should turn the +.SM PITCH +switch to 12, and use the +.B +12 +option. +.TP 9 +.BI \- n\^ +controls the size of half-line spacing. +A half-line is, by default, +equal to 4 vertical plot increments. +Because each increment equals 1/48 of an inch, +a 10-pitch line-feed requires 8 increments, +while a 12-pitch line-feed needs only 6. +The first digit of +.I n\^ +overrides the default value, thus allowing for individual taste +in the appearance of subscripts and superscripts. +For example, +.IR nroff (1) +half-lines could be made to act as quarter-lines by using +.BR \-2 . +The user could also obtain appropriate half-lines for +12-pitch, 8 lines/inch mode by using the option +.B \-3 +alone, +having set the +.SM PITCH +switch to 12-pitch. +.TP 9 +.BI \-d t , l , c\^ +controls delay factors. +The default setting is +.BR \-d3,90,30 . +.SM DASI +300 terminals sometimes produce +peculiar output when faced with +very long lines, +too many tab characters, +or long strings of blankless, non-identical characters. +One null (delay) character is inserted in a line for every set of +.I t\^ +tabs, +and for every contiguous string of +.I c\^ +non-blank, non-tab characters. +If a line is longer than +.I l\^ +bytes, 1+(total length)/20 nulls are inserted at the end of that line. +Items can be omitted from the end of the list, +implying use of the default values. +Also, a value of +zero +for +.I t\^ +.RI ( c ) +results in two null bytes per tab (character). +The former may be needed for C programs, the latter for files like +.BR /etc/passwd . +Because terminal behavior varies according to the specific characters printed and +the load on a system, +the user may have to experiment with these values to get correct output. +The +.B \-d +option exists only as a last resort +for those few cases that do not otherwise print properly. +For example, the file +.B /etc/passwd +may be printed using +.BR \-d3,30,5 . +The value +.B \-d0,1 +is a good one to use for C programs that have many +levels of indentation. +.IP +Note that the delay control interacts heavily +with the prevailing carriage return and +line-feed delays. +The +.IR stty (1) +modes +.B "nl0 cr2" +or +.B "nl0 cr3" +are recommended for most uses. +.PP +.I 300\^ +can be used with the +.I nroff\^ +.B \-s +flag or +.B \&.rd +requests, when it is necessary to insert paper manually or change fonts +in the middle of a document. +Instead of hitting the +return +key in these cases, +you must use the +line-feed +key to +get any response. +.PP +In many (but not all) cases, the following sequences are equivalent: +.RS +.PP +nroff \-T300 files +.B \&.\|.\|. +\ \ and\ \ \ nroff files +.B \&.\|.\|. +\(bv 300 +.br +nroff \-T300\-12 files +.B \&.\|.\|. +\ \ and\ \ \ nroff files +.B \&.\|.\|. +\(bv 300\ +12 +.PP +.RE +The use of +.I 300\^ +can thus often be avoided unless +special delays or options are required; +in a few cases, however, the additional movement optimization of +.I 300\^ +may produce better-aligned output. +.PP +The +.IR neqn (1) +names of, and +resulting output for, the Greek and special characters supported +by +.I 300\^ +are shown in +.IR greek (7). +.SH SEE ALSO +.IR 450 (1), +.IR eqn (1), +.IR graph (1G), +.IR mesg (1), +.IR stty (1), +.IR tabs (1), +.IR tbl (1), +.IR tplot (1G), +.IR troff (1), +.IR greek (7). +.SH BUGS +Some special characters cannot be correctly printed in column 1 +because the print head cannot be moved to the left from there. +.br +If your output contains Greek and/or reverse line-feeds, +use a friction-feed platen instead of a forms tractor; +although good enough for drafts, +the latter has a tendency to slip when reversing direction, +distorting Greek characters and misaligning the first line of text after one or more +reverse line-feeds. diff --git a/static/unix-v10/man1/450.1 b/static/unix-v10/man1/450.1 new file mode 100644 index 00000000..ce3cecdd --- /dev/null +++ b/static/unix-v10/man1/450.1 @@ -0,0 +1,110 @@ +.TH 450 1 +.SH NAME +450 \- handle special functions of the DASI 450 terminal +.SH SYNOPSIS +.B 450 +.SH DESCRIPTION +.I 450\^ +supports special functions of, and optimizes the use of, the +.SM DASI +450 +terminal, +or any terminal that is functionally identical, +such as the +.SM DIABLO +1620 or +.SM XEROX +1700. +It converts half-line forward, half-line reverse, and full-line reverse +motions to the correct vertical motions. +It also +attempts to draw Greek letters and other special symbols +in the same manner as +.IR 300 (1). +.I 450\^ +can be used +to print equations neatly, in the sequence: +.PP +.RS +neqn\| file\| .\|.\|.\| \(bv\| nroff\| \(bv\| 450 +.RE +.PP +.SM WARNING: +make sure that the +.SM PLOT +switch on your terminal is +.SM ON +before +.I 450\^ +is used. +The +.SM SPACING +switch should be put in the desired position (either 10- or 12-pitch). +In either case, vertical spacing is 6 lines/inch, +unless dynamically changed to 8 lines per inch by an appropriate escape sequence. +.PP +.I 450\^ +can be used with the +.IR nroff (1) +.B \-s +flag or +.B \&.rd +requests, when it is necessary to insert paper manually or change fonts +in the middle of a document. +Instead of hitting the +return +key in these cases, +you must use the +line-feed +key to +get any response. +.PP +In many (but not all) cases, the use of +.I 450\^ +can be eliminated in favor of one of the following: +.PP +.RS +nroff\| \-T450\| files\| .\|.\|. +.RE +or +.RS +nroff\| \-T450\-12\| files\| .\|.\|. +.RE +.PP +The use of +.I 450\^ +can thus often be avoided unless +special delays or options are required; +in a few cases, however, the additional movement optimization of +.I 450\^ +may produce better-aligned output. +.PP +The +.IR neqn (1) +names of, and +resulting output for, the Greek and special characters supported +by +.I 450\^ +are shown in +.IR greek (7). +.SH SEE ALSO +.IR 300 (1), +.IR eqn (1), +.IR graph (1G), +.IR mesg (1), +.IR stty (1), +.IR tabs (1), +.IR tbl (1), +.IR tplot (1G), +.IR troff (1), +.IR greek (7). +.SH BUGS +Some special characters cannot be correctly printed in column 1 +because the print head cannot be moved to the left from there. +.br +If your output contains Greek and/or reverse line-feeds, +use a friction-feed platen instead of a forms tractor; +although good enough for drafts, +the latter has a tendency to slip when reversing direction, +distorting Greek characters and misaligning the first line of text after one or more +reverse line-feeds. diff --git a/static/unix-v10/man1/8q.1 b/static/unix-v10/man1/8q.1 new file mode 100644 index 00000000..7ed6437f --- /dev/null +++ b/static/unix-v10/man1/8q.1 @@ -0,0 +1,92 @@ +1 5 8 6 3 7 2 4 +1 6 8 3 7 4 2 5 +1 7 4 6 8 2 5 3 +1 7 5 8 2 4 6 3 +2 4 6 8 3 1 7 5 +2 5 7 1 3 8 6 4 +2 5 7 4 1 8 6 3 +2 6 1 7 4 8 3 5 +2 6 8 3 1 4 7 5 +2 7 3 6 8 5 1 4 +2 7 5 8 1 4 6 3 +2 8 6 1 3 5 7 4 +3 1 7 5 8 2 4 6 +3 5 2 8 1 7 4 6 +3 5 2 8 6 4 7 1 +3 5 7 1 4 2 8 6 +3 5 8 4 1 7 2 6 +3 6 2 5 8 1 7 4 +3 6 2 7 1 4 8 5 +3 6 2 7 5 1 8 4 +3 6 4 1 8 5 7 2 +3 6 4 2 8 5 7 1 +3 6 8 1 4 7 5 2 +3 6 8 1 5 7 2 4 +3 6 8 2 4 1 7 5 +3 7 2 8 5 1 4 6 +3 7 2 8 6 4 1 5 +3 8 4 7 1 6 2 5 +4 1 5 8 2 7 3 6 +4 1 5 8 6 3 7 2 +4 2 5 8 6 1 3 7 +4 2 7 3 6 8 1 5 +4 2 7 3 6 8 5 1 +4 2 7 5 1 8 6 3 +4 2 8 5 7 1 3 6 +4 2 8 6 1 3 5 7 +4 6 1 5 2 8 3 7 +4 6 8 2 7 1 3 5 +4 6 8 3 1 7 5 2 +4 7 1 8 5 2 6 3 +4 7 3 8 2 5 1 6 +4 7 5 2 6 1 3 8 +4 7 5 3 1 6 8 2 +4 8 1 3 6 2 7 5 +4 8 1 5 7 2 6 3 +4 8 5 3 1 7 2 6 +5 1 4 6 8 2 7 3 +5 1 8 4 2 7 3 6 +5 1 8 6 3 7 2 4 +5 2 4 6 8 3 1 7 +5 2 4 7 3 8 6 1 +5 2 6 1 7 4 8 3 +5 2 8 1 4 7 3 6 +5 3 1 6 8 2 4 7 +5 3 1 7 2 8 6 4 +5 3 8 4 7 1 6 2 +5 7 1 3 8 6 4 2 +5 7 1 4 2 8 6 3 +5 7 2 4 8 1 3 6 +5 7 2 6 3 1 4 8 +5 7 2 6 3 1 8 4 +5 7 4 1 3 8 6 2 +5 8 4 1 3 6 2 7 +5 8 4 1 7 2 6 3 +6 1 5 2 8 3 7 4 +6 2 7 1 3 5 8 4 +6 2 7 1 4 8 5 3 +6 3 1 7 5 8 2 4 +6 3 1 8 4 2 7 5 +6 3 1 8 5 2 4 7 +6 3 5 7 1 4 2 8 +6 3 5 8 1 4 2 7 +6 3 7 2 4 8 1 5 +6 3 7 2 8 5 1 4 +6 3 7 4 1 8 2 5 +6 4 1 5 8 2 7 3 +6 4 2 8 5 7 1 3 +6 4 7 1 3 5 2 8 +6 4 7 1 8 2 5 3 +6 8 2 4 1 7 5 3 +7 1 3 8 6 4 2 5 +7 2 4 1 8 5 3 6 +7 2 6 3 1 4 8 5 +7 3 1 6 8 5 2 4 +7 3 8 2 5 1 6 4 +7 4 2 5 8 1 3 6 +7 4 2 8 6 1 3 5 +7 5 3 1 6 8 2 4 +8 2 4 1 7 5 3 6 +8 2 5 3 1 7 4 6 +8 3 1 6 2 5 7 4 +8 4 1 3 6 2 7 5 diff --git a/static/unix-v10/man1/:.1.broken b/static/unix-v10/man1/:.1.broken new file mode 100644 index 00000000..e4a1e3b8 --- /dev/null +++ b/static/unix-v10/man1/:.1.broken @@ -0,0 +1,26 @@ +.pa 1 +.he ': (I)'3/15/72': (I)' +.ti 0 +NAME : -- place a label +.sp +.ti 0 +SYNOPSIS :_ [ label ] +.sp +.ti 0 +DESCRIPTION :_ +does nothing. Its only function is to place +a label for the goto____ command. :_ is a command +so the Shell doesn't have to be fixed to ignore lines with +:'s. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO goto(I) +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/=.1 b/static/unix-v10/man1/=.1 new file mode 100644 index 00000000..509409e8 --- /dev/null +++ b/static/unix-v10/man1/=.1 @@ -0,0 +1,123 @@ +.TH = 1 +.CT 1 shell +.SH NAME +=, ==, =p, ==p \- redo previous shell command +.SH SYNOPSIS +.B = +[ +.I pattern +] +[ +.I substitution ... +] +.br +.B == +[ +.I pattern +] +[ +.I substitution ... +] +.br +.B =p +[ +.I pattern +] +[ +.I substitution ... +] +.br +.B ==p +[ +.I pattern +] +[ +.I substitution ... +] +.SH DESCRIPTION +The +.I = +command provides a simple history mechanism for the shell, +.IR sh (1). +The environment variable +.BR HISTORY , +if set, +names a file to which +the shell appends the text of each command before execution. +.I = +searches the history file for the most recent +command that matches the +.I pattern, +performs the +.IR substitutions, +and executes it. +The +.I pattern +must agree with an initial substring of the original +command except for variations in spacing. +If no +.I pattern +is specified, the most recent command is selected. +If no +substitution +is specified, the command is executed without modification. +.PP +.PP +Substitutions have the form +.IP +.IB old = new +.LP +specifying that the string +.I old +in the command is to be replaced by +.I new. +Substitutions are made in order +and operate on the first match. +.PP +The +.I == +command is identical to +.IR = , +but allows the substituted command to be edited before running. +The command is printed, +and a modification request is read from the terminal. +Generally each character in the request specifies how to +modify the character immediately above it: +.TP +.B # +Delete the character. +.PD 0 +.TP +.B % +Replace the character with a space. +.TP +.B ^ +Insert the rest of the request line before the character. +.TP +.B $ +Replace the characters in the command from this position on +with the rest of the request line. +.IP "space or tab" +Leave the character(s) unchanged. +.TP +.B = +Must be the first and only edit character. +Back up to the next most recent +match in the history file +and try again. +.IP "any other" +This character replaces the one above it. +.PD +.PP +If the request line is longer than the command, +the overhang is appended to the command. +.PP +.I =p +and +.I ==p +behave like +.I = +and +.IR == , +except that they print the command on +their standard output instead of executing it. diff --git a/static/unix-v10/man1/Makefile b/static/unix-v10/man1/Makefile new file mode 100644 index 00000000..31e80e19 --- /dev/null +++ b/static/unix-v10/man1/Makefile @@ -0,0 +1,3 @@ +MAN = $(wildcard *.1) + +include ../../mandoc.mk diff --git a/static/unix-v10/man1/acro.1 b/static/unix-v10/man1/acro.1 new file mode 100644 index 00000000..18a45daa --- /dev/null +++ b/static/unix-v10/man1/acro.1 @@ -0,0 +1,59 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.2, February 26, 1981 +.TH ACRO 1 +.SH NAME +acro \- find acronyms in a text file +.SH SYNOPSIS +.B acro +[ +.B \-flags +][ +.B \-ver +] file ... +.SH DESCRIPTION +.I Acro +searches for acronyms in a text file. +It prints each sentence containing an acronym. +.I Acro +also prints a frequency count of all acronyms used in the text. +.PP +.I Acro +skips lines that begin with a dot, "."; +so text files that contain standard +.IR nroff "(1) and " mm (1) +macros are acceptable input. +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH USES +.I Acro +can be used to locate acronyms in a text. +The user can then check to see that an acronym is fully defined +when it is first used. +.SH FILES +.TP 21 +/tmp/$$* +temporary files +.SH SEE ALSO +nroff(1), mm(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/adb.1 b/static/unix-v10/man1/adb.1 new file mode 100644 index 00000000..fe5191b4 --- /dev/null +++ b/static/unix-v10/man1/adb.1 @@ -0,0 +1,1116 @@ +.TH ADB 1 +.CT 1 debug_tune +.ds TW \v'.25m'\s+2~\s-2\v'-.25m' +.ds ST \v'.25m'*\v'-.25m' +.ds IM \v'.1m'=\v'-.1m'\s-2\h'-.1m'>\h'.1m'\s+2 +.ds LE \(<= +.ds LT \s-2<\s+2 +.ds GT \s-2>\s+2 +.SH NAME +adb \- debugger +.SH SYNOPSIS +.B adb +[ +.I option ... +] +[ +.I objfil +[ +.I corfil +] +] +.SH DESCRIPTION +.I Adb +is a general purpose debugging program. +It may be used to examine files and to provide +a controlled environment for the execution +of UNIX programs. +.PP +.I Objfil +is normally an executable program file, preferably +containing a symbol table; +if not then the +symbolic features of +.I adb +cannot be used although the file can still +be examined. +The default for +.I objfil +is +.LR a.out . +.I Corfil +is assumed to be a core image file produced after +executing +.IR objfil ; +the default for +.I corfil +is +.LR core . +.PP +Requests to +.I adb +are read from the standard input and +responses are to the standard output. +Quit signals are ignored; interrupts +cause return to the next +.I adb +command. +The options are +.TP +.B -w +Create +.I objfil +and +.I corfil +if they don't exist; open them for writing +as well as reading. +.TP +.BI -I path +Directory in which to look for relative pathnames in +.B $< +and +.B $<< +commands. +.PP +In general requests to +.I adb +have the following form. +Multiple requests on one line must be separated by +.LR ; . +.IP +.RI [ address ] +.RB [ , +.IR count ] +.RI [ command ] +.PP +If +.I address +is present then the current position, called `dot', +is set to +.IR address . +Initially dot +is set to 0. +In general commands are repeated +.I count +times. +Dot advances between repetitions. +The default +.I count +is 1. +.I Address +and +.I count +are expressions. +.PP +Some formats, +data sizes, +and command details have +different behavior +on different systems. +See the +.SM "MACHINE DEPENDENCIES" +attachment for details. +.SS Expressions +Expressions are computed with sufficient precision +to address the largest possible file; +generally this means a long integer. +On the VAX, +expressions are 32 bits; +on the Cray, +64 bits. +.TP 7.2n +.B . +The value of dot. +.TP 7.2n +.B + +The value of dot +incremented by the current increment. +.TP 7.2n +.B ^ +The value of dot +decremented by the current increment. +.TP 7.2n +.B \&" +The last +.I address +typed. +.TP 7.2n +.I integer +A number +in the +.IR "default radix" ; +see the +.B $d +command. +Regardless of the default, +the prefixes +.L 0o +and +.L 0O +(zero oh) force interpretation +in octal radix; the prefixes +.L 0t +and +.L 0T +force interpretation in +decimal radix; the prefixes +.LR 0x , +.LR 0X , +and +.L # +force interpretation in +hexadecimal radix. +Thus +.LR 0o20 , +.LR 0t16 , +and +.L #10 +all represent sixteen. +.TP 7.2n +.IB integer . fraction +A floating point number. +.TP 7.2n +.BI \' cccc\| \' +The +.SM ASCII +value of one or more characters. +.L \e +may be used to escape a +.LR \' . +.TP 7.2n +.BI < name +The value of +.IR name , +which is either a variable name or a register name. +.I Adb +maintains a number of variables +named by single letters or digits. +The register names are +those printed by the +.B $r +command. +.TP 7.2n +.I symbol +A +.I symbol +is a sequence +of upper or lower case letters, underscores or +digits, not starting with a digit. +.L \e +may be used to escape other characters. +The value of the +.I symbol +is taken from the symbol table +in +.IR objfil . +.TP 7.2n +.IB routine . name +The address of the variable +.I name +in the specified +C routine. +Both +.I routine +and +.I name +are +.IR symbols . +If +.I name +is omitted the value is the address of the +most recently activated C stack frame +corresponding to +.IR routine ; +if +.I routine +is omitted, +the active procedure +is assumed. +.TP 7.2n +.BI ( exp ) +The value of the expression +.IB exp . +.LP +.I Monadic operators +.TP 7.2n +.BI * exp +The contents of the location addressed +by +.I exp +in +.IR corfil . +.TP 7.2n +.BI @ exp +The contents of the location addressed by +.I exp +in +.IR objfil . +.TP 7.2n +.BI - exp +Integer negation. +.TP 7.2n +.BI ~ exp +Bitwise complement. +.TP 7.2n +.BI % exp +If +.I exp +is used as an address, +it is in register space; +see `Addresses'. +.LP +.I "Dyadic\ operators" +are left associative +and are less binding than monadic operators. +.TP 7.2n +.IB e1 + e2 +Integer addition. +.TP 7.2n +.IB e1 - e2 +Integer subtraction. +.TP 7.2n +.IB e1 * e2 +Integer multiplication. +.TP 7.2n +.IB e1 % e2 +Integer division. +.TP 7.2n +.IB e1 & e2 +Bitwise conjunction. +.TP 7.2n +.IB e1 | e2 +Bitwise disjunction. +.TP 7.2n +.IB e1 # e2 +.I E1 +rounded up to the next multiple of +.IR e2 . +.DT +.SS Commands +Most commands consist of a verb followed by a modifier or list +of modifiers. +The following verbs are available. +(The commands +.L ? +and +.L / +may be followed by +.LR * ; +see `Addresses' +for further details.) +.TP .5i +.BI ? f +Locations starting at +.I address +in +.I objfil +are printed according to the format +.IR f . +.TP +.BI / f +Locations starting at +.I address +in +.I corfil +are printed according to the format +.I f. +.TP +.BI = f +The value of +.I address +itself is printed in the +styles indicated by the format +.IR f . +(For +.B i +format +.L ? +is printed for the parts of the instruction that reference +subsequent words.) +.PP +A +.I format +consists of one or more characters that specify a style +of printing. +Each format character may be preceded by a decimal integer +that is a repeat count for the format character. +If no format is given then the last format is used. +.PP +Most format letters fetch some data, +print it, +and advance (a local copy of) dot +by the number of bytes fetched. +The total number of bytes in a format becomes the +.I current increment. +`Long integers' are full words, +the size of an expression item: +e.g.\& +4 bytes on the VAX, +8 bytes on the Cray. +`Short integers' +are some useful shorter size: +2 byte short integers on the VAX, +2 byte parcels on the Cray. +.ta 2.5n .5i +.RS +.TP +.PD 0 +.B r +Print short integer in the current default radix. +.TP +.PD 0 +.B R +Print long integer in the current default radix. +.TP +.PD 0 +.B o +Print short integer in octal. +.TP +.B O +Print long integer in octal. +.TP +.B q +Print short in signed octal. +.TP +.B Q +Print long in signed octal. +.TP +.B d +Print short in decimal. +.TP +.B D +Print long in decimal. +.TP +.B x +Print short in hexadecimal. +.TP +.B X +Print long in hexadecimal. +.TP +.B u +Print short in unsigned decimal. +.TP +.B U +Print long in unsigned decimal. +.TP +.B f +Print +as a floating point number. +.TP +.B F +Print double-precision floating point. +.TP +.B b +Print the addressed byte in octal. +.TP +.B c +Print the addressed character. +.TP +.B C +Print the addressed character. +Control characters +are printed in the form +.BI ^ X +and the delete character is printed as +.LR ^? . +.TP +.B s +Print the addressed characters until a zero character +is reached. +Advance dot +by the length of the string, +including the zero terminator. +.TP +.B S +Print a string using +the +.BI ^ X +escape convention (see +.B C +above). +.TP +.B Y +Print a long integer in date format (see +.IR ctime (3)). +.TP +.B i +Print as machine instructions. +This style of printing causes variables +0, (1, ...) +to be set to the offset parts +of the first (second, ...) +operand of the instruction. +.TP +.B a +Print the value of dot +in symbolic form. +Dot is unaffected. +.TP +.B p +Print the addressed value in symbolic form. +Dot is advanced by the size of a machine address +(4 bytes on the VAX, +8 bytes on the Cray). +.TP +.B t +When preceded by an integer tabs to the next +appropriate tab stop. +For example, +.B 8t +moves to the next 8-space tab stop. +Dot is unaffected. +.TP +.B n +Print a newline. +Dot is unaffected. +.tr '" +.TP +.BR ' ... ' +Print the enclosed string. +Dot is unaffected. +.br +.tr '' +.TP +.B ^ +Dot is decremented by the current increment. +Nothing is printed. +.TP +.B + +Dot is incremented by 1. +Nothing is printed. +.TP +.B - +Dot is decremented by 1. +Nothing is printed. +.RE +.PD +.TP +newline +Update dot by the current increment. +Repeat the previous command with a +.I count +of 1. +.TP +.RB [ ?/ ] l "\fI value mask\fR" +Words starting at dot +are masked with +.I mask +and compared with +.I value +until +a match is found. +If +.B l +is used, +the match is for a short integer; +.B L +matches longs. +If no match is found then dot +is unchanged; otherwise dot +is set to the matched location. +If +.I mask +is omitted then \-1 is used. +.TP +.RB [ ?/ ] w "\fI value ...\fR" +Write the short +.I value +into the addressed +location. +If the command is +.BR W , +write a long. +Option +.B -w +must be in effect. +.TP +.RB [ ?/ ] "m\fI b e f \fP" [ ?\fR] +.br +New values for +.RI ( b,\ e,\ f ) +in the first map entry +are recorded. +If less than three expressions are given then +the remaining map parameters are left unchanged. +The address type (instruction or data) +is unchanged in any case. +If the +.L ? +or +.L / +is followed by +.L * +then +the second segment +of the mapping is changed. +If the list is terminated by +.L ? +or +.L / +then the file +.RI ( objfil +or +.I corfil +respectively) is used +for subsequent requests. +For example, +.L /m? +will cause +.L / +to refer to +.IR objfil . +.TP +.BI > name +Dot is assigned to the variable or register named. +.TP +.B ! +A shell is called to read the +rest of the line following `!'. +.TP +.BI $ modifier +Miscellaneous commands. +The available +.I modifiers +are: +.RS +.TP +.PD 0 +.BI < f +Read commands from the file +.IR f . +If +.I f +cannot be found, try +.BI /usr/lib/adb/ f. +If this command is executed in a file, further commands +in the file are not seen. +If +.I f +is omitted, the current input stream is terminated. +If a +.I count +is given, and is zero, the command will be ignored. +The value of the count will be placed in variable +.B 9 +before the first command in +.I f +is executed. +.TP +.BI << f +Similar to +.B < +except it can be used in a file of commands without +causing the file to be closed. +Variable +.B 9 +is saved during the execution of this command, and restored +when it completes. +There is a (small) limit to the number of +.B << +files that can be open at once. +.br +.ns +.TP +.BI > f +Append output to the file +.IR f , +which is created if it does not exist. +If +.I f +is omitted, output is returned to the terminal. +.TP +.B ? +Print process id, the signal which caused stopping or termination, +as well as the registers. +This is the default if +.I modifier +is omitted. +.TP +.B r +Print the general registers and +the instruction addressed by +.BR pc . +Dot is set to +.BR pc . +.TP +.B R +Like +.BR $r , +but include miscellaneous registers +such as the kernel stack pointer. +.TP +.B b +Print all breakpoints +and their associated counts and commands. +.TP +.B c +C stack backtrace. +If +.I address +is given then it is taken as the +address of the current frame; +otherwise, +the current C frame pointer +is used. +If +.B C +is used then the names and (long) values of all +parameters, +automatic +and static variables are printed for each active function. +If +.I count +is given then only the first +.I count +frames are printed. +.TP +.B a +Set the maximum number of arguments +printed by +.B $c +or +.B $C +to +.IR address . +The default is 20. +.TP +.B d +Set the default radix to +.I address +and report the new value. +.I Address +is interpreted in the (old) current radix; +.L 10$d +never changes the default radix. +To make decimal the default radix, use +.LR 0t10$d . +A radix of zero (the initial default) is a special case; +input with a leading zero is octal, +that with a leading sharp-sign +.L # +is hexadecimal, +other numbers are decimal. +When the default radix is zero, +the default output radix is +appropriate to the machine: +hexadecimal on the VAX, +octal on the Cray. +.TP +.B e +The names and values of all +external variables are printed. +.TP +.B w +Set the page width for output to +.I address +(default 80). +.TP +.B s +Set the limit for symbol matches to +.I address +(default 255). +.TP +.B q +Exit from +.IR adb . +.TP +.B v +Print all non zero variables in the current radix. +.TP +.B m +Print the address maps. +.TP +.B k +Simulate kernel memory management. +.TP +.B p +Simulate per-process memory management. +.IP +.B $k +and +.B $p +are used for system debugging. +Their details vary with machine and operating system. +.PD +.RE +.TP +.BI : modifier +Manage a subprocess. +Available modifiers are: +.RS +.TP +.PD 0 +.BI b c +Set breakpoint at +.IR address . +The breakpoint is executed +.IR count \-1 +times before +causing a stop. +Each time the breakpoint is encountered +the command +.I c +is executed. +If this command is omitted or sets dot +to zero +then the breakpoint causes a stop. +.TP +.B d +Delete breakpoint at +.IR address . +.TP +.B r +Run +.I objfil +as a subprocess. +If +.I address +is given explicitly then the +program is entered at this point; otherwise +the program is entered at its standard entry point. +.I count +specifies how many breakpoints are to be +ignored before stopping. +Arguments to the subprocess may be supplied on the +same line as the command. +An argument starting with < or > causes the standard +input or output to be established for the command. +All signals are enabled on entry to the subprocess. +.TP +.BI c s +The subprocess is continued. +If +.I s +is omitted +or nonzero, +the subprocess +is sent the signal that caused it to stop; +if 0 +is specified, +no signal is sent. +Breakpoints +and single-stepping +don't count as signals. +Breakpoint skipping is the same +as for +.BR r . +.TP +.BI s s +As for +.B c +except that +the subprocess is single stepped +.I count +times. +If a signal is sent, +it is received +before the first instruction is executed. +If there is no current subprocess then +.I objfil +is run +as a subprocess as for +.BR r . +In this case no signal can be sent; the remainder of the line +is treated as arguments to the subprocess. +.TP +.B k +The current subprocess, if any, is terminated. +.PD +.RE +.SS Variables +.I Adb +provides a number of variables. +Named variables are set initially by +.I adb +but are not used subsequently. +Numbered variables are reserved for communication +as follows. +.TP +.BR 0 ", " 1 ", ..." +The offset parts of the first, second, ... +operands of the last instruction printed. +Meaningless if the operand was a register. +.br +.ns +.TP +.B 9 +The count on the last +.B $< +or +.B $<< +command. +.PP +On entry the following are set +from the system header in the +.IR corfil . +If +.I corfil +does not appear to be a +core image then +these values are set from +.IR objfil . +.TP +.B b +The base address of the data segment. +.PD 0 +.TP +.B d +The data segment size. +.TP +.B e +The entry point. +.TP +.B m +The `magic' number +.RI ( a.out (5)). +.TP +.B s +The stack segment size. +.TP +.B t +The text segment size. +.PD +.SS Addresses +The address in a file associated with +a written address is determined by a mapping +associated with that file. +Each mapping is represented by one or more quadruples +.RI ( "t, b, e, f" ), +each mapping addresses of type +.I t +(instruction, +data, +user block) +in the range +.I b +through +.I e +to the part of the file +beginning at +address +.IR f . +An address +.I a +of type +.I t +is mapped +to a file address +by finding a quadruple +of type +.IR t , +for which +.IR b \*(LE a < e ; +the file address +is +.IR address + f \(mi b . +As a special case, +if an instruction space address is not found, +a second search is made +for the same address in data space. +.PP +Typically, +the text segment of a program +is mapped as instruction space, +the data and bss segments +as data space. +If +.I objfil +is an +.IR a.out, +or if +.I corfil +is a core image +or process file, +maps are set accordingly. +Otherwise, +a single `data space' +map is set up, +with +.I b +and +.I f +set to zero, +and +.I e +set to a huge number; +thus the entire file can be examined +without address translation. +.PP +The +.B ? +and +.B / +commands attempt to examine +instruction and data space +respectively. +.B ?* +tries for data space +(in +.IR objfil ); +.B /* +accesses instruction space +(in +.IR corfil ). +.PP +Registers in +process and core images +are a special case; +they live in a special `register' address space. +The contents of register 0 +are located at address +.BR %0 ; +register 1 +at +.BR %4 +(if registers are 4 bytes long); +and so on. +.B % +addresses +are mapped to the registers +for the `current frame,' +set by local variable references, +and reset to the outermost frame +(the `real' registers) +whenever a process runs +or a stack trace is requested. +.PP +Simulated memory management +translations +(the +.B $k +and +.B $p +commands) +are done before the mapping described above. +.SH FILES +.F a.out +.br +.F core +.br +.F /usr/lib/adb/* +parameter files +.br +.F /proc/* +.SH SEE\ ALSO +.IR cin (1), +.IR pi (9.1), +.IR nm (1), +.IR proc (4), +.IR a.out (5), +.IR bigcore (1) +.br +J. F. Maranzano and S. R. Bourne, +`A Tutorial Introduction to ADB' in +Bell Laboratories, +.I UNIX Programmer's Manual, +Volume\ 2, +Holt, Rinehart and Winston (1984) +.SH DIAGNOSTICS +`Adb' when there is no current command or format. +Exit status is 0, unless last command failed or +returned nonzero status. +.SH BUGS +Either the explanation +or the implementation +of register variables +is too complex and arcane. +.SH MACHINE DEPENDENCIES +.SS PDP-11 +Short integers (printed by +.B r +format) +are 2 bytes; +long integers +(printed by +.B R +format) +are 4 bytes. +Addresses printed by +.B a +format are 2 bytes. +.PP +Register variables match the hardware in the +obvious way: +.B r0 +is at address +.BR %0 , +.B r1 +at +.BR %2 , +and so on. +.PP +The default output radix +is octal. +.PP +.B $k +and +.B $p +are unimplemented. +.SS VAX +Short integers are 2 bytes, +long integers are 4 bytes, +addresses are 4 bytes. +.PP +Register variables match the hardware in the +obvious way: r0 +is at address +.BR %0 , +r1 at +.BR %4 , +and so on. +.PP +The default output radix +is hexadecimal. +.PP +.B $k +sets the system base register pointer to +.IR address . +System space addresses are thereafter +mapped according to the system page table +starting at that physical address. +An +.I address +of zero +turns off mapping. +.PP +.B $p +sets the process control block pointer to +.IR address ; +user space addresses are thereafter +translated according to the user page tables +described by the PCB. +Kernel mapping must already be in effect. +.I Address +may be a physical address +(that of the PCB) +or the system space virtual address +of a page table entry +pointing to the PCB +(the number stored in +.IR p_addr ). +If +.I address +is zero, +user mapping is turned off; +addresses less than +0x80000000 +will be treated as physical addresses. +.PP +The command +.L "$ > greater than + = = equal to , , comma + % \(di divide * * exponential (power) + ! ! factorial and combinations ? ? deal + .le \(<= less than or equal .ge \(>= greater than or equal + .ne \(!= not equal .om \(*W omega (not used) + .ep \(*e epsilon .rh \(*r shape (rho) + .nt \(no not (also \'~\') .tk \(ua take (also \'^\') + .dr \(da drop .it \(*i iota + .ci \(ci circular function .al \(*a alpha (not used) + .cl \(lc maximum (ceiling) .fl \(lf minimum (floor) + .dl \(*D del (not used) .de \(gr upside down del + .jt \(de small circle (null) .qd \(sq quad + .ss \(sb right U (not used) .sc \(sp left U (not used) + .si \(ca Down U .su \(cu U (not used) + .[^ \(gr upside-down del .bv \o'\(lf\(rf' decode (base) + .rp \o'\(lc\(rc' encode (rep) .br \(or residue (mod) + .sp \(<- assignment (also '_') .go \(-> goto + .or V or .nn \o'\(*L~' nand + .nr \o'v~' nor .lg \o'*\(ci' log + .rv \o'\(ci\(or' reversal .tr \o'\(ci\e' transpose + .rb reverse bar .cb \o',-' comma bar ( not used) + .sb \o'/-' slash bar .bb \o'\e-' blackslash bar + .gu \o'\(*D\(or' grade up .gd \o'\(gr\(or' grade down + .qq \o'\(sq\(fm' quote quad .dm \o'\(sq:' domino + .lm \o'\(ca\(de' lamp .ib \o'\(rc\(lc\(lf\(rf' I-beam + .ex execute (not used) .fr format(not used) + .di diamond (not used) .ot out (not used) + .ld \o'\(*D~' locked del (not used) ._a A alias for \'A\' + ._b B alias for \'B\' ._c C alias for \'C\' + ._d D alias for \'D\' ._e E alias for \'E\' + ._f F alias for \'F\' ._g G alias for \'G\' + ._h H alias for \'H\' ._i I alias for \'I\' + ._j J alias for \'J\' ._k K alias for \'K\' + ._l L alias for \'L\' ._m M alias for \'M\' + ._n N alias for \'N\' ._o O alias for \'O\' + ._p P alias for \'P\' ._q Q alias for \'Q\' + ._r R alias for \'R\' ._s S alias for \'S\' + ._t T alias for \'T\' ._u U alias for \'U\' + ._v V alias for \'V\' ._w W alias for \'W\' + ._x X alias for \'X\' ._y Y alias for \'Y\' + ._z Z alias for \'Z\' +.fi diff --git a/static/unix-v10/man1/apnews.1 b/static/unix-v10/man1/apnews.1 new file mode 100644 index 00000000..42735c20 --- /dev/null +++ b/static/unix-v10/man1/apnews.1 @@ -0,0 +1,39 @@ +.TH APNEWS 1 +.SH NAME +apnews \- present recent AP wire stories +.SH SYNOPSIS +.B apnews +.SH DESCRIPTION +.I Apnews +is designed to skim the current news on the AP wire. +On a video terminal, it presents a top half screen of twenty +story slugs (two-word labels); typing the number of one of +these slugs displays the first ten lines of the story +on the bottom half screen. +Successive ten line pages of the story are obtained +by hitting carriage return. +Successive twenty slug top half pages are obtained +by hitting \fBm\fR +(if you aren't reading a story, carriage return will do). +You can return to the current top half page with +\fB\&.\fR, or to the first top half page with \fBt\fR. +.PP +If you type +\fBs\fI keywords\fR +a search through today's stories is done for stories +with those words; a menu of such stories is presented. +You can use the story now being displayed as a source +of keywords by typing \fBy\fR. +.PP +To get a copy of a story you are reading in your own +file space, type +\fBc\fI xyz\fR which will +copy the story to file or directory \fIxyz\fR +(appending if \fIxyz\fR is a file and not empty). +The command '?' prints some help. +.SH FILES +/data/ap +.SH "SEE ALSO" +ap.keys(5) +.SH BUGS +These are left as an exercise for the reader. Please report to mel. diff --git a/static/unix-v10/man1/apply.1 b/static/unix-v10/man1/apply.1 new file mode 100644 index 00000000..7b52bc40 --- /dev/null +++ b/static/unix-v10/man1/apply.1 @@ -0,0 +1,102 @@ +.TH APPLY 1 +.CT 1 shell +.SH NAME +apply, pick \- repeatedly apply a command; select arguments +.SH SYNOPSIS +.B apply +[ +.BI -a c +] +[ +.BI - n +] +.I command arg ... +.PP +.B pick +[ +.I arg ... +] +.SH DESCRIPTION +.I Apply +runs the named +.I command +on each +argument +.I arg +in turn. +Normally arguments are chosen singly; the optional number +.I n +specifies the number of arguments to be passed to +.I command. +If +.I n +is zero, +.I command +is run without arguments once for each +.I arg. +Character sequences of the form +.BI % d +in +.I command, +where +.I d +is a digit from 1 to 9, +are replaced by the +.IR d th +following unused +.I arg. +If any such sequences occur, +.I n +is ignored, +and the number of arguments passed to +.I command +is the maximum value of +.I d +in +.I command. +The character +.L % +may be changed by the +.B -a +option. +.PP +.I Pick +writes each argument to the standard error and reads a reply. +If the reply is +.LR y , +the argument is echoed to the standard output; +if the reply is +.LR q , +.I pick +exits without reading any more arguments; +there is no output for any other response. +If there are no arguments, +lines of the standard input are taken instead. +.SH EXAMPLES +.TP +.L +apply echo * +Time-consuming way to do +.LR ls . +.TP +.L +apply -2 cmp a1 b1 a2 b2 +Compare the `a' files to the `b' files. +.TP +.L +wc -l `pick *.[ch]` +Interactively select `.c' and `.h' files and count the lines in each. +.TP +.L +apply "wc -l %1" `pick *.[ch]` +Same, but use a separate process to count each file. +.SH "SEE ALSO" +.IR sh (1) +.SH BUGS +There is no way to pass a literal +.L %2 +if +.L % +is +.I apply's +argument expansion character. diff --git a/static/unix-v10/man1/apsend.1 b/static/unix-v10/man1/apsend.1 new file mode 100644 index 00000000..42640eec --- /dev/null +++ b/static/unix-v10/man1/apsend.1 @@ -0,0 +1,60 @@ +.TH APSEND 1 +.CT 1 writing_output comm_dev +.SH NAME +apsend \- send troff output to phototypesetter +.SH SYNOPSIS +.B apsend +[ +.I options +] +[ +.I file ... +] +.SH DESCRIPTION +.I Apsend +sends +.IR troff (1) +output from the named files or from the standard input +to the Murray Hill computer center for high-quality typesetting. +.PP +The options, which need only be spelled far enough to be unique, are +.TF comment=xx +.TP +.BI account= xx +comp center account number (default from password file) +.PD +.TP +.BI bin= xx +comp center bin number (default from password file) +.TP +.BI mailto= xx +mailing instructions, up to 28 characters, instead of comp center bin +.TP +.BI comment= xx +up to 30 characters, for +.F APSLOG +file entry (default value is +.I file +or +.LR pipe.end ) +.TP +.BI device=imagen +Print on laser printer instead of phototypesetter. +.SH FILES +.TF /usr/lib/apsend/* +.TP +.F /usr/lib/apsend/* +.TP +.F APSLOG +record of apsend activity +.SH SEE ALSO +.IR troff (1), +.IR lp (1), +.IR font (5) +.SH BUGS +Do not be misled by the historical name of this program. +The correct +.I troff +device selection is +.BR -Tpost , +which is fortunately the default. diff --git a/static/unix-v10/man1/ar.1 b/static/unix-v10/man1/ar.1 new file mode 100644 index 00000000..9e882a21 --- /dev/null +++ b/static/unix-v10/man1/ar.1 @@ -0,0 +1,83 @@ +.pa 1 +.he 'AR (I)'3/15/72'AR (I)' +.ti 0 +NAME ar -- archive +.sp +.ti 0 +SYNOPSIS ar__ key afile name918 ... +.sp +.ti 0 +DESCRIPTION ar__ +maintains groups of files +combined into a single archive file. +Its main use +is to create and update library files as used by the loader. +It can be used, though, for any similar purpose. +.sp +key___ is one character from the set drtux_____, +optionally concatenated with v_. +afile_____ is the archive file. +The names_____ are constituent files in the archive file. +The meanings of the key___ characters are: +.sp +d_ means delete the named files from the archive file. +.sp +r_ means replace the named files in the archive file. +If the archive file does not exist, r_ will create it. +If the named files are not in the archive file, they are appended. +.sp +t_ prints a table of contents of the archive file. +If no names are given, all files in the archive are tabled. +If names are given, only those files are tabled. +.sp +u_ is similar to r_ except that only those +files that have been modified are replaced. +If no names are given, all files in the archive that +have been modified will be replaced by the modified version. +.sp +x_ will extract the named files. +If no names are given, all files in the archive are +extracted. +In neither case does x_ alter the archive file. +.sp +v_ means verbose. +Under the verbose option, +ar__ gives a file-by-file +description of the making of a +new archive file from the old archive and the constituent files. +The following abbreviations +are used: +.sp + c_ copy + a_ append + d_ delete + r_ replace + x_ extract +.sp +.ti 0 +FILES /tmp/vtm? temporary +.sp +.ti 0 +SEE ALSO ld(I), archive(V) +.sp +.ti 0 +DIAGNOSTICS "Bad usage", +"afile -- not in archive format", +"cannot open temp file", +"name -- cannot open", +"name -- phase error", +"name -- cannot create", +"no archive file", +"cannot create archive file", +"name -- not found". +.sp +.ti 0 +BUGS Option +vt__ should be implemented as a table with more information. +.sp +There should be a way to specify the placement +of a new file in an archive. +Currently, it is placed at the end. + +"ar x" changes the modified-date of the current +directory to a random number. diff --git a/static/unix-v10/man1/array.1 b/static/unix-v10/man1/array.1 new file mode 100644 index 00000000..4d3817c9 --- /dev/null +++ b/static/unix-v10/man1/array.1 @@ -0,0 +1,4 @@ + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 + 0 1 2 3 1000 1001 1002 1003 2000 2001 2002 2003 diff --git a/static/unix-v10/man1/as.1 b/static/unix-v10/man1/as.1 new file mode 100644 index 00000000..0755075c --- /dev/null +++ b/static/unix-v10/man1/as.1 @@ -0,0 +1,89 @@ +.pa 1 +.he 'AS (I)'1/15/73'AS (I)' +.ti 0 +NAME as -- assembler +.sp +.ti 0 +SYNOPSIS as__ [ -_ ] name918 ... +.sp +.ti 0 +DESCRIPTION as__ +assembles the concatenation of name\d1\u, .... +If the optional first argument +-_ is used, +all undefined symbols in the assembly +are treated as global. + +The output of the assembly is left on the file "a.out". +It is executable if no errors occurred +during the assembly. + +.ti 0 +FILES /etc/as2 pass 2 of the assembler +.br +/tmp/atm1? temporary +.br +/tmp/atm2? temporary +.br +/tmp/atm3? temporary +.br +a.out object +.sp +.ti 0 +SEE ALSO ld(I), +nm(I), +un(I), +db(I), +a.out(V), +"UNIX Assembler Manual". +.sp +.ti 0 +DIAGNOSTICS When +an input file cannot be read, its name +followed by a question mark is typed and assembly +ceases. +When syntactic or semantic errors occur, a single-character diagnostic is typed out +together with the line number and the file name in which it +occurred. Errors in pass 1 cause cancellation of pass 2. +The possible errors are: +.sp +.in +6 +.ti -6 +) parentheses error +.ti -6 +] parentheses error +.ti -6 +< String not terminated properly +.ti -6 +* Indirection ("*_") used illegally +.ti -6 +.li +. Illegal assignment to "." +.ti -6 +A error in A_ddress +.ti -6 +B B_ranch instruction is odd or too remote +.ti -6 +E error in E_xpression +.ti -6 +F error in local ("F_" or "b") type symbol +.ti -6 +G G_arbage (unknown) character +.ti -6 +I End of file inside an If__ +.ti -6 +M M_ultiply defined symbol as label +.ti -6 +O O_dd-- word quantity assembled at odd address +.ti -6 +P P_hase error-- "." different in pass 1 and 2 +.ti -6 +R R_elocation error +.ti -6 +U U_ndefined symbol +.ti -6 +X syntaX_ error +.in -6 +.sp +.ti 0 +BUGS Symbol table overflow is not checked. diff --git a/static/unix-v10/man1/as80.1 b/static/unix-v10/man1/as80.1 new file mode 100644 index 00000000..4babfcfb --- /dev/null +++ b/static/unix-v10/man1/as80.1 @@ -0,0 +1,80 @@ +.h 1 1 2/3/78 +.th as80 +.sh NAME +as80 \*- assembler for the 8080 and Z80 microprocessors +.sh SYNOPSIS +.bd as80 +[ +.bd \*-lhzi +] name ... +.sh DESCRIPTION +.it as80 +assembles the concatenation of the named files. +The output of the assembly is left on the file +.bd "80.out". +It is executable if no errors occurred +during the assembly, +and if there were no unresolved external references. +.s1 +The -l option causes as80 to produce a listing +on the standard output. +.s1 +The -h option causes as80 to produce the output listing +in hex. Octal is default. +.s1 +Register names: a,b,c,d,e,h,l,af,bc,de,hl,ix,iy,sp +.br +Condition codes: nz,z,nc,c,po,pe,p,m +.br +Psuedo operations: .globl,.text.textorg,.data,.dataorg +.br + .bss,.bssorg,.byte,.word,.list, +.br +.s1 +.s3 +.sh FILES +as80 the assembler +.br +"80.out" +.br +OPCODES the external instruction set +.sh DIAGNOSTICS +When +an input file cannot be read, its name and +a "can't open" diagnostic is produced and assembly +ceases. +Whenever sytactic or semantic errors are +encountered, +a single-character diagnostic is produced. +The possible diagnostics are: +.s3 +.ta 3 +\. moving dot backwards +.br +[ byte constant error +.br +( Parentheses error +.br +" String not terminated properly +.br +E Illegal expression +.br +R Illegal register usage +.br +G Garbage (unknown) character +.br +M Multiply defined symbol +.br +P `\fB.\fR' different in pass 1 and 2 +.br +T A 16 bit expression has been truncated to an 8 bit value +.br +U Undefined symbol +.br +X Syntax error +.br +.sh BUGS +.s1 +If .list 1 is ever encountered, +a listing will start to come out +whether or not -l was selected. diff --git a/static/unix-v10/man1/asa.1 b/static/unix-v10/man1/asa.1 new file mode 100644 index 00000000..4a813e73 --- /dev/null +++ b/static/unix-v10/man1/asa.1 @@ -0,0 +1,34 @@ +.TH ASA 1 +.SH NAME +asa \- interpret ASA control characters +.SH SYNOPSIS +.B asa +[ +.I file +] +... +.SH DESCRIPTION +.I Asa +takes files which were written with ASA carriage control characters, +usually by FORTRAN programs, converts them to a form suitable for printing +on a terminal, line printer, and so on, and writes the results on the +standard output. +.PP +The control characters handled are: +.PP + \' \' single space +.br + \'0\' double space +.br + \'-\' triple space +.br + \'+\' overprint the previous line +.br + \'1\' start a new page +.PP +If no file names are given, the standard input is used. +.PP +Each input +file given starts a new page. +A skip to a new page on the first line of the +first input file is ignored. diff --git a/static/unix-v10/man1/ascii.1 b/static/unix-v10/man1/ascii.1 new file mode 100644 index 00000000..3495a297 --- /dev/null +++ b/static/unix-v10/man1/ascii.1 @@ -0,0 +1,82 @@ +.TH ASCII 1 +.CT 1 inst_info +.SH NAME +ascii \- interpret ASCII characters +.SH SYNOPSIS +.B ascii +[ +.BI -oxdb n +] +[ +.B -nct +] +[ +.B -e +] +[ +.I text +] +.SH DESCRIPTION +.I Ascii +prints the +.SM ASCII +values corresponding to characters and +.I vice +.IR versa . +The values are interpreted in a settable numeric base; +.B -o +specifies octal (the default), +.B -d +decimal, +.B -x +hexadecimal, and +.BI -b n +base +.I n. +.PP +With no arguments, +.I ascii +reproduces +.F /usr/pub/ascii +in the specified base. +Characters of +.I text +are converted to their +.SM ASCII +values, one per line. +If, however, the first +.I text +argument +is a valid number in the specified base, conversion +goes the opposite way. +Control characters are printed as they appear in +.FR /usr/pub/ascii . +Other options are: +.TP +.B -n +Force numeric output. +.TP +.B -c +Force character output. +.TP +.B -t +Convert from numbers to running text; do not interpret +control characters or insert newlines. +.TP +.B -e +Interpret remaining arguments as +.I text. +.SH EXAMPLES +.TP +.L "ascii -d" +Print the +.SM ASCII +table base 10. +.TP +.L "ascii p" +Print the octal value of `p'. +.TP +.L "ascii 160" +Show which character is octal 160. +.SH "SEE ALSO +.IR ascii (6) diff --git a/static/unix-v10/man1/at.1 b/static/unix-v10/man1/at.1 new file mode 100644 index 00000000..69613be6 --- /dev/null +++ b/static/unix-v10/man1/at.1 @@ -0,0 +1,111 @@ +.TH AT 1 +.CT 1 time_man +.SH NAME +at \(mi execute commands at a later time +.SH SYNOPSIS +.B at +[ +.B -r +] +.I time +[ +.I day +] +[ +.I file +] +.PP +.B at -l +.SH DESCRIPTION +.I At +squirrels away a copy of the named +.I file +(standard input default) +to be used as input to +.IR sh (1) +at a specified later time. +A +.I cd +command to the current directory is inserted +at the beginning, +followed by assignments to all environment variables. +When the script is run, it uses the userid and groupid +of the creator of the copy. +.PP +The +.I time +is 1 to 4 digits, with an optional following +.LR A , +.LR P , +.L N +or +.L M +for +AM, PM, noon or midnight. +One and two digit numbers are taken to be hours, three and four digits +to be hours and minutes. +If no letters follow the digits, a 24 hour clock time is understood. +.PP +The optional +.I day +is either a month name followed by a day number, +or a day of the week; if the word +.L week +follows, invocation is moved seven days further off. +Names of months and days may be recognizably truncated. +A year number, spelled out in full, may follow the month. +.PP +The options are +.TP +.B -r +Remove the specified activity. +.TP +.B -l +List all activities scheduled for this user. +.PP +.I At +programs are executed by periodic execution +of +.F /usr/lib/atrun +from +.IR cron (8). +The granularity of +.I at +depends upon how often +.I atrun +is executed. +.PP +The standard output and standard error files are lost unless redirected. +.SH EXAMPLES +.EX +at 0800 dec 24 +echo ho ho ho | mail claus +.EE +.TP +.L +at -r `at -l` +Remove a scheduled activity. +.SH FILES +.TF /usr/spool/at/yy.ddd.hhmm +.TP +.F /usr/lib/atrun +.TP +.BI /usr/spool/at/ yy . ddd . hhmm\fP.* +activity for year, day, hour +.TP +.F /usr/spool/at/lasttimedone +last +.I hhmm +.TP +.F /usr/spool/at/past +activities in progress +.SH "SEE ALSO" +.IR calendar (1), +.IR pwd (1), +.IR sleep (1), +.IR cron (8) +.SH BUGS +Due to the granularity of the execution of +.I atrun, +there may be bugs in scheduling things almost +exactly 24 hours into the future. diff --git a/static/unix-v10/man1/awk.1 b/static/unix-v10/man1/awk.1 new file mode 100644 index 00000000..7ac74960 --- /dev/null +++ b/static/unix-v10/man1/awk.1 @@ -0,0 +1,452 @@ +.TH AWK 1 +.CT 1 files prog_other +.SH NAME +awk \- pattern-directed scanning and processing language +.SH SYNOPSIS +.B awk +[ +.BI -F fs +] +[ +.I prog +] +[ +.I file ... +] +.SH DESCRIPTION +.I Awk +scans each input +.I file +for lines that match any of a set of patterns specified literally in +.IR prog +or in a file +specified as +.B -f +.IR file . +With each pattern +there can be an associated action that will be performed +when a line of a +.I file +matches the pattern. +Each line is matched against the +pattern portion of every pattern-action statement; +the associated action is performed for each matched pattern. +The file name +.L - +means the standard input. +Any +.IR file +of the form +.I var=value +is treated as an assignment, not a filename. +.PP +An input line is made up of fields separated by white space, +or by regular expression +.BR FS . +The fields are denoted +.BR $1 , +.BR $2 , +\&...; +.B $0 +refers to the entire line. +.PP +A pattern-action statement has the form +.IP +.IB pattern " { " action " } +.PP +A missing +.BI { " action " } +means print the line; +a missing pattern always matches. +Pattern-action statements are separated by newlines or semicolons. +.PP +An action is a sequence of statements. +A statement can be one of the following: +.PP +.EX +.ta \w'\f5delete array[expression]'u +if(\fI expression \fP)\fI statement \fP\fR[ \fPelse\fI statement \fP\fR]\fP +while(\fI expression \fP)\fI statement\fP +for(\fI expression \fP;\fI expression \fP;\fI expression \fP)\fI statement\fP +for(\fI var \fPin\fI array \fP)\fI statement\fP +do\fI statement \fPwhile(\fI expression \fP) +break +continue +{\fR [\fP\fI statement ... \fP\fR] \fP} +\fIexpression\fP #\fR commonly\fP\fI var = expression\fP +print\fR [ \fP\fIexpression-list \fP\fR] \fP\fR[ \fP>\fI expression \fP\fR]\fP +printf\fI format \fP\fR[ \fP,\fI expression-list \fP\fR] \fP\fR[ \fP>\fI expression \fP\fR]\fP +return\fR [ \fP\fIexpression \fP\fR]\fP +next #\fR skip remaining patterns on this input line\fP +delete\fI array\fP[\fI expression \fP] #\fR delete an array element\fP +exit\fR [ \fP\fIexpression \fP\fR]\fP #\fR exit immediately; status is \fP\fIexpression\fP +.EE +.DT +.PP +Statements are terminated by +semicolons, newlines or right braces. +An empty +.I expression-list +stands for +.BR $0 . +String constants are quoted \f5"\ "\fR, +with the usual C escapes recognized within. +Expressions take on string or numeric values as appropriate, +and are built using the operators +.B + - * / % ^ +(exponentiation), and concatenation (indicated by a blank). +The operators +.B +! ++ -- += -= *= /= %= ^= **= > >= < <= == != ?: +are also available in expressions. +Variables may be scalars, array elements +(denoted +.IB x [ i ] ) +or fields. +Variables are initialized to the null string. +Array subscripts may be any string, +not necessarily numeric; +this allows for a form of associative memory. +Multiple subscripts such as +.B [i,j,k] +are permitted; the constituents are concatenated, +separated by the value of +.BR SUBSEP . +.PP +The +.B print +statement prints its arguments on the standard output +(or on a file if +.BI > file +or +.BI >> file +is present or on a pipe if +.BI | cmd +is present), separated by the current output field separator, +and terminated by the output record separator. +.I file +and +.I cmd +may be literal names or parenthesized expressions; +identical string values in different statements denote +the same open file. +The +.B printf +statement formats its expression list according to the format +(see +.IR printf (3)). +The built-in function +.BI close( expr ) +closes the file or pipe +.IR expr . +.PP +The customary functions +.BR exp , +.BR log , +.BR sqrt , +.BR sin , +.BR cos , +.BR atan2 +are built in. +Other built-in functions: +.TF length +.TP +.B length +the length of its argument +taken as a string, +or of +.B $0 +if no argument. +.TP +.B rand +random number on (0,1) +.TP +.B srand +sets seed for +.B rand +.TP +.B int +truncates to an integer value +.TP +.BI substr( s , " m" , " n\fB) +the +.IR n -character +substring of +.I s +that begins at position +.IR m +counted from 1. +.TP +.BI index( s , " t" ) +the position in +.I s +where the string +.I t +occurs, or 0 if it does not. +.TP +.BI match( s , " r" ) +the position in +.I s +where the regular expression +.I r +occurs, or 0 if it does not. +The variables +.B RSTART +and +.B RLENGTH +are set to the position and length of the matched string. +.TP +.BI split( s , " a" , " fs\fB) +splits the string +.I s +into array elements +.IB a [1] , +.IB a [2] , +\&..., +.IB a [ n ] , +and returns +.IR n . +The separation is done with the regular expression +.I fs +or with the field separator +.B FS +if +.I fs +is not given. +.TP +.BI sub( r , " t" , " s\fB) +substitutes +.I t +for the first occurrence of the regular expression +.I r +in the string +.IR s . +If +.I s +is not given, +.B $0 +is used. +.TP +.B gsub +same as +.B sub +except that all occurrences of the regular expression +are replaced; +.B sub +and +.B gsub +return the number of replacements. +.TP +.BI sprintf( fmt , " expr" , " ...\fB ) +the string resulting from formatting +.I expr ... +according to the +.IR printf (3) +format +.I fmt +.TP +.BI system( cmd ) +executes +.I cmd +and returns its exit status +.PD +.PP +The ``function'' +.B getline +sets +.B $0 to +the next input record from the current input file; +.B getline +.BI < file +sets +.B $0 +to the next record from +.IR file . +.B getline +.I x +sets variable +.I x +instead. +Finally, +.IB cmd " | getline +pipes the output of +.I cmd +into +.BR getline ; +each call of +.B getline +returns the next line of output from +.IR cmd . +In all cases, +.B getline +returns 1 for a successful input, +0 for end of file, and \-1 for an error. +.PP +Patterns are arbitrary Boolean combinations +(with +.BR "! || &&" ) +of regular expressions and +relational expressions. +Regular expressions are as in +.IR egrep ; +see +.IR grep (1). +Isolated regular expressions +in a pattern apply to the entire line. +Regular expressions may also occur in +relational expressions, using the operators +.BR ~ +and +.BR !~ . +.BI / re / +is a constant regular expression; +any string (constant or variable) may be used +as a regular expression, except in the position of an isolated regular expression +in a pattern. +.PP +A pattern may consist of two patterns separated by a comma; +in this case, the action is performed for all lines +from an occurrence of the first pattern +though an occurrence of the second. +.PP +A relational expression is one of the following: +.IP +.I expression matchop regular-expression +.br +.I expression relop expression +.br +.I expression in array-name +.br +.I (expr,expr,...) in array-name +.PP +where a relop is any of the six relational operators in C, +and a matchop is either +.B ~ +(matches) +or +.B !~ +(does not match). +A conditional is an arithmetic expression, +a relational expression, +or a Boolean combination +of these. +.PP +The special patterns +.B BEGIN +and +.B END +may be used to capture control before the first input line is read +and after the last. +.B BEGIN +and +.B END +do not combine with other patterns. +.PP +Variable names with special meanings: +.TF SUBSEP +.TP +.B FS +regular expression used to separate fields; also settable +by option +.BI -F fs. +.TP +.BR NF +number of fields in the current record +.TP +.B NR +ordinal number of the current record +.TP +.B FNR +ordinal number of the current record in the current file +.TP +.B FILENAME +the name of the current input file +.TP +.B RS +input record separator (default newline) +.TP +.B OFS +output field separator (default blank) +.TP +.B ORS +output record separator (default newline) +.TP +.B OFMT +output format for numbers (default +.BR "%.6g" ) +.TP +.B SUBSEP +separates multiple subscripts (default 034) +.TP +.B ARGC +argument count, assignable +.TP +.B ARGV +argument array, assignable; +non-null members are taken as filenames +.PD +.PP +Functions may be defined (at the position of a pattern-action statement) thus: +.IP +.L +function foo(a, b, c) { ...; return x } +.PP +Parameters are passed by value if scalar and by reference if array name; +functions may be called recursively. +Parameters are local to the function; all other variables are global. +.SH EXAMPLES +.TP +.L +length > 72 +Print lines longer than 72 characters. +.TP +.L +{ print $2, $1 } +Print first two fields in opposite order. +.PP +.EX +BEGIN { FS = ",[ \et]*|[ \et]+" } + { print $2, $1 } +.EE +.ns +.IP +Same, with input fields separated by comma and/or blanks and tabs. +.PP +.EX + { s += $1 } +END { print "sum is", s, " average is", s/NR } +.EE +.ns +.IP +Add up first column, print sum and average. +.TP +.L +/start/, /stop/ +Print all lines between start/stop pairs. +.PP +.EX +BEGIN { # Simulate echo(1) + for (i = 1; i < ARGC; i++) printf "%s ", ARGV[i] + printf "\en" + exit } +.EE +.SH SEE ALSO +.IR lex (1), +.IR sed (1) +.br +A. V. Aho, B. W. Kernighan, P. J. Weinberger, +.I +Awk \- a Pattern Scanning and Processing Language (Programmer'sManual), +CSTR 118, 1985 +.SH BUGS +There are no explicit conversions between numbers and strings. +To force an expression to be treated as a number add 0 to it; +to force it to be treated as a string concatenate +\f5""\fP to it. +.br +The scope rules for variables in functions are a botch. +.br +.L -S +and +.L -R +are flaky. diff --git a/static/unix-v10/man1/backup.1 b/static/unix-v10/man1/backup.1 new file mode 100644 index 00000000..7a1c35e5 --- /dev/null +++ b/static/unix-v10/man1/backup.1 @@ -0,0 +1,351 @@ +.TH BACKUP 1 +.CT 1 sa_mortals +.SH NAME +backup \- backup and recover files +.SH SYNOPSIS +.B "backup recover" +[ +.I option ... +] +.I file ... +.PP +.B "backup grep" +[ +.I option ... +] +.I pattern ... +.PP +.B "backup fetch" +[ +.I option ... +] +[ +.I file ... +] +.PP +.B "backup stats" +[ +.I option ... +] +.PP +.B "backup backup" +[ +.I file ... +] +.PP +.B "backup munge" +.PP +.B "backup mount" +[ +.I option ... +] +.I mountpt +.SH DESCRIPTION +The +.I backup +programs save and restore archival copies of files in an optical disk +store on a central system (see +.IR backup (5)). +Backup occurs automatically daily (see +.IR backup (8)) +and upon specific request via +.IR "backup backup" . +.I "Backup grep" +shows backup copy names for specific files, and +.I "backup fetch" +restores data from specific backup copies. +.I "Backup recover" +is a combination of these two; +it fetches the most recent copy. +All the +.I backup +programs describe their options when presented +with a bad option such as +.BR -? . +.PP +.I "Backup recover" +retrieves +.I files +by name. +The names should be full pathnames rooted at +.BR /n/ ; +if not, +.I backup +tries to guess names that begin with +.BR /n/ . +Directories should be recovered before their contents. +Regular files that are linked together will stay linked if they +are recovered together. +The options for +.I recover +are: +.TP +.BI -o " dir" +The argument is restored as an entry in the directory +.IR dir . +.PD 0 +.TP +.B -v +Verbose (enforced). +.TP +.B -F +Restore directories as files containing a null-terminated list of element names. +.TP +.B -r +Recursively recover any subdirectories. +.TP +.B -d +Create any missing intermediate directories. +.TP +.BI -D old = new +Replace the prefix +.I old +of the original filename with +.I new +to form the new output filename. +.TP +.B -m +The names are backup copy names, as determined from +.I backup grep, +not original filenames. +.TP +.BI -fdevice +Use +.I device +rather than +.B /dev/worm0 +for the WORM. +.I Device +may be on another machine: +.IB machine ! device\fR. +An initial +.B w +implies a WORM device; a +.B j +implies a jukebox. +A numeric +.I device +means +.BI /dev/worm device\fR. +.TP +.B -e +Cause the +.I worm fetch +server on the backup system to terminate gracefully. +.TP +.B -i +Append +.BI . n +to the output name for each file where +.I n +is an increasing integer. +This is useful for recovering multiple copies of the same file. +.PD +.PP +A diagnostic like +.B "need disk backup2a" +means you need to mount the +A side of the cartridge labeled +.BR backup2 . +.PP +.I "Backup grep" +searches for names of backed up files that match the strings +.IR patterns . +If the pattern is a literal (no +.BR -e ) +that looks like a filename, +it reports the filename catenated with +.B // +and the time +of the most recent backup copy. +If the pattern is a literal that looks like the output under option +.BR -d , +it reports the name of the corresponding backup copy. +The options are: +.TP +.B -d +Print file change times +.RB ( ctime , +see +.IR stat (2)) +as integers rather than as dates. +.PD 0 +.TP +.B -e +Interpret +.I patterns +as regular expressions +given in the notation of +.IR regexp (3). +Warning: +this option can execute extremely slowly; +it is almost always better to use +.IR gre (1) +on +.F /usr/backup/filenames +on the backup machine; see +.IR backup (5). +.TP +.B -a +Print all names in the database. +.TP +.B -V +Treat +.I pattern +as a literal filename +and list all versions of the file. +.TP +.BI -< n +Only list entries with a date less than or equal to +.IR n . +If +.I n +is not a simple integer date, it is interpreted as by +.IR timec (3). +.TP +.BI -> n +Only list entries with a date greater than or equal to +.IR n . +.TP +.B -D +Print the most recent entry for every file name starting with +.I pattern, +taking into account any cutoff date, but turning off option +.BR -e . +.PD +.PP +.I Backup fetch +takes from its arguments or from standard input +backup copy names as reported by +.I backup grep +(such as +.BR v2345/987 ) +and restores the corresponding files. +It accepts the same options as +.I backup recover +except +.BR -m ; +.B -v +is really optional. +Irrelevant prefixes are stripped from backup copy names. +Thus the output of the +.I "backup grep" +command can be used directly. +.PP +.I "Backup stats" +provides statistics about the files backed up. +By default, it looks for all systems and all users and gives a grand total. +The options are +.nr xx \w'\f5-u \fIusers ' +.TP \n(xxu +.B -i +Give information per system or user +rather than a total. +.TP +.BI -s " systems +.br +.ns +.TP +.BI -u " users +With option +.BR -i , +restrict the total to the systems or users named in +comma-separated lists. +The name +.L * +expands to all systems or all users. +.TP +.B -d +Print average number of files and bytes for the last 1 day, +7 days and 30 days. +.PP +.I "Backup backup" +backs up files. +If no file names are given, +they are taken from standard input. +File names are interpreted as in +.IR "backup recover" . +The files are safely on the backup system when the command exits but +will normally take a day to get into the backup database. +.PP +.I "Backup munge" +causes the backup system to process any received files. +When this terminates (assuming no errors), the files have been +put onto backup media and have been absorbed into the database. +.PP +.I "Backup mount" +is an experimental way to access backed up files. +The specified part of the backup files +(set by +.BI -D root +or +.B / +by default) is mounted at +.IR mountpt . +There is one option +.TP \n(xxu +.BI -d " date +Make the mounted hierarchy reflect the state at +the given date. +The mounting can be reversed with +.IR umount ; +see +.IR mount (8). +.SH EXAMPLES +.TP +.L +backup stats -i -s '*' +Get totals for all systems. +.TP +.L +backup fetch `backup grep -d \e`backup grep -d /n/bowell/etc/passwd\e`` +What +.I backup recover +does for you. +.TP +.L +backup recover /n/coma/usr/rob/fortunes +.br +.ns +.TP +.L +cd /n/coma/usr/rob; backup recover fortunes +Two ways to get the latest available copy of +.BR /n/coma/usr/rob/fortunes . +.TP +.L +backup grep -V /n/coma/usr/rob/fortunes +List all available copies of +.B /n/coma/usr/rob/fortunes +with their dates. +.TP +.L +backup recover -m -o /tmp /n/wild/usr/backup/v/v919/678 +.br +.ns +.TP +.L +backup recover -m -o /tmp v919/678 +Two ways to recover a specific backup copy and place the result in +.BR /tmp . +.B /n/wild/usr/backup/v/v919/678 +is the name of the backup copy; the file will be restored to +its home machine, not to +.BR wild . +.TP +.L +backup grep -V /n/coma/usr/rob/fortunes | backup fetch -i -o . +Recover all the versions of the fortunes file into +.BR fortunes.1 , +.BR fortunes.2 , +\&... in the current directory. +.PD +.SH FILES +.F /usr/lib/backup +\h'.5i'home of all datafiles and executables (on client machines) +.SH "SEE ALSO" +.IR worm (8), +.IR backup (5), +.IR backup (8) +.SH BUGS +Recovery via symbolic links may not work; use the non-linked pathname. diff --git a/static/unix-v10/man1/badge.1 b/static/unix-v10/man1/badge.1 new file mode 100644 index 00000000..76457c60 --- /dev/null +++ b/static/unix-v10/man1/badge.1 @@ -0,0 +1,41 @@ +.TH BADGE A +.CT 1 shell +.SH NAME +badge \- print Bell Labs badge +.SH SYNOPSIS +.B badge +.I string1 +.I string2 +.I [ picture.ps ] +.SH DESCRIPTION +.I Badge +is an ASCII-to-PostScript converter that frames +its arguments in a pleasant, colorful badge, +suitable for laminating. +File +.I picture.ps +is assumed to contain 24-bit color encapsulated PostScript. +If it is omitted or doesn't exist, a blank box will appear; +.B goofy +and +.B donald +(see FILES) are available for the camera-shy. +.SH EXAMPLES +.TP +.L +badge "DONALD F" DUCK /usr/games/ps/donald | lp -dpeacock +.TP +.L +badge "P J" "WEINBERGER" /usr/games/ps/goofy | lp -dpeacock +.EX +.SH BUGS +Very long names (over 1.75 inches in 14 point type) are not accounted for. +.P +Unlike a similar badge provided by security, the +logo adheres to corporate standards. +.SH FILES +/usr/games/ps/donald +.br +/usr/games/ps/goofy +.br +/usr/games/ps/logo A corporate logo. diff --git a/static/unix-v10/man1/bas.1 b/static/unix-v10/man1/bas.1 new file mode 100644 index 00000000..2bdaa5b1 --- /dev/null +++ b/static/unix-v10/man1/bas.1 @@ -0,0 +1,312 @@ +.pa 1 +.he 'BAS (I)'1/15/73'BAS (I)' +.ti 0 +NAME bas -- basic +.sp +.ti 0 +SYNOPSIS bas___ [ file ] +.sp +.ti 0 +DESCRIPTION bas___ +is a dialect of basic [1]. +If a file argument is provided, +the file is used for input before the console +is read. +.sp +bas___ accepts lines of the form: +.sp + statement + integer statement +.sp +Integer numbered statements +(known as internal statements) +are stored for later execution. +They are stored in sorted ascending order. +Non-numbered statements are immediately executed. +The result of an immediate expression statement +(that does not have '=' as its highest operator) is printed. +.sp +Statements have the following syntax: +.sp +.in +6 +.ti -3 +expression +.br +The expression is executed for its side +effects (assignment or function call) +or for printing as described above. +.sp +.ti -3 +done____ +.br +Return to system level. +.sp +.ti -3 +draw____ expression expression expression +.br +A line is drawn on the Tektronix 611 display (/dev/vt0) from +the current display position +to the XY co-ordinates specified by the +first two expressions. +(The scale is zero to one in both X and Y directions) +If the third expression +is zero, the line is invisible. +The current display position is set to the end point. +.sp +.ti -3 +display_______ list +.br +The list of expressions and strings is +concatenated and displayed (i.e. printed) on the 611 starting +at the current display position. +The current display position is not changed. +.sp +.ti -3 +erase_____ +.br +The 611 screen is erased. +.sp +.ti -3 +for___ name =_= expression expression statement +.ti -3 +for___ name =_ expression expression +.br +.li +... +.ti -3 +next____ +.br +The for___ statement +repetitively executes a +statement (first form) +or a group of statements (second form) +under control of a named variable. +The variable takes on the value of +the first expression, +then is incremented by one on each loop, +not to exceed the value of +the second expression. +.sp +.ti -3 +goto____ expression +.br +The expression is evaluated, truncated to an integer +and execution goes to the corresponding integer numbered statment. +If executed from immediate mode, +the internal statements are compiled first. +.sp +.ti -3 +if__ expression statement +.br +The statement is executed if the expression evaluates +to non-zero. +.sp +.ti -3 +list____ [expression [expression]] +.br +list____ is used to print out the stored internal statements. +If no arguments are given, all internal statements are printed. +If one argument is given, only that +internal statement is listed. +If two arguments are given, all internal statements +inclusively between the arguments are printed. +.sp +.ti -3 +print_____ list +.br +The list of expressions and strings are concatenated and +printed. +(A string is delimited by " characters.) +.sp +.ti -3 +return______ [expression] +.br +The expression is evaluated and the result is passed +back as the value of a function call. +If no expression is given, zero is returned. +.sp +.ti -3 +run___ +.br +The internal statements are compiled. +The symbol table is re-initialized. +The random number generator is re-set. +Control is passed to the lowest numbered internal +statement. +.sp +.ti -6 +Expressions have the following syntax: +.sp +.ti -3 +name +.br +A name is used to specify a variable. +Names are composed of a letter ('a' - 'z') +followed by letters and digits. +The first four characters of a name are significant. +.sp +.ti -3 +number +.br +A number is used to represent a constant value. +A number is composed of digits, at most one decimal point ('.') +and possibly a scale factor of the form +e_ digits or e-__ digits. +.sp +.ti -3 +(_ expression )_ +.br +Parentheses are used to alter normal order of evaluation. +.sp +.ti -3 +expression operator expression +.br +Common functions of two arguments are abbreviated +by the two arguments separated by an operator denoting the function. +A complete list of operators is given below. +.sp +.ti -3 +expression (_ [expression [,_ expression ...]] )_ +.br +Functions of an arbitrary number of arguments +can be called by an expression followed by the arguments +in parentheses separated by commas. +The expression evaluates to the +line number of the entry of the function in the +internally stored statements. +This causes the internal statements to be compiled. +If the expression evaluates negative, +a builtin function is called. +The list of builtin functions appears below. +.sp +.ti -3 +name [_ expression [,_ expression ...] ]_ +.br +Each expression is truncated to an integer +and used as a specifier for the name. +The result is syntactically identical to a name. +a[1,2] is the same as a[1][2]. +The truncated expressions are restricted to +values between 0 and 32767. +.sp +.ti -6 +The following is the list of operators: +.sp +.ti -3 += +.br += is the assignment operator. +The left operand must be a name or an array element. +The result is the right operand. +Assignment binds right to left, +all other operators bind left to right. +.sp +.ti -3 +& | +.br +&_ (logical and) +has result zero if either of its arguments are zero. +It has result one if both its arguments are non-zero. +|_ (logical or) +has result zero if both of its arguments are zero. +It has result one if either of its arguments are non-zero. +.sp +.ti -3 +< <= > >= == <> +.br +The relational operators +(< less than, <= less than or equal, +> greater than, +>= greater than or equal, +== equal to, +<> not equal to) +return one if their arguments are in the specified +relation. +They return zero otherwise. +Relational operators at the same level extend as follows: +a>b>c is the same as a>b&b>c. +.sp +.ti -3 ++ - +.br +Add and subtract. +.sp +.ti -3 +* / +.br +Multiply and divide. +.sp +.ti -3 +^ +.br +Exponentiation. +.sp +.ti -6 +The following is a list of builtin functions: +.sp +.ti -3 +arg +.br +Arg(i) is the value of the i_th +actual parameter on the current level +of function call. +.sp +.ti -3 +exp +.br +Exp(x) is the exponential function of x. +.sp +.ti -3 +log +.br +Log(x) is the logarithm base e of x. +.sp +.ti -3 +sin +.br +Sin(x) is the sine of x (radians). +.sp +.ti -3 +cos +.br +Cos(x) is the cosine of x (radians). +.sp +.ti -3 +atn +.br +Atn(x) is the arctangent of x. +.sp +.ti -3 +rnd +.br +Rnd() is a uniformly distributed random +number between zero and one. +.sp +.ti -3 +expr +.br +Expr() is the only form of program input. +A line is read from the input and +evaluated as an expression. +The resultant value is returned. +.sp +.ti -3 +int +.br +Int(x) returns x truncated to an integer. +.in -6 +.sp +.ti 0 +FILES /tmp/btm? temporary +.sp +.ti 0 +SEE ALSO [1] DEC-11-AJPB-D +.sp +.ti 0 +DIAGNOSTICS Syntax +errors cause the incorrect line to be typed +with an underscore where the parse failed. +All other diagnostics are self explanatory. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/basename.1 b/static/unix-v10/man1/basename.1 new file mode 100644 index 00000000..2d984abd --- /dev/null +++ b/static/unix-v10/man1/basename.1 @@ -0,0 +1,58 @@ +.TH BASENAME 1 +.CT 1 shell +.SH NAME +basename, dirname \- strip filename affixes +.SH SYNOPSIS +.B basename +.I string +[ +.I suffix +] +.PP +.B dirname +.I string +.SH DESCRIPTION +These functions split off useful parts of a pathname; +they are typically used inside substitution marks +.BR `\ ` +in shell scripts. +.PP +.I Basename +deletes any prefix ending in +.L / +and the +.I suffix, +if present in +.I string, +from +.I string, +and prints the result on the standard output. +.PP +.I Dirname +places on standard output the name of the directory in which +a file named +.I string +would nominally be found. +The calculation is syntactic and independent of +the contents of the file system. +.SH EXAMPLES +.TP +.L +cc $1 -o `basename $1 .c` +Compile into +.LR file , +where +.L $1 +is +.L file.c +or +.LR dir/file.c . +.TP +.L +cc $1 -o `dirname $1`/`basename $1 .c` +Compile +.LR dir/file.c +into +.LR dir/file . +.SH "SEE ALSO" +.IR sh (1) diff --git a/static/unix-v10/man1/basic.1 b/static/unix-v10/man1/basic.1 new file mode 100644 index 00000000..137985e7 --- /dev/null +++ b/static/unix-v10/man1/basic.1 @@ -0,0 +1,14 @@ +.TH BASIC 1 grigg +.SH NAME +basic, bas, bite \- basic language interpreters +.SH SYNOPSIS +.B /usr/bin/lcl/basic +.PP +.B /usr/bin/lcl/bas +.PP +.B /usr/bin/lcl/bite +.SH DESCRIPTION +Of these three completely different Basic interpreters, +.I basic +is the biggest, and unfortunately the best. +Caveat emptor. diff --git a/static/unix-v10/man1/bc.1 b/static/unix-v10/man1/bc.1 new file mode 100644 index 00000000..8f0528aa --- /dev/null +++ b/static/unix-v10/man1/bc.1 @@ -0,0 +1,274 @@ +.TH BC 1 +.CT 1 numbers +.SH NAME +bc \- arbitrary-precision arithmetic language +.SH SYNOPSIS +.B bc +[ +.B -c +] +[ +.B -l +] +[ +.I file ... +] +.SH DESCRIPTION +.I Bc +is an interactive processor for a language that resembles +C but provides arithmetic on numbers of arbitrary length with up +to 100 digits right of the decimal point. +It takes input from any files given, then reads +the standard input. +The +.B -l +argument stands for the name +of an arbitrary precision math library. +The following syntax for +.I bc +programs is like that of C; +.I L +means letter +.BR a - z , +.I E +means expression, +.I S +means statement. +.TF length(E) +.TP +Lexical +.RS +.HP +comments are enclosed in +.B /* */ +.HP +newlines end statements +.RE +.TP +Names +.IP +simple variables: +.I L +.br +array elements: +.IB L [ E ] +.br +The words +.BR ibase , +.BR obase , +and +.B scale +.TP +Other operands +arbitrarily long numbers with optional sign and decimal point. +.RS +.TP +.BI ( E ) +.TP +.BI sqrt( E ) +.TP +.BI length( E ) +number of significant decimal digits +.TP +.BI scale( E ) +number of digits right of decimal point +.TP +.IB L ( E , ... ,\fIE\fP) +.RE +.TP +Operators +.RS +.HP +.B "+ - * / % ^\ " +.RB ( % +is remainder; +.B ^ +is power) +.HP +.B "++ --\ " +(prefix and postfix; apply to names) +.TP +.B "== <= >= != < >" +.TP +.B "= += -= *= /= %= ^=" +.RE +.TP +Statements +.RS +.br +.I E +.br +.B { +.I S +.B ; +\&... +.B ; +.I S +.B } +.br +.B "if (" +.I E +.B ) +.I S +.br +.B "while (" +.I E +.B ) +.I S +.br +.B "for (" +.I E +.B ; +.I E +.BI ; E ) +.I S +.br +null statement +.br +.B break +.br +.B quit +.br +\f5"\fRtext\f5"\fR +.RE +.TP +Function definitions +.RS +.br +.B define +.I L +.B ( +.I L +.B , +\&... +.B , +L +.BR ) { +.PD0 +.br +.B auto +.I L +.B , +\&... +.B , +.I L +.br +.I S +.B ; +\&... +.B ; +.I S +.br +.B "return (" +.I E +.B ) +.LP +.B } +.RE +.TP +Functions in +.B -l +math library +.RS +.TP +.BI s( x ) +sine +.TP +.BI c( x ) +cosine +.TP +.BI e( x ) +exponential +.TP +.BI l( x ) +log +.TP +.BI a( x ) +arctangent +.TP +.BI j( n,x ) +Bessel function +.RE +.PP +.DT +All function arguments are passed by value. +.PD +.PP +The value of a statement that is an expression is printed +unless the main operator is an assignment. +Text in quotes, which may include newlines, is also printed. +Either semicolons or newlines may separate statements. +Assignment to +.B scale +influences the number of digits to be retained on arithmetic +operations in the manner of +.IR dc (1). +Assignments to +.B ibase +or +.B obase +set the input and output number radix respectively. +.PP +The same letter may be used as an array, a function, +and a simple variable simultaneously. +All variables are global to the program. +Automatic variables are pushed down during function calls. +In a declaration of an array as a function argument +or automatic variable +empty square brackets must follow the array name. +.PP +.I Bc +is actually a preprocessor for +.IR dc (1), +which it invokes automatically, unless the +.B -c +(compile only) +option is present. +In this case the +.I dc +input is sent to the standard output instead. +.SH EXAMPLES +Define a function to compute an approximate value of +the exponential. +Use it to print 10 values. +(The exponential function in the library gives better answers.) +.PP +.EX +scale = 20 +define e(x){ + auto a, b, c, i, s + a = 1 + b = 1 + s = 1 + for(i=1; 1==1; i++){ + a = a*x + b = b*i + c = a/b + if(c == 0) return(s) + s = s+c + } +} +for(i=1; i<=10; i++) e(i) +.EE +.SH FILES +.F /usr/lib/lib.b +mathematical library +.SH "SEE ALSO" +.IR dc (1), +.IR hoc (1) +.SH BUGS +No +.LR && , +.LR || , +or +.L ! +operators. +.br +A +.L for +statement must have all three +.LR E s. +.br +A +.L quit +is interpreted when read, not when executed. diff --git a/static/unix-v10/man1/bcp.1 b/static/unix-v10/man1/bcp.1 new file mode 100644 index 00000000..ab7cf541 --- /dev/null +++ b/static/unix-v10/man1/bcp.1 @@ -0,0 +1,288 @@ +.TH BCP 1 +.CT 1 graphics +.SH NAME +bcp \(mi reformat black-and-white picture files +.SH SYNOPSIS +.B bcp +[ +.I option ... +] +[ +.I file1 +[ +.I file2 +] +] +.SH DESCRIPTION +.I Bcp +copies black-and-white (B&W) image +.I file1 +to +.I file2, +optionally changing the file format and transforming the image. +If +.I file1 +is a directory name, +then every leaf of its file tree is processed in turn; and, in this case, +if +.I file2 +also is specified, it is made the root directory +of an isomorphic tree of output files. +If +.I file2 +is not specified, all output is catenated to stdout. +.PP +.I Bcp +can copy among all the B&W +.IR picfile (5) +formats, and some others. +The default output format is +.BR TYPE=ccitt-g4 . +Image transformations include trimming, translation, scaling, and rotation, +performed in that order (not in argument order). +.PP +Input files in +.IR picfile (5) +format must begin with an ASCII +.BI TYPE= type +header line. +.I Types +supported both as input and output are: +.nr xx \w'\fLccitt-g4\ ' +.TP \n(xxu +.B dump +One byte/pixel. +.B NCHAN=1 +is required. +On input, the grey pixel values are thresholded +to B&W; +see option +.BR -T . +On output, black becomes 0 and white 255. +.TP +.B bitmap +One bit/pixel. +Essentially Sun rasterfile format, with a +.IR picfile (5) +header replacing the Sun binary header. +.TP +.B ccitt-g4 +CCITT Group 4 FAX encoding, strongly compressive on printed text. +Also, +.B ccitt-g31 +(Group 3, 1-dim) +and +.B ccitt-g32 +(Group 3, 2-dim; see +.BR -k ). +.LP +Other supported +.I types +are: +.TP \n(xxu +.B binary +One bit/pixel encoding; obsolescent, but needed for old image archives. +Both input and output. +.TP +.B rle +Fast run-length encoding; obsolescent, but needed for old image archives. +Input or output, but not both. +.TP +.B pico +Same as +.BR dump . +Input only. +.TP +.B cdf +`Compound document format', used in AT&T FAX Connection product. +Input only. +Only the first of multiple pages is read. +.LP +Other formats not using a +.BI TYPE= type +header, are: +.IR bitfile (9.5) +format; +PostScript bitmap format (output only); and +Sun rasterfile format (with the Sun binary header; output only). +.PP +The options are: +.TP \n(xxu +.B -B[io] +Read/write +.IR bitfile (9.5) +format (no +.BI TYPE= type +header). +.TP +.B -M +Write +.B TYPE=bitmap +format. +.TP +.B -P +Write Postscript bitmap format (Suns only). +.TP +.BI -R x , y +Force output resolutions to +.I x,y +(pixels/inch). +If +.BI , y +is missing, it is taken to be the same as +.I x. +Overrides +.BI -x x , y . +Requires a +.BI RES= "x y +line in the header (but, see +.BR -Z ). +.TP +.B -R= +Force the output resolution to be equal to the greater of +the input resolutions. +.TP +.B -S +Write Sun rasterfile format (no +.BI TYPE= type +header; on Suns only). +.TP +.BI -T t +Threshold. +When reading +.BR TYPE=dump , +assign black to grey levels less than +.I t, +and white to others. +Default: +.BR -T128 . +.TP +.BI -Z x , y +Force input +.BI RES= "x y. +.TP +.B -b +Write +.B TYPE=binary +format. +.TP +.B -g4 +.br +.ns +.TP +.B -4 +Write +.B TYPE=ccitt-g4 +format. +Similarly, +.B -g31 +or +.B -31 +and +.B -g32 +or +.BR -32 . +.TP +.BI -k n +Set the `k' for +.B ccitt-g32 +encoding on output (default +.BR -k4 ). +.TP +.BI -o x , y +Offset (translate) the image by +.I x,y +pixels. +The width and height of the picture are not changed. +.TP +.B -p +Write +.B TYPE=dump NCHAN=1 +format. +Map black to 0, white to 255. +.TP +.B -r +Write +.B TYPE=rle +format. +.TP +.B -tl +Rotate the image to bring the left edge of the page to the top. +Set top-left corner of the rotated +image at the top-left corner of the image. +.TP +.BI -t d +Rotate the image +.I d +degrees counterclockwise about its center. +.I d +is a real number. +.TP +.BI -w l,t,r,b +Specify window (trim the image): +.I l,t +is the left-top corner and +.I r,b +the right-bottom corner measured in pixels. +If the new margins are outside the original picture, +the new area is set to white. +An argument given as +.L % +leaves the edge unchanged. +.TP +.BI -x x , y +Expand/contract (scale) the image, by real factors +.I x +and +.I y. +If +.BI , y +is missing, +.I y +is taken to be the same as +.I x. +May be overridden by +.BI -R x , y. +Requires a +.BI RES= "x y +line in the header (but, see +.BR -Z ). +.SH SEE ALSO +.IR cscan (1), +.IR imscan (1), +.IR ocr (1), +.IR pico (1), +.IR picfile (5) +.br +CCITT facsimile coding standards Rec. T.4(1988) and T.6(1988). +.SH BUGS +Concatenated pages are supported, but only if each new page has a complete +header. +.br +Scaling is accomplished by naive replication/deletion of pixels. +.br +Rotation by small angles exhibits aliasing effects, and is slow. +.br +Rotations +.B -tr +and +.B -tb +are unfinished. +.br +CCITT FAX `uncompressed' (or, `transparent') mode is not implemented. +.br +Postscript output is useful only for small images. +.br +.BI WINDOW= "l t r b +where +.I l +or +.I t +is non-zero +may not be handled correctly for every combination of file types. +.br +.B TYPE=rle +can't be both input and output. +.br +Should be merged with T. Duff's +.I pcp. diff --git a/static/unix-v10/man1/bdiff.1 b/static/unix-v10/man1/bdiff.1 new file mode 100644 index 00000000..0f63ee30 --- /dev/null +++ b/static/unix-v10/man1/bdiff.1 @@ -0,0 +1,68 @@ +.TH BDIFF 1 +.SH NAME +bdiff \- big diff +.SH SYNOPSIS +.B bdiff +file1 file2 [n] +.RB [ \-s ] +.SH DESCRIPTION +.I Bdiff\^ +is used in a manner analogous to +.IR diff (1) +to find which lines must be changed in two files to bring them +into agreement. +Its purpose is to allow processing of files which are too large +for +.IR diff . +.I Bdiff\^ +ignores lines common to the beginning of both files, +splits the remainder of each file into +.IR n -line +segments, and invokes +.I diff\^ +upon corresponding segments. +The value of +.I n\^ +is 3500 by default. +If the optional third argument is given, and it is +numeric, it is used as the value for +.IR n . +This is useful in those cases in which 3500-line segments are +too large for +.IR diff , +causing it to fail. +If +.I file1\^ +.RI ( file2 ) +is \fB\-\fR, +the standard input is read. +The optional +.B \-s +(silent) argument specifies that +no diagnostics are to be printed by +.I bdiff\^ +(note, however, that this does not suppress possible exclamations by +.IR diff . +If both optional arguments are specified, they must appear in the +order indicated above. +.PP +The output of +.I bdiff\^ +is exactly that of +.IR diff , +with line numbers adjusted to account for the segmenting of the files +(that is, to make it look as if the files had been processed +whole). +Note that +because of the segmenting of the files, +.I bdiff\^ +does not necessarily find a +smallest sufficient set of file differences. +.SH FILES +/tmp/bd????? +.SH "SEE ALSO" +diff(1). +.SH DIAGNOSTICS +Use +.IR help (1) +for explanations. diff --git a/static/unix-v10/man1/bigcore.1 b/static/unix-v10/man1/bigcore.1 new file mode 100644 index 00000000..18159971 --- /dev/null +++ b/static/unix-v10/man1/bigcore.1 @@ -0,0 +1,38 @@ +.TH BIGCORE 1 +.CT 1 debug_tune +.SH NAME +bigcore, coreid \- permit big core images, identify source of image +.SH SYNOPSIS +.B bigcore +.I command +.PP +.B coreid +[ +.I file +] +.SH DESCRIPTION +.I Bigcore +calls the named +.I command +with no restriction on the size of core images. +By default, +no core image will be written when a program aborts +if it would be larger than a megabyte. +.PP +.I Coreid +reads the file +.FR core , +or the specified core image +.I file, +and prints on the standard output the argument list +of the program that produced the core image. +.SH FILES +.F core +.SH SEE ALSO +.IR core (5) +.SH BUGS +.I Coreid +only works for core images from C and Fortran programs. +.br +The arguments shown are those at the time of the dump, +not at invocation of the program. diff --git a/static/unix-v10/man1/bison.1 b/static/unix-v10/man1/bison.1 new file mode 100644 index 00000000..ebd6d11c --- /dev/null +++ b/static/unix-v10/man1/bison.1 @@ -0,0 +1,62 @@ +.TH BISON 1 local +.SH NAME +bison \- GNU Project parser generator (yacc replacement) +.SH SYNOPSIS +.B bison +[ +.B \-dvy +] file +.SH DESCRIPTION +.I Bison +is a parser generator in the style of +.IR yacc (1). +It should be upwardly compatible with input files designed +for +.IR yacc . +.PP +Input files should follow the +.I yacc +convention of ending in ``.y''. +Unlike +.IR yacc , +the generated files do not have fixed names, but instead use the prefix +of the input file. +For instance, a grammar description file named +.B parse.y +would produce the generated parser in a file named +.BR parse.tab.c , +instead of +.IR yacc 's +.BR y.tab.c . +.PP +.I Bison +takes three optional flags. +.TP +.B \-d +Produce a +.B .tab.h +file, similar to +.IR yacc 's +.B y.tab.h +file. +.TP +.B \-v +Be verbose. Analogous to the same flag for +.IR yacc . +.TP +.B \-y +Use fixed output file names. I.e., force the output to be in files +.BR y.tab.c , +.BR y.tab.h , +and so on. This is for full +.I yacc +compatibility. +.SH FILES +/usr/local/lib/bison.simple simple parser +.br +/usr/local/lib/bison.hairy complicated parser +.SH SEE ALSO +.IR yacc (1) +.SH DIAGNOSTICS +``Self explanatory.'' +... ha! diff --git a/static/unix-v10/man1/bite.1 b/static/unix-v10/man1/bite.1 new file mode 100644 index 00000000..41638a81 --- /dev/null +++ b/static/unix-v10/man1/bite.1 @@ -0,0 +1,712 @@ +.TH BITE 1 local +.SH NAME +bite \- Basic Interpreter for Testing & Engineering +.SH SYNOPSIS +.B bite +[ - ] [prog1 prog2 prog3 .....] +.SH DESCRIPTION +.I Bite +is a BASIC language interpreter. +Its virtues are in that it is written in the Bell System 'C' +compiler language which lends itself to +.I portability +and +.I readability. +One of the most important aspects is that the interpreter is +.I interfaced +with the +.I system shell via the '!' command. +Shell commands can be executed inmmediately or actually typed into +the BASIC program itself! +"bite" may also be invoked by a shell script and when given an argument +(a program name) will automatically cause the BASIC program to be +executed. In that case the BASIC program should be terminated with +a "bye" statement. +The inclusion of the '-' option, along with a BASIC program name will +cause "bite" to start and then "load" the BASIC program +.I without +running it. +.PP +.I Bite +is designed so that BASIC language programs +of the original Dartmouth syntax will be loadable +with little or no incompatibility and extra features that do not +follow common standards will be +.I additions +to, rather than +.I exceptions +to the syntax rules of BASIC. + +The commands and functions in this interpreter +are implemented by entries into +tables and the procedure for implementing new +commands will be documented as another virtue of the +configuration of this interpreter. +.PP +.I Bite +was implemented +with +.I instrument control +and +.I data collection +in mind +for the purpose of controlling an +.I Automated Test System (ATS). +These functions will be available as an extended instruction set. +Another version of "bite" is being configured for this purpose +which will reside (initially) on an PDP-11/03 (subsequently on +a PDP-11/23). +.PP +A standard string capability is implemented on the BASIC interpreter +BITE. +.TP 4 +.I Conventions +.TP 8 +.I THIS DOCUMENT +All things enclosed in [] are optional. +.TP 8 +.I EDITING +Editing is accomplished as it is in any BASIC language intepreter +in that line-numbers are entered by typing a line-number followed +by the statement and removed or deleted by merely typing the line-number. +Listing is accomplished with the "list" command (explained under "COMMANDS"). +In addition to the above, it is possible to list single lines by typing +the return-key in which case the program is listed one line-at-a-time, +starting at the first. When the last one is reached, the sequence starts +at the first line again. +At any time it is also possible to type the '-' symbol to "backup" a line- +at-a-time. +Other editing facilities are "s", "delete", and "reseq" also explained +under "COMMANDS". +.TP 8 +.I EXPR +Any algebraic expression which could be a constant, variable, math +function or a combination of same, seperated by arithmetic operators +as in: a+b*3.14*(4.4+c2*sin(b+s))+a(2,2) +See "variables" and "math functions" below. +.TP 8 +.I OPERATORS ++,-,*,/ or ^ for addition, subtraction, multiplication, division or +exponentiation in order of lowest to highest precidence. + and - have +the same precidence and * and / have the same precidence. +.TP +.I RELATIONALS +<, >, =, <=, >=, <> for less than, greater than, equality, less or equal, +greater than or equal and not equal. +.TP 8 +.I SOURCE PATH +When reference is made to a "bite" source file (i.e. the "old" and "load" +command), at least two directories are searched, the first being the current +directory and then /usr/lib/bites which is a "pool" where shared programs +should be stored. The /usr/lib/bites directory is analogous to the +/usr/bin directory in UNIX. +The user may specify extra paths to be searched by defining them in +BITEPATH and then exporting BITEPATH like: +.br +BITEPATH=:$HOME/BASIC:/usr/local/lib/: +.br +which adds the two pathnames between the ':' delimiters to the +other paths. In this way, one may have private BITE programs +and execute them from any directory. +.TP 8 +.I SOURCE PROGRAM NAME +The source program name is twelve or less characters suffixed by a .b . +.TP 8 +.I STATEMENT +A basic statement consists of a line number (integer value between 1 and +32767) followed by a command, space and operand which follows the +syntax governed by the command as in: 100 print "hello world" +A statement can be typed without a line number in which case it will +execute immediately. This is true for all commands, but doesn't make +sense for all commands such as "for". Immediate execution is handy +for diagnostic purposes such as: print a, to find out what the value +of a. +.TP 8 +.I VARIABLES +All variable names are either a lower case alpha character (a-z) +or a lower-case alpha character followed by an integer (0-9). +Array have the same name convention as regular variables and take +the form varname(D1,D2,D3....D10) where D1-D10 are the dimension +attributes of the array and can take the form of any legal expression +(including another array) as in a(b(2,2),x). +.TP 8 +.I STRING VARIABLE +A string variable is any single lower case alpha character (a-z) +followed by a '$' or any single alpha character followed by a single digit +(1-9) then followed by a '$' like a$ or z9$. +.TP 8 +.I STRING ARRAY VARIABLE +A string array variable has the same naming convention as a regular string +variable and contains one or two "subscripts" enclosed in parenthesis +as in: +.br + x1$(x,y) + +Like other array variables in BASIC string arrays must be declared +in a dimension statement prior to their use: e.g. dim a$(20) or +d$(100,3). +.TP 8 +.I STRING EXPRESSION +A string expression is any combination of string variables and +literals added together by a '+' operator which indicates concatenation. +An example of an assignment statement for string variables is: + + b$="Joan"+a1$+c2$+"John"+x$(20) +.SH COMMANDS +.TP 8 +.I bye or q +Exit +the interpreter. +.TP 8 +.I com[mon] +Preserve +variables for subsequent "run". Issue of the run command +otherwise de-allocates all variables. +.TP 8 +.I con \fR[line#] +Continue normal execution from single step mode. See "sing" command. +.TP 8 +.I data \fR(expr),(expr),(expr),.......... +The data statement is a string of defined constants or expressions referred +to by the "read" statement. Unlike most BASIC interpreters, the data is +stored only in the form of text strings which allows the read statement to +evaluate expressions as well as constants. +.TP 8 +.I del[ete] \fRlownum [, highnum] +Delete line-number specified if only lownum given. Delete all lines +between lownum and highnum if both are specified. +See the "undo" command. +.TP 8 +.I dim \fRvariable(expr1,expr2,....,expr10) +Allocate space and define the dimensional characteristics of +subscripted variable. +.TP 8 +.I end +Define logical end of program. Cause termination or current "run". +.TP 8 +.I expunge +Force all variable space, including subscripted variables to be freed. +Or de-allocate used varriable space. +.TP 8 +.I f +Identify current file. Typing "f" causes the currently referenced +file (if any) to be displayed. +.TP 8 +.I for - next +Cause code enclosed by this combination to be executed under the +conditions specified in the +.I for +statement as in: for variable = expr1 to expr2 [step expr]. +.TP 8 +.I gosub \fRline# +Goto subroutine, resume from following statement after "return" encountered. +.TP 8 +.I goto \fRline# +Force execution to continue starting at the line# specified. +.TP 8 +.I if \fR(expr1) relational (expr2) \fIthen \fRline# +Redirect program flow to line# if expr1 is related to expr2 by the +specified relational. +String expressions are also compared by the "if" statement as in: +.br +if a$ < "jim" goto 100 +.br +The results of the comparison are based on alphabetical order +of the two objects being compared. +The "then" in the "if" statement can be optionally replaced with "goto" +"go to" or "gosub". The "if" statement can also take the form: +.br +.I if \fR(expr) relatioanl (expr) \fIthen \fRvar = (expr) +.TP 8 +.I if \fRmore _fd \fI then \fRline# +Direct program flow to line# if there are more lines to be read +from the file associated with fd where fd is the file designator +between 1 and 4 inclusive. This type if statement is used to detect +EOF (End Of File) condition. +.br +Example: 100 if more _2 then 200 +.br +Note that "gosub" can be used in place of "then" in which case +the subroutine would be one for reading another line. +.TP 8 +.I input \fR[_fildes]var1[,var2,var3,....] +Prompt for input and assign inputed value to variable. +If 's' is typed program is halted. +String variables may be specified in the "input" statement. The +variables can be mixed like: +.br +input a$,a,b$(2,2) +.br +which will interpret the first input as a string, require the second +input to be numerical and interpret the third as a string input. +.TP 8 +.I [let] \fRvariable = expr +Assign the value of expr to variable. +The let is optional. +The let or assignment statement also allows the assignment of +string expressions to string variables like: +.br +b$="Joan"+a1$+c2$+"John"+x$(20) +.TP 8 +.I l[ist] \fR[lownum [, highnum]] +List the text in working storage. If lownum is given then only that number +is listed, if lownum and highnum are specified, then a listing is +displayed between the given statement numbers. +.TP 8 +.I load \fR[prog-name] +Same as the "old" command, except working storage is not cleared. +.TP 8 +.I ls \foptions +List directory. Same as UNIX "ls" command. +.TP 8 +.I mov \fRstartnum,endnum,newnum [,increm] +The mov command causes the lines beginning with +.I startnum +and ending with +.I endnum +to be moved (ie. resequenced) to the line beginning with +.I newnum +and incremented by +.I increm \fR. +The default value for +.I increm +is 10. +All references to the moved lines are updated. The user is responsible to +see that line numbers associated with moved lines do not conflict with +existing lines which will cause loss of program text. +.I mov +is similar to +.I reseq +(see below) except that only the specified lines are resequenced. +.TP 8 +.I n +List the next 23 lines. Useful for paging through a listing on a CRT. +.TP 8 +.I new +Clear program working storage for new program to be typed. +.TP 8 +.I old \fR[prog-name] +Clear user space and load program. If old is typed with no argument +it will prompt the user for a program name if not defined or load +the last defined program name. +.TP 8 +.I on \fR(expr) \fIgoto \fRline#,line#,....... +Is a selective goto with multiple line number targets. The target +branched to depends on the value of expr which is truncated. +Control is passed to the first line# specified after goto if the +value of the expression is 1. Control passes to the second line# +if the value is 2, the third if 3 and so on. +.TP 8 +.I on \fR(expr) \fIgosub \fRline#,line#,....... +Same action as on-goto, except action taken is that of "gosub". +.TP 8 +.I pause +Causes execution to be suspended until a "newline" or "return" is typed. +This is useful for programs which need to be continuously in "run", but +need to allow a time for user action i.e. unit insertion. +.TP 8 +.I pr[int] \fR[_fildes](expr's,quoted strings or tab operators) +The print statment is a limited format display statement in which +expressions are evaluated and displayed along with quoted literals. +The tab(expr) operator causes the print head to move to the absolute +column position computed by expr provided the current head position +is less. The specifiers must be seperated by onee or more commas +or semicolons. +String expressions are also expanded by the print statement. +.TP 8 +.I printf \fR[_fildes]"format string"[,expr1,expr2,.....,expr10] +This is an interpretive implementation of the UNIX 'C' library +routine, printf. It is, however restricted to only the floating +point format control specifiers 'f' and 'g'. Use of any of the +other specifiers such as 'o', 'd' or 's' will give erroneous results. +Print controls such as \\b (backspace), \\n (newline), \\r (return) +or \\t can also be used. The printf format was chosen in lieu +of the usual "print using" command because it was felt that +printf is not only a 'C' language standard but easier to use +than "print using". +.br +Usage Example: +.br +100 printf "Variable a=%2.2f\\tVariable b=%g.\\n",a,b +.TP 8 +.I randomize +Causes "rnd" statement to start at an "unpredictable" value. +.TP 8 +.I read \fRvar1,var2,var3,.............. +The "read" statement causes data to be assigned to each variable in the +list from the constants or expressions contained in "data" statements. The +reading starts where-ever the data pointer is currently at. The data pointer +points to the last data field accessed, if a read was done, the first +data field in the first data statment if the "restore" statment is issued +or the program is re-run. +The "read" statement will also assign values to string variables or +expressions in the "data" statement. +.TP 8 +.I rem +The remark statement causes no operation in +.I bite +but may be followed by any string of characters for the purpose of commenting +a program. Unlike compiler languages, remarks do take up program buffer space, +however, they are of paramount importance in making a program readable by +human beings and are therefore strongly recommended. +.TP 8 +.I reseq \fR[startnum [, increm]] +The resequence command causes the statement numbers and all references +to them (such as if's goto's, gosub's, etc) to be resequenced starting +at +.I startnum +and incremented by +.I increm. +If startnum and/or increm are omitted, the default values are 10 and +10 respectively. +.TP 8 +.I restore +Restores the data pointer to the first field of the first "data" statment. +.TP 8 +.I return +Return from subroutine called by "gosub" statement. +.TP 8 +.I rm \ffilename(s) +Remove file(s). Same as UNIX "rm" command. +.TP 8 +.I run \fR[prog-name] +Run basic program specified. If no argument is given, "run" attempts to +execute whatever is currently in working storage. +.TP 8 +.I s \fRline#/old-string/new-string[/] +Substitute in line line# the new-string for the old-string. The last delimiter +is optional, unless new-string is null in which case it is desired that +old-string merely be removed. +See the "undo" command. +.TP 8 +.I sing \fR[line#] +Enter the single step mode starting at the line# specified or at +the first line of the program if no line# is specified. +In single step mode an instruction is executed and then the prompt '^' +is displayed. +At this time the user may enter +any command (i.e. print) or hit the "return" key to execute the next +instruction. +See the "con" instruction. +.TP 8 +.I size +Causes amount of storage used and remaining or free space in +decimal number of bytes. +.TP 8 +.I stop +Stop execution of program. +.TP 8 +.I save \fR[prog-name] +Save the contents of working storage in file-name specified by progname. +If no progname is given last referenced file-name is used. If no file +name was referenced, the user is prompted for a name. +.TP 8 +.I undo +Undo last "s" command or +.I single line deletion. +.TP 8 +.I ! (any shell command string) +Unix shell command invocation allows system commands to be +executed from the interpreter. +Not available in restricted version. +.SH FILE COMMANDS +The file commands: append, openi, and openo are followed by one or more +file-names seperated by commas, each file-name being no more that +14 characters long. Files are assigned to designators (integer values +between 1 and 8 inclusive) in the order that they are open. +All commands +such as "print" and "input" which refer to a file use the designator +number preceded by a '_' character to refer to that file +as in: 100 print _1"hello world" or 100 input _3a(x,y) . +.TP 8 +.I append \fRfile1[,file2,.....,file8] +If file exists open for output cause new data to be appended. If file +does not exist, the named file is created. +.TP 8 +.I openi \fRfile1[,file2,.....,file8] +Open file for input. File must exist. +.TP 8 +.I openo \fRfile1[,file2,.....,file8] +Create named file(s) and open for output. If named files exist, the old +data is destroyed. +.TP 8 +.I seek \fR_fildes, offset, mode +Seek to a line whose position in the file is offset. If mode = 0 the +offset is from the beginning, if mode = 1 then the offset is relative +to the current file pointer. +.br +Usage Example: 101 seek _1, 33, 0 +.br +would cause the file pointer to the 33rd line. +.TP 8 +.I rewind \fR_fildes +Rewind the file specified by fildes to the beginning (first line). +This is effectively the same as seek _fildes, 0, 0. +.TP 8 +.I close \fR_fildes +Close file associated with file designator. +.TP 8 +.I closeall +Close all files input and output. +.SH MATH FUNCTIONS +.TP 8 +.I abs\fR(expr) +Absolute value. +.TP 8 +.I atn\fR(expr) +Arc-tangent. +.TP 8 +.I cos\fR(expr) +Cosine. +.TP 8 +.I exp\fR(expr) +Natural exponential. +.TP 8 +.I fact\fR(expr) +Factorial. (Truncates fractions i.e. fact(3.22) interpreted as fact(3)) +.TP 8 +.I int\fR(expr) +Integerize or truncate fractional part of result of expr. +.TP 8 +.I log\fR(expr) +Natural log. +.TP 8 +.I rnd\fR(expr) +Return random number between 0 and evaluated expr. +.TP 8 +.I sin\fR(expr) +Sine. +.TP 8 +.I sqr\fR(expr) +Square root. +.SH STRING FUNCTIONS +.TP 8 +.I asc(string) +Returns ASCII value of first character in string. +.TP 8 +.I chr$(expr) +Return the character corresponding to the value of expr where expr +is a numerical expression. If the value of the expression exceeds +octal 177 the least significant 7 bits are used. +.TP 8 +.I ext$(string,pos,len) +The ext$ "extract" string function returns a substring of the +string expression string starting at position "pos" having length "len". +If attempt is made to extract a string beyond the end of "string" the result +will be truncated and an error message will be displayed. +.TP +.I len(string) +Return the length of the string expression "string". +.TP +.I left$(string,n) +Return the leftmost n characters of the string. If the string length is +less than n, then the string itself is returned. +.TP +.I loc$(string) +Converts all upper case alphabetic characters in the string to lower case. +.br +EX: a$=loc$("ABCdef123#$^&*") +.br +returns abcdef123#$^&* to a$ +.TP +.I mid$(string,pos,len) +Does exactly same as ext$. Included because it is part of another +popular dialect of BASIC. +.TP +.I right$(string,n) +Return rightmost n characters of string. If string length is less than +n the string itself is returned. +.TP +.I str$(expr) +Returns value of expr (numerical expression) as an ASCII string. +.TP +.I string$(n,string) +Returns n occurrences of the first character in string. +.TP +.I upc$(string) +Converts all lower case alphabetic characters in the string to upper case. +.TP +.I val(string) +Return numerical value represented by ASCII number. +.br +Ex: a=val("100.2") +.br +assigns the value 100.2 to variable a. This function is good for +converting ASCII tabulations of numbers. ext$ or mid$ can be used +to select the column. +.SH ATS INSTRUMENT COMMANDS +.TP 8 +.I buspr \fR'busadr(text and expressions) +Buspr is merely an extension of the print statement which allows +the print string which would otherwise be displayed on the tty +to be sent via the IBV-11 bus to the bus address specified by "busadr". +The ' preceding busadr distinguishes the following character from anything +other than a single character to be interpreted as an address. +.br +Usage Example: 100 buspr '6"F2R";r +.TP 8 +.I cmd "string" +Send character string over IBV-11 command lines. +.TP 8 +.I delay num +Causes a delay of num 60ths of a second where num is an integer. +.br +Usage Example: 100 delay 120 (delay 2 minutes or 120/60ths sec) +.TP 8 +.I dvminit +Initialize Digital Voltmeter. +.TP 8 +.I dvms \fRfunction, range +Digital voltmeter set command, where: function is "ac", "dc" or "ohms" +and range is .1, 1, 10, 100, 1k, 10k or "aut". i.e. +.br +Usage Example: 100 dvms dc,1k +.TP 8 +.I hprintf \fR"format text"[,expr1,expr2,...,expr10] +Formatted print to strip printer. Syntax rules are the same as +. I printf. +Strip printer is 20 columns wide, anything past the 20th column is +truncated. +.TP 8 +.I lodset \fRlodnum,mode,value +Set load. Where lodnum an integer describing which load referred to, +mode is the manner in which the load is set and value is an expression +describing the current or resistance the load was set to depending on the +mode. Mode is a single character 'r', 'R', 'i' or 'I' where 'r' is resistance +mode (value in ohms) and 'i' is current mode (value in amperes). Small +letter causes a hunt for the value and capital causes set on first try. +.TP 8 +.I relay \fRfunction, relnum1[, relnum2, relnum3,... ] +Set multiprogrammer relays. Function is m (make), b (break) or c (clear). +Function is followed by all relay numbers to be acted upon which may +be expressions or variables. The clear function when not followed by +anything, simply means open all relays. When followed by relay numbers, +clear means all relays are open EXCEPT the ones specified. +.br +Usage Example: 100 relay m,10,20,21,a,b,rnd(10) +.TP 8 +.I ps \fRpsno, voltage, current limit, overvoltage +Set power supply parameters. Psno is an integer representing the +power supply number describing which power supply is to be used, +voltage, current limit and overvoltage are self explanatory. Each +one of the parameters may be a legal algebraic expression so that +they may be controlled by the program. +.br +Usage Example: 100 dvms 1,10,1,11 or 100 dvms n,v1,i1,v1+1 +.SH INSTRUMENT FUNCTIONS +.TP 8 +.I btn\fR(expr) +Button function returns non-zero if control button number (expr) is +depressed. +.TP 8 +.I dvmr() +Return digital voltmeter reading. +.TP 8 +.I error() +Return 1 if last instrument command caused instrument error, otherwise +return 0. + +.SH AUTHORS +Richard B. Drake & James P. Hawkins +.SH FILES +source.b +.br +/usr/lib/bites/ +.br +.SH "SEE ALSO" +sh(1),bstring(1) +BASIC Programming and Applications, C. Joseph Sass 1972 +.br +.br +BITE Users Guide, J.P.Hawkins, Bell Labs, TM-79-2425-4 +.SH DIAGNOSTICS +Diagnostic error messages are issued by the interpreter +which indicate syntax errors , system failure, illegal commands or expressions,etc. +The +.I LSI-11/03 +Version of +.I bite +does not issue explicit error messages, but displays an error number +in which the meanings are listed below. This is done to regain approx. +2Kb memory in an already tight LSI-11/03 memory. +.nf +.I Standard Error Messages + + NUMBER MESSAGE TEXT + -------------------- + 0 REFERS TO A NON EXISTING LINE NUMBER + 1 UNRECOGNIZABLE OPERATION + 2 CANNOT OPEN FILE + 3 ILLEGAL VARIABLE NAME + 4 BAD FILENAME + 5 WORKING STORAGE AREA EMPTY + 6 RUNS NESTED TOO DEEPLY + 7 UNASSIGNED VARIABLE + 8 EXPRESSION SYNTAX + 9 BAD KEYWORD IN STATEMENT + 10 IMPROPER OR NO RELATIONAL OPERATOR + 11 UNBALANCED QUOTES + 12 FILE EDITING NOT PERMITTED IN SINGLE STEP MODE + 13 MISSING OR ILLEGAL DELIMITER + 14 GOSUB WITH NO RETURN + 15 IS FATAL + 16 UNBALANCED PARENTHESIS + 17 UNKNOWN MATH FUNCTION + 18 NEXT WITH NO OR WRONG FOR IN PROGRESS + 19 CANNOT PROCESS IMAGINARY NUMBER + 20 WHAT ? + 21 BAD DIMENSION SYNTAX + 22 TOO MANY DIMENSIONS + 23 REDUNDANT DIM STATEMENT + 24 NOT ENOUGH WORKING STORAGE SPACE + 25 VARIABLE NOT DIMENSIONED + 26 WRONG NUM OF DIMS + 27 ONE OR MORE DIMS LARGER THAN ASSIGNED + 28 NEG. OR ZERO DIMENSION ILLEGAL + 29 DIVIDE BY ZERO + 30 BAD TAB SPEC. IN PRINT + 31 SYS CALL FAILED + 32 BAD FILE DECLARE SYNTAX + 33 OUT OF DATA + 34 FILE-NAME TOO LONG + 35 FILE DES. USED UP + 36 FILE NOT OPEN FOR OUTPUT + 37 FILE NOT OPEN FOR INPUT + 38 EXPRESSION YIELDS AN IMPOSSIBLE VALUE + 39 PRINTF: ARG COUNT MISMATCH + 40 PRINTF: MORE THAN 10 ARGS + 41 LINE TOO LONG FOR STRIP PRINTER + 42 MOV REQUIRES 3 LINE #'s SPACING IS OPTIONAL +.I String error messages + 49 STRING VARIABLE IN NUMERICAL EXPR. + 50 NON-STRING IN STRING ASSIGNMENT + 51 NUMERIC IN STRING EXPRESSION + 52 INVALID STRING OPERATOR + 53 CANNOT COMPARE STRING WITH NUM. TYPES + 54 UNKNOWN STRING FUNCTION + 55 OUT OF STRING RANGE + +.I Test Set and Instrument Error Messages + + 100 MISSING ' DELIMITER BEFORE BUS ADDR + 101 PS: VOLTAGE OUT OF RANGE + 102 PS: CURRENT OUT OF RANGE + 103 PS: OVERVOLTAGE OUT OF RANGE + 104 RELAY ERR + 105 RELAY: INVALID FUNC. + 106 RELAY: INVALID NUMBER + 107 DVM: INVALID MODE + 108 DVM: INVALID RANGE + 109 LODSET: IMPROPER NUMBER OF ARGUMENTS + 110 LODSET: IMPROPER MODE + 111 LODSET: UNABLE TO SET LOAD +.fi +.SH BUGS + There are more or less common features not yet available such as +.I string variables, multiple statment lines, matrix statements +and the +.I def +statement. +Array variables do not accept reference to 0th elements. +Bugs will be found as local users write and execute programs and report +their problems. diff --git a/static/unix-v10/man1/bitship.1 b/static/unix-v10/man1/bitship.1 new file mode 100644 index 00000000..8afd9dcd --- /dev/null +++ b/static/unix-v10/man1/bitship.1 @@ -0,0 +1,24 @@ +.TH BITSHIP 1 " " +.SH NAME +bitship \- convert file to or from visible representation +.SH SYNOPSIS +.B bitship +[ +.B \-a +| +\-b +] +.SH DESCRIPTION +.I Bitship \-a +pipes an arbitrary file into a visible ASCII-95 representation. +.I Bitship \-b +performs the inverse transformation. If you are sending a file to +someone for the first time, you should probably include a copy of +the source code. +.SH FILES +/usr/src/cmd/bitship.c +.SH DIAGNOSTICS +"Usage:..." in case of an error in the command line. +.SH BUGS +There is no error correction. Illegal characters in a "visible" file +produce garbage. diff --git a/static/unix-v10/man1/bmd08v.1 b/static/unix-v10/man1/bmd08v.1 new file mode 100644 index 00000000..41fe07a6 --- /dev/null +++ b/static/unix-v10/man1/bmd08v.1 @@ -0,0 +1,54 @@ +.TH BMD08V I +.UC +.SH NAME +bmd08v \- Analysis of Variance +.SH SYNOPSIS +.B bmd08v +.SH DESCRIPTION +.I Bmd08v +performs analysis of variance for any hierarchical +design with equal cell sizes. +This includes the nested, partially nested and partially crossed, +and fully crossed designs. +Separate analyses may be performed on several dependent +variables simultaneously. +.I Bmd08v +takes its input from the standard input and writes its results on +the standard output. +All bmd control cards must have the identifying field in +upper case (eg. PROBLM, INDEX, FINISH, etc.). +One important departure from previous +versions concerns the variable format card \- +it is no longer necessary! If you specify 0 for +the number of variable format cards, the data will +be assumed to be in "free format" \- items +separated by blanks or commas. +.SH EXAMPLES +In the first example, +.I data +contains the bmd control cards and the +input data. +Output is directed to the standard output. +.sp +bmd08v output +.SH FILES +/tmp/1????? temporary file +.br +/tmp/2????? temporary file +.SH "SEE ALSO" +BMD User's Guide, /usr/doc/bmd08v +.SH BUGS +Temporary files are not always scratched. diff --git a/static/unix-v10/man1/bprint.1 b/static/unix-v10/man1/bprint.1 new file mode 100644 index 00000000..aaefc641 --- /dev/null +++ b/static/unix-v10/man1/bprint.1 @@ -0,0 +1,87 @@ +.TH BPRINT 1 "local \- 9/24/91" +.SH NAME +bprint \- expression profiler +.SH SYNOPSIS +.B bprint +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I bprint +produces on the standard output a listing of the programs compiled by +.I lcc +with the +.B \-b +option. +Executing an +.B a.out +so compiled appends profiling data to +.BR prof.out . +The first token of each expression in the listing is preceded +by the number of times it was executed +enclosed in angle brackets as determined from the data in +.BR prof.out . +.I bprint +interprets the following options. +.TP +.B \-c +Compress the +.B prof.out +file, which otherwise grows with every execution of +.BR a.out . +.TP +.B \-b +Print an annotated listing as described above. +.TP +.B \-n +Include line numbers in the listing. +.TP +.B \-f +Print only the number of invocations of each function. +A second +.B \-f +summarizes call sites instead of callers. +.TP +.SM +.BI \-I \*Sdir +specifies additional directories in which to seek +files given in +.B prof.out +that do not begin with `/'. +.PP +If any file names are given, only the requested data for those files are printed +in the order presented. +If no options are given, +.B \-b +is assumed. +.SH FILES +.PP +.ta \w'/usr/lib/bbexit.oXX'u +prof.out profiling data +.br +/usr/lib/bbexit.o creates +.B prof.out +when +.B a.out +exits +.SH "SEE ALSO" +.IR lcc (1), +.IR prof (1) +.SH BUGS +Macros and comments can confuse +.I bprint +because it uses post-expansion source coordinates +to annotate pre-expansion source files. +If +.I bprint +sees that it's about to print a statement count +.I inside +a number or identifier, it moves the count to just +.I before +the token. +.PP +Can't cope with an ill-formed +.BR prof.out . diff --git a/static/unix-v10/man1/btoa.1 b/static/unix-v10/man1/btoa.1 new file mode 100644 index 00000000..fb20d204 --- /dev/null +++ b/static/unix-v10/man1/btoa.1 @@ -0,0 +1,82 @@ +.TH BTOA 1 local +.SH NAME +btoa, atob, tarmail, untarmail \- encode/decode binary to printable ASCII +.SH SYNOPSIS +.B btoa +.br +.B atob +.br +.B tarmail +who subject files ... +.br +.B untarmail +[ file ] +.SH DESCRIPTION +.I Btoa +is a filter that reads anything from the standard input, and encodes it into +printable ASCII on the standard output. It also attaches a header and checksum +information used by the reverse filter +.I atob +to find the start of the data and to check integrity. +.PP +.I Atob +reads an encoded file, strips off any leading and +trailing lines added by mailers, and recreates a copy of the original file +on the standard output. +.I Atob +gives NO output (and exits with an error message) if its input is garbage or +the checksums do not check. +.PP +.I Tarmail +is a shell script that tar's up all the given files, pipes them +through +.IR compress "," +.IR btoa "," +and mails them to the given person with the given subject phrase. For +example: +.PP +.in 1i +tarmail ralph "here it is ralph" foo.c a.out +.in -1i +.PP +Will package up files "foo.c" and "a.out" and mail them to "ralph" using +subject "here it is ralph". Notice the quotes on the subject. They are +necessary to make it one argument to the shell. +.PP +.I Tarmail +with no args will print a short message reminding you what the required args +are. When the mail is received at the other end, that person should use +mail to save the message in some temporary file name (say "xx"). +Then saying "untarmail xx" +will decode the message and untar it. +.I Untarmail +can also be used as a filter. By using +.IR tarmail "," +binary files and +entire directory structures can be easily transmitted between machines. +Naturally, you should understand what tar itself does before you use +.IR tarmail "." +.PP +Other uses: +.PP +compress < secrets | crypt | btoa | mail ralph +.PP +will mail the encrypted contents of the file "secrets" to ralph. If ralph +knows the encryption key, he can decode it by saving the mail (say in "xx"), +and then running: +.PP +atob < xx | crypt | uncompress +.PP +(crypt requests the key from the terminal, +and the "secrets" come out on the terminal). +.SH AUTHOR +Paul Rutter (modified by Joe Orost) +.SH FEATURES +.I Btoa +uses a compact base-85 encoding so that +4 bytes are encoded into 5 characters (file is expanded by 25%). +As a special case, 32-bit zero is encoded as one character. This encoding +produces less output than +.IR uuencode "(1)." +.SH "SEE ALSO" +compress(1), crypt(1), uuencode(1), mail(1) diff --git a/static/unix-v10/man1/buildtables.1 b/static/unix-v10/man1/buildtables.1 new file mode 100644 index 00000000..dd7ce7de --- /dev/null +++ b/static/unix-v10/man1/buildtables.1 @@ -0,0 +1,214 @@ +.ds dF /usr/lib/font +.ds dQ /usr/lib/postscript +.TH BUILDTABLES 1 "DWB 3.2" +.SH NAME +.B buildtables +\- build +.B troff +tables on a PostScript printer +.SH SYNOPSIS +\*(mBbuildtables\f1 +.OP "" options [] +.OP "" "name \(el" [] +.SH DESCRIPTION +.B buildtables +builds font width tables or the typesetter description +file on a PostScript printer. +No arguments means build a default set of tables; +usually a superset of the LaserWriter Plus collection. +The following +.I options +are understood: +.TP 1.0i +.OP \-b speed +Transmit data over +.I line +at baud rate +.I speed. +Recognized baud rates are 1200, 2400, 4800, 9600, and 19200. +The default +.I speed +is 9600 baud. +.TP 1.0i +.OP \-l line +Build the tables on the PostScript printer attached to +.I line. +There is no default. +.TP 1.0i +.OP \-t name +Use +.I name +as the template for fonts not in the default set. +Choose +.MW R +for proportionally spaced fonts and +.MW CW +for fixed width fonts. +Try +.MW ZD +(ZapfDingbats) if the font has a non-standard +character set. +The default is +.MR R . +.TP 1.0i +.OP \-C file +Copy +.I file +into each PostScript table program; +.I file +must contain legitimate PostScript. +.TP 1.0i +.OP \-H hostdir +Use +.I hostdir +as the host-resident font directory. +A file in +.I hostdir +that matches the name of the +.B troff +font is assumed to be a host-resident font program and is included +in the PostScript width table program. +There is no default. +.TP 1.0i +.OP \-S file +Use +.I file +as the shell library file. +Overrides the choice made with the +.OP \-T +option. +.TP 1.0i +.OP \-T name +Set the target device to +.I name. +.br +Device +.I name +means +.ft 2 +.MI \*(dF/dev name /shell.lib +.ft 1 +is the shell library file. +There is no default. +.PP +If +.OP \-l +is omitted output files are the PostScript programs that +build the tables, rather than the tables themselves. +One of +.OP \-T +or +.OP \-S +is required. +If both are given +.OP \-S +wins. +Although +.OP \-H +is the preferred mechanism for including host-resident font files, +.OP \-C +makes sense when only one width table is built. +.PP +The shell library file defines a collection of functions used to +build +.BR troff (1) +tables. +The default set of tables is the list of names returned by the +.MW AllTables +function. +Changes to the default list can be made by updating the +.MW BuiltinTables +function. +.PP +Each +.B buildtables +argument +must be a default table name, or a pair of names enclosed in quotes. +If the argument is a pair, the first name is the +.B troff +font and the second is the full PostScript font name. +Tables are created in the current directory. +Each is assigned a name that matches the +.B troff +table name. +.PP +The PostScript table programs created by +.BR trofftable (1) +are written to files that have +.MW .ps +appended to the +.B troff +table name. +The +.MW .ps +file is deleted after the table is built. +Options not listed above are passed to +.B trofftable. +The PostScript table programs return data to the host computer using +PostScript's +.MW print +operator. +See +.BR hardcopy (1) +if you do not have access to the printer's serial port. +.SH EXAMPLES +.PP +Build the default collection of devpost tables on the printer +connected to +.MW /dev/tty00 +(no font name arguments): +.EX +buildtables -l/dev/tty00 -Tpost +.EE +To do the same and to restrict the tables that are built, +Add +.B troff +font names (or +.MR DESC ) +to restrict the tables built on the printer connected to +.MR /dev/tty00 : +.EX +buildtables -l/dev/tty00 -Tpost R I B BI DESC S +.EE +Enclose the +.B troff +and PostScript font names in quotes to +build the width table for a font not in the default set +(also on the printer connected to +.MR /dev/tty00 ): +.EX +buildtables -l/dev/tty00 -TLatin1 "GL Garamond-Light" +.EE +A font must be available on the printer when the table is built. +Use +.OP \-H +or +.OP \-C +to include host-resident fonts. +.SH WARNINGS +.PP +A width table will not build properly if the printer cannot access +the PostScript font. +.PP +The +.OP \-TLatin1 +option only works on PostScript printers that support the full +.SM ISO +Latin-1 character set. +The error message from older printers will likely indicate a missing +.MW ISOLatin1Encoding +array. +.SH FILES +.MW \*(dF/dev*/shell.lib +.br +.MW \*(dQ/dpost.ps +.br +.MW \*(dQ/trofftable.ps +.br +.SH SEE ALSO +.BR dpost (1), +.BR hardcopy (1), +.BR postio (1), +.BR troff (1), +.BR trofftable (1), +.BR font (5) diff --git a/static/unix-v10/man1/bundle.1 b/static/unix-v10/man1/bundle.1 new file mode 100644 index 00000000..fcbd5b67 --- /dev/null +++ b/static/unix-v10/man1/bundle.1 @@ -0,0 +1,53 @@ +.TH BUNDLE 1 +.CT 1 comm_users +.SH NAME +bundle \- collect files for distribution +.SH SYNOPSIS +.B bundle +.I file ... +.SH DESCRIPTION +.I Bundle +writes on its standard output a shell script for +.IR sh (1) +that, when executed, +will recreate the original +.IR files . +Its main use is for distributing small numbers of text files by +.IR mail (1). +.PP +Although less refined than standard archives from +.IR ar (1), +.IR cpio (1), +or +.IR tar (1), +a +.IR bundle +file +is self-documenting and complete; little preparation is required on +the receiving machine. +.SH EXAMPLES +.TP +.L +bundle makefile *.[ch] | mail elsewhere!mark +Send a makefile to Mark together with related +.L .c +and +.L .h +files. +Upon receiving the mail, Mark may save the file sans postmark, +say in +.BR gift/horse , +then do +.TP +.L +cd gift; sh horse; make +.SH SEE ALSO +.IR ar (1), +.IR cpio (1), +.IR tar (1), +.IR mail (1) +.SH BUGS +.I Bundle +will not create directories and is unsatisfactory for non-ASCII files. +.br +Beware of gift horses. diff --git a/static/unix-v10/man1/byteyears.1 b/static/unix-v10/man1/byteyears.1 new file mode 100644 index 00000000..b3d05fa0 --- /dev/null +++ b/static/unix-v10/man1/byteyears.1 @@ -0,0 +1,38 @@ +.TH BYTEYEARS 1 +.SH NAME +byteyears \- time-space product for file residency +.SH SYNOPSIS +.B byteyears +[ +.B \-a +] +[ +.I file +] +. . . +.SH DESCRIPTION +.I Byteyears +reports the product of the age of each +.I file +in years +and the length in bytes. +Files for which this number is large +may be reasonable candidates for deletion. +If the file is a directory, +.I byteyears +reports (recursively) on everything in that +directory. +If no arguments are given, the current directory is assumed. +If the +.B \-a +option is given, the time since last access +is used instead of the time since last modification. +.PP +Each line of output contains +the number of byte years (rounded to the nearest integer), +the size of the file in bytes, the time last +modified, and the name of the file. +.SH EXAMPLES +.TP +byteyears | sort \-r | sed 10q +List the ten leading candidates in the current directory. diff --git a/static/unix-v10/man1/c++.1 b/static/unix-v10/man1/c++.1 new file mode 100644 index 00000000..e41cfe58 --- /dev/null +++ b/static/unix-v10/man1/c++.1 @@ -0,0 +1,151 @@ +.TH C++ 1 +.CT 1 prog_c +.SH NAME +CC, cfront \- C++ compiler +.SH SYNOPSIS +.B CC +[ +.I option ... +] +.I file ... +.PP +.B cfront +[ +.I option ... +] +.I file ... +.SH DESCRIPTION +.I CC +compiles and links C++ programs in the manner of +.IR cc (1). +It handles source files with names ending in +.LR .c , +assembler files in +.LR .s , +and object files in +.LR .o . +Various passes of the compiler can be substituted via +environment variables listed under +.SM `FILES'. +Options include those of +.IR cc (1) +except +.BR -B +and +.BR -t , +those of +.IR ld (1), +those of +.I cfront, +and in addition +.TP +.BR -F +Run only the macro preprocessor +.IR cpp (8) +and +.I cfront +on the named +.B .c +files, and send the result to the +standard output. +.TP +.BI -. suffix +Instead of the standard output, place +.B -E +and +.B -F +output in files whose name is that of the source with +.BI . suffix +substituted for +.LR .c . +.PP +.I Cfront +reads C++ code (without preprocessing) from the standard input +and writes equivalent C code on the standard output. +The options are +.TP +.B +d +Don't expand inline functions. +.TP +.BI +x file +Take size and alignment information from +.I file +for cross compiling. +.TP +.B +e0 +.PD0 +.TP +.B +e1 +Make external declarations +.RB (+e0) +or definitions +.BR (+e1) +for virtual function tables. +These tables may appear as static data in +every compilation; +the options are intended to save redundant space. +.PD +.TP +.B +a0 +Produce classic C output (default). +.TP +.B +a1 +Produce +.SM ANSI +C output. +If this option is used with +.I CC, +then an +.SM ANSI +C compiler such as +.I lcc +must be specified in environment variable +.BR ccC . +.TP +.BI +f name +Use +.I name +to identify the source file in diagnostics. +.TP +.B +L +Produce +.SM ANSI +standard +.B #line +directives instead of +.BI # number. +.SH FILES +.TF cfrontC=/usr/bin/cfront +.TP +.B cppC=/lib/cpp +C preprocessor +.TP +.B cfrontC=/usr/bin/cfront +C++ translator +.TP +.B ccC=/bin/cc +C compiler +.TP +.B munchC=/usr/lib/munch +linker postprocessor for static initialization +.TP +.F /usr/lib/libC.a +C++ library +.TP +.F /usr/include/CC +standard directory for C++ +.L #include +files +.TP +Other files as in \fIcc\fR +.SH SEE ALSO +.IR cc (1), +.IR ld (1) +.br +B. Stroustrup, +.I The C++ Programming Language, +Addison-Wesley, 1986 +.br +B. Stroustrup, +.I C++ Reference Manual, +AT&T Bell Laboratories, May 1989 diff --git a/static/unix-v10/man1/c++filt.1 b/static/unix-v10/man1/c++filt.1 new file mode 100644 index 00000000..8caf170e --- /dev/null +++ b/static/unix-v10/man1/c++filt.1 @@ -0,0 +1,43 @@ +. \"ident "@(#)ctrans:demangler/c++filt.1 1.1" +. \"This CC man page is generated by: troff -man c++filt.1 +. \"Copyright (c) 1988 AT&T +. \"All Rights Reserved +. \"THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T +. \"The copyright notice above does not evidence any +. \"actual or intended publication of such source code. +.TH c++filt 1 +.UC 4 +.SH NAME +c++filt \- C++ name demangler +.SH SYNOPSIS +.B c++filt +.RB [ -m ] +.RB [ -s ] +.RB [ -v ] +.SH DESCRIPTION +.I C++filt +copies standard input to standard output after decoding +tokens which look like C++ encoded symbols. +Any combination of the following options may be used: +.TP 15 +.B \-m +Produce a symbol map on standard output. +This map contains a list of the encoded names encountered and the +corresponding decoded names. +This output follows the filtered output. +.TP 15 +.B \-s +Produce a side-by-side decoding with each encoded symbol encountered +in the input stream replaced by the decoded name followed by the +original encoded name. +.TP 15 +.B \-v +Output a message giving information about the version of +.I c++filt +being used. +.SH "SEE ALSO" +CC(1), ld(1), nm(1). +.br +Bjarne Stroustrup, +.I The C++ Programming Language, +Addison-Wesley 1986. diff --git a/static/unix-v10/man1/calendar.1 b/static/unix-v10/man1/calendar.1 new file mode 100644 index 00000000..a94e9bc8 --- /dev/null +++ b/static/unix-v10/man1/calendar.1 @@ -0,0 +1,118 @@ +.TH CALENDAR 1 +.CT 1 time_man +.SH NAME +calendar \- reminder service +.SH SYNOPSIS +.B calendar +[ +.B - +] +[ +.I n +] +.SH DESCRIPTION +.I Calendar +consults calendar files +and prints out lines that contain today's date or +any date up through the +.IR n th +working day hence +.RI ( n =1 +by default). +Most American-style month-day dates such as +.BR "Aug. 19" ,\ +.BR "august 19" ,\ +.BR "8/19" , +etc., are recognized, but not +.LR 19/8 . +The symbol +.L * +denotes every month as in +.B * +19 or +.BR */19 . +A year may follow the day, as in +.BR "August 19 86" ,\ +.BR "8/19/86" , +or +.BR "Aug. 19, 1986" . +.PP +By default, the program consults the file +.F calendar +in directory +.B $HOME +(see +.IR sh (1)), +or in the current directory if a home directory is not known. +Other calendar files to be consulted may be specified by calendar +lines in one of the forms +.IP +.B #include +\f5\fIfile\^\f5 +.br +.B #include +\f5\fImachine\f5!\fIfile\^\f5\fR +.LP +where +.I file +is the name of some other calendar and +.I machine +is the name of a machine or service accessible via +.IR con (1). +.PP +When the optional +.L - +argument is present, +.I calendar +reminds all users of their calendar engagements by +.IR mail (1). +Normally this happens daily in the wee hours under control of +.IR cron (8). +Calendars not in home directories, or recipients not registered +as users, may be registered +for reminder service by placing lines of the form +.I calendarfile mailname +in file +.FR /usr/lib/calendar . +.SH EXAMPLES +.EX +#include /usr/pub/btlcalendar +#include /n/coma/usr/pub/btlcalendar +#include mh/astro/coma.calendar!/usr/pub/btlcalendar +.EE +.ns +.IP +Ways to subscribe to a public calendar by +(1) users of +.LR mh/astro/coma , +(2) users elsewhere who have +.IR netfs (8) +access to +.BR coma , +and (3) users elsewhere without +.I netfs +access. +.SH FILES +.TF +.TP +.F calendar +.PD0 +.TP +.F /usr/lib/calendar? +.TP +.F /etc/passwd +.TP +.F /tmp/cal* +.SH "SEE ALSO" +.IR at (1) +.SH BUGS +.BR #include s +do not nest. +.br +The mail reminder service doesn't work when +it finds fewer than two calendars. +.br +Your calendar must be public information for you +to get reminder service. +.br +Holidays are what the program says they are. diff --git a/static/unix-v10/man1/can.1 b/static/unix-v10/man1/can.1 new file mode 100644 index 00000000..1a070d4d --- /dev/null +++ b/static/unix-v10/man1/can.1 @@ -0,0 +1,238 @@ +.TH CAN 1 +.CT 1 writing_output comm_dev +.SH NAME +can, bcan, dcan, tcan, xcan \- interface to Canon laser-printer spooler +.SH SYNOPSIS +.B can +[ +.I option ... +] +[ +.I file ... +] +.PP +.B bcan +[ +.I option ... +] +[ +.I file ... +] +.PP +.B dcan +[ +.I option ... +] +[ +.I file ... +] +.PP +.B tcan +[ +.I option ... +] +[ +.I file ... +] +.PP +.B xcan +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +These commands print +.I files +(standard input by default) on Canon laser printers. +Four commands, all special cases of the generic +.I xcan, +handle particular kinds of data files: +.TP +.I can +ASCII text +.TP +.I bcan +bitmap images created by +.IR blitblt (9.1) +.TP +.I dcan +output from +.IR troff (1) +.TP +.I tcan +output for a Tektronix 4014 terminal, as produced by +.IR plot (1) +.PP +The destination printer is determined in the following ways, +listed in order of decreasing precedence. +.IP +option +.B -d +.I dest +.br +environment variable +.L CANDEST +.br +printer named in file +.F /etc/candest +.LP +Printers at the mother site are: +.RS +.TP +.B 3 +3rd floor, end of 9S corridor (seki) +.PD0 +.TP +.B 4 +4th floor, stair 8 (swift) +.TP +.B 8 +3rd floor, stair 8 (tukey) +.TP +.B 9 +4th floor, stair 9 (wild) +.TP +.B j +jones room (jones) +.TP +.B u +unix room (panther) +.TP +.BI / name +printer attached to machine with Datakit destination +.I name +.RE +.PD +.PP +Options: +.PP +.TP +.BI -d " dest" +Select the destination printer. +.TP +.BI -f " font" +Set the font (default +.LR CW.11 ) +for +.IR can ; +see +.IR font (7). +.TP +.B -L +(landscape) Rotate +.I bcan +pages 90 degrees. +.TP +.BI -l " n" +Set number of lines per page for +.I can +(default 66). +.TP +.BI -m " n" +Set +.I bcan +magnification +(default 2). +.TP +.B -n +Spool only, input has already been formatted by a remote +.IR xcan . +.TP +.BI -o " list" +Print only pages whose page numbers appear in +the comma-separated +.I list +of numbers and ranges. +A range +.IB n - m +means pages +.I n +through +.IR m ; +a range +.BI - b +means from the beginning to page +.IR n ; +a range +.IB n - +means from page +.I n +to the end. +.B -o +implies +.BR -r . +.TP +.B -r +print +pages in reverse order +(default for +.IR can " and " dcan ). +.TP +.B -sb +.RI "make " xcan " expect " bcan " input;" +.BR -sb " implies defaults of " -x176 " and " -y96 . +.TP +.B -sc +.RI "make " xcan " expect " can " input;" +.BR -sc " does not imply " -r . +.TP +.B -sd +.RI "make " xcan " expect " dcan " input;" +.BR -sd " does not imply " -r . +.TP +.B -st +.RI "make " xcan " expect " tcan " input." +.TP +.BI -t " n" +.I tcan +scale factor is +.RI ( n /100)/( n %100). +The default is 813, i.e., 13 tekpoints become 8 dots on the laser printer. +.TP +.BI -u " user" +set the name which appears on the banner page; +default is login name. +.TP +.BI -x " n" +set the horizontal +offset of the print image, measured in dots (default 48). +There are 240 dots to the inch. +.TP +.BI -y " n" +set the vertical +offset of the print image (default 0), +except in +.I tcan, +where this option specifies +.I n +extra tekpoints vertically. +.SH FILES +.TF /usr/spool/jpd +.TP +.F /etc/candest +default destination +.PD0 +.TP +.F /usr/lib/font/devi10 +font directory +.TP +.F /usr/spool/jpd +spool directory +.SH SEE ALSO +.IR pr (1), +.IR lpr (1), +.IR blitblt (9.1), +.IR plot (1), +.IR font (7) +.SH BUGS +The `landscape' option is supported only by +.IR bcan ; +.BR -o " and " -r +are supported only by +.I can +and +.I dcan. +.br +There ought to be a way to determine the service class from the input data. diff --git a/static/unix-v10/man1/cat.1 b/static/unix-v10/man1/cat.1 new file mode 100644 index 00000000..f366ec7c --- /dev/null +++ b/static/unix-v10/man1/cat.1 @@ -0,0 +1,44 @@ +.pa 1 +.he 'CAT (I)'1/15/73'CAT (I)' +.ti 0 +NAME cat -- concatenate and print +.sp +.ti 0 +SYNOPSIS cat___ file918 ... +.sp +.ti 0 +DESCRIPTION cat___ +reads each file in sequence +and writes it on the standard output. +Thus: +.sp +.ti +3 +cat___ file____ +.sp +is about the easiest way to print a file. +Also: +.sp +.ti +3 +cat___ file1_____ file2_____ >file3______ +.sp +is about the easiest way to concatenate +files. +.sp +If no input file is given cat___ reads from the standard +input file. +.sp +If the argument "-" is encountered, cat reads from +the standard input file. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO pr(I), cp(I) +.sp +.ti 0 +DIAGNOSTICS none; +if a file cannot be found it is ignored. +.sp +.ti 0 +BUGS cat x y >x and cat x y >y cause strange results. diff --git a/static/unix-v10/man1/catsim.1 b/static/unix-v10/man1/catsim.1 new file mode 100644 index 00000000..a8dee1e3 --- /dev/null +++ b/static/unix-v10/man1/catsim.1 @@ -0,0 +1,27 @@ +.th CATSIM I 11/1/73 +.sh NAME +catsim \*- phototypesetter simulator +.sh SYNOPSIS +.bd catsim +.sh DESCRIPTION +.it Catsim +will interpret its +standard input as codes for the phototypesetter (cat). +The output of +.it catsim +is output to the display (vt). +.s3 +About the only use of +.it catsim +is to save time and paper on the phototypesetter +by the following command: +.s3 + troff \*-t files | catsim +.sh FILES +/dev/vt0 +.sh "SEE ALSO" +troff(I), cat(IV), vt(IV) +.sh BUGS +Point sizes are not correct. +The vt character set is restricted to +one font of ASCII. diff --git a/static/unix-v10/man1/cb.1 b/static/unix-v10/man1/cb.1 new file mode 100644 index 00000000..cdf3a803 --- /dev/null +++ b/static/unix-v10/man1/cb.1 @@ -0,0 +1,49 @@ +.TH CB 1 +.CT 1 prog_c writing_output +.SH NAME +cb \- C program beautifier +.SH SYNOPSIS +.B cb +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Cb +reads C programs either from the named +.I files +or from the +standard input +and writes them +on the standard output with spacing and indentation +that displays the structure of the code. +The options are: +.TP +.B -s +Place newlines as in +Kernighan and Ritchie. +(Original newlines are preserved by default.) +.TP +.B -j +Join split lines. +.TP +.BI -l " leng" +Split lines that are longer than +.I leng, +120 by default. +.SH "SEE ALSO" +.IR pr (1), +.IR troff (1), +.IR lp (1), +.IR font (6) +.br +B. W. Kernighan and D. M. Ritchie, +.I "The C Programming Language," +Prentice-Hall, 1988. +.SH BUGS +Punctuation hidden in +preprocessor statements causes +.I cb +to make indentation errors. diff --git a/static/unix-v10/man1/cbt.1 b/static/unix-v10/man1/cbt.1 new file mode 100644 index 00000000..6fe8f0ed --- /dev/null +++ b/static/unix-v10/man1/cbt.1 @@ -0,0 +1,71 @@ +.TH CBT 1 +.SH NAME +cbt +\- programs for b-trees +.SH SYNOPSIS +.B cbt +.I command +arguments ... +.SH DESCRIPTION +.PP +B-trees support lookup of values by key. +A b-tree +.I file +corresponds to two files, +.I file.T +and +.IR file.F . +.I file.T +contains the keys and pointers to values. +.I file.F +contains the values. +If the b-tree is an +.I index +there is no +.I .F +file. +.PP +.B cbt creat +.I arguments +creates empty b-trees. +Each argument may be a file name or the flag +.BR -i . +The b-trees created for all the names following a flag argument +will be indexes. +.PP +.B cbt report +.I file-names +reports on the sizes of the files. +If the amount of useful data is much less than the file sizes, +.B cbt squash +.I file +will make the b-tree much smaller by reconstructing it in nearly +minimal form. +.PP +.B cbt cat +.I file +prints out the contents of the b-tree in the form +.RS +.I key tab value new-line +.RE +.PP +.B cbt build [-r] +.I file +fills an empty b-tree with key-value pairs read from the standard +input. +The keys must be sorted and without duplicates. +If the optional argument is not present, then the part of each line +up to the first tab is the key, and the part after the first tab, +not including the new-line, is the value. +If the optional argument is present, then the input is assumed to +be a sequence of +.RS +.RI short klen; char key[klen]; short vlen; char value[vlen] +.RE +quadruples. +The smallest possible value for +.I klen +is 1, +so the shortest quadruple consists of 2 short integers and one character. +.SH SEE ALSO +memo by pjw, cbt(3) diff --git a/static/unix-v10/man1/cc.1 b/static/unix-v10/man1/cc.1 new file mode 100644 index 00000000..348a79e5 --- /dev/null +++ b/static/unix-v10/man1/cc.1 @@ -0,0 +1,52 @@ +.pa 1 +.he 'CC (I)'3/15/72'CC (I)' +.ti 0 +NAME cc -- C compiler +.sp +.ti 0 +SYNOPSIS cc__ [ -c__ ] sfile\d1\u.c__ ... ofile\d1\u ... +.sp +.ti 0 +DESCRIPTION cc__ +is the UNIX C compiler. +It accepts three types of arguments: + +Arguments whose names end with ".c" are assumed to be +C source programs; they are compiled, and +the object program is left on the file sfile\d1\u.o (i.e. +the file whose name is that of the source with ".o" substituted +for ".c"). + +Other arguments (except for "-c") are assumed +to be either loader flag arguments, or C-compatible +object programs, typically produced by an earlier cc__ run, +or perhaps libraries of C-compatible routines. +These programs, together with the results of any +compilations specified, are loaded (in the order +given) to produce an executable program with name +a.out_____. + +The "-c" argument suppresses the loading phase, as does +any syntax error in any of the routines being compiled. + +.ti 0 +FILES file.c input file +.nf +file.o object file +a.out loaded output +/tmp/ctm? temporary +/lib/c[01] compiler +/lib/crt0.o runtime startoff +/lib/libc.a builtin functions, etc. +/lib/liba.a system library +.fi +.sp +.ti 0 +SEE ALSO C reference manual (in preparation), cdb(I) +.sp +.ti 0 +DIAGNOSTICS Diagnostics +are intended to be self-explanatory. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/cdb.1 b/static/unix-v10/man1/cdb.1 new file mode 100644 index 00000000..7a32353c --- /dev/null +++ b/static/unix-v10/man1/cdb.1 @@ -0,0 +1,41 @@ +.pa 1 +.he 'CDB (I)'1/15/73'CDB (I)' +.ti 0 +NAME cdb -- C debugger +.sp +.ti 0 +SYNOPSIS cdb___ [ core [ a.out ] ] +.sp +.ti 0 +DESCRIPTION cdb___ +is a debugging program for use with C programs. +It is by no means completed, +and this section is essentially only a placeholder +for the actual description. + +Cdb resembles db__ in many respects, except that +all integers are decimal. + +Even the present cdb___ has one useful feature: +the command + + $ + +will give a stack +trace +of the core image of a terminated C program. +The calls are listed in the order made; +the actual arguments to each routine are given +in octal. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO cc(I), db(I), C Reference Manual +.sp +.ti 0 +DIAGNOSTICS "?" +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/cf.1 b/static/unix-v10/man1/cf.1 new file mode 100644 index 00000000..727293e3 --- /dev/null +++ b/static/unix-v10/man1/cf.1 @@ -0,0 +1 @@ +char freq diff --git a/static/unix-v10/man1/charge.1 b/static/unix-v10/man1/charge.1 new file mode 100644 index 00000000..4fe818f9 --- /dev/null +++ b/static/unix-v10/man1/charge.1 @@ -0,0 +1,194 @@ +.TH CHARGE 1 SHARE +.SH NAME +charge, charges \- change (show) charges for share system usage calculations +.SH SYNOPSIS +.B charge +[\-flags] +.br +.B charges +[\-flags] +.SH DESCRIPTION +.I Charge +will change the costs associated with the usage calculations for the +.IR "Share Scheduler" . +The flag \fB\-C\fR, if used, should be mentioned first +to cause +.I charge +to read the +existing values, +instead of working on default values. +The alternate name is used to show the charges currently in operation, +for which the default assumes \fB\-C\fR, unless the flag \fB\-\fP is used. +The optional flags are as follows:- +.TP "\w'-NmaxnormuXX'u" +.BI - +Causes +.I charges +to show the default settings for the charging parameters. +.TP +.BI -C +Causes +.I charge +to read in the current values, +which it will use instead of the defaults. +\fBMust be first flag if used\fP. +.TP +.BI -D h1,h2 +Will set the decay rate for process priorities with normal \fInice\fP +so that they will decay to half their initial value in +.I h1 +seconds, +and set the decay rate for process priorities with maximum \fInice\fP +so that they will decay to half their initial value in +.I h2 +seconds. +.TP +.BI -E half-life +Will set the decay rate for users' process +.I rates +so that they will decay to half their initial value in +.I half-life +seconds. +.TP +.BI -F flags +Sets various global scheduling flags \(em see +.IR share (5) +for details. +.I Flags +are assumed to be in octal. +.TP +.BI -G maxgroups +Sets the maximum depth for the scheduling tree. +.TP +.BI -K half-life [s] +Will set the decay rate for users' usages +so that they will decay to half their initial value in +.I half-life +hours. +If the +.I half-life +is followed by the character \fBs\fP, +then the number will be interpreted as seconds. +.TP +.BI -N maxnormu +Upper bound on +.I "normalised usage" +used in process priority calculations. +The number can be added to a running process's priority every clock tick, +so it should be small enough not to overrun the value +.I maxupri +in too short a time interval +(ie: it should be less than \fI(maxupri*(1\-pri_decay)) / \s-1HZ\s0\fP, +see the output of \fIcharges -v\fP for the low priority value of \fIpri_decay\fP.) +.TP +.BI -P maxpri +Absolute upper bound for a process's priority. +(Something less than the largest non-negative integer.) +.TP +.BI -Q maxupri +Upper bound for normal processes' priorities. +.I Idle +processes run with priorities in the range +.IB maxupri < pri < maxpri . +.TP +.BI -R delta +Sets the +.I run-rate +for the share scheduler in seconds. +.TP +.BI -S maxusers +Sets the maximum number of users and groups that can be active. +Note that this cannot exceed the maximum configured in the kernel. +.TP +.BI -U maxusage +Upper bound for ``reasonable'' usages. +Users with usages larger than this are grouped together and given a +.I "normalised usage" +which prevents them from interfering with ``normal'' users. +.TP +.BI -X maxushare +If the +.SM LIMSHARE +scheduling flag is on, +then this parameter limits the maximum effective share an +individual user can have to +.I maxushare +times their allocated share. +.TP +.BI -Y mingshare +If the +.SM ADJGROUPS +scheduling flag is on, +and any group is getting less than +.I mingshare +times its allocated share, +the costs incurred by the group members will be adjusted down to compensate. +(Does not affect the long-term charges.) +.TP +.BI -b bio +The charge for a disk block I/O operation. +.TP +.BI -m click +The charge for a +.IR "memory tick" . +.TP +.BI -s syscall +The charge for a system call. +.TP +.BI -t tick +The charge for a CPU tick. +.TP +.BI -v +Show scheduling feed-back parameters +.RI ( charges " only)." +.TP +.BI -y tio +The charge for a stream I/O operation. +(This is really dependent on the number of kernel buffer operations, +so a +.I "write(1)" +will cost the same as a +.I "write(64)" +to an ordinary stream, +or a +.I "write(1024)" +to a pipe.) +.TP +.IR percent +The percentage change to apply to all the charges. +.SH EXAMPLES +.B charge 10 +.RS +will change the costs to 10% of the default. +.RE +.B charges +.RS +show the current charges. +.RE +.B "charges \-" +.RS +show the default settings. +.RE +.SH SEE ALSO +.PD 0 +.TP "\w'/usr/include/sys/charges.hXX'u" +.IR /usr/include/sys/charges.h +The default values in the kernel. +.TP +.IR /usr/include/sys/share.h +Definition of charges structure. +.TP +.IR share (5) +A description of the +.IR "Share Scheduler" . +.PD +.SH BUGS +The percent flag will also affect any new constants, +so bias them accordingly. +.PP +.I Charges +works out the current charging percentage +by using the difference between the default cost for ``ticks'' +and the current setting. +.PP +The defaults are hardly ever relevant. diff --git a/static/unix-v10/man1/chash.1 b/static/unix-v10/man1/chash.1 new file mode 100644 index 00000000..fbe4e38c --- /dev/null +++ b/static/unix-v10/man1/chash.1 @@ -0,0 +1,44 @@ +.pa 1 +.he '6/13/1972''CHASH (I)' +.fi +.in16 +.ti 0 +NAME chash -- precompile a hash table for cref____ +.sp +.fi +.in16 +.ti 0 +SYNOPSIS chash_____ file1 file2 +.sp +.fi +.in16 +.ti 0 +DESCRIPTION CHASH +takes symbols (character sequences; one per line) from +file1_____ and compiles a hash table for the use of cref____. +The table is written on file2_____. +.sp +A subroutine suitable for searching such a hash table +is available from the author. +.sp +.fi +.in16 +.ti 0 +FILES --- +.sp +.fi +.in16 +.ti 0 +SEE ALSO cref(I) +.sp +.fi +.in16 +.ti 0 +DIAGNOSTICS --- +.sp +.fi +.in16 +.ti 0 +BUGS There +can only be 199 symbols; they may total +only 600 characters of text. diff --git a/static/unix-v10/man1/chdate.1 b/static/unix-v10/man1/chdate.1 new file mode 100644 index 00000000..6e471a8e --- /dev/null +++ b/static/unix-v10/man1/chdate.1 @@ -0,0 +1,76 @@ +.TH CHDATE 1 +.CT 1 files dirs +.SH NAME +touch, chdate \- set modification or access date of a file +.SH SYNOPSIS +.B touch +[ +.B -c +] +.I file ... +.PP +.B chdate +[ +.B -am +] +.I date file ... +.SH DESCRIPTION +.I Touch +attempts to set the modification time of the +.I files +to the current time. +If a +.I file +does not exist, +it will be created unless option +.B -c +is present. +.PP +.I Chdate +sets the access and modification times of +.I files. +The +.I date +comprises two or more arguments: a month (3 letters or more), +a day number, an optional time in hour:min[:sec] form, and an +optional year. +A missing year means a time in the last 12 months. +The options are +.TP +.B -a +Change the access time only. +.TP +.B -m +Change the modification time only. +.PP +.I Chdate +knows how to carry between fields of a date. +Only a file's owner or the super-user can change its date. +.SH EXAMPLES +.EX +.ta \w'chdate jul 4 12:00 1976 independence 'u +chdate jul 4 12:00 1976 independence +chdate jul -3 1976 independence # backdate one week +.EE +.SH SEE ALSO +.IR ls (1), +.IR utime +in +.IR chmod (2), +.IR stat (2), +.IR timec (3), +.IR chmod (1), +.IR chown (8) +.SH DIAGNOSTICS +.I Chdate +returns the number of files on which the date +could not be changed. +.SH BUGS +.I Touch +will not touch directories. +.PP +The first +.I file +name for +.I chdate +cannot begin with a digit. diff --git a/static/unix-v10/man1/chdir.1 b/static/unix-v10/man1/chdir.1 new file mode 100644 index 00000000..a8313507 --- /dev/null +++ b/static/unix-v10/man1/chdir.1 @@ -0,0 +1,29 @@ +.pa 1 +.he 'CHDIR (I)'3/15/72'CHDIR (I)' +.ti 0 +NAME chdir -- change working directory +.sp +.ti 0 +SYNOPSIS chdir_____ directory +.sp +.ti 0 +DESCRIPTION directory_________ +becomes the new working directory. +.sp +Because a new process is created to execute each command, +chdir_____ would be ineffective if it were written as a +normal command. It is therefore recognized and executed +by the Shell. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO sh(I) +.sp +.ti 0 +DIAGNOSTICS "Bad directory" if the directory cannot +be changed to. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/checknews.1 b/static/unix-v10/man1/checknews.1 new file mode 100644 index 00000000..29401198 --- /dev/null +++ b/static/unix-v10/man1/checknews.1 @@ -0,0 +1,57 @@ +.TH CHECKNEWS 1 +.SH NAME +checknews \- check to see if user has news +.SH SYNOPSIS +.BR checknews " [ " ynqevv " ] [ " +.IR "readnews options" " ] " +.SH DESCRIPTION +.I checknews +reports to the user whether or not he has news. +.TP 10 +.B y +Reports ``There is news'' if the user has news to read. +.TP 10 +.B n +Reports ``No news'' if there isn't any news to read. +.TP 10 +.B q +causes checknews to be quiet. +Instead of printing a message, the exit status indicates news. +A status of 0 means no news, 1 means there is news. +.TP 10 +.B v +alters the +.B y +message to show the name of the first newsgroup containing unread news. +Doubling +.B v +(e.g. +.BR vv ) +will cause an explanation of +.I any +claim of new news, +and is useful if +.B checknews +and +.B readnews +disagree on whether there is news. +.TP 10 +.B e +Executes +.IR readnews (1) +if there is news. +.PP +If there are no options, +.B y +is the default. +.SH FILES +.PD 0 +.TP 25 +~/.newsrc +/usr/lib/news/active +Active newsgroups +Options and list of previously read articles +.SH SEE ALSO +inews(1), +postnews(1), +readnews(1) diff --git a/static/unix-v10/man1/checknr.1 b/static/unix-v10/man1/checknr.1 new file mode 100644 index 00000000..a590a377 --- /dev/null +++ b/static/unix-v10/man1/checknr.1 @@ -0,0 +1,99 @@ +.TH CHECKNR 1 4/5/80 +.UC 4 +.SH NAME +checknr \- check nroff/troff files +.SH SYNOPSIS +.B checknr +[ +.B \-s +] [ +.B \-f +] [ +.BR \-a ".x1.y1.x2.y2. ... .xn.yn" +] [ +.BR \-c ".x1.x2.x3 ... .xn" +] +\fIfile\fP ... +.SH DESCRIPTION +.I Checknr +checks a list of +.IR nroff (1) +or +.IR troff (1) +input files for certain kinds of errors +involving mismatched opening and closing delimiters +and unknown commands. +Delimeters checked are: +.IP (1) +Font changes using \efx ... \efP. +.IP (2) +Size changes using \esx ... \es0. +.IP (3) +Macros that come in open ... close forms, for example, +the .TS and .TE macros which must always come in pairs. +.PP +.I Checknr +knows about the +.IR ms (7) +and +.IR me (7) +macro packages. +.PP +Additional pairs of macros can be added to the list using the +.B \-a +option. +This must be followed by groups of six characters, each group defining +a pair of macros. +The six characters are +a period, +the first macro name, +another period, +and the second macro name. +For example, to define a pair .BS and .ES, use \-\fBa\fP.BS.ES +.PP +The +.B \-c +option defines commands which would otherwise be complained about +as undefined. +.PP +The +.B \-f +option requests +.I checknr +to ignore \ef font changes. +.PP +The +.B \-s +option requests +.I checknr +to ignore \es size changes. +.PP +.I Checknr +is intended to be used on documents that are prepared with +.I checknr +in mind, much the same as +.I lint. +It expects a certain document writing style for \ef and \es commands, +in that each \efx must be terminated with \efP and +each \esx must be terminated with \es0. +While it will work to directly go into the next font or explicitly +specify the original font or point size, +and many existing documents actually do this, +such a practice will produce complaints from +.I checknr. +Since it is probably better to use the \efP and \es0 forms anyway, +you should think of this as a contribution to your document +preparation style. +.SH SEE\ ALSO +nroff(1), troff(1), ms(7), me(7), checkeqn(1) +.SH DIAGNOSTICS +Complaints about unmatched delimiters. +.br +Complaints about unrecognized commands. +.br +Various complaints about the syntax of commands. +.SH AUTHOR +Mark Horton +.SH BUGS +There is no way to define a 1 character macro name using +.B \-a diff --git a/static/unix-v10/man1/chmod.1 b/static/unix-v10/man1/chmod.1 new file mode 100644 index 00000000..c67cfca9 --- /dev/null +++ b/static/unix-v10/man1/chmod.1 @@ -0,0 +1,40 @@ +.pa 1 +.he 'CHMOD (I)'3/15/72'CHMOD (I)' +.ti 0 +NAME chmod -- change mode +.sp +.ti 0 +SYNOPSIS chmod_____ octal file918 ... +.sp +.ti 0 +DESCRIPTION The octal mode +replaces the mode of each of the files. +The mode is constructed from the OR of the +following modes: +.sp +.ti +3 +01 write for non-owner +.ti +3 +02 read for non-owner +.ti +3 +04 write for owner +.ti +3 +10 read for owner +.ti +3 +20 executable +.ti +3 +40 set-UID +.sp +Only the owner of a file may change its mode. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO stat(I), ls(I) +.sp +.ti 0 +DIAGNOSTICS "?" +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/chown.1 b/static/unix-v10/man1/chown.1 new file mode 100644 index 00000000..9262195e --- /dev/null +++ b/static/unix-v10/man1/chown.1 @@ -0,0 +1,30 @@ +.pa 1 +.he 'CHOWN (I)'3/15/72'CHOWN (I)' +.ti 0 +NAME chown -- change owner +.sp +.ti 0 +SYNOPSIS chown_____ owner file918 ... +.sp +.ti 0 +DESCRIPTION owner_____ +becomes the new owner of the files. +The owner may be either a decimal UID or +a login name found in the password file. +.sp +Only the owner of a file is allowed to change the owner. +It is illegal to change the owner of a file with the set-user-ID +mode. +.sp +.ti 0 +FILES /etc/passwd +.sp +.ti 0 +SEE ALSO stat(I) +.sp +.ti 0 +DIAGNOSTICS "Who?" if owner cannot be found, +"file?" if file cannot be found. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/chunk.1 b/static/unix-v10/man1/chunk.1 new file mode 100644 index 00000000..0b4c71ba --- /dev/null +++ b/static/unix-v10/man1/chunk.1 @@ -0,0 +1,58 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH CHUNK 1 +.SH NAME +chunk \- segment text into phrase units +.SH SYNOPSIS +.B chunk +[ +.B \-flags +][ +.B \-ver +] +[file ...] +.SH DESCRIPTION +.I Chunk +segments text into phrase units +by beginning a new line at the end of each unit it identifies. +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH USES +This program is useful for reading research, +and it can be used to reformat text files for easier editing. +Additionally, editors may find it easier to edit a text whose microstructure +is typographically clear. +.SH BUGS +Since +.I chunk +runs +.IR deroff (1) +on the input text, +formatting commands (and thus paragraph and heading structures) are lost +in the output. +.PP +.I Chunk +will think unfamiliar abbreviations are the end of a sentence, +and hence the end of the chunk. +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/cin.1 b/static/unix-v10/man1/cin.1 new file mode 100644 index 00000000..94542852 --- /dev/null +++ b/static/unix-v10/man1/cin.1 @@ -0,0 +1,906 @@ +. \" Copyright 1984,1985,1986,1987,1988,1989,1990 AT&T Bell Laboratories +.TH CIN 1 +.CT 1 prog_c +.SH NAME +cin \- C interpreter +.SH SYNOPSIS +.B cin +[ +.I option ... +] +[ +.I file ... +] +[ +.B -- +.I arg ... +] +.SH DESCRIPTION +.I Cin +interprets a C program comprising the +.I file +arguments as in +.IR cc (1). +The special name +.L - +signifies standard input. +When called with no +.I file +arguments, +.I cin +defaults to +.BR -i . +Arguments +.I arg +are passed to the interpreted program as +.BR cin_argv[1] , +.BR cin_argv[2] , +\&... +and +.BR cin_argc . +.PP +Options +.BI -D name = def , +.BI -D name , +.BI -L name , +.BI -U name , +.BI -I name , +.BI -l x , +.BI -o name , +and +.BI -u name +are as in +.IR cc . +Options +.B -O +and +.B -g +are ignored. +Other options are: +.TP +.BI -0 name +Pass +.I name +to the interpreted program as +.BR cin_argv[0] . +.TP +.BI -C name +Use +.I name +as the interpreter startup file +(by default, the file +.FR $HOME/.cin.c ). +The interpreter startup file is ignored by using +.BR -C/dev/null . +.TP +.BI -F i : o : e +Use file descriptors +.IR i , o , e +as standard input, standard output, and standard error for the +interpreter, as distinct from the interpreted code +(by default, 0, 1, and 2). +.TP +.B -S +Enable interactive mode after run-time errors. +.TP +.BI -V name : n +Declare function +.I name +to have a variable number of arguments, the first +.I n +of which are to be type-checked. +.TP +.B -c +Parse files but do not execute the program. +.TP +.B -i +Enable interactive interpretation. +C statements are evaluated immediately using local and global variables. +Non-void values are printed. +Function, variable, and C pre-processor declarations are stored +in the current `view'. +A function definition must include its return type. +Declarations and statements can appear in any order and +identifiers can be redeclared. +.TP +.B -r +Prohibit multiply-declared global variables. +.TP +.B -s +Do not catch signals using +.IR signal (2) +(by default, +.I cin +catches +.BR SIGBUS , +.BR SIGEMT , +.BR SIGFPE , +.BR SIGILL , +.BR SIGINT , +.BR SIGIOT , +.BR SIGSEGV , +.BR SIGSYS , +.BR SIGTRAP ). +.TP +.B -v +Print the user and system times associated with loading files and executing +the program, as in +.IR time (1). +.TP +.BI + option +Turn off the specified +.IR option . +.PP +The functions and variables listed below are predefined in +.I cin +and +.IR libcin.a . +Their arguments are typed according to these conventions: +.IP +.B char +.BI * func , +.BI * message , +.BI * mod , +.BI * name , +.BI * ref , +.BI * string ; +.br +.B enode +.BI * code ; +.br +.B int +.IB level , +.IB line ; +.br +.B long +.BI (* after )(); +.br +.B unsigned +.B long +.IB addr ; +.br +.B void +.BI (* before )(), +.BI (* routine )(); +.PP +This first group of functions and variables are the most commonly used. +To use them load +.F libcin.a +and include +.FR cin.h . +.PP +.HP +.BI "int cin_break(" name , +.IB line , +.IB string ) +.br +If +.I string +is +.BR "(char *)0" , +place a +.B cin_system +in file +.I name +before line number +.IR line . +Otherwise, +place the C-language statement specified by +.I string +in file +.I name +before line number +.IR line . +Thus, +.IR string +is read and evaluated +within the prevailing context of the function +without stopping execution. +Return 0 if line number +.I line +cannot be found in file +.IR name . +.TP +.BI "int cin_dump(" name ) +Create an +.F a.out +and place it in the file +.IR name . +Return 0 if +.I name +cannot be created. +.TP +.BI "void cin_info(" string ) +Where +.I string +is: +.RS +.TP +.B breakpoint +Print +.IR cin 's +.BR cin_break s +and +.BR cin_stopin s. +.TP +.B log +Print +.IR cin 's +interactive mode log file name. +.TP +.B memory +Print +.IR cin 's +memory usage. +.TP +.B spy +Print +.IR cin 's +spies. +.TP +.B symboltable +Print +.IR cin 's +symbol table. +.TP +.B undefined +Print +.IR cin 's +undefined variables. +.TP +.B usage +Print +.IR cin 's +usage message. +.TP +.B version +Print +.IR cin 's +version number. +.TP +.B view +List the available views. +The current view is starred +.RB ( * ). +.TP +.B where +Print a trace of function calls. +.TP +.B wrapper +Print +.IR cin 's +wrappers. +.RE +.TP +.BI "int cin_load(" string ) +Evaluate +.I string +as invocation arguments of +.IR cin . +Return 0 if arguments are not valid. +.TP +.BI "int cin_log(" name ) +.IR mv (1) +the interactive mode session log to file +.IR name . +Return 0 if +.I name +cannot be +.IR mv ed. +.TP +.BI "void cin_make(" string ) +If +.I string +is +.BR "(char *)0" , +then re-load any file that is out of date. +Otherwise, +run +.BR $MAKE , +passing +.I string +as arguments, and scan +its standard output for lines that begin with pound sign +.RB ( # ). +Characters following the pound sign are executed as +a C-language statement. +.HP +.BI "int cin_pp(" func , +.IB level ) +.br +Print the C-language for the function +.IR func . +Where +.I level +is: +.RS +.TP +.B 0 +Print declaration. +.TP +.B 1 +Print declaration and body. +.PP +Return 0 if +.I func +cannot be found. +.RE +.TP +.B "void cin_quit()" +Flush output and exit +.IR cin . +If all else fails, +use +.IR _exit(2) . +.TP +.B "int cin_reset()" +Preserve function definitions, +zero bss variables, +and restore initialized data variables to their original values. +Return 0 if +state cannot be reset. +.TP +.B "void cin_return()" +Return from a call to +.BR cin_system . +.TP +.BI "void cin_run(" string ) +Set +.BR cin_argv[1] , +.BR cin_argv[2] , +\&... +and +.B cin_argc +from +.I string +and then +.BR "main(cin_argc, cin_argv)" . +.HP +.BI "int cin_spy(" func , +.IB name , +.IB mod , +.IB ref ) +.br +Trace variable references and modifications. +If +.I mod +is not +.BR "(char *)0" , +place the C-language statement specified by +.I mod +after the variable +.I name +is modified in the function +.IR func . +If +.I ref +is not +.BR "(char *)0" , +place the C-language statement specified by +.I ref +before the variable +.I name +is referenced in the function +.IR func . +If function value +.I func +is +.BR "(char *)0" , +search all functions. +Return 0 if +.I name +cannot be found in +.IR func . +.TP +.B "void cin_step()" +Step over function calls +to the next C-language statement in the current or previous function. +.TP +.B "void cin_stepin()" +Step into any function to the next C-language statement. +.TP +.B "void cin_stepout()" +Step out of the current function back to the next C-language statement +in the previous function. +.HP +.BI "int cin_stopin(" func , +.IB string ) +.br +If +.I string +is +.BR "(char *)0" , +place a +.B cin_system +before the first +executable line in the function +.IR func , +either in the current view or wherever +.I func +can be found. +Otherwise, +place the C-language statement specified by +.I string +before the first +executable line in the function +.IR func , +either in the current view or wherever it can be found. +Thus, +.IR string +is read and evaluated +within the prevailing context of the function +without stopping execution. +Return 0 if function +.I func +cannot be found. +.TP +.BI "char *cin_sync(" string ) +Where +.I string +is: +.RS +.TP +.B filename +Return the non-interactive C source file name being executed. +.TP +.B lineno +Return the non-interactive C source line number being executed. +.RE +.TP +.B "void cin_system()" +Start a +.BR cin_read - cin_eval - cin_print +loop. +.HP +.BI "int cin_unbreak(" name , +.IB line , +.IB string ) +.br +Clear a +.B cin_break +or a +.B cin_stopin +in file +.I name +before line number +.I line +with string +.IR string . +Return 0 if +.B cin_break +or +.B cin_stopin +cannot be cleared. +.TP +.BI "int cin_unload(" name ) +Unload the object file +.IR name . +Return 0 if +.I name +cannot be unloaded. +.HP +.BI "int cin_unspy(" func , +.IB name , +.IB mod , +.IB ref ) +.br +Remove the C-language statement specified by +.I mod +after the variable +.I name +is modified, +and the C-language statement specified by +.I ref +before the variable +.I name +is referenced in the function +.IR func . +Return 0 if spy cannot be cleared. +.HP +.BI "int cin_unstopin(" func , +.IB string ) +.br +Clear a +.B cin_stopin +or +.B cin_break +at the first +executable line in the function +.I func +with string +.I string +in either the current view or wherever +.I func +can be found. +Return 0 if the +.B cin_stopin +or +.B cin_break +cannot be cleared. +.HP +.BI "int cin_unwrapper(" func , +.IB before , +.IB after ) +.br +Remove the call of function +.I before +before the function +.I func +is called. +Remove the call of function +.I after +after the function +.I func +is called. +Return 0 if +.I func +cannot be found. +.TP +.BI "int cin_view(" name ) +Change the current view to +.IR name . +Return 0 if the view cannot be found. +.HP +.BI "int cin_wrapper(" func , +.IB before , +.IB after ) +.br +If +.I before +is not +.BR "(void (*)())0" , +call the function +.I before +with the arguments of function +.I func +before the function +.I func +is called. +If +.I after +is not +.BR "(long (*)())0" , +call the function +.I after +with the argument of the return value of function +.I func +after the function +.I func +is called. +The return value of function +.I after +is substituted for the return value of function +.IR func . +Return 0 if +.I name +cannot be found either in the current view or any other view. +.TP +.B "extern int cin_argc" +The number of elements passed to the interpreted program. +.TP +.B "extern char **cin_argv" +An array of the arguments passed to the interpreted program. +.TP +.B "extern char *cin_filename" +The current C source file name being executed. +.TP +.B "extern int cin_level" +The number of nested calls to +.BR cin_system . +.TP +.B "extern char *cin_libpath" +A colon +.RB ( : ) +-separated list of libraries to search for undefined routines +(by default, +the libraries specified on the command line and +.FR -lc ). +.TP +.B "extern int cin_lineno" +The current C source line number being executed. +.TP +.B "extern char *cin_prompt" +The interactive mode prompt (by default, +the string +.RB `` cin> " '')." +.PP +These are some of the less frequently used functions and variables in +.IR cin . +They are primarily used by +.I cin +library or language developers. +.TP +.BI "enode *cin_compile(" code ) +Analyze +.I code +and return an optimized program. +Return +.B "(enode *)0" +if +.I code +cannot be compiled. +.TP +.BI "int cin_epp(" func ) +Print the +.BR enode s +for function +.IR func . +Return 0 if +.I func +cannot be found. +.TP +.BI "enode *cin_eprint(" code ) +Print the +.I code +as +.BR enode s. +Return the argument. +.HP +.BI "char *cin_error_code_set(" message , +.IB string ) +.br +Where +.I message +is: +.RS +.TP +.B dynamic error +When +.I cin +detects +a divide by zero, +a modulus by zero, +a null pointer access, +or +an abnormal signal +execute the C-language statement specified by +.IR string . +.TP +.B undefined function +When +.I cin +detects an undefined function execute the C-language statement specified by +.IR string . +.TP +.B undefined symbol +When +.I cin +detects +an undefined symbol execute the C-language statement specified by +.IR string . +.PP +If +.I string +is +.BR "(char *)0" , +execute +.BR cin_system() . +Return the old +.I string +for +.IR message . +.RE +.TP +.BI "enode *cin_eval(" code ) +Execute the +.I code +as if it were present in the program where +.B cin_eval +is called. +Return the resulting program. +.TP +.BI "ident *cin_find_ident(" name ) +If +.I name +is not +.BR "(char *)0" , +return the identifier for the variable +.I name +either in the current view or wherever +.I name +can be found. +If +.I name +is +.BR "(char *)0" , +return the identifier for the previous non- +.B "(char *)0" +value of the variable +.I name +in the next view where +.I name +can be found. +Return +.B "(ident *)0" +if +.I name +cannot be found. +.TP +.BI "struct nlist *cin_find_nlist(" addr ) +Return the loader symbol table entry for the external address +.IR addr . +Return +.B "(struct nlist *)0" +if +.I addr +cannot be found. +.HP +.BI "void (*cin_info_set())(" string , +.IB routine ) +.br +Inform +.B cin_info +that it should call +.I routine +when it is passed +.IR string . +Return the old +.I routine +for +.IR string . +.TP +.BI "char *cin_ltof(" line ) +Return the function name at line number +.I line +in the current view. +Return +.B "(char *)0" +if a function cannot be found for +.IR line . +.TP +.BI "void cin_pop(" level ) +Replace +.I level +interpreted function calls from the stack with +.BR cin_system . +.HP +.BI "enode *cin_print(" code , +.IB level ) +.br +Print the +.I code +as C-language code. +Where +.I level +is: +.RS +.TP +.B 0 +Print declaration. +.TP +.B 1 +Print declaration and body. +.PP +Return the +.I code +argument. +.RE +.TP +.BI "enode *cin_read(" string ) +Read +.I string +and return a program. +Return +.B "(enode *)0" +if +.I string +cannot be parsed. +.TP +.BI "char *cin_slashify(" string ) +Return a pointer to storage obtained from +.IR malloc (3) +and there create a character array from +.I string +by translating +backspace, +form feed, +newline, +carriage return, +horizontal tab, +vertical tab, +backslash, +single quote, +and double quote +into +.BR \eb , +.BR \ef , +.BR \en , +.BR \er , +.BR \et , +.BR \ev , +.BR \e\e , +.BR \e' , +and +.B \e" +respectively. +Other non-printable characters are translated into +.BI \e ddd +octal notation. +.TP +.B "extern int cin_err_fd" +.IR Cin 's +standard error file descriptor. +.TP +.B "extern int cin_in_fd" +.IR Cin 's +standard input file descriptor. +.TP +.B "extern int cin_out_fd" +.IR Cin 's +standard output file descriptor. +.TP +.B "extern stackelem *cin_stack" +The trace of function calls. +.TP +.B "extern view *cin_views" +The list of available views. +.SH EXAMPLES +.TP +The world's shortest ``Hello world'' program. +.EX +cin> printf("Hello world\en"); +Hello world +(int)12 +.EE +.TP +Setting breakpoints and tracing function calls. +.EX +$ cin -lcin +cin> int f(x) { return x <= 1 ? 1 : x * f(x - 1); } +extern int f(); +cin> cin_stopin("f", (char*)0); +/tmp/cin006795: 1: f: set breakpoint: (char *)0 +(int)1 +cin> f(2); +/tmp/int006795: 1: f: stopped execution: +cin> cin_return(); +/tmp/int006795: 1: f: stopped execution: +cin> (void)cin_info("where"); +/tmp/cin006795: 5: cin_system: info: where: () +/tmp/cin006795: 1: f: info: where: (x = (int)1) +/tmp/cin006795: 1: f: info: where: (x = (int)2) +/tmp/cin006795: 3: cin_system: info: where: () +cin> x; +(int)1 +cin> cin_return(); +(int)2 +cin> cin_quit(); +$ +.EE +.SH FILES +.TF /usr/include/cin.h +.TP +.F /tmp/cin* +default interactive log +.TP +.F /usr/include/cin.h +various function and variable declarations +.TP +.F /usr/lib/libcin.a +various predefined functions +.TP +.F $HOME/.cin.c +interpreter startup file +.HP +other files as in +.IR cc (1) +.SH "SEE ALSO" +.I "Cin User Manual" +.br +.I "Cin Reference Manual" +.br +B. W. Kernighan and D. M. Ritchie, +.IR "The C Programming Language" , +Prentice-Hall, +1978 +.br +.IR lint (1), +.IR ar (1), +.IR cc (1) +.SH BUGS +The addresses of +.IR etext , +.IR edata , +and +.I end +are not meaningful with incrementally loaded code. diff --git a/static/unix-v10/man1/cite.1 b/static/unix-v10/man1/cite.1 new file mode 100644 index 00000000..2d8dc908 --- /dev/null +++ b/static/unix-v10/man1/cite.1 @@ -0,0 +1,98 @@ +.TH CITE 1 +.CT 1 writing_troff +.SH NAME +cite \- process citations in a document +.SH SYNOPSIS +.B cite +[ +.B -s +] +[ +.B -u +] +[ +.I files +] +.SH DESCRIPTION +.I Cite +is a +.IR troff (1) +preprocessor for forward and backward references. +It copies the +.I files +or the standard input to standard output, +observing lines of the forms +.IP +\f5\&.CD "\fIkey\f5" "\fIdefinition\f5" +.br +\&.CU "\fIkey\f5"\fItext +.EE +.LP +Each +.B .CD +line is remembered. +A later +.B .CU +with the same +.I key +will be replaced by the +.I definition +for that key; the +.I text +will be copied verbatim. +If no definition is yet available for a +.B .CU +reference, the key will be replaced by +.BR ZZ . +.PP +At the location of each +.B .CD +command, +.I cite +causes +.I troff +to send the line (with macro substitutions) +to the standard error file. +The resulting definitions may be included at the beginning of another +.I cite-troff +run, effectively eliminating forward references. +Unfortunately, the definition file +may contain obsolete definitions (included +from a previous run) plus other +.I troff +messages. +These should be deleted using option +.BR -s . +.PP +The options are +.TP +.B -s +Place only the latest definitions +on the standard output; shunt +.RI non -cite +data to standard error. +.TP +.B -u +Place on standard error a list of undefined or unused citations. +.SH EXAMPLES +.EX +cite file.defs file | troff -ms 2>temp.defs >/dev/null +cite -s temp.defs >file.defs +cite file.defs file | troff -ms 2>temp.defs | lp +.EE +.br +.ns +.IP +Run +.I cite-troff +to collect updated definitions in +.BR temp.defs . +.br +Eliminate old definitions, putting updates back in +.BR file.defs . +.br +Run +.IR cite-troff +again, using latest definitions. +.SH SEE ALSO +.IR troff (1) diff --git a/static/unix-v10/man1/clear.1 b/static/unix-v10/man1/clear.1 new file mode 100644 index 00000000..7e3f6f21 --- /dev/null +++ b/static/unix-v10/man1/clear.1 @@ -0,0 +1,14 @@ +.TH CLEAR 1 +.SH NAME +clear \- clear terminal screen +.SH SYNOPSIS +.B clear +.SH DESCRIPTION +.I Clear +clears the screen of the terminal on its standard output. +It depends upon the environment variable TERM to +know how to do it. +.SH FILES +.F /etc/termcap +.SH SEE ALSO +.IR term (7) diff --git a/static/unix-v10/man1/cmp.1 b/static/unix-v10/man1/cmp.1 new file mode 100644 index 00000000..05113c09 --- /dev/null +++ b/static/unix-v10/man1/cmp.1 @@ -0,0 +1,30 @@ +.pa 1 +.he 'CMP (I)'1/15/73'CMP (I)' +.ti 0 +NAME cmp -- compare two files +.sp +.ti 0 +SYNOPSIS cmp___ file918 file928 +.sp +.ti 0 +DESCRIPTION The two files are +compared for identical contents. +Discrepancies are noted +by giving the offset and the differing words, +all in octal. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO proof(I) +.sp +.ti 0 +DIAGNOSTICS Messages +are given for inability to open either argument, premature +EOF on either argument, and incorrect usage. +.sp +.ti 0 +BUGS If +the shorter of the two files is of odd length, +cmp acts as if a null byte had been appended to it. diff --git a/static/unix-v10/man1/column.1 b/static/unix-v10/man1/column.1 new file mode 100644 index 00000000..316a062f --- /dev/null +++ b/static/unix-v10/man1/column.1 @@ -0,0 +1,143 @@ +.TH COLUMN 1 +.CT 1 files writing_output +.SH NAME +col, 2, 3, 4, 5, 6, mc, fold, expand \- column alignment +.SH SYNOPSIS +.B col +[ +.B -bfx +] +.PP +.B 2 +[ +.I file +] +.PP +.B mc +[ +.B - +] +[ +.BI - N +] +[ +.B -t +] +[ +.I file ... +] +.PP +.B fold +[ +.BI - N +] +[ +.I file ... +] +.PP +.B expand +[ +.BI - stops +] +[ +.I file ... +] +.SH DESCRIPTION +These programs rearrange files for appearance's sake. +All read the standard input and write the standard output. +Some optionally read from files instead. +.PP +.I Col +overlays lines to expunge reverse line feeds +(ESC-7) +and half line feeds (ESC-9 and ESC-8) +as produced by +.I nroff +for .2C in +.IR ms (6) +and for +.IR tbl (1). +It normally emits only full line feeds; +option +.B -f +(fine) allows half line feeds too. +Option +.B -b +removes backspaces, printing just one of each pile of overstruck +characters. +.I Col +normally converts white space to tabs; +option +.B -x +overrides this feature. +Other escaped characters and non-printing characters, except for +SO and SI, are ignored. +.PP +.I Col +should not be used for printing on an HP ThinkJet printer with +.I think +.RI ( thinkblt (9.1)), +which performs the +.I col +function itself. +.PP +Commands +.I "2, 3, 4, 5, 6" +convert their input to 2-, 3-, 4-, 5-, or 6-column form, +with consecutive input lines arranged across each row. +.PP +.I Fold +inserts newlines after each +.I N +characters (default +.IR n =80, +or +.IR mux (9.1) +window size) +of long lines. +.PP +.I Mc +splits the input into as many columns as will fit in +.I N +print positions (default +.IR N =80). +Under option +.B - +each input line ending in a colon +.L : +is printed separately (see example). +On output, multiple spaces are converted to tabs; this +is suppressed by option +.BR -t . +.PP +.I Expand +replaces tabs by spaces. +The optional +.I stops +argument is a comma-separated list of tab stops, counted from 0; +default is every 8 columns. +.SH EXAMPLES +.TP +.L +tbl file | nroff -ms | col | hp +Format some tables for printing on typewriters; +use +.I col +to remove reverse line feeds and +.I hp +(see +.IR ul (1)) +to do underlining, etc., on an HP terminal. +.TP +.L +ls directory1 directory2 | mc - +List files in multiple columns, separated by directory. +.SH SEE ALSO +.IR pr (1) +.SH BUGS +.I Col +can't back up more than 128 lines or +handle more than 800 characters per line, +and understands +.L VT +(013) as reverse line feed. diff --git a/static/unix-v10/man1/comm.1 b/static/unix-v10/man1/comm.1 new file mode 100644 index 00000000..3ce8bb63 --- /dev/null +++ b/static/unix-v10/man1/comm.1 @@ -0,0 +1,48 @@ +.th COMM I 8/21/73 +.sh NAME +comm \*- print lines common to two files +.sh SYNOPSIS +.bd comm +[ +.bd \*- +[ +.bd 123 +] +] file1 file2 +[ +file3 +] +.sh DESCRIPTION +.it Comm +reads +.it file1 +and +.it file2, +which should be in sort, +and produces a three column output: lines only in +.it file1; +lines only in +.it file2; +and lines in both files. +.s3 +If +.it file3 +is given, the output will be placed there; +otherwise it will be written on the standard output. +.s3 +Flags 1, 2, or 3 suppress printing of the corresponding +column. +Thus +.bd comm +.bd \*-12 +prints only the lines common to the two files; +.bd comm +.bd \*-23 +prints only lines in the first file but not in the second; +.bd comm +.bd \*-123 +is a no-op. +.s3 +.sh "SEE ALSO" +uniq(\|I\|), proof(\|I\|), cmp(\|I\|) +.sh BUGS diff --git a/static/unix-v10/man1/compress.1 b/static/unix-v10/man1/compress.1 new file mode 100644 index 00000000..bebae189 --- /dev/null +++ b/static/unix-v10/man1/compress.1 @@ -0,0 +1,238 @@ +.PU +.TH COMPRESS 1 local +.SH NAME +compress, uncompress, zcat \- compress and expand data +.SH SYNOPSIS +.ll +8 +.B compress +[ +.B \-f +] [ +.B \-v +] [ +.B \-c +] [ +.B \-V +] [ +.B \-b +.I bits +] [ +.I "name \&..." +] +.ll -8 +.br +.B uncompress +[ +.B \-f +] [ +.B \-v +] [ +.B \-c +] [ +.B \-V +] [ +.I "name \&..." +] +.br +.B zcat +[ +.B \-V +] [ +.I "name \&..." +] +.SH DESCRIPTION +.I Compress +reduces the size of the named files using adaptive Lempel-Ziv coding. +Whenever possible, +each file is replaced by one with the extension +.B "\&.Z," +while keeping the same ownership modes, access and modification times. +If no files are specified, the standard input is compressed to the +standard output. +Compressed files can be restored to their original form using +.I uncompress +or +.I zcat. +.PP +The +.B \-f +option will force compression of +.I name. +This is useful for compressing an entire directory, +even if some of the files do not actually shrink. +If +.B \-f +is not given and +.I compress +is run in the foreground, +the user is prompted as to whether an existing file should be overwritten. +.PP +The +.B \-c +option makes +.I compress/uncompress +write to the standard output; no files are changed. +The nondestructive behavior of +.I zcat +is identical to that of +.I uncompress +.B \-c. +.PP +.I Compress +uses the modified Lempel-Ziv algorithm popularized in +"A Technique for High Performance Data Compression", +Terry A. Welch, +.I "IEEE Computer," +vol. 17, no. 6 (June 1984), pp. 8-19. +Common substrings in the file are first replaced by 9-bit codes 257 and up. +When code 512 is reached, the algorithm switches to 10-bit codes and +continues to use more bits until the +limit specified by the +.B \-b +flag is reached (default 16). +.I Bits +must be between 9 and 16. The default can be changed in the source to allow +.I compress +to be run on a smaller machine. +.PP +After the +.I bits +limit is attained, +.I compress +periodically checks the compression ratio. If it is increasing, +.I compress +continues to use the existing code dictionary. However, +if the compression ratio decreases, +.I compress +discards the table of substrings and rebuilds it from scratch. This allows +the algorithm to adapt to the next "block" of the file. +.PP +Note that the +.B \-b +flag is omitted for +.I uncompress, +since the +.I bits +parameter specified during compression +is encoded within the output, along with +a magic number to ensure that neither decompression of random data nor +recompression of compressed data is attempted. +.PP +.ne 8 +The amount of compression obtained depends on the size of the +input, the number of +.I bits +per code, and the distribution of common substrings. +Typically, text such as source code or English +is reduced by 50\-60%. +Compression is generally much better than that achieved by +Huffman coding (as used in +.IR pack ), +or adaptive Huffman coding +.RI ( compact ), +and takes less time to compute. +.PP +Under the +.B \-v +option, +a message is printed yielding the percentage of +reduction for each file compressed. +.PP +If the +.B \-V +option is specified, the current version and compile options are printed on +stderr. +.PP +Exit status is normally 0; +if the last file is larger after (attempted) compression, the status is 2; +if an error occurs, exit status is 1. +.SH "SEE ALSO" +pack(1), compact(1) +.SH "DIAGNOSTICS" +Usage: compress [\-dfvcV] [\-b maxbits] [file ...] +.in +8 +Invalid options were specified on the command line. +.in -8 +Missing maxbits +.in +8 +Maxbits must follow +.BR \-b \. +.in -8 +.IR file : +not in compressed format +.in +8 +The file specified to +.I uncompress +has not been compressed. +.in -8 +.IR file : +compressed with +.I xx +bits, can only handle +.I yy +bits +.in +8 +.I File +was compressed by a program that could deal with +more +.I bits +than the compress code on this machine. +Recompress the file with smaller +.IR bits \. +.in -8 +.IR file : +already has .Z suffix -- no change +.in +8 +The file is assumed to be already compressed. +Rename the file and try again. +.in -8 +.IR file : +filename too long to tack on .Z +.in +8 +The file cannot be compressed because its name is longer than +12 characters. +Rename and try again. +This message does not occur on BSD systems. +.in -8 +.I file +already exists; do you wish to overwrite (y or n)? +.in +8 +Respond "y" if you want the output file to be replaced; "n" if not. +.in -8 +uncompress: corrupt input +.in +8 +A SIGSEGV violation was detected which usually means that the input file has +been corrupted. +.in -8 +Compression: +.I "xx.xx%" +.in +8 +Percentage of the input saved by compression. +(Relevant only for +.BR \-v \.) +.in -8 +-- not a regular file: unchanged +.in +8 +When the input file is not a regular file, +(e.g. a directory), it is +left unaltered. +.in -8 +-- has +.I xx +other links: unchanged +.in +8 +The input file has links; it is left unchanged. See +.IR ln "(1)" +for more information. +.in -8 +-- file unchanged +.in +8 +No savings is achieved by +compression. The input remains virgin. +.in -8 +.SH "BUGS" +Although compressed files are compatible between machines with large memory, +.BR \-b \12 +should be used for file transfer to architectures with +a small process data space (64KB or less, as exhibited by the DEC PDP +series, the Intel 80286, etc.) diff --git a/static/unix-v10/man1/compressdir.1 b/static/unix-v10/man1/compressdir.1 new file mode 100644 index 00000000..3514120f --- /dev/null +++ b/static/unix-v10/man1/compressdir.1 @@ -0,0 +1,33 @@ +.PU +.TH COMPRESSDIR 1 local +.SH NAME +compressdir, uncompressdir \- compress and uncompress directories of files +.SH SYNOPSIS +.ll +8 +.B compressdir +[ flags ] [ +.I "directory \&..." +] +.ll -8 +.br +.B uncompressdir +[ flags ] [ +.I "directory \&..." +] +.SH DESCRIPTION +Recursively decends each specified directory and compresses each +file. +Each file is replaced by a file with the extension +.B "\&.Z," +but only if the file got smaller. +If no directories are specified, +the compression is applied to all files starting with the current directory. +Compressed files can be restored to their original form by running +.I uncompressdir +on the directories. +.PP +The +.I flags +specified are passed to the compress(1) program. +.SH "SEE ALSO" +compress(1) diff --git a/static/unix-v10/man1/con.1 b/static/unix-v10/man1/con.1 new file mode 100644 index 00000000..8d7dfa66 --- /dev/null +++ b/static/unix-v10/man1/con.1 @@ -0,0 +1,176 @@ +.TH CON 1 +.CT 1 comm_mach +.SH NAME +con, rx \- remote login and execution +.SH SYNOPSIS +.B con +[ +.B -l +] +.I machine +.PP +.B rx +[ +.B -n +] +.I machine +[ +.I command-word ... +] +.PP +.BI /usr/bin/m/ machine +[ +.I command-word ... +] +.SH DESCRIPTION +.I Con +connects to the computer whose network address is +.I machine +and logs in if possible. +Standard input and output go to the local machine. +Option +.B -l +prevents automatic login; a normal login dialog ensues. +.PP +The quit signal (control-\e) is a local escape. +It prompts with the local machine name and +.BR >> . +Legitimate responses to the prompt are +.TP \w'\fL!\fIcommand\ \ 'u +.B i +Send a quit [sic] signal to the remote machine. +.PD0 +.TP +.BR q , " x" ", or " . +Exit. +.TP +.B b +Send a break. +.TP +.BI ! command +Execute +.I command +locally. +.PD +.PP +.I Rx +executes one shell command +on the remote machine as if logged in there, +but with local standard input and output. +Unquoted shell metacharacters in the command +are interpreted +locally, quoted ones remotely. +The assignment +.B REXEC=1 +appears in the remote environment. +With no arguments, +.I rx +just diagnoses availability. +Option +.B -n +ignores sporadic end-of-file indications on a +sick network. +.PP +Network addresses for both +.I con +and +.I rx +have the form +.IB network ! host +or simply +.I host. +Supported networks are +.L dk +(Datakit) and +.L tcp +(TCP/IP, usually Ethernet). +.PP +Directory +.F /usr/bin/m +contains machine names as commands: +.BI /usr/bin/m/ machine +with no argument runs an appropriate flavor of +.I con +for the named +.I machine. +If given arguments, +.BI /usr/bin/m/ machine +runs +.I rx +with those arguments. +If +.F /usr/bin/m +is in the +.IR sh (1) +search path, +the names become commands for navigating the +local cluster. +.SH EXAMPLES +.TP +.L +rx overthere cat file1 >file2 +Copy remote +.I file1 +to local +.IR file2 . +.TP +.L +rx overthere cat file1 ">file2" +Copy remote +.I file1 +to remote +.IR file2. +.TP +.L +eqn paper | rx pipe troff -ms | rx arend lp +Parallel processing: +do each stage of a pipeline on a different machine. +.SH FILES +.TF /usr/ipc/lib/auth* +.TP +.F /usr/ipc/lib/auth* +authentication +.TP +.F /usr/ipc/lib/serv* +servers +.SH "SEE ALSO" +.IR push (1), +.IR dcon (1), +.IR cu (1), +.IR dkmgr (8), +.IR svcmgr (8), +.IR tcpmgr (8), +.IR ipc (3) +.br +D. L. Presotto, +`Interprocess Communication in the Eighth Edition +.SM UNIX +System', +this manual, Volume\ 2 +.SH BUGS +The remote standard error and standard output are combined +and go inseparably to the local standard output. +.br +Under +.I rx, +a program +that should behave specially towards terminals may not: +.IR sh (1) +will not prompt, +.IR vi (1) +will not manage the screen, etc. +.I Nrx +(see +.IR dcon (1)) +avoids this trouble, but has others of its own. +.br +.I Con +and +.I rx +may not guess the right kind of connection. +In case of trouble, try the programs in +.IR dcon (1). +.br +The names in +.F /usr/bin/m +are conventions, not actual network addresses. diff --git a/static/unix-v10/man1/cospan.1 b/static/unix-v10/man1/cospan.1 new file mode 100644 index 00000000..d672e447 --- /dev/null +++ b/static/unix-v10/man1/cospan.1 @@ -0,0 +1,315 @@ +.TH COSPAN 1 +.CT 1 prog_other +.SH NAME +cospan, psr \- coordination-specification analyzer +and pretty-printer +.SH SYNOPSIS +.B cospan +[ +.I option ... +] +.I file +.PP +.B psr +[ +.I option ... +] +.I file ... +.SH DESCRIPTION +.I Cospan +analyzes the behavior of coordinating systems. +Three types of input +.I file +are distinguished by suffix: +.TP +.B .sr +The normal case. +The file contains +.SM S/R +specifications as described in the reference, possibly including +.IR cpp (8) +commands, to be compiled into +.TP +.B .c +C code, which is compiled and linked into +.TP +.B .an +executable analysis program. +.PP +The options are +.TP +.BI -D name = value +.PD0 +.TP +.BI -D name +.TP +.BI -U name +.TP +.BI -I directory +Same as in +.IR cc (1). +.PD +.TP +.B -v +Produce verbose syntax error messages. +.TP +.B -p +Suppress file-name/line-number information +for embedded C code. +.TP +.B -i +Produce an implementation version of +the C code. +.TP +.B -m +Produce a merged version of +the C code. +.TP +.B -n +Compile no transition checks (except deadlocks). +By default, the analysis gives a warning on the first stability violation +and aborts on non-semi-deterministic resolutions. +.TP +.B -b +Use C built-in (machine-dependent) +integer division operations. +By default, an +.SM S/R +integer division +.IB i / j +results in the greatest integer not higher then the +mathematical quotient, and the remainder operation +.IB i " mod " j +yields a result in the range +.RI 0... j \-1. +.TP +.BI -C opt +Pass option +.BI - opt +to the C compiler. +.TP +.BI -h size +Set the state hash table size to the next prime after +.I size ; +default is 32693. +.TP +.BI -H size +Similar to +.BI \-h size, +except that states which produce hash collisions are ignored. +.TP +.BI -t secs +Abort analysis after +the specified number of seconds. +.TP +.BI -V s +Produce verbose analysis output messages. +The string +.I s, +by default +.LR awel , +specifies message types: +.I advice, warning, error, +or +.I list. +.TP +.B -r +Restart previously aborted analysis. +Recovery is possible in cases of hangups, interrupts, +software termination signals (due to a kill command), +timer alarms, no-space conditions, and aborts due to +.B -c +or +.B -L +requests. +.TP +.B -d +Abort on deadlocks. +By default, the analysis gives a warning on the first deadlock and reports +the number of deadlocks in the analysis summary. +.TP +.B -s +Abort on stability failures. +.TP +.B -l +List analysis on standard output. +.TP +.BI -T +Time each translation and execution step. +.PD0 +.TP +.BI -L number,number +List analysis, reporting states +in the given range, and abort after searching the upper bound. +.TP +.BI -c number +Check each back-edge in the +component identified by the given +.I number +and abort analysis. +.PP +.TP +.BI CC= name +Use an alternate C compiler; default is +.BR CC=cc . +.PD +.PP +The order of the arguments is arbitrary, and several options may +be combined to a single argument, provided that option +values are terminated by white space. +Options can be preset by defining the environment variable +.BR COSPANOPT . +.PP +.I Psr +is a pretty-printer for +.SM S/R +specifications. +It places +.IR troff (1) +or +.I nroff +output on the standard output. +.PP +The options, which may be reset between +.I files, +are: +.TP +.B -d +Show current date in page footer. +.TP +.B -m +show file modification time in footer (default). +.TP +.BI -n N +Number every +.IR N th +line; default is +.BR -n0, +no numbering. +.TP +.BI -s N +Set type size +to +.I N +points, vertical spacing to +.IR N /60 +inch, and tab stops every +.IR N /20 +inch. +.TP +.BI -w N +Set the page width +to +.IR N +(in +.I troff +notation). +.PD0 +.TP +.BI -f F +Use the +.I troff +font +.I F +and its italic, bold, and bold-italic counterparts. +Known fonts are +Bembo, CW, Euro, Futura, H, Hcond, Memphis, Optima, PA, R. +.TP +.BI -. request +Issue a +.I troff +request before printing the next +.IR file . +Multiple requests may be given. +.TP +.BI -T name +As in +.I troff. +Applies to all +.IR files . +If +.I name +is omitted, +.I troff +input is written on standard output. +.PD +.PP +.I Psr +sets the escape character to +.SM BEL. +The \e character is copied without +interpretation, to allow printing of embedded C code. +The macro +.B .SO +may be used to include +.I troff +text that uses the standard +escape character. +.PP +The strings +.BI DT , +.BI L , +and +.B R +contain today's date, the left-hand, and the right-hand side +of the page header, respectively. +.SH EXAMPLES +.TP +.B COSPANOPT=-TlImyincludedir cospan myfile.sr +equivalent to +.BR "cospan -T -l -Imyincludedir myfile.sr" . +.TP +.B psr -.ll6.5i -.lt6.5i myfile.sr +equivalent to +.BR "psr -w6.5i myfile.sr +.SH "FILES" +.TF /usr/lib/tmac/tmac.psr +.TP +.F *.R +recovery data +.PD0 +.TP +.F *.T +error track +.TP +.F *.L +list output ( +.B -L +option) +.TP +.F *.M +merging data +.TP +.F /tmp/srtm?????? +temporary file +.TP +.F /usr/lib/sr +S/R compiler +.TP +.F /usr/lib/sr_D +S/R verbose compiler +.TP +.F /usr/include/crank.h +header file +.TP +.F /usr/include/crunch.h +implementation header file +.TP +.F /usr/libsr.a +analysis object library +.TP +.F /usr/lib/pretty +.I troff +preprocessor +.TP +.F /usr/lib/tmac/tmac.psr +.I troff +macros +.PD +.SH "SEE ALSO" +Z. Har'El and R. P. Kurshan, +.I +COSPAN User's Guide, +11211-871009-21TM, AT&T Bell Laboratories. +.IR spin (1), +.IR d202 (1) diff --git a/static/unix-v10/man1/courier.1 b/static/unix-v10/man1/courier.1 new file mode 100644 index 00000000..598707e9 --- /dev/null +++ b/static/unix-v10/man1/courier.1 @@ -0,0 +1,36 @@ +.TH COURIER 1 +.SH NAME +courier \- remote procedure call compiler +.SH SYNOPSIS +.B courier +[ +.B \-x +] +.I specfile +.SH DESCRIPTION +.I Courier +compiles the Mesa-like specification language +associated with the Courier remote procedure call protocol. +.SH FILES +.ta \w'prog_server.c 'u +prog.cr Courier specification file for \fIprog\fR. +.PP +The following files are generated by courier from the above: +.LP +prog.h definitions and typedefs +.br +prog_stubs.c mappings between C and Courier +.br +prog_server.c server routines +.br +prog_client.c client routines +.SH BUGS +Note that program names are restricted to 5 characters to keep +generated filenames within the 14 character limit. +.SH "SEE ALSO" +Eric C. Cooper, +`Writing Distributed Programs with Courier' +.br +`Courier: The Remote Procedure Call Protocol,' +Xerox System Integration Standard 038112, +December 1981. diff --git a/static/unix-v10/man1/cp.1 b/static/unix-v10/man1/cp.1 new file mode 100644 index 00000000..b1f61d95 --- /dev/null +++ b/static/unix-v10/man1/cp.1 @@ -0,0 +1,34 @@ +.pa 1 +.he 'CP (I)'1/24/73'CP (I)' +.ti 0 +NAME cp -- copy +.sp +.ti 0 +SYNOPSIS cp__ file918 file928 +.sp +.ti 0 +DESCRIPTION The +first file is copied onto the second. +The mode and owner of the target file +are preserved if it already +existed; the mode of the source file +is used otherwise. +.sp +If file928 is a directory, then the target +file is a file in that directory with the file-name +of file918. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO cat(I), pr(I), mv(I) +.sp +.ti 0 +DIAGNOSTICS Error returns are +checked at every system call, and +appropriate diagnostics are produced. +.sp +.ti 0 +BUGS Copying +a file onto itself destroys its contents. diff --git a/static/unix-v10/man1/cpio.1 b/static/unix-v10/man1/cpio.1 new file mode 100644 index 00000000..b4129266 --- /dev/null +++ b/static/unix-v10/man1/cpio.1 @@ -0,0 +1,184 @@ +.TH CPIO 1 +.CT 1 comm_users +.SH NAME +cpio \- copy file archives in and out +.SH SYNOPSIS +.B cpio +.BI -o +[ +.I acBv +] +.PP +.B cpio +.BI -i +[ +.I BcdmrtuvfsSb6 +] +[ +.I pattern ... +] +.PP +.B cpio +.BI -p +[ +.I adlmruv +] +.I directory +.SH DESCRIPTION +.B Cpio -o +(copy out) +reads the standard input to obtain a list of path names +and copies those files onto the +standard output +together with path name and status information. +.PP +.B Cpio -i +(copy in) +extracts files from the +standard input +which is assumed to be the product of a previous +.BR "cpio -o" . +Only files with names that match the +.I patterns +are selected. +.I Patterns +are given in the name-generating notation of +.IR sh (1); +the default is +.BR * +(all files). +The extracted files are conditionally created and copied +into the current directory tree +based upon the options described below. +File ownership is preserved if possible. +.PP +.B Cpio -p +(pass) reads from the standard input a list of path names +of files to copy +into the destination +.IR directory. +.PP +The options are: +.PP +.PD 0 +.TP +.B a +Reset access times of input files after they have been copied. +.TP +.B B +Input/output is to be blocked 5,120 bytes to the record +(does not apply to the +.I pass\^ +option; meaningful only with data directed to or from +.FR /dev/rmt? ). +.TP +.B d +.I Directories\^ +are to be created as needed. +.TP +.B c +Write header +information in +.SM ASCII +character form for portability. +.TP +.B r +Interactively rename +files. +An empty name (newline only) causes a file to be skipped. +.TP +.B t +Print a table of contents +of the input. +No files are created. +.TP +.B u +Copy unconditionally +(normally an older file will not overwrite a newer file). +.TP +.B v +(Verbose) +List file +names; +.B -vt +looks like +.BR "ls -l" . +.TP +.B l +Whenever possible, link files rather than copying them. +Usable only with +the +.B -p +option. +.TP +.B m +Retain previous file modification time. +This option is ineffective on directories that are being copied. +.TP +.B f +Copy in all files except those in +.I patterns.\^ +.TP +.B s +Swap bytes. +Use only with the +.B -i +option. +.TP +.B S +Swap halfwords. +Use only with the +.B -i +option. +.TP +.B b +Swap both bytes and halfwords. +Use only with the +.B -i +option. +.TP +.B 6 +Process an old (i.e., +.SM UNIX Sixth\^ +Edition format) +file. +Only useful with +.B -i +(copy in). +.PD +.SH EXAMPLES +.TP +.L +ls | cpio -oc >/dev/mt1 +Copy the contents of the current directory to a tape. +.PP +.EX +mkdir newdir +cd olddir +find . -print | cpio -pd ../newdir +.EE +.ns +.IP +Reproduce a directory hierarchy; +.B newdir +must exist. +.PD +.SH SEE ALSO +.IR ar (1), +.IR bundle (1), +.IR tar (1), +.IR find (1), +.IR cpio (5), +.IR cp (1) +.SH BUGS +Path names are restricted to 128 characters. +.br +Does not know about symbolic links. +.br +If there are too many unique linked files, +linking information is lost. +.br +Only the super-user can copy special files. +.br +The archive size is reported in archaic `blocks' of 512 bytes. +.\" @(#)cpio.1 5.2 of 5/18/82 diff --git a/static/unix-v10/man1/cq.1 b/static/unix-v10/man1/cq.1 new file mode 100644 index 00000000..18561305 --- /dev/null +++ b/static/unix-v10/man1/cq.1 @@ -0,0 +1,50 @@ +Section s22 returned 0. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Decimal and octal/hex constants sometimes give + different results when assigned to longs. +Section s241 returned 0. +Section s243 returned 0. +Section s244 returned 0. +Section s25 returned 0. + 8 bits in chars. + 32 bits in ints. + 16 bits in shorts. + 32 bits in longs. + 32 bits in unsigneds. + 32 bits in floats. + 64 bits in doubles. +5.960464e-08 is the least number that can be added to 1. (float). +1.387779e-17 is the least number that can be added to 1. (double). +Section s26 returned 0. +Section s4 returned 0. +Section s61 returned 0. +Section s626 returned 0. +Section s71 returned 0. +Section s72 returned 0. +Section s757 returned 0. +Section s7813 returned 0. +Section s714 returned 0. +Section s715 returned 0. +Register count for char is unreliable. +Register count for pointer is unreliable. +Register count for int is unreliable. +Section s81 returned 0. +Section s84 returned 0. +char alignment: 1 +short alignment: 2 +int alignment: 4 +long alignment: 4 +unsigned alignment: 4 +float alignment: 4 +double alignment: 4 +Sign extension in fields +Be especially careful with 1-bit fields! +Section s85 returned 0. +Section s86 returned 0. +Section s88 returned 0. +Section s9 returned 0. + +No errors detected. diff --git a/static/unix-v10/man1/cray.1 b/static/unix-v10/man1/cray.1 new file mode 100644 index 00000000..b91ce672 --- /dev/null +++ b/static/unix-v10/man1/cray.1 @@ -0,0 +1,124 @@ +.TH CRAY 1 +.CT 1 comm_mach +.SH NAME +cray \- run job remotely on cray-xmp +.SH SYNOPSIS +.B cray +[ +.I options +] +[ +.I jcl +[ +[ +.B + +] +.I file +] +... +] +.PP +.B c1sts +.SH DESCRIPTION +.I Cray +submits the named files to the MHCC Cray. +A plus sign stands for a Cray end-of-file, +which separates jcl, source code, and data files. +A file +.I jcl +that doesn't exist in the current directory +is searched for in the directory specified +by the shell environment variable CRAYJCL. +.TP 1i +.BI -o ofile +Send the job output to +.I ofile. +.TP 1i +.BI -p pages +If the jcl file doesn't begin with a job line, +.I cray +supplies one. +In that case, +the option +.BI -p n +specifies the maximum number of pages +(actually, 45-line blocks) +that can be output; +the default is 100. +.TP 1i +.BI -s n +Run the job at service grade +.I n. +(The default is +.LR -s2 ; +fastest is +.LR -s1 ; +long runs should be at +.Lr -s4 .) +.TP 1i +.BI -t seconds +If the jcl file doesn't begin with a job line, +specifies the maximum running time; +the default is 15. +.PP +.I C1sts +gives a status report on the cray. +.SH EXAMPLES +Run a Fortran program and subroutine, reading from param +on unit 5 and writing on unit 6, +.TP +.L +cray -o output ft + main.f sub.f + param +Run a Fortran program and subroutine, reading from param +on unit 5 and writing on unit 6, +.SH BUGS +Because of a problem with the standard input, the +.B -o +option is required for remote execution via Datakit. +.SH "THE FIRST TIME" +An incredible amount of busywork is required the first +time you use this command. +Get an account on mhuxa by filing an application +at the computer center accounting office, +and if possible get password aging turned off. +Set up your +.F .profile +on your home machine +and in the comp center so that remote execution in either +direction gets a silent login. +(Otherwise, you may get a `Bad magic number' +message when trying to execute a push.) +(Try copying the mhuxa file +.FR /a2/c1127/ehg/.profile .) +Set up mail forwarding from mhuxa to your +home machine. +(See +.FR /usr/mail/ehg .) +Now, from your home machine, execute +.IP +.L dkcc mhcc/mhuxa who +.LP +to be sure everything is set up properly. +The first time you try this, you will be asked to +login; this legalizes remote execution from your +home machine onto the comp center machine. +For the reverse direction, +your user id should be added to +.F /etc/procuid.local +on your home machine. +Export +.L CRAYJCL=/n/swift/usr/lsrc/cmd/cray/Jcl +from your +.F .profile +on your home machine. +By editing a copy of +.F /usr/bin/crmail +in your bin, +you can arrange for special action to be taken when +your output arrives; the default is mail notification. +Now you should be ready to run; try +.IP +.L cray -s1 -o tmp audit +.LP +If you don't get some job output back from the cray within a few minutes, +something is wrong. diff --git a/static/unix-v10/man1/cref.1 b/static/unix-v10/man1/cref.1 new file mode 100644 index 00000000..ffa705bb --- /dev/null +++ b/static/unix-v10/man1/cref.1 @@ -0,0 +1,119 @@ +.pa 1 +.he 'CREF (I)'2/5/1973'CREF (I)' +.fi +.in16 +.ti 0 +NAME cref -- make cross reference listing +.sp +.fi +.in16 +.ti 0 +SYNOPSIS cref____ [ -soi____ ] name1 ... +.sp +.fi +.in16 +.ti 0 +DESCRIPTION CREF makes a cross reference listing +of files in assembler format (see AS(I)). The files +named as arguments in the command +line are searched for symbols (defined as a succession +of alphabetics, numerics, '.', or '_', beginning with +an alphabetic, '.', or '_'). +.sp +The output report is in four columns: +.nf +.sp +(1) (2) (3) (4) +symbol file see text as it appears in file + below +.sp +.fi +The third column contains the line number in the file +by default; the -s__ option +will cause the most recent name symbol to appear there +instead. +.sp +CREF uses either an ignore______ file or an only____ file. +If the -i__ option is given, it will take the next +file name to be an ignore______ file; if the -o__ option +is given, the next file name will be taken as an only____ file. +Ignore______ and only____ +files should be lists of symbols separated by new lines. +If an ignore______ file is given, all the symbols in the file +will be ignored in columns (1) and (3) of the output. +If an only____ file is given, only symbols appearing in the +file will appear in column (1), but column (3) +will still contain the most recent name encountered. +Only one of the options -i__ or +-o__ may be used. +The default setting +is -i__; +all symbols predefined in the assembler are ignored, except +system call names, which are collected. +.sp +.fi +.in16 +.ti 0 +FILES Files t.0, t.1, t.2, t.3 are +created (i.e. DESTROYED) in the working +directory of anyone +using cref____. This nuisance will be repaired soon. +The output is left in file s.out_____ in the working directory. +.sp +/usr/lem/s.tab is the default ignore______ file. +.sp +.fi +.in16 +.ti 0 +SEE ALSO as(I) +.sp +.fi +.in16 +.ti 0 +DIAGNOSTICS "line too long" -- input line >131 characters +.nf +.sp +"symbol too long" -- symbol >20 characters +.sp +"too many symbols" -- >10 symbols in line +.sp +"cannot open t.?" -- bug; see LEM +.sp +"cannot fork; examine t.out" -- can't start sort____ +.in 20 +.fi +process; intermediate results are on files t.0___, +t.1___,t.2___,t.3___. These may be sorted independently +and the results concatenated by the user. +.sp +.in 16 +"cannot sort" -- odd response from sort____; examine +.in 20 +intermediate results, as above. +.sp +.in16 +.nf +"impossible situation" -- system bug +.sp +"cannot open" file -- one of the input names +.in 20 +.fi +cannot be opened for reading. +.in16 +.nf +.sp +.fi +.in16 +.ti 0 +BUGS The destruction of +unsuspecting users' files should soon be fixed. +A limitation that may eventually go away is the +restriction to assembler language format. There +should be options for FORTRAN, English, etc., lexical +analysis. +.sp +File names longer than eight characters cause misalignment in +the output if tabs are set at every eighth column. + +It should +write on the standard output, not s.out. diff --git a/static/unix-v10/man1/cropmarks.1 b/static/unix-v10/man1/cropmarks.1 new file mode 100644 index 00000000..e991eb80 --- /dev/null +++ b/static/unix-v10/man1/cropmarks.1 @@ -0,0 +1,101 @@ +.ds dQ /usr/lib/postscript +.TH CROPMARKS 1 "DWB 3.2" +.SH NAME +.B cropmarks +\- add cropmarks to PostScript files +.SH SYNOPSIS +\*(mBcropmarks\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B Cropmarks +surrounds PostScript +.I files +with code that centers each page and adds cropmarks to the four +corners. +The results are written on the standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.I files, +the standard input is read. +The following +.I options +are understood: +.TP 1.0i +.OP \-d +Disable the device-dependent PostScript code that expands page sizes. +.TP 1.0i +.OP \-h num +Set the height of each page to +.I num +inches. +The default is 11.0 inches. +.TP 1.0i +.OP \-s +Scale pages so cropmarks always show up. +Primarily for debugging and development on devices that don't adjust +page sizes. +.TP 1.0i +.OP \-w num +Set the width of each page to +.I num +inches. +The default is 8.5 inches. +.TP 1.0i +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/cropmarks.ps . +.PP +Height and width set with the +.OP \-h +and +.OP \-w +options adjust the size of the image area available on each sheet +of paper. +Neither suggests anything about the orientation of output in that area. +Cropmarks are printed at each corner just outside the image area. +.SH EXAMPLES +.PP +Print text in a 6.5\(mu8.0-inch area centered on each sheet of paper: +.EX +troff -mm \f2file\fP | dpost | cropmarks -w6.5 -h8.0 | \f2spool +.EE +Print landscape text in exactly the same 6.5\(mu8.0-inch area: +.EX +troff -mm \f2file\fP | dpost -pland | cropmarks -w6.5 -h8.0 | \f2spool +.EE +In both examples, +.I spool +is the spooling command used to send PostScript output to a local printer. +.SH WARNINGS +.PP +Device-dependent PostScript code to automatically expand page sizes may +only work on Linotronic 200P typesetters that use 12-inch-wide paper. +Local changes to the printer-dependent code can be made in the +.MW expandpagesize +procedure defined in +.MR \*(dQ/cropmarks.ps . +.PP +The PostScript +.I files +must be reasonably well behaved. +There are no guarantees, particularly if the input +.I files +redefine the +.MW showpage +operator. +.PP +The program is unsupported and may not be included in future releases. +.SH FILES +.MW \*(dQ/cropmarks.ps +.SH SEE ALSO +.BR dpost (1), +.BRpostio (1), +.BR troff (1) diff --git a/static/unix-v10/man1/crypt.1 b/static/unix-v10/man1/crypt.1 new file mode 100644 index 00000000..1f366e1d --- /dev/null +++ b/static/unix-v10/man1/crypt.1 @@ -0,0 +1,41 @@ +.pa 1 +.he 'CRYPT (I)'10/23/71'CRYPT (I)' +.ti 0 +NAME crypt -- encode/decode +.sp +.ti 0 +SYNOPSIS crypt_____ [ password ] +.sp +.ti 0 +DESCRIPTION crypt_____ +is an exact implementation of Boris Hagelin's +cryptographic machine called the M-209 by the U. S. Army [1]. + +crypt_____ reads from the standard input file and writes +on the standard output. +For a given password, the encryption +process is idempotent; +that is, + + crypt znorkle cypher + crypt znorkle ' `(' `)' +form separate words. +If doubled in `&&', `|\|\||', `<<' or `>>' these pairs form single words. +These parser metacharacters may be made part of other words, or prevented their +special meaning, by preceding them with `\e'. +A newline preceded by a `\e' is equivalent to a blank. +.PP +In addition strings enclosed in matched pairs of quotations, +`\*(aa', `\*(ga' or `"', +form parts of a word; metacharacters in these strings, including blanks +and tabs, do not form separate words. +These quotations have semantics to be described subsequently. +Within pairs of `\'' or `"' characters a newline preceded by a `\e' gives +a true newline character. +.PP +When the shell's input is not a terminal, +the character `#' introduces a comment which continues to the end of the +input line. +It is prevented this special meaning when preceded by `\e' +and in quotations using `\`', `\'', and `"'. +.sh "Commands" +A simple command is a sequence of words, the first of which +specifies the command to be executed. +A simple command or +a sequence of simple commands separated by `|' characters +forms a pipeline. +The output of each command in a pipeline is connected to the input of the next. +Sequences of pipelines may be separated by `;', and are then executed +sequentially. +A sequence of pipelines may be executed without immediately +waiting for it to terminate by following it with an `&'. +.PP +Any of the above may be placed in `(' `)' to form a simple command (which +may be a component of a pipeline, etc.) +It is also possible to separate pipelines with `|\|\||' or `&&' indicating, +as in the C language, +that the second is to be executed only if the first fails or succeeds +respectively. (See +.I Expressions.) +.sh "Jobs" +The shell associates a \fIjob\fR with each pipeline. It keeps +a table of current jobs, printed by the +\fIjobs\fR command, and assigns them small integer numbers. When +a job is started asynchronously with `&', the shell prints a line which looks +like: +.PP +.DT + [1] 1234 +.PP +indicating that the jobs which was started asynchronously was job number +1 and had one (top-level) process, whose process id was 1234. +.PP +If you are running a job and wish to do something else you may hit the key +\fB^Z\fR (control-Z) which sends a STOP signal to the current job. +The shell will then normally indicate that the job has been `Stopped', +and print another prompt. You can then manipulate the state of this job, +putting it in the background with the \fIbg\fR command, or run some other +commands and then eventually bring the job back into the foreground with +the foreground command \fIfg\fR. A \fB^Z\fR takes effect immediately and +is like an interrupt in that pending output and unread input are discarded +when it is typed. There is another special key \fB^Y\fR which does +not generate a STOP signal until a program attempts to +.IR read (2) +it. +This can usefully be typed ahead when you have prepared some commands +for a job which you wish to stop after it has read them. +.PP +A job being run in the background will stop if it tries to read +from the terminal. Background jobs are normally allowed to produce output, +but this can be disabled by giving the command ``stty tostop''. +If you set this +tty option, then background jobs will stop when they try to produce +output like they do when they try to read input. +.PP +There are several ways to refer to jobs in the shell. The character +`%' introduces a job name. If you wish to refer to job number 1, you can +name it as `%1'. Just naming a job brings it to the foreground; thus +`%1' is a synonym for `fg %1', bringing job 1 back into the foreground. +Similarly saying `%1 &' resumes job 1 in the background. +Jobs can also be named by prefixes of the string typed in to start them, +if these prefixes are unambiguous, thus `%ex' would normally restart +a suspended +.IR ex (1) +job, if there were only one suspended job whose name began with +the string `ex'. It is also possible to say `%?string' +which specifies a job whose text contains +.I string, +if there is only one such job. +.PP +The shell maintains a notion of the current and previous jobs. +In output pertaining to jobs, the current job is marked with a `+' +and the previous job with a `\-'. The abbreviation `%+' refers +to the current job and `%\-' refers to the previous job. For close +analogy with the syntax of the +.I history +mechanism (described below), +`%%' is also a synonym for the current job. +.sh "Status reporting" +This shell learns immediately whenever a process changes state. +It normally informs you whenever a job becomes blocked so that +no further progress is possible, but only just before it prints +a prompt. This is done so that it does not otherwise disturb your work. +If, however, you set the shell variable +.I notify, +the shell will notify you immediately of changes of status in background +jobs. +There is also a shell command +.I notify +which marks a single process so that its status changes will be immediately +reported. By default +.I notify +marks the current process; +simply say `notify' after starting a background job to mark it. +.PP +When you try to leave the shell while jobs are stopped, you will +be warned that `You have stopped jobs.' You may use the \fIjobs\fR +command to see what they are. If you do this or immediately try to +exit again, the shell will not warn you a second time, and the suspended +jobs will be terminated. +.sh Substitutions +We now describe the various transformations the shell performs on the +input in the order in which they occur. +.sh "History substitutions" +History substitutions place words from previous command input as portions +of new commands, making it easy to repeat commands, repeat arguments +of a previous command in the current command, or fix spelling mistakes +in the previous command with little typing and a high degree of confidence. +History substitutions begin with the character `!' and may begin +.B anywhere +in the input stream (with the proviso that they +.B "do not" +nest.) +This `!' may be preceded by an `\e' to prevent its special meaning; for +convenience, a `!' is passed unchanged when it is followed by a blank, +tab, newline, `=' or `('. +(History substitutions also occur when an input line begins with `\*(ua'. +This special abbreviation will be described later.) +Any input line which contains history substitution is echoed on the terminal +before it is executed as it could have been typed without history substitution. +.PP +Commands input from the terminal which consist of one or more words +are saved on the history list. +The history substitutions reintroduce sequences of words from these +saved commands into the input stream. +The size of which is controlled by the +.I history +variable; the previous command is always retained, regardless of its value. +Commands are numbered sequentially from 1. +.PP +For definiteness, consider the following output from the +.I history +command: +.PP +.DT +.br + \09 write michael +.br + 10 ex write.c +.br + 11 cat oldwrite.c +.br + 12 diff *write.c +.PP +The commands are shown with their event numbers. +It is not usually necessary to use event numbers, but the current event +number can be made part of the +.I prompt +by placing an `!' in the prompt string. +.PP +With the current event 13 we can refer to previous events by event +number `!11', relatively as in `!\-2' (referring to the same event), +by a prefix of a command word +as in `!d' for event 12 or `!wri' for event 9, or by a string contained in +a word in the command as in `!?mic?' also referring to event 9. +These forms, without further modification, simply reintroduce the words +of the specified events, each separated by a single blank. +As a special case `!!' refers to the previous command; thus `!!' +alone is essentially a +.I redo. +.PP +To select words from an event we can follow the event specification by +a `:' and a designator for the desired words. +The words of a input line are numbered from 0, +the first (usually command) word being 0, the second word (first argument) +being 1, etc. +The basic word designators are: +.PP +.DT +.nf + 0 first (command) word + \fIn\fR \fIn\fR\|'th argument + \*(ua first argument, i.e. `1' + $ last argument + % word matched by (immediately preceding) ?\fIs\fR\|? search + \fIx\fR\|\-\fIy\fR range of words + \-\fIy\fR abbreviates `0\-\fIy\fR\|' + * abbreviates `\*(ua\-$', or nothing if only 1 word in event + \fIx\fR\|* abbreviates `\fIx\fR\|\-$' + \fIx\fR\|\- like `\fIx\fR\|*' but omitting word `$' +.fi +.PP +The `:' separating the event specification from the word designator +can be omitted if the argument selector begins with a `\*(ua', `$', `*' +`\-' or `%'. +After the optional word designator can be +placed a sequence of modifiers, each preceded by a `:'. +The following modifiers are defined: +.ta .5i 1.2i +.PP +.nf + h Remove a trailing pathname component, leaving the head. + r Remove a trailing `.xxx' component, leaving the root name. + e Remove all but the extension `.xxx' part. + s/\fIl\fR\|/\fIr\fR\|/ Substitute \fIl\fR for \fIr\fR + t Remove all leading pathname components, leaving the tail. + & Repeat the previous substitution. + g Apply the change globally, prefixing the above, e.g. `g&'. + p Print the new command but do not execute it. + q Quote the substituted words, preventing further substitutions. + x Like q, but break into words at blanks, tabs and newlines. +.fi +.PP +Unless preceded by a `g' the modification is applied only to the first +modifiable word. With substitutions, it is an error for no word to be +applicable. +.PP +The left hand side of substitutions are not regular expressions in the sense +of the editors, but rather strings. +Any character may be used as the delimiter in place of `/'; +a `\e' quotes the delimiter into the +.IR l "" +and +.IR r "" +strings. +The character `&' in the right hand side is replaced by the text from +the left. +A `\e' quotes `&' also. +A null +.IR l "" +uses the previous string either from a +.IR l "" +or from a +contextual scan string +.IR s "" +in `!?\fIs\fR\|?'. +The trailing delimiter in the substitution may be omitted if a newline +follows immediately as may the trailing `?' in a contextual scan. +.PP +A history reference may be given without an event specification, e.g. `!$'. +In this case the reference is to the previous command unless a previous +history reference occurred on the same line in which case this form repeats +the previous reference. +Thus `!?foo?\*(ua !$' gives the first and last arguments +from the command matching `?foo?'. +.PP +A special abbreviation of a history reference occurs when the first +non-blank character of an input line is a `\*(ua'. +This is equivalent to `!:s\*(ua' providing a convenient shorthand for substitutions +on the text of the previous line. +Thus `\*(ualb\*(ualib' fixes the spelling of +`lib' +in the previous command. +Finally, a history substitution may be surrounded with `{' and `}' +if necessary to insulate it from the characters which follow. +Thus, after `ls \-ld ~paul' we might do `!{l}a' to do `ls \-ld ~paula', +while `!la' would look for a command starting `la'. +.PP +.if n .ul +\fBQuotations\ with\ \'\ and\ "\fR +.PP +The quotation of strings by `\'' and `"' can be used +to prevent all or some of the remaining substitutions. +Strings enclosed in `\'' are prevented any further interpretation. +Strings enclosed in `"' are yet variable and command expanded +as described below. +.PP +In both cases the resulting text becomes (all or part of) a single word; +only in one special case (see +.I "Command Substitition" +below) does a `"' quoted string yield parts of more than one word; +`\'' quoted strings never do. +.sh "Alias substitution" +The shell maintains a list of aliases which can be established, displayed +and modified by the +.I alias +and +.I unalias +commands. +After a command line is scanned, it is parsed into distinct commands and +the first word of each command, left-to-right, is checked to see if it +has an alias. +If it does, then the text which is the alias for that command is reread +with the history mechanism available +as though that command were the previous input line. +The resulting words replace the +command and argument list. +If no reference is made to the history list, then the argument list is +left unchanged. +.PP +Thus if the alias for `ls' is `ls \-l' the command `ls /usr' would map to +`ls \-l /usr', the argument list here being undisturbed. +Similarly if the alias for `lookup' was `grep !\*(ua /etc/passwd' then +`lookup bill' would map to `grep bill /etc/passwd'. +.PP +If an alias is found, the word transformation of the input text +is performed and the aliasing process begins again on the reformed input line. +Looping is prevented if the first word of the new text is the same as the old +by flagging it to prevent further aliasing. +Other loops are detected and cause an error. +.PP +Note that the mechanism allows aliases to introduce parser metasyntax. +Thus we can `alias print \'pr \e!* \||\| lpr\'' to make a command which +.I pr's +its arguments to the line printer. +.sh "Variable substitution" +The shell maintains a set of variables, each of which has as value a list +of zero or more words. +Some of these variables are set by the shell or referred to by it. +For instance, the +.I argv +variable is an image of the shell's argument list, and words of this +variable's value are referred to in special ways. +.PP +The values of variables may be displayed and changed by using the +.I set +and +.I unset +commands. +Of the variables referred to by the shell a number are toggles; +the shell does not care what their value is, +only whether they are set or not. +For instance, the +.I verbose +variable is a toggle which causes command input to be echoed. +The setting of this variable results from the +.B \-v +command line option. +.PP +Other operations treat variables numerically. +The `@' command permits numeric calculations to be performed and the result +assigned to a variable. +Variable values are, however, always represented as (zero or more) strings. +For the purposes of numeric operations, the null string is considered to be +zero, and the second and subsequent words of multiword values are ignored. +.PP +After the input line is aliased and parsed, and before each command +is executed, variable substitution +is performed keyed by `$' characters. +This expansion can be prevented by preceding the `$' with a `\e' except +within `"'s where it +.B always +occurs, and within `\''s where it +.B never +occurs. +Strings quoted by `\*(ga' are interpreted later (see +.I "Command substitution" +below) so `$' substitution does not occur there until later, if at all. +A `$' is passed unchanged if followed by a blank, tab, or end-of-line. +.PP +Input/output redirections are recognized before variable expansion, +and are variable expanded separately. +Otherwise, the command name and entire argument list are expanded together. +It is thus possible for the first (command) word to this point to generate +more than one word, the first of which becomes the command name, +and the rest of which become arguments. +.PP +Unless enclosed in `"' or given the `:q' modifier the results of variable +substitution may eventually be command and filename substituted. +Within `"' a variable whose value consists of multiple words expands to a +(portion of) a single word, with the words of the variables value +separated by blanks. +When the `:q' modifier is applied to a substitution +the variable will expand to multiple words with each word separated +by a blank and quoted to prevent later command or filename substitution. +.PP +The following metasequences are provided for introducing variable values into +the shell input. +Except as noted, it is an error to reference a variable which is not set. +.HP 5 +$name +.br +.ns +.HP 5 +${name} +.br +Are replaced by the words of the value of variable +.I name, +each separated by a blank. +Braces insulate +.I name +from following characters which would otherwise be part of it. +Shell variables have names consisting of up to 20 letters and digits +starting with a letter. The underscore character is considered a letter. +.br +If +.I name +is not a shell variable, but is set in the environment, then +that value is returned (but \fB:\fR modifiers and the other forms +given below are not available in this case). +.HP 5 +$name[selector] +.br +.ns +.HP 5 +${name[selector]} +.br +May be used to select only some of the words from the value of +.I name. +The selector is subjected to `$' substitution and may consist of a single +number or two numbers separated by a `\-'. +The first word of a variables value is numbered `1'. +If the first number of a range is omitted it defaults to `1'. +If the last member of a range is omitted it defaults to `$#name'. +The selector `*' selects all words. +It is not an error for a range to be empty if the second argument is omitted +or in range. +.HP 5 +$#name +.br +.ns +.HP 5 +${#name} +.br +Gives the number of words in the variable. +This is useful for later use in a `[selector]'. +.HP 5 +$0 +.br +Substitutes the name of the file from which command input is being read. +An error occurs if the name is not known. +.HP 5 +$number +.br +.ns +.HP 5 +${number} +.br +Equivalent to `$argv[number]'. +.HP 5 +$* +.br +Equivalent to `$argv[*]'. +.PP +The modifiers `:h', `:t', `:r', `:q' and `:x' may be applied to +the substitutions above as may `:gh', `:gt' and `:gr'. +If braces `{' '}' appear in the command form then the modifiers +must appear within the braces. +.B "The current implementation allows only one `:' modifier on each `$' expansion." +.PP +The following substitutions may not be modified with `:' modifiers. +.HP 5 +$?name +.br +.ns +.HP 5 +${?name} +.br +Substitutes the string `1' if name is set, `0' if it is not. +.HP 5 +$?0 +.br +Substitutes `1' if the current input filename is know, `0' if it is not. +.HP 5 +$$ +.br +Substitute the (decimal) process number of the (parent) shell. +.HP 5 +$< +.br +Substitutes a line from the standard +input, with no further interpretation thereafter. It can be used +to read from the keyboard in a shell script. +.sh "Command and filename substitution" +The remaining substitutions, command and filename substitution, +are applied selectively to the arguments of builtin commands. +This means that portions of expressions which are not evaluated are +not subjected to these expansions. +For commands which are not internal to the shell, the command +name is substituted separately from the argument list. +This occurs very late, +after input-output redirection is performed, and in a child +of the main shell. +.sh "Command substitution" +Command substitution is indicated by a command enclosed in `\*(ga'. +The output from such a command is normally broken into separate words +at blanks, tabs and newlines, with null words being discarded, +this text then replacing the original string. +Within `"'s, only newlines force new words; blanks and tabs are preserved. +.PP +In any case, the single final newline does not force a new word. +Note that it is thus possible for a command substitution to yield +only part of a word, even if the command outputs a complete line. +.sh "Filename substitution" +If a word contains any of the characters `*', `?', `[' or `{' +or begins with the character `~', then that word is a candidate for +filename substitution, also known as `globbing'. +This word is then regarded as a pattern, and replaced with an alphabetically +sorted list of file names which match the pattern. +In a list of words specifying filename substitution it is an error for +no pattern to match an existing file name, but it is not required +for each pattern to match. +Only the metacharacters `*', `?' and `[' imply pattern matching, +the characters `~' and `{' being more akin to abbreviations. +.PP +In matching filenames, the character `.' at the beginning of a filename +or immediately following a `/', as well as the character `/' must +be matched explicitly. +The character `*' matches any string of characters, including the null +string. +The character `?' matches any single character. +The sequence `[...]' matches any one of the characters enclosed. +Within `[...]', +a pair of characters separated by `\-' matches any character lexically between +the two. +.PP +The character `~' at the beginning of a filename is used to refer to home +directories. +Standing alone, i.e. `~' it expands to the invokers home directory as reflected +in the value of the variable +.I home. +When followed by a name consisting of letters, digits and `\-' characters +the shell searches for a user with that name and substitutes their +home directory; thus `~ken' might expand to `/usr/ken' and `~ken/chmach' +to `/usr/ken/chmach'. +If the character `~' is followed by a character other than a letter or `/' +or appears not at the beginning of a word, +it is left undisturbed. +.PP +The metanotation `a{b,c,d}e' is a shorthand for `abe ace ade'. +Left to right order is preserved, with results of matches being sorted +separately at a low level to preserve this order. +This construct may be nested. +Thus `~source/s1/{oldls,ls}.c' expands to +`/usr/source/s1/oldls.c /usr/source/s1/ls.c' +whether or not these files exist without any chance of error +if the home directory for `source' is `/usr/source'. +Similarly `../{memo,*box}' might expand to `../memo ../box ../mbox'. +(Note that `memo' was not sorted with the results of matching `*box'.) +As a special case `{', `}' and `{}' are passed undisturbed. +.sh Input/output +The standard input and standard output of a command may be redirected +with the following syntax: +.HP 5 +< name +.br +Open file +.I name +(which is first variable, command and filename expanded) as the standard +input. +.HP 5 +<< word +.br +Read the shell input up to a line which is identical to +.I word. +.I Word +is not subjected to variable, filename or command substitution, +and each input line is compared to +.I word +before any substitutions are done on this input line. +Unless a quoting `\e', `"', `\*(aa' or `\*(ga' appears in +.I word +variable and command substitution is performed on the intervening lines, +allowing `\e' to quote `$', `\e' and `\*(ga'. +Commands which are substituted have all blanks, tabs, and newlines +preserved, except for the final newline which is dropped. +The resultant text is placed in an anonymous temporary file which +is given to the command as standard input. +.HP 5 +> name +.br +.ns +.HP 5 +>! name +.br +.ns +.HP 5 +>& name +.br +.ns +.HP 5 +>&! name +.br +The file +.I name +is used as standard output. +If the file does not exist then it is created; +if the file exists, its is truncated, its previous contents being lost. +.IP +If the variable +.I noclobber +is set, then the file must not exist or be a character special file (e.g. a +terminal or `/dev/null') or an error results. +This helps prevent accidental destruction of files. +In this case the `!' forms can be used and suppress this check. +.IP +The forms involving `&' route the diagnostic output into the specified +file as well as the standard output. +.I Name +is expanded in the same way as `<' input filenames are. +.HP 5 +>> name +.br +.ns +.HP 5 +>>& name +.br +.ns +.HP 5 +>>! name +.br +.ns +.HP 5 +>>&! name +.br +Uses file +.I name +as standard output like `>' but places output at the end of the file. +If the variable +.I noclobber +is set, then +it is an error for the file not to exist unless +one of the `!' forms is given. +Otherwise similar to `>'. +.PP +A command receives the environment in which the shell was +invoked as modified by the input-output parameters and +the presence of the command in a pipeline. +Thus, unlike some previous shells, commands run from a file of shell commands +have no access to the text of the commands by default; rather +they receive the original standard input of the shell. +The `<<' mechanism should be used to present inline data. +This permits shell command scripts to function as components of pipelines +and allows the shell to block read its input. +Note that the default standard input for a command run detached is +.B not +modified to be the empty file `/dev/null'; rather the standard input +remains as the original standard input of the shell. If this is a terminal +and if the process attempts to read from the terminal, then the process +will block and the user will be notified (see +.B Jobs +above.) +.PP +Diagnostic output may be directed through a pipe with the standard output. +Simply use the form `|\|&' rather than just `|'. +.sh Expressions +A number of the builtin commands (to be described subsequently) +take expressions, in which the operators are similar to those of C, with +the same precedence. +These expressions appear in the +.I @, +.I exit, +.I if, +and +.I while +commands. +The following operators are available: +.DT +.PP + |\|\|| && | \*(ua & == != =~ !~ <= >= < > << >> + \- * / % ! ~ ( ) +.PP +Here the precedence increases to the right, +`==' `!=' `=~' and `!~', `<=' `>=' `<' and `>', `<<' and `>>', `+' and `\-', +`*' `/' and `%' being, in groups, at the same level. +The `==' `!=' `=~' and `!~' operators compare their arguments as strings; +all others operate on numbers. +The operators `=~' and `!~' are like `!=' and `==' except that the right +hand side is a +.I pattern +(containing, e.g. `*'s, `?'s and instances of `[...]') +against which the left hand operand is matched. This reduces the +need for use of the +.I switch +statement in shell scripts when all that is really needed is pattern matching. +.PP +Strings which begin with `0' are considered octal numbers. +Null or missing arguments are considered `0'. +The result of all expressions are strings, +which represent decimal numbers. +It is important to note that no two components of an expression can appear +in the same word; except when adjacent to components of expressions which +are syntactically significant to the parser (`&' `|' `<' `>' `(' `)') +they should be surrounded by spaces. +.PP +Also available in expressions as primitive operands are command executions +enclosed in `{' and `}' +and file enquiries of the form `\-\fIl\fR name' where +.I l +is one of: +.PP +.DT +.nf + r read access + w write access + x execute access + e existence + o ownership + z zero size + f plain file + d directory +.fi +.PP +The specified name is command and filename expanded and then tested +to see if it has the specified relationship to the real user. +If the file does not exist or is inaccessible then all enquiries return +false, i.e. `0'. +Command executions succeed, returning true, i.e. `1', +if the command exits with status 0, otherwise they fail, returning +false, i.e. `0'. +If more detailed status information is required then the command +should be executed outside of an expression and the variable +.I status +examined. +.sh "Control flow" +The shell contains a number of commands which can be used to regulate the +flow of control in command files (shell scripts) and +(in limited but useful ways) from terminal input. +These commands all operate by forcing the shell to reread or skip in its +input and, due to the implementation, restrict the placement of some +of the commands. +.PP +The +.I foreach, +.I switch, +and +.I while +statements, as well as the +.I if\-then\-else +form of the +.I if +statement require that the major keywords appear in a single simple command +on an input line as shown below. +.PP +If the shell's input is not seekable, +the shell buffers up input whenever a loop is being read +and performs seeks in this internal buffer to accomplish the rereading +implied by the loop. +(To the extent that this allows, backward goto's will succeed on +non-seekable inputs.) +.sh "Builtin commands" +Builtin commands are executed within the shell. +If a builtin command occurs as any component of a pipeline +except the last then it is executed in a subshell. +.HP 5 +.B alias +.br +.ns +.HP 5 +.BR alias " name" +.br +.ns +.HP 5 +.BR alias " name wordlist" +.br +The first form prints all aliases. +The second form prints the alias for name. +The final form assigns the specified +.I wordlist +as the alias of +.I name; +.I wordlist +is command and filename substituted. +.I Name +is not allowed to be +.I alias +or +.I unalias. +.HP 5 +.B alloc +.br +Shows the amount of dynamic core in use, broken down into used and +free core, and address of the last location in the heap. +With an argument shows each used and free block on the internal dynamic +memory chain indicating its address, size, and whether it is used or free. +This is a debugging command and may not work in production versions of the +shell; it requires a modified version of the system memory allocator. +.HP 5 +.B bg +.br +.ns +.HP 5 +\fBbg\ %\fRjob\ ... +.br +Puts the current or specified jobs into the background, continuing them +if they were stopped. +.HP 5 +.B break +.br +Causes execution to resume after the +.I end +of the nearest enclosing +.I foreach +or +.I while. +The remaining commands on the current line are executed. +Multi-level breaks are thus possible by writing them all on one line. +.HP 5 +.B breaksw +.br +Causes a break from a +.I switch, +resuming after the +.I endsw. +.HP 5 +.BR case " label:" +.br +A label in a +.I switch +statement as discussed below. +.HP 5 +.B cd +.br +.ns +.HP 5 +.BR cd " name" +.br +.ns +.HP 5 +.B chdir +.br +.ns +.HP 5 +.BR chdir " name" +.br +Change the shells working directory to directory +.I name. +If no argument is given then change to the home directory of the user. +.br +If +.I name +is not found as a subdirectory of the current directory (and does not begin +with `/', `./' or `../'), then each +component of the variable +.I cdpath +is checked to see if it has a subdirectory +.I name. +Finally, if all else fails but +.I name +is a shell variable whose value begins with `/', then this +is tried to see if it is a directory. +.HP 5 +.B continue +.br +Continue execution of the nearest enclosing +.I while +or +.I foreach. +The rest of the commands on the current line are executed. +.HP 5 +.B default: +.br +Labels the default case in a +.I switch +statement. +The default should come after all +.I case +labels. +.HP 5 +.BR "dirs" +.br +Prints the directory stack; the top of the stack is at the left, +the first directory in the stack being the current directory. +.HP 5 +.BR echo " wordlist" +.br +.ns +.HP 5 +.BR "echo \-n" " wordlist" +.br +The specified words are written to the shells standard output, separated +by spaces, and terminated with a newline unless the +.B \-n +option is specified. +.HP 5 +.B else +.br +.ns +.HP 5 +.B end +.br +.ns +.HP 5 +.B endif +.br +.ns +.HP 5 +.B endsw +.br +See the description of the +.I foreach, +.I if, +.I switch, +and +.I while +statements below. +.HP 5 +.BR eval " arg ..." +.br +(As in +.IR sh (1).) +The arguments are read as input to the shell and the resulting +command(s) executed. This is usually used to execute commands +generated as the result of command or variable substitution, since +parsing occurs before these substitutions. See +.IR tset (1) +for an example of using +.I eval. +.HP 5 +.BR exec " command" +.br +The specified command is executed in place of the current shell. +.HP 5 +.B exit +.br +.ns +.HP 5 +.BR exit (expr) +.br +The shell exits either with the value of the +.I status +variable (first form) or with the value of the specified +.I expr +(second form). +.HP 5 +.B fg +.br +.ns +.HP 5 +\fBfg\ %\fRjob\ ... +.br +Brings the current or specified jobs into the foreground, continuing them if +they were stopped. +.HP 5 +.BR foreach " name (wordlist)" +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +.B end +.br +The variable +.I name +is successively set to each member of +.I wordlist +and the sequence of commands between this command and the matching +.I end +are executed. +(Both +.I foreach +and +.I end +must appear alone on separate lines.) +.IP +The builtin command +.I continue +may be used to continue the loop prematurely and the builtin +command +.I break +to terminate it prematurely. +When this command is read from the terminal, the loop is read up once +prompting with `?' before any statements in the loop are executed. +If you make a mistake typing in a loop at the terminal you can rub it out. +.HP 5 +.BR glob " wordlist" +.br +Like +.I echo +but no `\e' escapes are recognized and words are delimited +by null characters in the output. +Useful for programs which wish to use the shell to filename expand a list +of words. +.HP 5 +.BR goto " word" +.br +The specified +.I word +is filename and command expanded to yield a string of the form `label'. +The shell rewinds its input as much as possible +and searches for a line of the form `label:' +possibly preceded by blanks or tabs. +Execution continues after the specified line. +.HP 5 +.BR hashstat +.br +Print a statistics line indicating how effective the internal hash +table has been at locating commands (and avoiding +.I exec's). +An +.I exec +is attempted for each component of the +.I path +where the hash function indicates a possible hit, and in each component +which does not begin with a `/'. +.HP 5 +.B history +.br +.ns +.HP 5 +.BI history " n" +.br +.ns +.HP 5 +.BI "history \-r" " n" +.br +Displays the history event list; if \fIn\fR is given only the +.I n +most recent events are printed. +The +.B \-r +option reverses the order of printout to be most recent first +rather than oldest first. +.HP 5 +.BR if " (expr) command" +.br +If the specified expression evaluates true, then the single +.I command +with arguments is executed. +Variable substitution on +.IR command "" +happens early, at the same +time it does for the rest of the +.I if +command. +.I Command +must be a simple command, not +a pipeline, a command list, or a parenthesized command list. +Input/output redirection occurs even if +.I expr +is false, when command is +.B not +executed (this is a bug). +.HP 5 +.BR if " (expr) " "then" +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +.BR else " " "if\fR (expr2) \fBthen" +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +.B else +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +.B endif +.br +If the specified +.IR expr "" +is true then the commands to the first +.I else +are executed; else if +.IR expr2 "" +is true then the commands to the +second else are executed, etc. +Any number of +.I else-if +pairs are possible; only one +.I endif +is needed. +The +.I else +part is likewise optional. +(The words +.I else +and +.I endif +must appear at the beginning of input lines; +the +.I if +must appear alone on its input line or after an +.I else.) +.HP 5 +.B jobs +.br +.ns +.HP 5 +.B "jobs \-l" +.br +Lists the active jobs; given the +.B \-l +options lists process id's in addition to the normal information. +.HP 5 +\fBkill %\fRjob +.br +.ns +.HP 5 +\fBkill\ \-\fRsig\ \fB%\fRjob\ ... +.br +.ns +.HP 5 +\fBkill\fR\ pid +.br +.ns +.HP 5 +\fBkill\ \-\fRsig\ pid\ ... +.br +.ns +.HP 5 +\fBkill\ \-l\fR +.br +Sends either the TERM (terminate) signal or the +specified signal to the specified jobs or processes. +Signals are either given by number or by names (as given in +.I /usr/include/signal.h, +stripped of the prefix ``SIG''). +The signal names are listed by ``kill \-l''. +There is no default, saying just `kill' does not +send a signal to the current job. +If the signal being sent is TERM (terminate) or HUP (hangup), +then the job or process will be sent a CONT (continue) signal as well. +.HP +\fBlimit\fR +.br +.ns +.HP 5 +\fBlimit\fR \fIresource\fR +.br +.ns +.HP 5 +\fBlimit\fR \fIresource\fR \fImaximum-use\fR +.br +Limits the consumption by the current process and each process +it creates to not individually exceed \fImaximum-use\fR on the +specified \fIresource\fR. If no \fImaximum-use\fR is given, then +the current limit is printed; if no \fIresource\fR is given, then +all limitations are given. +.IP +Resources controllable currently include \fIcputime\fR (the maximum +number of cpu-seconds to be used by each process), \fIfilesize\fR +(the largest single file which can be created), \fIdatasize\fR +(the maximum growth of the data+stack region via +.IR sbrk (2) +beyond the end of the program text), \fIstacksize\fR (the maximum +size of the automatically-extended stack region), and \fIcoredumpsize\fR +(the size of the largest core dump that will be created). +.IP +The \fImaximum-use\fR may be given as a (floating point or integer) +number followed by a scale factor. For all limits other than \fIcputime\fR +the default scale is `k' or `kilobytes' (1024 bytes); +a scale factor of `m' or `megabytes' may also be used. +For +.I cputime +the default scaling is `seconds', while `m' for minutes +or `h' for hours, or a time of the form `mm:ss' giving minutes +and seconds may be used. +.IP +For both \fIresource\fR names and scale factors, unambiguous prefixes +of the names suffice. +.HP 5 +.B login +.br +Terminate a login shell, replacing it with an instance of +.B /bin/login. +This is one way to log off, included for compatibility with +.IR sh (1). +.HP 5 +.B logout +.br +Terminate a login shell. +Especially useful if +.I ignoreeof +is set. +.HP 5 +.B newgrp +.br +Changes the group identification of the caller; for details see +.IR newgrp (1). +A new shell is executed by +.I newgrp +so that the shell state is lost. +.HP 5 +.B nice +.br +.ns +.HP 5 +.BR nice " \+number" +.br +.ns +.HP 5 +.BR nice " command" +.br +.ns +.HP 5 +.BR nice " \+number command" +.br +The first form sets the +.I nice +for this shell to 4. +The second form sets the +.I nice +to the given number. +The final two forms run command at priority 4 and +.I number +respectively. +The super-user may specify negative niceness by using `nice \-number ...'. +Command is always executed in a sub-shell, and the restrictions +place on commands in simple +.I if +statements apply. +.HP 5 +.B nohup +.br +.ns +.HP 5 +.BR "nohup" " command" +.br +The first form can be used in shell scripts to cause hangups to be +ignored for the remainder of the script. +The second form causes the specified command to be run with hangups +ignored. +All processes detached with `&' are effectively +.I nohup'ed. +.HP 5 +.B notify +.br +.ns +.HP 5 +\fBnotify\ %\fRjob\ ... +.br +Causes the shell to notify the user asynchronously when the status of the +current or specified jobs changes; normally notification is presented +before a prompt. This is automatic if the shell variable +.I notify +is set. +.HP 5 +.B onintr +.br +.ns +.HP 5 +.BR onintr " \-" +.br +.ns +.HP 5 +.BR onintr " label" +.br +Control the action of the shell on interrupts. +The first form restores the default action of the shell on interrupts +which is to terminate shell scripts or to return to the terminal command +input level. +The second form `onintr \-' causes all interrupts to be ignored. +The final form causes the shell to execute a `goto label' when +an interrupt is received or a child process terminates because +it was interrupted. +.IP +In any case, if the shell is running detached and interrupts are +being ignored, all forms of +.I onintr +have no meaning and interrupts +continue to be ignored by the shell and all invoked commands. +.HP 5 +.BR "popd" +.br +.ns +.HP 5 +.BR "popd" " +n" +.br +Pops the directory stack, returning to the new top directory. +With a argument `+\fIn\fR' discards the \fIn\fR\|th +entry in the stack. +The elements of the directory stack are numbered from 0 starting at the top. +.HP 5 +.BR "pushd" +.br +.ns +.HP 5 +.BR "pushd" " name" +.br +.ns +.HP 5 +.BR "pushd" " +n" +.br +With no arguments, +.I pushd +exchanges the top two elements of the directory stack. +Given a +.I name +argument, +.I pushd +changes to the new directory (ala +.I cd) +and pushes the old current working directory +(as in +.I csw) +onto the directory stack. +With a numeric argument, rotates the \fIn\fR\|th argument of the directory +stack around to be the top element and changes to it. The members +of the directory stack are numbered from the top starting at 0. +.HP 5 +.BR rehash +.br +Causes the internal hash table of the contents of the directories in +the +.I path +variable to be recomputed. This is needed if new commands are added +to directories in the +.I path +while you are logged in. This should only be necessary if you add +commands to one of your own directories, or if a systems programmer +changes the contents of one of the system directories. +.HP 5 +.BR repeat " count command" +.br +The specified +.I command +which is subject to the same restrictions +as the +.I command +in the one line +.I if +statement above, +is executed +.I count +times. +I/O redirections occur exactly once, even if +.I count +is 0. +.HP 5 +.B set +.br +.ns +.HP 5 +.BR set " name" +.br +.ns +.HP 5 +.BR set " name=word" +.br +.ns +.HP 5 +.BR set " name[index]=word" +.br +.ns +.HP 5 +.BR set " name=(wordlist)" +.br +The first form of the command shows the value of all shell variables. +Variables which have other than a single word as value print as a parenthesized +word list. +The second form sets +.I name +to the null string. +The third form sets +.I name +to the single +.I word. +The fourth form sets +the +.I index'th +component of name to word; +this component must already exist. +The final form sets +.I name +to the list of words in +.I wordlist. +In all cases the value is command and filename expanded. +.IP +These arguments may be repeated to set multiple values in a single set command. +Note however, that variable expansion happens for all arguments before any +setting occurs. +.HP 5 +.BR setenv " name value" +.br +Sets the value of environment variable +.I name +to be +.I value, +a single string. +The most commonly used environment variable USER, TERM, and PATH +are automatically imported to and exported from the +.I csh +variables +.I user, +.I term, +and +.I path; +there is no need to use +.I setenv +for these. +.HP 5 +.B shift +.br +.ns +.HP 5 +.BR shift " variable" +.br +The members of +.I argv +are shifted to the left, discarding +.I argv[1]. +It is an error for +.I argv +not to be set or to have less than one word as value. +The second form performs the same function on the specified variable. +.HP 5 +.BR source " name" +.br +The shell reads commands from +.I name. +.I Source +commands may be nested; if they are nested too deeply the shell may +run out of file descriptors. +An error in a +.I source +at any level terminates all nested +.I source +commands. +Input during +.I source +commands is +.B never +placed on the history list. +.HP 5 +.B stop +.br +.ns +.HP 5 +\fBstop\ %\fRjob\ ... +.br +Stops the current or specified job which is executing in the background. +.HP 5 +.B suspend +.br +.ns +Causes the shell to stop in its tracks, much as if it had been sent a stop +signal with \fB^Z\fR. This is most often used to stop shells started by +.IR su (1). +.HP 5 +.BR switch " (string)" +.br +.ns +.HP 5 +.BR case " str1:" +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +\ +.B breaksw +.br +.ns +.HP 5 +\&... +.br +.ns +.HP 5 +.B default: +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +\ +.B breaksw +.br +.ns +.HP 5 +.B endsw +.br +Each case label is successively matched, against the specified +.I string +which is first command and filename expanded. +The file metacharacters `*', `?' and `[...]' may be used in the case labels, +which are variable expanded. +If none of the labels match before a `default' label is found, then +the execution begins after the default label. +Each case label and the default label must appear at the beginning of a line. +The command +.I breaksw +causes execution to continue after the +.I endsw. +Otherwise control may fall through case labels and default labels as in C. +If no label matches and there is no default, execution continues after +the +.I endsw. +.HP 5 +.B time +.br +.ns +.HP 5 +.BR time " command" +.br +With no argument, a summary of time used by this shell and its children +is printed. +If arguments are given +the specified simple command is timed and a time summary +as described under the +.I time +variable is printed. +If necessary, an extra shell is created to print the time +statistic when the command completes. +.HP 5 +.B umask +.br +.ns +.HP 5 +.BR umask " value" +.br +The file creation mask is displayed (first form) or set to the specified +value (second form). The mask is given in octal. Common values for +the mask are 002 giving all access to the group and read and execute +access to others or 022 giving all access except no write access for +users in the group or others. +.HP 5 +.BR unalias " pattern" +.br +All aliases whose names match the specified pattern are discarded. +Thus all aliases are removed by `unalias *'. +It is not an error for nothing to be +.I unaliased. +.HP 5 +.BR unhash +.br +Use of the internal hash table to speed location of executed programs +is disabled. +.HP 5 +\fBunlimit\fR \fIresource\fR +.br +.ns +.HP 5 +\fBunlimit\fR +.br +Removes the limitation on \fIresource\fR. If no \fIresource\fR +is specified, then all \fIresource\fR limitations are removed. +.HP 5 +.BR unset " pattern" +.br +All variables whose names match the specified pattern are removed. +Thus all variables are removed by `unset *'; this has noticeably +distasteful side-effects. +It is not an error for nothing to be +.I unset. +.HP 5 +.BR unsetenv " pattern" +.br +Removes all variables whose name match the specified pattern from the +environment. See also the +.I setenv +command above and +.IR printenv (1). +.HP 5 +.B wait +.br +All background jobs are waited for. +It the shell is interactive, then an interrupt can disrupt the wait, +at which time the shell prints names and job numbers of all jobs +known to be outstanding. +.HP 5 +.BR while " (expr)" +.br +.ns +.HP 5 +\ ... +.br +.ns +.HP 5 +.B end +.br +While the specified expression evaluates non-zero, the commands between +the +.I while +and the matching end are evaluated. +.I Break +and +.I continue +may be used to terminate or continue the loop prematurely. +(The +.I while +and +.I end +must appear alone on their input lines.) +Prompting occurs here the first time through the loop as for the +.I foreach +statement if the input is a terminal. +.HP 5 +\fB%\fRjob +.br +Brings the specified job into the foreground. +.HP 5 +\fB%\fRjob \fB&\fR +.br +Continues the specified job in the background. +.HP 5 +.B "@" +.br +.ns +.HP 5 +.BR "@" " name = expr" +.br +.ns +.HP 5 +.BR "@" " name[index] = expr" +.br +The first form prints the values of all the shell variables. +The second form sets the specified +.I name +to the value of +.I expr. +If the expression contains `<', `>', `&' or `|' then at least +this part of the expression must be placed within `(' `)'. +The third form assigns the value of +.I expr +to the +.I index'th +argument of +.I name. +Both +.I name +and its +.I index'th +component must already exist. +.IP +The operators `*=', `+=', etc are available as in C. +The space separating the name from the assignment operator is optional. +Spaces are, however, mandatory in separating components of +.I expr +which would otherwise be single words. +.IP +Special postfix `++' and `\-\-' operators increment and decrement +.I name +respectively, i.e. `@ i++'. +.sh "Pre-defined and environment variables" +The following variables have special meaning to the shell. +Of these, +.I argv, +.I cwd, +.I home, +.I path, +.I prompt, +.I shell +and +.I status +are always set by the shell. +Except for +.I cwd +and +.I status +this setting occurs only at initialization; +these variables will not then be modified unless this is done +explicitly by the user. +.PP +This shell copies the environment variable USER into the variable +.I user, +TERM into +.I term, +and +HOME into +.I home, +and copies these back into the environment whenever the normal +shell variables are reset. +The environment variable PATH is likewise handled; it is not +necessary to worry about its setting other than in the file +.I \&.cshrc +as inferior +.I csh +processes will import the definition of +.I path +from the environment, and re-export it if you then change it. +(It could be set once in the +.I \&.login +except that commands through +.IR net (1) +would not see the definition.) +.TP 15 +.B argv +\c +Set to the arguments to the shell, it is from this variable that +positional parameters are substituted, i.e. `$1' is replaced by +`$argv[1]', etc. +.TP 15 +.B cdpath +\c +Gives a list of alternate directories searched to find subdirectories +in +.I chdir +commands. +.TP 15 +.B cwd +The full pathname of the current directory. +.TP 15 +.B echo +\c +Set when the +.B \-x +command line option is given. +Causes each command and its arguments +to be echoed just before it is executed. +For non-builtin commands all expansions occur before echoing. +Builtin commands are echoed before command and filename substitution, +since these substitutions are then done selectively. +.TP 15 +.B history +\c +Can be given a numeric value to control the size of the history list. +Any command which has been referenced in this many events will not be +discarded. +Too large values of +.I history +may run the shell out of memory. +The last executed command is always saved on the history list. +.TP 15 +.B home +\c +The home directory of the invoker, initialized from the environment. +The filename expansion of `\fB~\fR' refers to this variable. +.TP 15 +.B ignoreeof +\c +If set the shell ignores +end-of-file from input devices which are terminals. +This prevents shells from accidentally being killed by control-D's. +.TP 15 +.B mail +\c +The files where the shell checks for mail. +This is done after each command completion which will result in a prompt, +if a specified interval has elapsed. +The shell says `You have new mail.' +if the file exists with an access time not greater than its modify time. +.IP +If the first word of the value of +.I mail +is numeric it specifies a different mail checking interval, in seconds, +than the default, which is 10 minutes. +.IP +If multiple mail files are specified, then the shell says +`New mail in +.IR name ' +when there is mail in the file +.I name. +.TP 15 +.B noclobber +\c +As described in the section on +.I Input/output, +restrictions are placed on output redirection to insure that +files are not accidentally destroyed, and that `>>' redirections +refer to existing files. +.TP 15 +.B noglob +\c +If set, filename expansion is inhibited. +This is most useful in shell scripts which are not dealing with filenames, +or after a list of filenames has been obtained and further expansions +are not desirable. +.TP 15 +.B nonomatch +\c +If set, it is not an error for a filename expansion to not match any +existing files; rather the primitive pattern is returned. +It is still an error for the primitive pattern to be malformed, i.e. +`echo [' still gives an error. +.TP 15 +.B notify +\c +If set, the shell notifies asynchronously of job completions. The +default is to rather present job completions just before printing +a prompt. +.TP 15 +.B path +\c +Each word of the path variable specifies a directory in which +commands are to be sought for execution. +A null word specifies the current directory. +If there is no +.I path +variable then only full path names will execute. +The usual search path is `.', `/bin' and `/usr/bin', but this +may vary from system to system. +For the super-user the default search path is `/etc', `/bin' and `/usr/bin'. +A shell which is given neither the +.B \-c +nor the +.B \-t +option will normally hash the contents of the directories in the +.I path +variable after reading +.I \&.cshrc, +and each time the +.I path +variable is reset. If new commands are added to these directories +while the shell is active, it may be necessary to give the +.I rehash +or the commands may not be found. +.TP 15 +.B prompt +\c +The string which is printed before each command is read from +an interactive terminal input. +If a `!' appears in the string it will be replaced by the current event number +unless a preceding `\e' is given. +Default is `% ', or `# ' for the super-user. +.TP 15 +.B shell +\c +The file in which the shell resides. +This is used in forking shells to interpret files which have execute +bits set, but which are not executable by the system. +(See the description of +.I "Non-builtin Command Execution" +below.) +Initialized to the (system-dependent) home of the shell. +.TP 15 +.B status +\c +The status returned by the last command. +If it terminated abnormally, then 0200 is added to the status. +Builtin commands which fail return exit status `1', +all other builtin commands set status `0'. +.TP 15 +.B time +\c +Controls automatic timing of commands. +If set, then any command which takes more than this many cpu seconds +will cause a line giving user, system, and real times and a utilization +percentage which is the ratio of user plus system times to real time +to be printed when it terminates. +.TP 15 +.B verbose +\c +Set by the +.B \-v +command line option, causes the words of each command to be printed +after history substitution. +.sh "Non-builtin command execution" +When a command to be executed is found to not be a builtin command +the shell attempts to execute the command via +.IR exec (2). +Each word in the variable +.I path +names a directory from which the shell will attempt to execute the command. +If it is given neither a +.B \-c +nor a +.B \-t +option, the shell will hash the names in these directories into an internal +table so that it will only try an +.I exec +in a directory if there is a possibility that the command resides there. +This greatly speeds command location when a large number of directories +are present in the search path. +If this mechanism has been turned off (via +.I unhash), +or if the shell was given a +.B \-c +or +.B \-t +argument, and in any case for each directory component of +.I path +which does not begin with a `/', +the shell concatenates with the given command name to form a path name +of a file which it then attempts to execute. +.PP +Parenthesized commands are always executed in a subshell. +Thus `(cd ; pwd) ; pwd' prints the +.I home +directory; leaving you where you were (printing this after the home directory), +while `cd ; pwd' leaves you in the +.I home +directory. +Parenthesized commands are most often used to prevent +.I chdir +from affecting the current shell. +.PP +If the file has execute permissions but is not an +executable binary to the system, then it is assumed to be a +file containing shell commands an a new shell is spawned to read it. +.PP +If there is an +.I alias +for +.I shell +then the words of the alias will be prepended to the argument list to form +the shell command. +The first word of the +.I alias +should be the full path name of the shell +(e.g. `$shell'). +Note that this is a special, late occurring, case of +.I alias +substitution, +and only allows words to be prepended to the argument list without modification. +.sh "Argument list processing" +If argument 0 to the shell is `\-' then this +is a login shell. +The flag arguments are interpreted as follows: +.TP 5 +.B \-c +\c +Commands are read from the (single) following argument which must +be present. +Any remaining arguments are placed in +.I argv. +.TP 5 +.B \-e +\c +The shell exits if any invoked command terminates abnormally +or yields a non-zero exit status. +.TP 5 +.B \-f +\c +The shell will start faster, because it will neither search for nor +execute commands from the file +`\&.cshrc' in the invokers home directory. +.TP 5 +.B \-i +\c +The shell is interactive and prompts for its top-level input, +even if it appears to not be a terminal. +Shells are interactive without this option if their inputs +and outputs are terminals. +.TP 5 +.B \-n +\c +Commands are parsed, but not executed. +This may aid in syntactic checking of shell scripts. +.TP 5 +.B \-s +\c +Command input is taken from the standard input. +.TP 5 +.B \-t +\c +A single line of input is read and executed. +A `\e' may be used to escape the newline at the end of this +line and continue onto another line. +.TP 5 +.B \-v +\c +Causes the +.I verbose +variable to be set, with the effect +that command input is echoed after history substitution. +.TP 5 +.B \-x +\c +Causes the +.I echo +variable to be set, so that commands are echoed immediately before execution. +.TP 5 +.B \-V +\c +Causes the +.I verbose +variable to be set even before `\&.cshrc' is executed. +.TP 5 +.B \-X +\c +Is to +.B \-x +as +.B \-V +is to +.B \-v. +.PP +After processing of flag arguments if arguments remain but none of the +.B \-c, +.B \-i, +.B \-s, +or +.B \-t +options was given the first argument is taken as the name of a file of +commands to be executed. +The shell opens this file, and saves its name for possible resubstitution +by `$0'. +Since many systems use either the standard version 6 or version 7 shells +whose shell scripts are not compatible with this shell, the shell will +execute such a `standard' shell if the first character of a script +is not a `#', i.e. if the script does not start with a comment. +Remaining arguments initialize the variable +.I argv. +.sh "Signal handling" +The shell normally ignores +.I quit +signals. +Jobs running detached (either by `&' or the \fIbg\fR or \fB%... &\fR +commands) are immune to signals generated from the keyboard, including +hangups. +Other signals have the values which the shell inherited from its parent. +The shells handling of interrupts and terminate signals +in shell scripts can be controlled by +.I onintr. +Login shells catch the +.I terminate +signal; otherwise this signal is passed on to children from the state in the +shell's parent. +In no case are interrupts allowed when a login shell is reading the file +`\&.logout'. +.SH AUTHOR +William Joy. +Job control and directory stack features first implemented by J.E. Kulp of +I.I.A.S.A, Laxenburg, Austria, +with different syntax than that used now. +.SH FILES +.ta 1.75i +.nf +~/.cshrc Read at beginning of execution by each shell. +~/.login Read by login shell, after `.cshrc' at login. +~/.logout Read by login shell, at logout. +/bin/sh Standard shell, for shell scripts not starting with a `#'. +/tmp/sh* Temporary file for `<<'. +/etc/passwd Source of home directories for `~name'. +.fi +.SH LIMITATIONS +Words can be no longer than 1024 characters. +The system limits argument lists to 10240 characters. +The number of arguments to a command which involves filename expansion +is limited to 1/6'th the number of characters allowed in an argument list. +Command substitutions may substitute no more characters than are +allowed in an argument list. +To detect looping, the shell restricts the number of +.I alias +substititutions on a single line to 20. +.SH "SEE ALSO" +sh(1), newcsh(1), access(2), exec(2), fork(2), killpg(2), pipe(2), sigsys(2), +umask(2), vlimit(2), wait(2), jobs(3), sigset(3), tty(4), a.out(5), environ(5), +`An introduction to the C shell' +.SH BUGS +When a command is restarted from a stop, +the shell prints the directory it started in if this is different +from the current directory; this can be misleading (i.e. wrong) +as the job may have changed directories internally. +.PP +Shell builtin functions are not stoppable/restartable. +Command sequences of the form `a ; b ; c' are also not handled gracefully +when stopping is attempted. If you suspend `b', the shell will then +immediately execute `c'. This is especially noticeable if this +expansion results from an +.I alias. +It suffices to place the sequence of commands in ()'s to force it to +a subshell, i.e. `( a ; b ; c )'. +.PP +Control over tty output after processes are started is primitive; +perhaps this will inspire someone to work on a good virtual +terminal interface. In a virtual terminal interface much more +interesting things could be done with output control. +.PP +Alias substitution is most often used to clumsily simulate shell procedures; +shell procedures should be provided rather than aliases. +.PP +Commands within loops, prompted for by `?', are not placed in the +.I history +list. +Control structure should be parsed rather than being recognized as built-in +commands. This would allow control commands to be placed anywhere, +to be combined with `|', and to be used with `&' and `;' metasyntax. +.PP +It should be possible to use the `:' modifiers on the output of command +substitutions. +All and more than one `:' modifier should be allowed on `$' substitutions. diff --git a/static/unix-v10/man1/ctags.1 b/static/unix-v10/man1/ctags.1 new file mode 100644 index 00000000..184739e9 --- /dev/null +++ b/static/unix-v10/man1/ctags.1 @@ -0,0 +1,109 @@ +.TH CTAGS 1 +.UC 4 +.SH NAME +ctags \- create a tags file +.SH SYNOPSIS +.B ctags +[ +.B \-BFatuwx +] +name ... +.SH DESCRIPTION +.I Ctags +makes a tags file for +.IR ex (1) +from the specified C, Pascal and Fortran sources. +A tags file gives the locations of specified objects (in this case +functions and typedefs) in a group of files. Each line of the tags +file contains the object name, the file in which it is defined, and +an address specification for the object definition. Functions are +searched with a pattern, typedefs with a line number. Specifiers are +given in separate fields on the line, separated by blanks or tabs. +Using the +.I tags +file, +.I ex +can quickly find these objects definitions. +.PP +If the +.B \-x +flag is given, +.I ctags +produces a list of object names, the line number and file +name on which each is defined, as well as the text of that line +and prints this on the standard output. This is a simple index +which can be printed out as an off-line readable function index. +.PP +Files whose name ends in +.B \.c +or +.B \.h +are assumed to be C source files and are searched for C routine and +macro definitions. +Others are first examined to see if they contain any Pascal or +Fortran routine definitions; if not, they are processed again +looking for C definitions. +.PP +Other options are: +.TP 5 +.B \-F +use forward searching patterns (/.../) (default). +.TP 5 +.B \-B +use backward searching patterns (?...?). +.TP 5 +.B \-a +append to tags file. +.TP 5 +.B \-t +create tags for typedefs. +.TP 5 +.B \-w +suppressing warning diagnostics. +.TP 5 +.B \-u +causing the specified files to be +.I updated +in tags, that is, all references to them are deleted, +and the new values are appended to the file. +(Beware: this option is implemented in a way which is rather slow; +it is usually faster to simply rebuild the +.I tags +file.) +.PP +The tag +.I main +is treated specially in C programs. +The tag formed is created by prepending +.I M +to the name of the file, with a trailing .c removed, if +any, and leading pathname components also removed. +This makes use of +.I ctags +practical in directories with more than one program. +.SH FILES +.DT +tags output tags file +.SH SEE ALSO +ex(1), vi(1) +.SH AUTHOR +Ken Arnold; FORTRAN added by Jim Kleckner; Bill Joy +added Pascal and +.B \-x, +replacing +.I cxref; +C typedefs added by Ed Pelegri-Llopart. +.SH BUGS +Recognition of \fBfunctions\fR, \fBsubroutines\fR and \fBprocedures\fR +for FORTRAN and Pascal is done is a very simpleminded way. +No attempt is made to deal with block structure; if you have two +Pascal procedures in different blocks with the same name you lose. +.PP +The method of deciding whether to look for C or Pascal and FORTRAN +functions is a hack. +.PP +Does not know about #ifdefs. +.PP +Should know about Pascal types. +Relies on the input being well formed to detect typedefs. +Use of -tx shows only the last line of typedefs. diff --git a/static/unix-v10/man1/cu.1 b/static/unix-v10/man1/cu.1 new file mode 100644 index 00000000..8e365ce8 --- /dev/null +++ b/static/unix-v10/man1/cu.1 @@ -0,0 +1,248 @@ +.TH CU 1 +.CT 1 comm_mach +.SH NAME +cu, ct \- call out to a terminal or another system +.SH SYNOPSIS +.B cu +[ +.B -htn +] [ +.B -p +.I parity +] [ +.B -s +.I speed +] +.I telno +[ +.I service-class +] +.PP +.B ct +[ option ... +] +.I phone-number +[ +.I service-class +] +.SH DESCRIPTION +.I Cu +places a data call to a given telephone number +and expects a computer to answer. +It manages an interactive conversation with possible +transfers of text files. +.I Telno +is the telephone number, consisting of digits with minus signs at appropriate +places to indicate delay for second or subsequent dial tones. +A telephone number may also be expressed symbolically. +A symbolic number is looked up in the files +.F $HOME/lib/cunumber +and +.F /usr/lib/cunumber +whose lines look like this: +.IP +symbolic-number +actual-number +service-class +comment +.LP +The actual number +may be preceded by options +such as +.BR \-t . +The +.I comment, +if present, is printed out when the connection is made. +.PP +The options are +.TP +.B -n +Print the the called number but do not call it. +.TP +.B -t +Tandem: +use DC1/DC3 +.RB (control- S /control- Q ) +protocol to stop transmission from +the remote system when the local terminal buffers are almost full. +This argument should only be used if the remote system +understands that protocol. +.TP +.B -h +Half-duplex: +echo locally the characters that are sent to the remote system. +.TP +.BI -s " speed" +Set the line speed; +.L 1200 +means 1200 baud, etc. +The default depends on service class. +.TP +.BI -p " parity" +Set the parity of transmitted characters: +.BR 0 , +.BR 1 , +.BR e , +.BR o +mean +zero, +one, +even, +odd parity. +.B 0 +is the default. +.PP +The service class is expressed as in +.IR dialout (3). +A special class +.L direct +causes the +.I telno +argument to be taken +as the pathname +of a terminal line. +.I Cu +opens the file, +sets line speed and other modes, +and proceeds as if connected. +The default line speed is +9600 baud. +.PP +An explicit service class on the command line overrides +any specified in a +.L cunumber +file. +.PP +After making the connection, +.I cu +runs as two processes: +the sending +process reads the standard input and +passes most of it to the remote system; +the receiving +process reads from the remote system and passes +most data to the standard output. +Lines beginning with +.L ~ +have special meanings. +.PP +The sending +process interprets: +.TP `\fL~%break\ 'u +.B ~. +.br +.ns +.TP +.BR ~ EOT +Terminate the conversation. +.TP +.BI ~< file +Send the contents of +.I file +to the remote system, +as though typed at the terminal. +.TP +.B ~! +Invoke an interactive shell on the local system. +.TP +.BI ~! cmd +Run the command on the local system +(via +.LR "sh -c" ). +.TP +.BI ~$ cmd +Run the command locally and send its output +to the remote system. +.TP +.B ~b +.br +.ns +.TP +.B ~%break +Send a break (300 ms space). +.TP +.BI ~%take " from \fR[\fIto\fR]" +Copy file +.I from +(on the remote system) +to file +.I to +on the local system. +If +.I to +is omitted, +the +.I from +name is used both places. +.TP +.BI ~%put " from \fR[\fIto\fR]" +Copy file +.I from +(on local system) +to file +.I to +on remote system. +If +.I to +is omitted, the +.I from +name is used both places. +.TP +.BI ~~ text +send +the line +.BI ~ text . +.PD +.PP +WARNING: Using +.I cu +to reach your home machine from a machine you don't trust +can be hazardous to your password. +.PP +.I Ct +places a telephone call to a remote terminal +and allows a user to log in on that terminal +in the normal fashion. +The terminal must be equipped with an auto-answer +modem. +.PP +The +phone number and service class +are as in +.I cu. +The options are +.TP +.BI -c " count" +If the number doesn't answer, try +.I count +times before giving up (default 5). +.TP +.BI -w " interval +Space retries +.I interval +seconds apart (default 60). +.TP +.B -h +Try to hang up the phone before placing the +call. +This is useful for a +`call me right back' arrangement. +.SH FILES +.F /usr/lib/cunumber +.br +.F $HOME/lib/cunumber +.SH "SEE ALSO" +.IR con (1), +.IR ttyld (4), +.IR dialout (3) +.SH BUGS +Unless erase and kill characters are the same on the two machines, +they will be damaged by +.BR ~%put . +.br +.B ~%take +uses +.BR ~> +at the beginning of line to synchronize transmission. +This sequence can cause misfunction if it is received +for any other purpose. diff --git a/static/unix-v10/man1/cut.1 b/static/unix-v10/man1/cut.1 new file mode 100644 index 00000000..6394f788 --- /dev/null +++ b/static/unix-v10/man1/cut.1 @@ -0,0 +1,137 @@ +.TH CUT 1 +.CT 1 files +.SH NAME +cut, paste \- rearrange columns of data +.SH SYNOPSIS +.B cut +.BI -c list +[ +.I file ... +] +.PP +.B cut +.BI -f list +[ +.BI -d char +] +[ +.I file ... +] +.PP +.B paste +[ +.B -s +] +[ +.BI -d chars +] +.I file ... +.SH DESCRIPTION +.I Cut +selects fields from each line of the +.I files +(standard input default). +In data base parlance, it +projects a relation. +The fields +can be fixed length, +as on a punched card (option +.BR -c ), +or be marked with a delimiter character (option +.BR -f ). +.PP +The meanings of the options follow. +A +.I list +is an increasing sequence of integers separated by commas, or by +.B - +to indicate a range, for example +.L 1,3-5,7. +.TF -d\ char\ \ +.PD +.TP +.BI -c list +The +.I list +specifies character +positions. +.TP +.BI -f list +The +.I list +specifies field numbers. +.TP +.BI -d char +The character +is the delimiter for option +.BR -f . +Default is tab. +.TP +.B -s +Suppress lines with no delimiter characters. +Normally such lines pass through untouched under option +.BR -f . +.PP +.I Paste +concatenates corresponding lines of the input +.I files +and places the result on the standard output. +The file name +.L - +refers to the standard input. +Lines are glued together with +characters taken circularly from the set +.I chars. +The set may contain the special escape sequences +.B \en +(newline), +.B \et +(tab), +.B \e\e +(backslash), and +.B \e0 +(empty string, not a null character). +The options are +.TP +.BI -d chars +The output separator characters. +Default is a tab. +.TP +.B -s +Paste together lines of one file, +treating every line as if it came from a distinct input. +.SH EXAMPLES +.TP +.L +cut -d: -f1,3 /etc/passwd +Print map from login names to userids, see +.IR passwd (5). +.TP +.L +NAME=`who am i | cut -f1 -d" "` +Set +.L NAME +to current login name (subtly different from +.IR getuid (1)). +.PP +.EX +ls | paste - - - - +ls | paste -s '-d\et\en' - +.EE +.ns +.IP +4-column and 2-column file listing +.SH SEE ALSO +.IR gre (1), +.IR awk (1), +.IR sed (1), +.IR pr (1), +.IR column (1) +.SH BUGS +.I Cut +should handle disordered lists under option +.BR -f . +.br +In default of file names, +.I paste +should read the the standard input. diff --git a/static/unix-v10/man1/cvt.1 b/static/unix-v10/man1/cvt.1 new file mode 100644 index 00000000..892d6f15 --- /dev/null +++ b/static/unix-v10/man1/cvt.1 @@ -0,0 +1,8 @@ +1 1 1 1 1 1 1.000000 1.000000 +2 2 2 2 2 2 2.000000 2.000000 +3 3 3 3 3 3 3.000000 3.000000 +4 4 4 4 4 4 4.000000 4.000000 +5 5 5 5 5 5 5.000000 5.000000 +6 6 6 6 6 6 6.000000 6.000000 +7 7 7 7 7 7 7.000000 7.000000 +8 8 8 8 8 8 8.000000 8.000000 diff --git a/static/unix-v10/man1/d202.1 b/static/unix-v10/man1/d202.1 new file mode 100644 index 00000000..f0817688 --- /dev/null +++ b/static/unix-v10/man1/d202.1 @@ -0,0 +1,138 @@ +.TH D202 1 +.CT 1 writing_output comm_dev +.SH NAME +d202, tc \- typesetter filters +.SH SYNOPSIS +.B d202 +[ +.I option ... +] +[ +.I file ... +] +.PP +.B e202 +[ +.I option ... +] +[ +.I file ... +] +.PP +.B tc +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I D202 +and its companions print files +created by +.IR troff (1) +on various devices: +.TP +.I d202 +Mergenthaler Linotron 202 +.PD0 +.TP +.I e202 +same, +with half-tone and extra graphics capability +.PD0 +.TP +.I tc +Tektronix 4014 display +.PD +.PP +If no +.I file +is mentioned, the standard input is printed. +The following options are understood. +.TP +.B -b +Report whether the typesetter is busy; do not print. +.TP +.BI -o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains comma-separated numbers +.I N +and ranges +.IB N1 - N2. +A missing +.I N1 +means the lowest-numbered page, a missing +.I N2 +means the highest. +.TP +.BI -s n +Stop after every +.I n +pages of output. +(Default 1 on 4014). +Proceed when the `RUN' button is pushed on the typesetter +.RI ( d202 ) +or newline on the terminal +.RI ( tc ). +.TP +.B -t +Direct output to the standard output instead of the typesetter. +Don't wait between pages in +.I tc. +.TP +.B -w +Wait for typesetter to become free, then print. +.TP +.BI -f " dir" +Take font information from +directory +.I dir +instead of the default. +.TP +.BI -a "r" +Set the aspect ratio to +.I r +(default +.IR r =1.5). +.I Tc +only. +.PP +While waiting between pages +.I tc +accepts +.BI ! command +to insert a shell command; +.BI + n +to skip forward +.I n +pages; +.BI - n +to skip backwards +.I n +pages; +.BI a r +to set the aspect ratio; +and +.B ? +to print the list of available actions. +.SH FILES +.TF /usr/lib/font/dev202/* +.TP +.F /usr/lib/font/dev202/* +202 description files +.PD0 +.PD0 +.SH SEE ALSO +.IR lp (1), +.IR troff (1), +.IR proof (9.1), +.IR apsend (1), +.IR font (5) +.SH BUGS +.I E202, +largely a superset of +.I d202, +should be combined with +.I d202. diff --git a/static/unix-v10/man1/dag.1 b/static/unix-v10/man1/dag.1 new file mode 100644 index 00000000..0ea92348 --- /dev/null +++ b/static/unix-v10/man1/dag.1 @@ -0,0 +1,150 @@ +.TH DAG 1 "15 April 1987" +.SH NAME +dag \- preprocessor for DAGs and other directed graphs +.SH SYNOPSIS +.B dag +[ +.B \-T\fItype\fP +] [ +.B \-p\fIwidth\fPx\fIheight\fP +[ +.B ,\fImarginwidth\fP +[ +.B x\fImarginheight\fP +] ] +] [ +.B \-O +] [ +.B \-l +] [ files ] +.SH DESCRIPTION +.I Dag +is a +.IR pic (1) +or +.IR Postscript +preprocessor for drawing directed graphs. It works well on +directed acyclic graphs and other graphs that can be drawn +as a hierarchy. +.IR dag +selects coordinates for the nodes of the graph and creates a picture. +Input graphs are surrounded by the +.I troff +`commands' +.B \&.GS +and +.BR \&.GE . +The graph contains nodes, edges, and optional control statements. +Statements are semicolon terminated. Here is a brief summary: +.PP +\fBedge from\fP \fItail\fP \fBto\fP \fIhead0 edge-items, \fBto\fP head1 edge-items, \fBto\fP head2 edge-items... \fR: creates edges from the tail node +to the head nodes (or node). Nodes are implicitly created if they do +not already exist. \fIedge-items\fP (which apply to the +edge just made, as described below) and the noisewords \fBedge\fP, +\fBfrom\fP, and \fBto\fP are optional. Node names may be quoted +to avoid conflicting with keywords. +.PP +\fBordered\fP \fI tail head0 head1 head2... \fR: makes edges and also +constrains the left-to-right order of the head nodes and keeps them +on the same rank. May contain noisewords and edge-items. +.PP +\fBpath\fP \fI node0 node1 node2...\fR: creates a path of edges. +May contain noisewords and edge-items. +.PP +\fBbackedge\fP \fItail head0 head1 head2...\fR: creates edges that +point backward (up or left). +.PP +\fBbackpath\fP \fInode0 node1 node2...\fR: makes a path of backedges. +.PP +\fBdraw nodes\fP \fInode-items\fP: Changes default definition for all nodes +subsequently created. \fInode-items\fP are: \fBas\fP \fIshape\fP +(standard shapes are \fBBox, Circle, Ellipse, Diamond, Square,\fP +and \fBPlaintext\fP), \fBlabel\fR \fIstring\fP, +\fBpointsize\fP \fIn\fP, \fBwidth\fP \fIn\fP, +\fBheight\fP \fIn\fP, \fBcolor\fP \fIstring\fP. Dimensions are +in inches. \fIcolor\fP only works with PostScript and should evaluate +to an HSB triple. +.PP +\fBdraw\fP \fInodelist\fP \fInode-items\fP: controls drawing (shapes, +labels, etc.) of nodes in the list. +.PP +\fBdraw edges\fP \fIedge-items\fP: Changes default definition of edges +subsequently created. \fIedge-items\fP are: \fBdotted, dashed, solid\fP, +or \fBinvis\fP, \fBlabel\fP \fIstring\fP, \fBweight\fP \fIn\fP, +\fBcolor\fP \fIstring\fP, \fBpointsize\fP \fIn\fP. +.PP +\fBminimum rank\fP \fInodelist\fP: constrains nodes +to be on the topmost rank (or leftmost if drawn with .GR). +.PP +\fBmaximum rank\fP \fInodelist\fP: bottommost or rightmost rank. +.PP +\fBsame rank\fP \fInodelist\fP: constrains nodes to be +placed on the same rank. +.PP +\fBseparate ranks\fP \fIn\fP \fBequally\fP or \fBexactly\fP: +sets separation between ranks. +\fBexactly\fP means rank separation is fixed. +\fBequally\fP means that all ranks have the same separation. +.PP +The \fB\-O\fP option requests ``optimal'' node placement. This makes +slightly better layouts, but is only practical for graphs of a few +dozen nodes. +.PP +Output languages other than +.IR pic +are requested with \fB\-T\fP: \fB\-Tps\fP for PostScript, \fB\-Tsimple\fP +for a simple format similar to that of the Ninth Edition Unix \fIgraphdraw\fP +editor, and \fB\-Tcip\fP for a simplified form of \fIpic\fP code that +can be read by the obsolescent \fIcip\fP editor. PostScript drawings +are paginated by giving the \fB\-p\fP option to set page dimensions. +Default margins are one-half inch. +Although the margins can be set to zero, Laserwriters have hard margins +that prevent making seamless mosaics. +The \fB\-p\fP option replaces the \fIPoster\fP +program from CIA, which is inefficient for large drawings +because of quadratic behavior. +.PP +The \fB\-l\fP option disables automatic loading of the +.IR dag +graphics library. +.PP +A graph is drawn with left-to-right edges by using .GR +instead of .GS. The maximum height and width of the drawing may +be given on the .GS/.GR line. The optional keyword \fBfill\fP at +the end of this line makes \fIdag\fP adjust node positions +to fill the bounding box. +In-line graphics code such as \fIpic\fP or PostScript macros +may be defined in a block between \fB.PS\fP and \fB.PE\fP. +.PP +If \fIdag\fP is installed under EXPTOOLS, it uses the standard +\fBTOOLS\fP environment variable to find its libraries. +.SH "EXAMPLE" +.br +\&.GS 6 8 fill +.br +a b c; +.br +path a x y; +.br +draw nodes as Box; +.br +a z label "hi" weight 1000; +.br +draw edges dashed; +.br +b x; +.br +same rank b x; +.br +\&.GE +.br +.SH "BUGS" +\fItroff\fP doesn't have \fBdotted\fP or \fBdashed\fP splines. +Use PostScript. +.PP +\fIdag\fP doesn't keep edge labels from accidentally overlapping. +.SH "SEE ALSO" +.I +E. R. Gansner, S. C. North, K. P. Vo, "DAG \(em A Graph Drawing Program," +TM 59554-871019-04TM. +.br diff --git a/static/unix-v10/man1/date.1 b/static/unix-v10/man1/date.1 new file mode 100644 index 00000000..2ec8af09 --- /dev/null +++ b/static/unix-v10/man1/date.1 @@ -0,0 +1,33 @@ +.pa 1 +.he 'DATE (I)'3/15/72'DATE (I)' +.ti 0 +NAME date -- print and set the date +.sp +.ti 0 +SYNOPSIS date____ [ mmddhhmm ] +.sp +.ti 0 +DESCRIPTION If no argument is given, the current date is printed +to the second. +If an argument is given, the current date is set. +mm__ is the month number; +dd__ is the day number in the month; +hh__ is the hour number (24 hour system); +mm__ is the minute number. +For example: + + date 10080045 + +sets the date to Oct 8, 12:45 AM. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS "?" if the argument is syntactically incorrect. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/db.1 b/static/unix-v10/man1/db.1 new file mode 100644 index 00000000..859bd7e8 --- /dev/null +++ b/static/unix-v10/man1/db.1 @@ -0,0 +1,283 @@ +.pa 1 +.he 'DB (I)'3/15/72'DB (I)' +.ti 0 +NAME db -- debug +.sp +.ti 0 +SYNOPSIS db__ [ core [ namelist ] ] [ -_ ] +.sp +.ti 0 +DESCRIPTION Unlike +many debugging packages (including DEC's ODT, on +which db__ is loosely based) db__ is not loaded as part of the +core image which it is used to examine; instead it examines files. +Typically, the file will be either a core image produced +after a fault or the binary output of +the assembler. +Core____ is the file being debugged; if omitted "core" is assumed. +namelist________ is a file containing a symbol table. +If it is omitted, +the symbol table is obtained from the +file being debugged, +or if not there from a.out_____. +If no appropriate name list file +can be found, db__ can still be used but some of its symbolic +facilities become unavailable. + +For the meaning of the optional third argument, see +the last paragraph below. +.sp +The format for most db__ requests is an address followed +by a one character command. +.sp +Addresses are expressions built up as follows: +.sp +.in +6 +.un 3 +1. A name has the value assigned to it +when the input file was assembled. +It may be relocatable or not depending +on the use of the name during the assembly. +.br +.un 3 +.sp +2. An octal number is an absolute quantity with the appropriate +value. +.br +.un 3 +.sp +3. A decimal number immediately followed by "." is +an absolute quantity with the appropriate value. +.br +.un 3 +.sp +4. An octal number immediately followed by "r" is a relocatable +quantity with the appropriate value. +.br +.un 3 +.sp +5. The symbol "." indicates the current pointer +of db__. The current pointer is set by many db__ requests. + +.ti -3 +6. A "*" before +an expression forms an expression whose value is the +number in the word addressed by the first expression. +A "*" alone is equivalent to "*.". + +.ti -3 +6. Expressions separated by "+" or " " (blank) are expressions +with value equal to the sum of the components. At most +one of the components may be relocatable. +.br +.un 3 +.sp +8. Expressions separated by "-" form an expression +with value equal to the difference to the components. +If the right component is relocatable, the left component +must be relocatable. +.br +.un 3 +.sp +9. Expressions are evaluated left to right. +.sp 1 +.in -6 +Names for registers are +built in: +.sp + r0 ... r5 + sp + pc + fr0 ... fr5 +.sp +These may be examined. +Their values are deduced from the contents +of the stack in a core image file. They are meaningless +in a file that is not a core image. +.sp +If no address is given for a command, the current address +(also specified by ".") is assumed. In general, "." +points to the last word or byte printed by db__. +.sp +There are db__ commands for examining locations +interpreted as octal numbers, machine instructions, +ASCII characters, and addresses. +For numbers and characters, either bytes +or words may be examined. +The following commands are used to examine the specified file. +.sp +.in +6 +.un 3 +/ The addressed word is printed in octal. + +.un 3 +\\ The addressed byte is printed in octal. + +.un 3 +" The addressed word is printed as two ASCII characters. + +.un 3 +' The addressed byte is printed as an ASCII character. +.ti -3 + +` The addressed word is printed in decimal. + +.un 3 +? The addressed word is interpreted as a machine +instruction and a symbolic form of the instruction, +including symbolic addresses, is printed. +Often, the result will appear exactly as it was written +in the source program. +.br +.un 3 + +& The addressed word is interpreted as a symbolic address +and is printed as the name of the symbol whose value is closest +to the addressed word, possibly followed by a signed offset. +.br +.un 3 + + (i. e., the character "new line") This command advances +the current location counter "." and prints the resulting +location in the mode last specified by +one of the above requests. +.br +.un 3 + +^ This character decrements "." and prints the +resulting location in the mode last selected +one of the above requests. It is a converse to . + +.un 3 +% Exit. +.sp +.in -6 +Odd addresses to word-oriented commands are rounded +down. +The incrementing and decrementing +of "." done by the and ^ requests is by one or +two depending on whether the last command +was word or byte oriented. +.sp +The address portion of any of the above commands +may be followed by a comma and then by an +expression. In this case that number of sequential +words or bytes specified by the expression is printed. +"." is advanced so that it points at the +last thing printed. +.sp +There are two commands to interpret the value +of expressions. +.sp +.in +6 +.un 3 += When preceded by an expression, the value of the expression +is typed in octal. +When not preceded by an expression, the value of "." is +indicated. +This command does not change the value of ".". +.br +.un 3 + +: An attempt is made to print the given expression +as a symbolic address. If the expression is relocatable, +that symbol is found whose value is nearest +that of the expression, and the symbol is typed, followed by +a sign and the appropriate offset. +If the value of the expression is absolute, a symbol +with exactly the indicated value is sought and +printed if found; if no matching symbol is discovered, the +octal value of the expression is given. +.sp +.in -6 +The following command may be used to patch the file being debugged. +.sp +.in +6 +.un 3 +! This command must be preceded by an expression. +The value of the expression is stored at the location +addressed by the current value of ".". +The opcodes do not appear in the symbol +table, so the user must assemble them by hand. + +.sp +.in -6 +The following command is used after a fault has caused +a core image file to be produced. +.sp +.in +6 +.un 3 +$ causes the fault type and +the contents of the general registers and +several other registers to be printed both in octal and symbolic +format. +The values are as they were at the time of the fault. +.sp +.in -6 +Db__ should not be used to examine special files, +for example disks and tapes, since it reads one byte +at a time. +Use od(I) instead. + +For some purposes, it is important to know how addresses +typed by the user correspond with +locations in the file being debugged. +The mapping algorithm employed by db__ is non-trivial +for two reasons: +First, in an a.out_____ file, there is a 20(8) byte header +which will not appear when the file is loaded into +core for execution. +Therefore, apparent location 0 should correspond +with actual file offset 20. +Second, some systems cause a "squashed" core +image to be written. +In such a core +image, addresses in the stack must be mapped +according to the degree of squashing +which has been employed. +Db__ obeys the following rules: + +If exactly one argument is given, and if it appears +to be an a.out_____ file, the 20-byte header is skipped +during addressing, i.e., 20 is added to all addresses typed. +As a consequence, the header can be examined +beginning at location -20. + +If exactly one argument is given and if the file does +not appear to be an a.out_____ file, no mapping is done. + +If zero or two arguments are given, +the mapping appropriate to a core image file is employed. +This means that locations above the program break +and below the stack +effectively do not exist (and are not, in fact, recorded +in the core file). +Locations above the user's stack pointer are mapped, +in looking at the core file, to +the place where they are really stored. +The per-process data kept by the +system, which is stored in the last 512(10) bytes +of the core file, +can be addressed at apparent locations 160000-160777. + +If one wants to examine +a file which has an associated name list, +but is not a core image file, the last argument "-" +can be used (actually the only purpose of the +last argument is to make the number of +arguments not equal to two). +This feature is used most frequently in +examining the memory file /dev/mem. + +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO as(I), core(V), a.out(V), od(I) +.sp +.ti 0 +DIAGNOSTICS "File not found" if the first argument +cannot be read; otherwise "?". +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/dc.1 b/static/unix-v10/man1/dc.1 new file mode 100644 index 00000000..06e48454 --- /dev/null +++ b/static/unix-v10/man1/dc.1 @@ -0,0 +1,196 @@ +.pa 1 +.he 'DC (I)'1/15/73'DC (I)' +.ti 0 +NAME dc -- desk calculator +.sp +.ti 0 +SYNOPSIS dc__ [file] +.sp +.ti 0 +DESCRIPTION dc__ +is an arbitrary precision integer arithmetic package. +The overall structure of dc is +a stacking (reverse Polish) calculator. +The following constructions are recognized +by the calculator: +.sp +.in +3 +.ti -3 +number +.br +The value of the number is pushed on the stack. +A number is an unbroken string of the digits 0-9. +It may be preceded by an underscore (_) to input a +negative number. +.sp +.ti -3 ++_ -_ *_ /_ %_ ^_ +.br +The top two values on the stack are added (+_), +subtracted (-_), multiplied (*_), divided (/_), +remaindered (%_) or exponentiated (^). +The two entries are popped off the stack; +the result is pushed on the stack in their place. +.sp +.ti -3 +s_x +.br +The top of the stack is popped and stored into +a register named x, where x may be any character. +.sp +.ti -3 +l_x +.br +The value in register x is pushed on the stack. +The register x is not altered. +All registers start with zero value. +.sp +.ti -3 +d_ +.br +The top value on the stack is pushed on the stack. +Thus the top value is duplicated. +.sp +.ti -3 +p_ +.br +The top value on the stack is printed. +The top value remains unchanged. +.sp +.ti -3 +f_ +.br +All values on the stack and in registers are printed. +.sp +.ti -3 +.ul 1 +q +.br +exits the program. If executing a string, the nesting level is +popped by two. +.sp +.ti -3 +.ul +x +.br +treats the top element of the stack as a character string +and executes it as a string of dc commands. +.sp +.ti -3 +[...]_____ +.br +puts the bracketed ascii string onto the top of the stack. +.sp +.ti -3 +<_x =_x >_x +.br +The top two elements of the stack are popped and compared. +Register x is executed if they obey the stated +relation. +.sp +.ti -3 +.ul +v +.br +replaces the top element on the stack by its square root. +.sp +.ti -3 +!_ +.br +interprets the rest of the line as a UNIX command. +.sp +.ti -3 +c_ +.br +All values on the stack are popped. +.sp +.ti -3 +i_ +.br +The top value on the stack is popped and used as the +number radix for further input. +.sp +.ti -3 +o_ +.br +the top value on the stack is popped and used as the +number radix for further output. +.sp +.ti -3 +z_ +.br +the stack level is pushed onto the stack. +.sp +.ti -3 +?_ +.br +a line of input is taken from the input source (usually the console) +and executed. +.sp +.ti -3 +new-line +.br +ignored except as the name of a register or to end the +response to a ?_. +.sp +.ti -3 +space +.br +ignored except as the name of a register or to terminate a number. +.br +.sp +.in -3 +If a file name is given, input is taken from that file until +end-of-file, then input is taken from the console. +.sp +An example to +calculate the monthly, weekly and +hourly rates for a $10,000/year salary. +.sp +.nf +.in +3 +10000 +100* (now in cents) +dsa (non-destructive store) +12/ (pennies per month) +la52/ (pennies per week) +d10* (deci-pennies per week) +375/ (pennies per hour) +f (print all results) + 512 + 19230 + 83333 +"a" 1000000 +.sp +.in -3 +An example which prints the first ten values of n! is +.in +3 +[la1+dsa*pla10>x]sx +0sa1 +lxx +.sp +.fi +.in -3 +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO msh(VII), salloc(III) +.sp +.ti 0 +DIAGNOSTICS (x) ? for unrecognized character x. +.br +(x) ? for not enough elements on the stack to do what was asked +by command x. +.br +"Out of space" when the free list is exhausted (too many digits). +.br +"Out of headers" for too many numbers being kept around. +.br +"Out of pushdown" for too many items on the stack. +.br +"Nesting Depth" for too many levels of nested execution. +.sp +.ti 0 +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/dcon.1 b/static/unix-v10/man1/dcon.1 new file mode 100644 index 00000000..575102dc --- /dev/null +++ b/static/unix-v10/man1/dcon.1 @@ -0,0 +1,170 @@ +.TH DCON 1 +.CT 1 comm_mach +.SH NAME +dcon, ndcon, rlogin, nrx, rsh, scriptcon \- remote login and execution +.SH SYNOPSIS +.B dcon +[ +.I option ... +] +.I machine +.PP +.B ndcon +.I machine +.PP +.B rlogin +.I machine +.PP +.B nrx +.I machine +[ +.I command-word ... +] +.PP +.B rsh +[ +.I option ... +] +.I machine +[ +.I command-word ... +] +.PP +.B scriptcon +.I machine script +.SH DESCRIPTION +Do not read this page unless you are familiar with +.IR con (1). +.PP +.I Dcon, +.I ndcon, +and +.I rlogin +are analogs (or special cases) of +.IR con (1) +for specific kinds of network connection. +They support the same local escape convention with the quit signal. +.PP +Similarly, +.I nrx +and +.I rsh +are analogs of +.IR rx. +.PP +Network addresses are as in +.IR con (1). +The default networks for the various commands are +.TP "\w'dcon, ndcon, nrx 'u +.I dcon, ndcon, nrx +.B dk +.TP +.I rlogin, rsh +.B tcp +.PP +.I Dcon +connects to the remote machine, and attempts +automatically to log in under +the login id of the invoking user. +Option +.BR -l +turns off automatic login; the remote machine will ask +for a login id and password. +.PP +.I Ndcon +behaves like +.I dcon +but provides a more transparent +transport protocol. +In particular terminal line disciplines are preserved +and it is possible to download into a +.IR mux (9.1) +window across an +.I ndcon +connection. +.PP +.I Rlogin +is like +.IR dcon , +but uses the connection protocol +found on Berkeley systems. +.PP +.I Rx +(see +.IR con (1)) +executes one shell command on the remote machine +as if logged in there, +with local standard input and output. +It uses a connection protocol specific to Research machines. +.PP +.I Nrx +is to +.I rx +as +.I ndcon +is to +.IR dcon : +it runs a command +remotely with line discipline preserved. +.PP +.I Rsh +is to +.I rx +as +.I rlogin +is to +.IR dcon : +it runs a command remotely using the Berkeley execution protocol. +.PP +.I Scriptcon +provides a connection like +.BR "dcon \-l" , +except that the login and other initial protocol are +controlled by a +.I script +file. +The first line of the file gives a string (e.g.\& +.LR login: ) +expected from the +remote machine; the second gives the local response, and +so on in alternation. +Unrecognized data from the remote machine are ignored. +Warning: a script that contains a password +may compromise the security of the remote system, hence +.I scriptcon +should be used only for restricted logins. +.PP +.I Con +tries to connect using the protocol of +.IR ndcon ; +if that fails, +it tries that of +.IR dcon , +then that of +.IR rlogin . +.I Rx +attempts its own style of connection; +if that fails, +it tries that of +.IR rsh . +.SH "SEE ALSO" +.IR con (1), +.IR dkmgr (8), +.IR svcmgr (8), +.IR tcpmgr (8), +.IR ipc (3) +.br +D. L. Presotto, +`Interprocess Communication in the Eighth Edition +.SM UNIX +System', +this manual, Volume\ 2 +.SH BUGS +If a program run by +.I nrx +won't let go, for example by ignoring +signals, there is no way of getting out short of hanging up. +.br +There is no error correction or retry in a +.I scriptcon +script. diff --git a/static/unix-v10/man1/dd.1 b/static/unix-v10/man1/dd.1 new file mode 100644 index 00000000..d4aa458d --- /dev/null +++ b/static/unix-v10/man1/dd.1 @@ -0,0 +1,242 @@ +.TH DD 1 +.CT 1 files comm_dev +.SH NAME +dd, dblbuf \- convert and copy a file +.SH SYNOPSIS +.B dd +[ +.I option=value +] +... +.PP +.B dblbuf +[ +.B -b +.I blocksize +] +[ +.I file +] +.SH DESCRIPTION +.I Dd\^ +copies the specified input file +to the specified output with +possible conversions. +The standard input and output are used by default. +The input and output block size may be +specified to take advantage of raw physical I/O. +The options are +.TP \w'\f5count=\ \fIn'u +.BI if= file\^ +Set the input file (standard input by default). +.TP +.BI of= file\^ +Set the output file (standard output by default). +.TP +.BI ibs= n\^ +Set input block size to +.I n\^ +bytes (default 512). +.TP +.BI obs= n\^ +Set output block size (default 512). +.TP +.BI bs= n\^ +Set both input and output block size, +superseding +.I ibs\^ +and +.IR obs . +If no conversion is specified, +preserve the input block size instead of packing short blocks +into the output buffer. +This is particularly efficient since no in-core copy need be done. +.TP +.BI cbs= n\^ +Set conversion buffer size. +.TP +.BI skip= n\^ +Skip +.I n +input records before copying. +.TP +.BI iseek= n\^ +Seek +.I n +records forward on input file +before copying. +.TP +.BI files= n\^ +Copy and concatenate +.I n +input files (makes sense only +where input is a magnetic tape or similar device). +.TP +.BI oseek= n\^ +Aeek +.I n\^ +records from beginning of output file before copying. +.TP +.BI count= n\^ +Copy only +.I n +input records. +.HP +\f5conv=ascii\ \ \ \ \fRConvert \s-2EBCDIC\s0 to \s-2ASCII\s0. +.PD0 +.RS "\w'\f5conv=\fP'u" +.TP "\w'\f5unblock\ \ \fP'u" +.B ebcdic +Convert +.SM ASCII +to +.SM EBCDIC. +.TP +.B ibm +Like +.B ebcdic +but with a slightly different character map. +.TP +.B block +Convert variable length +.SM ASCII +records to fixed length. +.TP +.B unblock +Convert fixed length +.SM ASCII +records to variable length. +.TP +.B lcase +Map alphabetics to lower case. +.TP +.B ucase +Map alphabetics to upper case. +.TP +.B swab +Swap every pair of bytes. +.TP +.B noerror +Do not stop processing on an error. +.TP +.B sync +Pad every input record to +.I ibs\^ +bytes. +.RE +.PD +.PP +.fi +Where sizes are specified, +a number of bytes is expected. +A number may end with +.LR k , +.LR b , +or +.L w +to specify multiplication by +1024, 512, or 2 respectively; +a pair of numbers may be separated by +.L x +to indicate a product. +Multiple conversions may be specified in the style: +.LR conv=ebcdic,ucase . +.PP +.L Cbs\^ +is used only if +.LR ascii\^ , +.LR unblock\^ , +.LR ebcdic\^ , +.LR ibm\^ , +or +.L block\^ +conversion is specified. +In the first two cases, +.I n +characters are copied into the conversion buffer, any specified +character mapping is done, +trailing blanks are trimmed and new-line is added +before sending the line to the output. +In the latter three cases, characters are read into the +conversion buffer and blanks are added to make up an +output record of size +.I n. +If +.L cbs\^ +is unspecified or zero, the +.LR ascii\^ , +.LR ebcdic\^ , +and +.L ibm\^ +options convert the character set without changing the block +structure of the input file; the +.L unblock\^ +and +.L block\^ +options become a simple file copy. +.PP +.I Dblbuf +copies the named +.IR file , +or the standard input if no file +is specified, to the standard output. +Output is written in blocks matching the +input up to the given blocksize, or 32768 +bytes if not specified. +.PP +.I Dblbuf +uses multiple processes +to run faster, which is particularly useful in dealing with +a device such as a streaming tape drive. +.SH EXAMPLES +.TP +.L +dd if=/dev/rmt0 of=x ibs=800 cbs=80 conv=ascii,lcase +Read an +.SM EBCDIC +tape blocked ten 80-byte +.SM EBCDIC +card images per record into an +.SM ASCII +file. +Note the use of raw magtape to handle arbitrary record sizes. +.TP +.L +tar cf /dev/stdout /usr | dblbuf >/dev/rmt1 +Copy the +.F /usr +directory to tape on +.FR /dev/rmt1 . +.SH "SEE ALSO" +.IR cp (1), +.IR tar (1), +.IR cpio (1) +.SH DIAGNOSTICS +.I Dd +reports the number of full + partial input and output +blocks handled. +.SH BUGS +The +.SM ASCII/EBCDIC +conversion tables for +.I dd +were taken +from the 256-character standard in +.SM CACM +Nov, 1968. +The +.L ibm\^ +conversion, while less blessed as a standard, +corresponds better to certain +.SM IBM +print train conventions. +There is no universal solution. +.br +Options +.B if +and +.B of +are verbose equivalents of +.B < +and +.BR > . diff --git a/static/unix-v10/man1/dds.1 b/static/unix-v10/man1/dds.1 new file mode 100644 index 00000000..35023aa4 --- /dev/null +++ b/static/unix-v10/man1/dds.1 @@ -0,0 +1,25 @@ +.pa 1 +.he 'Y''X' +.ti 0 +NAME X +.sp +.ti 0 +SYNOPSIS X +.sp +.ti 0 +DESCRIPTION X +.sp +.ti 0 +FILES X +.sp +.ti 0 +SEE ALSO X +.sp +.ti 0 +DIAGNOSTICS X +.sp +.ti 0 +BUGS X +.sp +.ti 0 +OWNER X diff --git a/static/unix-v10/man1/deroff.1 b/static/unix-v10/man1/deroff.1 new file mode 100644 index 00000000..01dfb1be --- /dev/null +++ b/static/unix-v10/man1/deroff.1 @@ -0,0 +1,178 @@ +.TH DEROFF 1 +.CT 1 writing_aids +.SH NAME +deroff, demonk, detex, delatex \- remove formatting requests +.SH SYNOPSIS +.B deroff +[ +.I option ... +] +.I file ... +.PP +.B demonk +[ +.I option ... +] +.I file ... +.PP +.B detex +.I file +.PP +.B delatex +.I file +.SH DESCRIPTION +.I Deroff +reads each file in sequence +and removes all +.I nroff +and +.IR troff (1) +requests and non-text arguments, backslash constructions, +and constructs of preprocessors such as +.I eqn, pic, +and +.IR tbl (1). +Remaining text is written on the standard output. +.I Deroff +follows files included by +.L .so +and +.L .nx +commands; +if a file has already been included, a +.L .so +for that file is ignored and a +.L .nx +terminates execution. +If no input file is given, +.I deroff +reads from standard input. +.PP +The options are +.TP +.B -w +Output a word list, one `word' (string of letters, digits, and +properly embedded ampersands and apostrophes, +beginning with a letter) per line. +Other characters are skipped. +Otherwise, the output follows the original, with the deletions mentioned above. +.TP +.B -i +Ignore +.L .so +and +.L .nx +requests. +.TP +.BR -ms +.PD0 +.TP +.B -mm +Remove titles, attachments, etc., as well as ordinary +.IR troff +constructs, from +.IR ms (6) +or +.I mm +documents. +.PD +.TP +.B -ml +Same as +.BR -mm , +but remove lists as well. +.PP +.I Demonk +removes all +.IR monk (1) +commands and then invokes +.I deroff +to handle both +.I troff +commands and preprocessor constructs. +.I Demonk +follows files included by +.L |\^insert +and +.L |\^source +commands as well as +.I troff +.L .so +and +.L .nx +requests. +If no input file is given, +.I demonk +reads from standard input. +.PP +.I Demonk +recognizes the following options and passes all options except +.B -b +and +.B -d +to +.I deroff . +.TP +.B -i +Ignore +.I monk +.L |\^insert +and +.L |\^source +commands as well as +.I troff +.L .so +and +.L .nx +requests. +.TP +.B -b +Do not output blank lines resulting from the removal of +.I monk +commands. +.TP +.BI -d dir +Use non-standard +.I monk +database directory +.I +dir. +.PP +.I Detex +and +.I delatex +do for +.IR tex (1) +and +.IR latex (6) +files what +.B deroff -w +does for +.I troff +files. +.I Delatex +largely subsumes +.I detex. +.SH "SEE ALSO" +.IR troff (1), +.IR monk (1), +.IR tex (1), +.IR spell (1), +.IR wwb (1) +.SH BUGS +These filters are not complete interpreters of +.I troff +or +.I tex. +For example, macro definitions containing +.L \e$ +cause chaos in +.IR deroff +when the popular +.L $$ +delimiters for +.I eqn +are in effect. +.br +Text inside macros is emitted at place of +definition, not place of call. diff --git a/static/unix-v10/man1/df.1 b/static/unix-v10/man1/df.1 new file mode 100644 index 00000000..fb1e1ec5 --- /dev/null +++ b/static/unix-v10/man1/df.1 @@ -0,0 +1,30 @@ +.pa 1 +.he 'DF (I)'1/20/73'DF (I)' +.ti 0 +NAME df -- disk free +.sp +.ti 0 +SYNOPSIS df__ [ filesystem ] +.sp +.ti 0 +DESCRIPTION df__ +prints out the number of free blocks +available on a file system. +If the file system is unspecified, +the free space on all of +the normally mounted file systems +is printed. +.sp +.ti 0 +FILES /dev/rf?, +/dev/rk?, +/dev/rp? +.sp +.ti 0 +SEE ALSO check(VIII) +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/dictadd.1 b/static/unix-v10/man1/dictadd.1 new file mode 100644 index 00000000..219d3c02 --- /dev/null +++ b/static/unix-v10/man1/dictadd.1 @@ -0,0 +1,142 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.4, March 9, 1981 +.tr @ +.TH DICTADD 1 +.SH NAME +dictadd \- add phrases to user's diction or sexist dictionary +.SH SYNOPSIS +.B dictadd +[ +.B \-flags +][ +.B \-ver +] +.SH DESCRIPTION +.I Dictadd +adds words and/or phrases to the user's dictionaries +for use by the +.IR wwb "(1), " proofr "(1), " dictplus "(1), +.IR " diction "(1), " +.RI "and " sexist (1) +programs. +.I Sexist +searches a text for sexist phrases, +while the other programs search a text for wordy or misused diction. +These programs allow the user to have +dictionary files containing additional words and/or phrases +for the programs to locate or ignore. +.I Dictadd +automatically sets up these dictionary files. +.PP +.I Dictadd +asks users whether they want to add words to +.I $HOME/lib/ddict, $HOME/lib/sexdict, +or some other file. +The results depend on the user's response, +as shown below. +.PP +.RS 2 +.TP 21 +@@@User's request +.IR "Dictadd's " action +.TP +.I $HOME/lib/ddict +adds words and/or phrases to the user's dictionary, +.I $HOME/lib/ddict. +This file is checked automatically by +.I wwb +and +.I proofr +and can be specified for use by +.I dictplus +and +.I diction. +(See +.IR diction (1).) +.TP +.I $HOME/lib/sexdict +adds words and/or phrases to the user's dictionary, +.I $HOME/lib/sexdict. +This file is checked automatically by +.I sexist. +.TP +.I filename +adds words to +.I filename, +to be used with +.I diction, dictplus, +or +.I sexist. +.RE +.PP +In all cases, +.I dictadd +questions whether the user wants instructions, +and prompts with ">" for more words or phrases. +If the dictionary is not in existence when +.I dictadd +is invoked, it is created. +If the dictionary already exists, +.I dictadd +adds to it. +To quit, type "q" after the prompt. +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH EXAMPLE +1. The sequence: +.PP +.RS 5 +.B dictadd +(carriage return) +.br +(program asks if the user wants the words to be added to $HOME/lib/ddict) +.br +.B y +(user responds yes) +.br +(program asks if the user wants instructions) +.br +.I [~]phrase 1 +(carriage return) +.br +.I [~]phrase 2 +(carriage return) +.br +.I "[~]phrase n" +(carriage return) +.RE +.PP +will add phrases to +.IR $HOME/lib/ddict . +Phrases to be ignored must be preceded by a tilde(~), +phrases to be located require no special symbol. +When finished, type "q" on a line by itself. +.SH SEE ALSO +diction(1), +dictplus(1), +proofr(1), +sexist(1), +suggest(1), +wwb(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/dictplus.1 b/static/unix-v10/man1/dictplus.1 new file mode 100644 index 00000000..36c7f99f --- /dev/null +++ b/static/unix-v10/man1/dictplus.1 @@ -0,0 +1,128 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.2, March 3, 1981 +.TH DICTPLUS 1 +.SH NAME +dictplus \- automatic combination of diction and suggest +.SH SYNOPSIS +.B dictplus +[ +.B \-flags +][ +.B \-ver +][ +.B \-f +pfile [ +.B \-n +] ][ file ...] +.SH DESCRIPTION +.PP +.PP +.I Dictplus +automatically combines +.I diction +and +.IR suggest . +Options are: +.RS 5 +.TP 9 +.BI \-f " pfile" +Use the user's phrase file, +.IR pfile , +in addition to the default file of bad or wordy diction. +.IR Dictadd (1) +can be used +to set up this file. +.TP +.B \-n +Locate the phrases in +.I pfile +instead of the default phrase file. +.B \-n +cannot be used without +.B \-f +.IR pfile . +.RE +.I Dictplus +is one of the programs run under the +.IR proofr (1) +and +.IR wwb (1) +commands. +.PP +.IR Dictadd (1) +adds words and/or phrases that are to be located or ignored by +.IR diction " or " dictplus +to the user's dictionary, +.I $HOME/lib/ddict . +.I Dictadd +gives instructions on the necessary format +for phrases to be located or ignored by +.IR diction " or " dictplus. +.I $HOME/lib/ddict +is only used by +.I diction +and +.I dictplus +when it is specified by the +.B \-f +flag. +.IR Proofr (1) +checks +.I $HOME/lib/ddict +automatically when it runs +.IR dictplus . +.PP +All programs can take the following two options +that give information on the programs: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH EXAMPLES +1. The command: +.PP +.RS 5 +.B "dictplus -f patfile filename" +.RE +.PP +will print sentences from +.I filename +that contain bad or wordy diction, +including or suppressing phrases as specified in +.IR patfile . +Suggested replacements for bad phrases will also be printed. +(The +.I patfile +can be +.IR $HOME/lib/ddict .) +.SH FILES +.TP 21 +/tmp/$$* +temporary files used by +.I dictplus +.SH "SEE ALSO" +diction(1), +suggest(1), +proofr(1), +wwb(1), +worduse(1), +sexist(1), +dictadd(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/diff.1 b/static/unix-v10/man1/diff.1 new file mode 100644 index 00000000..7942ec4b --- /dev/null +++ b/static/unix-v10/man1/diff.1 @@ -0,0 +1,270 @@ +.TH DIFF 1 +.CT 1 files +.SH NAME +diff, diff3 \- differential file comparison +.SH SYNOPSIS +.B diff +[ +.I option ... +] +.I file1 file2 +.PP +.B diff3 +[ +.B \-ex3 +] +.I file1 file2 file3 +.SH DESCRIPTION +When run on regular files +.I diff +tells what lines must be changed in the files to bring them into agreement. +Except in rare circumstances, +.I diff +finds a smallest sufficient set of differences. +If neither file +is a directory, then one +may be +.LR - , +meaning the standard input. +If one file +is a directory, +then a file in that directory with basename the same as that of +the other file is used. +.PP +If both files are directories, +similarly named files in the two directories +are compared by the method of +.I diff +for text files and +.IR cmp (1) +otherwise. +Options when comparing directories are: +.TP +.B -r +Apply +.I diff +recursively to similarly named subdirectories. +.TP +.B -s +Report files that are the same (normally not mentioned). +.PP +There are several options for output format; +the default output format contains lines of these forms: +.IP +.IB n1 a +.IB n3 , n4 +.br +.IB n1 , n2 d +.I n3 +.br +.IB n1 , n2 c +.IB n3 , n4 +.PP +These lines resemble +.I ed +commands to convert +.I file1 +into +.IR file2 . +The numbers after the letters pertain to +.IR file2 . +In fact, by exchanging +.L a +for +.L d +and reading backward +one may ascertain equally how to convert +.I file2 +into +.IR file1 . +As in +.I ed, +identical pairs where +.IR n1 = n2 +or +.I n3 = n4 +are abbreviated as a single number. +.PP +Following each of these lines come all the lines that are +affected in the first file flagged by +.LR < , +then all the lines that are affected in the second file +flagged by +.LR > . +.PP +.TP +.B -e +Produce a script of +.LR a , +.LR c , +and +.L d +for +.IR ed (1) +to recreate +.I file2 +from +.IR file1 . +When comparing directories, produce a +.IR sh (1) +script to convert text files common to the two directories. +.TP +.BI -c n +Include +.I n +extra lines of context with each set of differences. +The output format is modified: +the output begins with identification of the files involved and +their creation dates and changes are separated +by lines of *'s. +Lines removed from +.I file1 +are marked with +.LR - ; +those added to +.I file2 +are marked +.LR + . +Lines which are changed from one +file to the other are marked in both files with +.LR ! . +.TP +.B -h +Do a fast, half-hearted job, +useful only when changed stretches are short +and well separated, +but does work on files of unlimited length. +.TP +.B -b +Ignore trailing blanks (spaces and tabs) and treat other +strings of blanks as if they were a single space. +.TP +.B -B +Ignore all blanks. +.PP +.I Diff3 +compares three versions of a file +and publishes the various disagreeing ranges of text. +One of the following indicators introduces each reported +difference. +.TP +.B ==== +All three files differ. +.TP +.BI ==== f +File +.I f +differs, where +.I f +is 1, 2, or 3. +.PP +Disagreeing fragments from the three files follow the +.B ==== +line, each identified by a +.IR diff -like +range indication: +.TP +.IB f : n1 a +File +.I f +lacks text that other files have; their text would +be appended after line +.I n1. +.TP +.IB f : n1 , n2 c +.br +.ns +.TP +.IB f : n1 c +Lines +.I n1 +through +.I n2 +(or line +.I n1 +only) of file +.I f +would have to be changed to agree with some other file. +The original contents follow, unless a higher-numbered file +has the same contents. +.PP +Under option +.BR -e , +.I diff3 +publishes a script for +.IR ed (1) +that will incorporate into +.I file1 +all changes between +.I file2 +and +.I file3, +i.e. the changes that normally would be flagged +.B ==== +and +.BR ====3 . +Option +.B \-x +(\fB\-3\fR) +produces a script to incorporate +only changes flagged +.B ==== +.RB ( ====3 ). +.SH EXAMPLES +.TP +.L +(cat diff0-1 diff1-2 diff2-3; echo '1,$p') | ed - file0 >file3 +An ancestral +.L file0 +has been kept along with a chain of version-to-version +difference files made thus: +.LR "diff -e file0 file1 >diff0-1" . +The shell command reconstructs the latest version. +.PP +.EX +if diff3 mod1 old mod2 | grep -s '^====$' +then : +else (diff3 -e mod1 old mod2; echo '1,$p') | ed - mod1 >new +fi +.EE +.PD0 +.IP +Compare two different modified versions with an old file. +If no modifications interfere with each other +.RI ( grep +finds no +.B ==== +lines), make a new file incorporating both modifications. +.PD +.SH FILES +.F /tmp/d* +.br +.F /usr/lib/diffh +for +.B -h +.br +.F /usr/lib/diff3 +.SH "SEE ALSO" +.IR cmp (1), +.IR comm (1), +.IR ed (1), +.IR idiff (1) +.SH DIAGNOSTICS +.I Diff +yields exit status is 0 for no differences, 1 for some, 2 for trouble. +.SH BUGS +Text lines that consist of a single `.' will +defeat options +.BR -e , +.BR -x , +and +.BR -3 . +.br +Superfluous output may result for files that differ +only in insignificant blanks when comparing directories +under option +.BR -b . +.br +Option +.B -c +is unpardonably bizarre. diff --git a/static/unix-v10/man1/dimpress.1 b/static/unix-v10/man1/dimpress.1 new file mode 100644 index 00000000..c3bc4dbd --- /dev/null +++ b/static/unix-v10/man1/dimpress.1 @@ -0,0 +1,160 @@ +.TH DIMPRESS 1 local +.SH NAME +dimpress \- Imagen printer filter +.SH SYNOPSIS +.B dimpress +[ option ] ... [ file ] ... +.SH DESCRIPTION +.I Dimpress +prints +.I files +created by +.IR troff (1) +on any printer that accepts the Impress graphics and page layout +language. +If no +.I file +is mentioned, the standard input is printed. +The following options are understood. +.TP 1.0i +.BI \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IB N1 \- N2. +A missing +.I N1 +means the lowest-numbered page, a missing +.I N2 +means the highest. +.TP 1.0i +.B \-t +Direct output to the standard output instead of the printer. +.TP 1.0i +.BI \-x num +Leave a margin +.I num +inches from the left side edge of the paper. +.TP 1.0i +.BI \-y num +Leaves a margin +.I num +inches down from the top of the page. +Negative values for +.I num +are allowed and often useful, especially to get macro generated +cut marks off the page. +.TP 1.0i +.BI \-l +Print the job in landscape mode. +.TP 1.0i +.BI \-p num +Set the horizontal and vetical step sizes for graphics to +.I num +pixels. +If Impress graphics commands are used for drawing this option +will only affect splines. +.TP 1.0i +.BI \-P num +Use +.I num +as the pixel diameter of the Impress graphics pen. +Only useful when Impress graphics commands are being used. +.TP 1.0i +.BI \-T name +Generate output to be printed on the target printer +.I name. +The printers currently supported are: +.RS 1i +.TP .5i +.PD 0 +.B i300 +Imagen 8/300 +.TP .5i +.B i480 +Imagen 5/480 +.TP .5i +.B i10 +Imagen Imprint-10 using rasti10 raster files +.TP .5i +.B i240 +Imagen Imprint-10 using rasti240 raster files +.RE +.PD 1 +.IP +By default the output printer is assumed to be +.I i300. +Although +.I i10 +and +.I i240 +select the same target printer, namely the Imprint-10, +the raster tables used for character generation will be +found in different directories. +.TP 1.0i +.BI \-F dir +Use +.I dir +as the +.I troff +font directory. +.TP 1.0i +.BI \-B dir +Use +.I dir +as the raster table directory. +When processing a +.I file +generated by +.I troff +for printing on device xxx +.I dimpress +will first look for the binary font directory devxxx +in the raster table directory. +If it's not found there the devxxx directory in +.I troff's +font directory will be used. +.TP 1.0i +.BI \-R name +Use raster tables generated for device +.I name +when printing +.I file. +By default +.I dimpress +will attempt to use the target printer's raster files. +.TP 1.0i +.BI \-f file +Read resident font information from +.I file +which is located in directory /usr/lib/raster/RESIDENT. +By default +.I dimpress +looks for a file in that directory that has the same +name as the target printer. +Useful if several otherwise identical printers +support different sets of resident fonts. +.PP +The +.I files +should be prepared by +.I troff. +Best results will almost certainly be obtained only when +.I troff +and +.I dimpress +agree on the target printer. +.SH FILES +/tmp/dimp* +.br +/usr/lib/font/dev*/* +.br +/usr/lib/raster/rast* +.br +/usr/lib/raster/RESIDENT/* +.br +.SH SEE ALSO +troff(1), tc(1), troff(5), daps(1) +.\" @(#)daps.1 1.1 of 12/17/82 diff --git a/static/unix-v10/man1/dired.1 b/static/unix-v10/man1/dired.1 new file mode 100644 index 00000000..16c2b312 --- /dev/null +++ b/static/unix-v10/man1/dired.1 @@ -0,0 +1,148 @@ +.TH DIRED 1 +.CT 1 dirs +.SH NAME +dired \- directory editor +.SH SYNOPSIS +.B dired +[ +.I option ... +] +[ +.I file +] +.SH DESCRIPTION +.I Dired +displays a directory listing like +.L ls -l +(see +.IR ls (1)) +and allows you to prowl around the listed entries, +deleting, editing, and displaying them. +It requires a cursor-addressed terminal identified +in environment variable +.BR TERM ; +see +.IR term (9.1) +to simulate such terminals in +.IR mux (9.1). +.PP +With no +.I file +argument, the current directory is listed. +With only one +.I file +argument, the argument is interpreted as a directory and it is listed. +With multiple arguments, the arguments are interpreted as filenames. +The options are: +.TP +.BR - [ sr ][ nsrw ] +Sort the file list by +name (default), size, access time, or modification time. +Ordering for +.B s +is increasing if by name, decreasing otherwise. +Ordering is opposite for +.BR r . +.TP +.BI -w n +If +.I n +is +.BR f, +use the full screen; if +.BR h , +use half the screen (default); if a number, use +.I n +lines for the directory listing, reserving the rest +of the screen for quick +file display. +.PP +The fields of a +.I dired +listing are: mode, link count, owner, size, write date and name. +A cursor shows the current entry. +.PP +Commands consist of single characters; arguments are +prompted for at the bottom of the screen. +To get a complete list, use the help command. +Fuller descriptions of less obvious commands are given below. +.TP +.B ! +Prompt for a shell command. +The command is executed with +.L % +characters in the command are replaced by the pathname of the current +entry, and +.L # +characters by the basename. +.TP +.B . +Repeat the previous +.B ! +shell command, using the current entry to replace +.L % +or +.LR # . +.TP +.B d +Mark the current entry for deletion. +Deletion of a directory is recursive. +.TP +.B e +If the current entry is a file, +edit it with the editor +.I e, +or an editor named by the environment variable +.BR EDITOR . +If it is a directory, +invoke +.IR dired +recursively for that directory. +.TP +.B h +.br +.ns +.TP +.B ? +Display a help file. +.TP +.B m +Display the current file with the pager +.IR p (1), +or another pager named by the environment variable +.BR PAGER . +.TP +.B q +Quit this directory level of +.I dired. +List the files marked for deletion and request +confirmation before deleting them. +.TP +.B t +Type. +Display the current file. +In two-window mode pause after each screenfull until you type +a carriage return. +The display may be interrupted. +.SH FILES +.TF /usr/lib/dired +.TP +.F /usr/lib/dired +help file +.SH SEE ALSO +.IR ls (1) +.SH DIAGNOSTICS +While +.I dired +is preparing a listing it reports `Reading', +and types a dot +for each 10 files. +.SH BUGS +Long lines and diagnostics can foul up the +display. +.br +Needs a command to search for a given file. +.br +The off-line print command +.L p +is broken. diff --git a/static/unix-v10/man1/dis.1 b/static/unix-v10/man1/dis.1 new file mode 100644 index 00000000..2361c0ff --- /dev/null +++ b/static/unix-v10/man1/dis.1 @@ -0,0 +1,34 @@ +.TH DIS 1 SHARE +.SH NAME +dis \- display input as refreshed page on VDU output +.SH SYNOPSIS +.B dis +.RB [ -t timeout] +.RB [ -c refresh] +.SH DESCRIPTION +.I Dis +looks up the terminal capability database for the characteristics +of the device represented by the environment variable "TERM". +Assuming that the standard input consists of repetitive pages, +.I Dis +then uses cursor addressing to write changed data only on its standard output. +Pages are delimited by a +.I form-feed +or by a timeout, if requested. +.PP +The timeout is specified by the flag \fB-t\fR followed by a number +representing seconds. +.PP +If the +.B -c +flag is specified, the screen is completely redrawn every +.I refresh +updates. +.SH EXAMPLES +(while true; do date; echo '\\f\\c'; sleep 10; done)|dis +.SH FILES +/etc/termcap +.SH SEE ALSO +termlib(3), or curses(3). +.SH DIAGNOSTICS +If your terminal doesn't have cursor addressing. diff --git a/static/unix-v10/man1/dist.1 b/static/unix-v10/man1/dist.1 new file mode 100644 index 00000000..a3e3edf4 --- /dev/null +++ b/static/unix-v10/man1/dist.1 @@ -0,0 +1,84 @@ +.TH DIST 1 +.SH NAME +dist \(mi distribute files to remote systems +.SH SYNOPSIS +.\".BI "dist [ " system " | -[Ff] " file " ] [ -n ] " files +.BI "dist [ " system " | -[Ff] " file " ] " files +.PP +.B "dist -q [" +.I system +.B "| -[Ff]" +.I file +.B "]" +.PP +.B "dist -r [" +.I system +.B "| -[Ff]" +.I file +.B "]" +.SH DESCRIPTION +.I Dist +distributes files to other systems, where they are installed +under the same names. +.I Dist +operates by packaging the files with +.IR mkpkg (1), +and queuing the resulting package in a spool directory to be +picked up by the remote systems. +.PP +The remote systems' names are given as a single argument, containing +the system names (in the format of +.IR ipc (3)) +separated by white space; alternatively, the +.B -f +option may be used to specify a file containing a list of system names. +The +.B -F +option is identical to +.B -f +except +.I dist +looks for the file in a standard directory. +.PP +The +.I dist +command has two forms of use. In the first form, +.I dist +packages a group of files and queues them for transmission. +.\"If the +.\".B -n +.\"option is specified, the remote systems are notified that the package +.\"is available. +The +.I file +arguments may be either file names or options for +.IR mkpkg (1). +.PP +When +.B -q +is given, +.I dist +queries the named systems and displays the contents of their transmission +queues; if no systems are given the local queue is displayed +by default. +.PP +When +.B -r +is given, +.I dist +calls the named system and installs any packages it has queued for +the local system. +.SH EXAMPLES +Distribute a new binary for grep to all vaxes: +.IP +.B "dist -F vaxes /bin/grep" +.SH FILES +.B /usr/lib/dist/* +.br +.B /usr/lib/dist/destinations/* +.br +.B /usr/spool/dist/* +.SH "SEE ALSO" +.IR mkpkg (1), +.IR dist (5), +.IR dist (8) diff --git a/static/unix-v10/man1/dmdcat.1 b/static/unix-v10/man1/dmdcat.1 new file mode 100755 index 00000000..ce5ee409 --- /dev/null +++ b/static/unix-v10/man1/dmdcat.1 @@ -0,0 +1,92 @@ +.TH DMDCAT 1 "630 MTG" +.SH NAME +dmdcat - send files to a 630 MTG connected printer. +.SH SYNOPSIS +\fBdmdcat\fR [ \f3\-s\f1 ] [ \f3\-b\f1 ] [ \f3\-v\f1 ] [ +\f3\-u\f1 ] [ \f3\-t\f1 ] [ \f3\-e\f1 ] [ file\&.\&.\&. ] +.SH DESCRIPTION +The +.I dmdcat +command is intended to be used +to send files to a printer connected to the Printer port of the 630 +MTG terminal. +\f2Dmdcat\f1 will send the concatenation of files specified on its +command line, or the standard input if no files are specified. +.PP +The data is sent to the terminal preceded by a \fIPrinter-On\fR Request +escape sequence, and is terminated by a \fIPrinter-Off\fR request +escape sequence. +The \fIPrinter-On\fR request escape sequence commands the terminal emulator to start +sending incoming data to the printer if the printer is available. The \fIPrinter-Off\fR request escape sequence tells +the terminal emulator to stop the sending. +The escape sequences sent are: +.RS 8 +.ft CW +.sp +\f3Printer On\f1 - ESC[?5;1i +.sp +\f3Printer Off\f1 - ESC[?4i +.ft 1 +.RE +.PP +If the \fB\-s\fR is present, \f2dmdcat\f1 uses this set of escape +sequences: +.RS 8 +.ft CW +.sp +\f3Printer On (no screen)\f1 - ESC[?5;2i +.sp +\f3Printer Off (no screen)\f1 - ESC[4i +.ft 1 +.RE +.sp +which tells the terminal emulator to start/stop +sending incoming data to the printer (if the printer is available) as before +but not to display this data on the screen. +.PP +The terminal responds with: +.RS 8 +.ft CW +.sp +ESC[?\f3ps\f1i where: +.sp +\f3ps\f1=0 indicates printer was not granted +.sp +\f3ps\f1=1 indicates printer was granted. +.ft 1 +.RE +.sp +If the printer was not granted, or if the terminal does not respond, +\fIdmdcat\fR displays a message and aborts. +.PP +The second option, \fB\-b\fR, strips backspaces +from the output of \f2dmdcat\f1. +If backspaces result in two or more characters appearing +in the same place, only the last character read is output. +This means that the printed output appears exactly as it +appears on the 630 MTG screen, without bold and underline. +This option is useful for printers which either cannot process +backspaces or are slow in processing backspaces. +.PP +\fIDmdcat\fR is a shell program that calls \fIcat\fR(1) and will pass +the options \fB-u\fR, \fB-v\fR, \fB-t\fR, and \fB-e\fR to \fIcat\fR(1). + +.SH FILES +$DMD/lib/dmdgetpr reads terminal response + +.SH SEE ALSO +cat(1), col(1) in the +\f2UNIX System V User Reference Manual\f1. +.br +\f2630 MTG Terminal User's Guide\f1. +.SH DIAGNOSTICS +\f2Dmdcat\f1 uses the \f2col\f1(1) command to +strip backspaces with the \fB\-b\fR option. +\fICol\f1(1) is not available on all \s-1UNIX\s+1 +systems. +The \fB\-b\fR option will give +an error message if it cannot locate the \f2col\f1(1) command. +.PP +\f2Dmdcat\f1 only works if it is executed from +the default 630 MTG terminal emulator or any terminal emulator that supports the +escape sequence sets described above. diff --git a/static/unix-v10/man1/dmdcc.1 b/static/unix-v10/man1/dmdcc.1 new file mode 100755 index 00000000..757eba1a --- /dev/null +++ b/static/unix-v10/man1/dmdcc.1 @@ -0,0 +1,247 @@ +.TH DMDCC 1 "630 MTG" +.SH NAME +dmdcc \- 630 MTG C compiler +.SH SYNOPSIS +\f3dmdcc [\f1 options \f3]\f1 file ... +.SH DESCRIPTION +The +.I dmdcc +command is the 630 MTG C compiler. Any software to be downloaded +into the 630 MTG must be compiled using this command. +.PP +\fIDmdcc\fR works in a similar manner to +other compiler (cc) commands but is enhanced to call +\fImc68cpp\fR and \fImc68ld\fR +with special arguments for the 630 MTG development environment. +In particular, +the \fIdmdcc\fR command defines the variable \fBDMD630\fR, +it sets the include search path +to $DMD/include, it sets the library search path to $DMD/lib, +it includes the standard 630 MTG libraries, it links in the 630 +MTG C +run-time start-up routine crtm.o, and it tells \fImc68ld\fR +to retain relocation information so the +resulting executable file can be relocated before download into the +630 MTG. +.PP +The exact arguments passed to \fImc68cpp\fR and \fImc68ld\fR +can be viewed by including the \fI-#\fR debugging argument on the +\fIdmdcc\fR command line. +.PP +The +\fIdmdcc\fR utility +accepts three types of arguments: +.RS 8 +.B .c +.br +.B .s +.br +.B .o +.RE +.PP +Arguments whose names end with +.B .c +are the C source programs, and those with +.B .s +are the assembly programs. +They are compiled/assembled, and +each object program +whose name is that of the source with +.B .o +substituted +.RB "for " .c " or " .s +is left in the file. +The +.B .o +file is normally deleted if a single +C program is compiled and link-edited all at one time. +.PP +The following flags are interpreted by +.I dmdcc\c +\&. +See +.IR mc68cpp (1), +.IR mc68as (1) +and +.IR mc68ld (1) +for other useful flags. +.PP +.TP 6 +\fB\-c\fR +Suppress the link-editing phase of the compilation, and force +an object file to be produced even if only one program is compiled. +.PP +.TP 6 +\fB\-g\fR +Flag to the compiler to produce additional information needed for the +use of +.IR dmdpi (1). +\} +.PP +.TP 6 +\fB\-O\fR +Invoke an object-code optimizer. +The optimizer will move, merge, and delete code; this option should not be +used if it is expected that compiled code may be debugged with \fIdmdpi\fR(1). +.PP +.TP 6 +\fB\-W\fIc\fB,\fRarg1[\fB,\fRarg2...] +Hand off the argument[s] +to pass +.I c +where +.I c +is one of +.RB [ p02al ] +indicating preprocessor, +compiler, +optimizer, +assembler, +or link editor, respectively. For example: +.RS 6 +.ce +.B \-Wa,\-m +.br +invokes the \f2m4\f1 macro preprocessor on the input to the assembler. +.RE +.PP +.TP 6 +\fB\-S\fR +Compile the named C programs, and leave the +assembler-language output on corresponding files suffixed +.BR .s . +.PP +.TP 6 +\fB\-P\fR +Run only the macro preprocessor +on the named C programs, and leave the output on corresponding +files suffixed +.BR .i . +.TP 6 +\fB\-E\fR +Same as the +.B \-P +option except the output is directed to the standard output. +This allows the preprocessor to be used as a filter for +any other compiler. +.PP +.TP 6 +\fB\-#\fR +Debug flag. Show the command lines passed to \fImc68cpp\fR, +\fImc68ccom\fR, \fImc68as\fR and \fImc68ld\fR. +.PP +.TP 6 +\fB\-x\fR +Turn off special processing for the 630 MTG environment. This argument should +not be used when compiling programs to be downloaded into the 630 +MTG. +.PP +.TP 6 +\f3\-Z\f1 \f2n\f1 +Allocate \f2n\f1 bytes of stack for process. If not specified the +default is 2048, Note that stack size can be overridden at +download time with the \f2dmdld -Z\f1 option. If \f2n\f1 is +specified smaller than 2048, it is defaulted to 2048. +.PP +.DT +.br +.DT +.PP +Other arguments +are taken +to be either C preprocessor or link-editor flag arguments, or C-compatible +object programs, typically produced by an earlier +.I dmdcc +run, +or perhaps libraries of C-compatible routines. +These programs, together with the results of any +compilations specified, are link-edited (in the order +given) to produce an executable program with name +.B dmda.out +unless the +.B \-o +option of the link-editor is used. +.PP +The +.I dmdcc +command expects the \fBDMD\fR shell variable to be set and exported in +the user's environment. +This variable must point to the "root" directory of the 630 MTG software +node. +.PP +\fIDmdcc\fR tags the downloadable ouput file with a +programming envirionment identification number (PEID) which is +used by \fIdmdld\fR prior to download to verify copatibility +with terminal firmware. The PEID is determined by \fIdmdcc\fR +from the firmware routine linkages included in the process. +Every firmware routine called by the process causes a linkage +to the routine to be retrieved from archive and included in +the load module. Each of these linkage routines is tagged with +a PEID related to the firmware version that supports the +called firmware routine. The PEID associated with the latest +level of firmware required to support those linkages retrieved +from archive is tagged to the load module. Compatibility with +earlier firmware releases is maintained as long as new +firmware functions not supported by older firmware are not used +in the program. +.SH FILES +.PD 0 +.TP 22 +file.c +input file +.TP 22 +file.o +object file +.TP 22 +file.s +assembly language file +.TP 22 +dmda.out +link-edited output +.TP 22 +/usr/tmp/mc68? +temporary file +.TP 22 +$DMD/lib/mc68cpp +preprocessor +.TP 22 +$DMD/lib/mc68ccom +compiler +.TP 22 +$DMD/lib/mc68optim +optimizer +.TP 22 +$DMD/bin/mc68as +assembler +.TP 22 +$DMD/bin/mc68ld +link loader +.DT +.PD +.br +.SH SEE ALSO +dmdpi(1), +mc68as(1), +mc68cpp(1), +mc68ld(1). +.br +m4(1) in the +\f2UNIX System V Programmer's Reference Manual\f1. +.br +.sp +.IR "The C Programming Language", +by Kernighan, B. W., and Ritchie, D. M., +Prentice-Hall, 1978. +.br +.I Programming in C\-A Tutorial +by Kernighan, B. W. +.br +.I C Reference Manual +by Ritchie, D. M. +.br +.br +.SH DIAGNOSTICS +The diagnostics produced by the C compiler are sometimes +cryptic. +Occasional messages may be produced by the assembler +or link-editor. diff --git a/static/unix-v10/man1/dmddemo.1 b/static/unix-v10/man1/dmddemo.1 new file mode 100755 index 00000000..596e85b0 --- /dev/null +++ b/static/unix-v10/man1/dmddemo.1 @@ -0,0 +1,31 @@ +.TH DMDDEMO 1 "630 MTG" +.SH NAME +dmddemo - demonstrations available on the 630 MTG +.SH SYNOPSIS +\fBdmddemo\fR [options] +.SH DESCRIPTION +The \fIdmddemos\fR are graphical demonstration programs that run on the 630 MTG. +All programs will become local unless they are downloaded into a window +which is the last window connected to a host. +Exiting each program can be done by typing 'q' when that window is current +or by deleting the window. +Typing \fIdmddemo\fR +with no options gives you a list of demonstrations available. +.sp 2 +Options (demos) available are: +.nf +.sp + \fBball\fR A bouncing ball +.sp + \fBbounce\fR Ricocheting lines. Button 1 controls speed. +.sp + \fBclock\fR Displays face of clock with moving hands in + addition to a digital time display. +.sp + \fBdoodle\fR An interactive doodler. Button 1 draws and + button 2 erases. +.sp + \fBrose\fR Rotates trigonometric figures to produce various + flower shapes. +.sp + \fBstar\fR Interactive drawing. Button 1 draws and button 2 erases. diff --git a/static/unix-v10/man1/dmdld.1 b/static/unix-v10/man1/dmdld.1 new file mode 100755 index 00000000..e129f264 --- /dev/null +++ b/static/unix-v10/man1/dmdld.1 @@ -0,0 +1,210 @@ +.ds ZZ DEVELOPMENT PACKAGE +.TH DMDLD 1 "630 MTG" +.SH NAME +dmdld \- 630 MTG application bootstrap loader +.SH SYNOPSIS +\f3dmdld [\f1 options \f3]\f1 file \f3[\f1 application - arguments \f3]\f1 +.SH DESCRIPTION +The +.I dmdld +program downloads the named +.I file +from the host, for execution in the 630 MTG terminal's window connected +to its standard output. It can also be used to invoke +cached applications. +.PP +The \fIdmdld\fR program works in \fIlayers(1)\fR and non-layers environments. +In \fIlayers(1)\fR, the download runs on top of the existing \fIxt\fR error-correcting +protocol. In non-layers, \fIdmdld\fR temporarily puts the 630 +MTG terminal into +\fIxt\fR protocol, and mimics that protocol from its side, thus insuring an error-free +download. +.PP +.I Dmdld +first asks the terminal if there is a cached application +of name +.I file +already in the terminal. The inquiry uses the filename +clipped from any pathname prefix. +If such an application exists and is +available, that application will be booted in the window without going +through the download sequence. +.PP +If a cached application of inquired filename +does not exist +in the terminal or is not available (see \fIcache(3L)\fR for reasons), +.I dmdld +will attempt to download +.I file +from the host. +Files to be downloaded by +.I dmdld +must be 630 object files created with +\fIdmdcc(1)\fR. +.PP +During compilation, \fIdmdcc(1)\fR looks for the programming environment identification +(PEID) number of all the library functions link-loaded, and assumes the highest number +as the PEID of the application. During the download initialization, \fIdmdld\fR +will send this number to the terminal. If the terminal's firmware version does not support +this PEID - in other words, the firmware does not have some new library functions used +by the application, the download will be aborted. The argument flag +.B \-f +will override this checking, but the sanity of the application (after being downloaded +and running) cannot be guaranteed. +.PP +The optional \f2application-arguments\f1 are also sent to the terminal in order to +initialize the parameters \fIargc\fR and \fIargv\fR of the function \fImain\fR +of the application. +.PP +During the download, the 630 mouse cursor will turn into a +"coffee cup" and the progress +of the download is shown by a gradual filling of the window with inverse video. +The code to be downloaded is relocated on-the-fly by \fIdmdld\fR to the +memory area allocated for it by the terminal. +If the download succeeds, the application will take over the +window and start execution. +.PP +The following options are supported by \fIdmdld\fR: +.TP +.B \-d +causes a printout of the download information on the +diagnostic output (standard error). +.TP +.B \-p +prints non-layers protocol statistics on the diagnostic output (standard error). +Note that this option forces the +.B \-d +option. In \fIlayers(1)\fR, this option is the same as the +.B \-d +option. +.TP +.B \-z +loads the process but does not run it. +The process can then be started using +.IR dmdpi (1). +This option works only under +.IR layers (1). +.TP +.B \-f +forces the download even if the programming environment identification +number of the application is not supported by the terminal it is downloaded +into. +.TP +.B \-n +is a null option, and is ignored by \f2dmdld\f1. It is used by +processes that want to fork \f2dmdld\f1 with a variable argument +option. +.TP +\f3\-Z\f1 \f2n\f1 +overrides the inherent stack size of the download application and sets it +to \fIn\fR bytes. \fIN\fR must be greater than or equal to 2048, or else stack +size is defaulted to 2048. Inherent stack size of the download application +is specified through the -Z option of \fIdmdcc(1)\fR (or defaulted to 2048). + +.TP +.B \-T +loads an absolute file (already link-loaded to a fixed address) +such as a new version of the terminal's firmware into the terminal's RAM space. +This download is called a takeover (overlay) download because it will close all +physical ports except for the one running \fIdmdld\fR. The whole terminal screen +will turn blank, and will be gradually filled up with inverse video representing +the code being downloaded. When the download is finished, execution will begin at +the first address of \fIfile\fR. Relocation will be done by \fIdmdld\fR only if the +first address of \fIfile\fR is lower than the first available RAM address of the +terminal. This is necessary because low-addressed RAM is used to store the +terminal's system tables and variables, and overwriting them with the downloaded data +may put the terminal into undetermined states. The \f3\-N\f1 +option can be used instead, if the relocation possibility is +not wanted. +.TP +.B \-N +loads an absolute file into the terminal's RAM space. The +difference between the \f3\-T\f1 and \f3\-N\f1 options is that +the \f3\-N\f1 does not relocate the absolute file. Therefore +the absolute file can be generated without relocation +information. +.PP +The \f3\-T\f1 and \f3\-N\f1 options only work in the +non-layers environment, and are exclusive of each other. +\ +.PP +The environment variable +.B JPATH +is the analog of the shell's +.B PATH +variable to define a set of directories in which to search for +.IR file . +.TP +\s-1\f3NOTE\s+1\f1: +Standard error should be redirected when using the +.B \-d +or +.B \-p +options. +.SH EXAMPLE +Invoking the terminal resident \fBPF Edit\fR application using \fIdmdld\fR: +.br +.ti +4 +.ft CM +dmdld "PF Edit" +.ft R +.PP +Invoking a \fIdmdcc(1)\fR compiled application: +.br +.ti +4 +.ft CM +dmdld dmda.out +.ft R +.PP +Invoking a \fIdmdcc(1)\fR compiled application with the +.B \-d +flag, redirecting standard error to \fItemp\fR: +.br +.ti +4 +.ft CM +dmdld -d dmda.out 2>temp +.ft R +.PP +Invoking a \fIdmdcc(1)\fR compiled application with \f2application-argument\f1: +.br +.ti +4 +.ft CM +dmdld $DMD/lib/demolib/clock "`date`" +.ft R + +.SH SEE ALSO +cache(3L), dmdcc(1), dmdpi(1), jx(1). +.br +layers(1) in the +\fIUNIX System V Release 3 User's Reference Manual\fR. +.br +layers(1) in the \fI5620 Dot-Mapped Display Reference Manual\fR. + +.SH DIAGNOSTICS +.PP +The error message "\fIdmdld: ... is not compatible with terminal\fR" +means that the application the user attempts to +download cannot execute safely in the terminal because it calls +library routines which do not exist in the terminal's firmware version +(i.e. the programming environment ID of the application is "newer" than the +one supported +by the terminal). A firmware upgrade is necessary, or the user can force +the download by using the +.B \-f +flag. +.PP +The error messages "\fIdmdld: cannot access ...\fR" or "\fIdmdld: cannot open ...\fR" +appearing when the named \fIfile\fR is known to be in the cache, indicate that the +application is not available for booting, and \fIdmdld\fR cannot find or open the +named \fIfile\fR in the host. +.PP +The error message "\fIdmdld: no memory in terminal\fR" indicates +that the terminal has run out of memory to accept the download. The user may +free up memory (by deleting windows, etc..) and re-try. +.PP +Other error messages are self-explanatory. + +.SH BUGS +The \f2application-arguments\f1 are not sent to the terminal +to update \fIargc\fR and \fIargv\fR if the named +\fIfile\fR is found in the terminal's application cache. diff --git a/static/unix-v10/man1/dmdman.1 b/static/unix-v10/man1/dmdman.1 new file mode 100755 index 00000000..79f3b06e --- /dev/null +++ b/static/unix-v10/man1/dmdman.1 @@ -0,0 +1,61 @@ +.TH DMDMAN 1 "630 MTG" +.SH NAME +dmdman \- print manual pages +.SH SYNOPSIS +.B "dmdman" +[options] [sections] titles +.SH DESCRIPTION +The +.I dmdman +utility +prints the on-line manual pages for the given titles. +\f3Titles\f1 are entered in lower case. The \f3sections\f1 are +numbers from one to eight and correspond to the manual page +section numbers. The \f3section\f1 +number may not have a letter suffix. If no \f3section\f1 is +specified, the whole manual is searched for \f3title\f1 and +all occurences of it are printed. +.sp +\f3Options\f1 and their meanings are: +.PP +.TP 6 +\fB-c\fR +Preprocess output with col(1). +.PP +.TP 6 +\fB-d\fR +Search the current directory rather than \f2$DMD/man\f1. +.PP +.TP 6 +\fB-w\fR +Prints on the standard output only the \f3pathname\f1 of the +entries, relative to \f2$DMD/man\f1, or the current directory +for \f2-d\f1 option. +.PP +.TP 6 +\fB-Tterm\fR +Set \f2TERM\f1 (refer greek(1)) before printing the manual +page. In addition, a null \f3term\f1 will clear the +\f3term\f1 variable for the duration of the \f2dmdman\f1 +invocation. +.PP +.TP 6 +\fB-12\fR +Indicates that the terminal type specified on the \f2-T\f1 +option or in the \f2$Term\f1 variable is to be placed in 12 pitch +mode. If this option is used, then the terminal type must not +include the ``-12'' string; otherwise, this string will occur +twice in the \f2$Term\f1 variable, thus making it invalid. +.PP +Since the manual pages are not available on the +AT&T 3B2 Computer, this command will not work on that computer. +.SH FILES +.PD 0 +.TP 32 +$DMD/man/?_man/man[1-8]/* +Packed manual entries +.DT +.PD +.SH SEE ALSO +col(1), greek(1) in the +\fIUNIX System V User's Reference Manual\fR. diff --git a/static/unix-v10/man1/dmdmemory.1 b/static/unix-v10/man1/dmdmemory.1 new file mode 100755 index 00000000..5cd5043c --- /dev/null +++ b/static/unix-v10/man1/dmdmemory.1 @@ -0,0 +1,195 @@ +.nr Hy 0 +.nh +.TH DMDMEMORY 1 "630 MTG" +.SH NAME +dmdmemory - 630 MTG memory profiler +.SH SYNOPSIS +.B dmdmemory [ \-c ] +.SH DESCRIPTION +Memory in the 630 MTG terminal is divided into two types of memory which can be +requested by user level function calls: +.IP . 2 +non-compactible \fIalloc\fR memory [\fIalloc\fR(3R)], +.IP . 2 +garbage-collectible \fIgcalloc\fR memory [\fIgcalloc\fR(3R)]. +.P +The \fIalloc\fR memory pool starts from the low addressed end of the user memory pool and +grows upward. The \fIgcalloc\fR memory pool begins at the other end of the user +memory pool (i.e. at the highest address) and grows downward. +The mobile boundaries of the \fIalloc\fR and +\fIgcalloc\fR pools are named respectively \fBalloclevel\fR and \fBgclevel\fR. +.P +To contain fragmentation due to the non-compactibility of the \fIalloc\fR memory, +there is an \fBalloclimit\fR which restricts the expansion of the \fIalloc\fR pool. +.P +In order to make better use of \fIalloc\fR fragments, the 630 +MTG memory allocation scheme converts a \fIgcalloc\fR request +that cannot fit into +the \fIgcalloc\fR pool to an \fIalloc\fR request. +If there is a fragment big enough +to satisfy the request, it becomes a \fIgcastray\fR block. \fIGcastray\fR memory is +of the same type as \fIgcalloc\fR but resides inside the \fIalloc\fR pool. Note that this +type of memory is only known +by the terminal memory allocation system and cannot be requested directly by a user level +function call. +.P +The \fIdmdmemory\fR utility +presents a graphical representation of the memory usage in the 630 MTG terminal. +A user is able to monitor all three types of +memory with a scope (or zoom) facility, modify the \fBalloclimit\fR, and look +at the memory or stack usage of a particular process. +.P +The \-c option causes \f2dmdmemory\f1 to be cached in the 630 MTG +application cache. +.P +The window size used by \fIdmdmemory\fR is fixed. If the window size is +not correct, a \fICore\fR icon and a "\fImenu on button 2\fR" string are displayed. +The window must be reshaped if this appears by selecting either the +reshape option from the mouse button 2 menu or the reshape +function from the mouse button 3 menu. If reshape is selected +from the button 2 menu, the window is automatically reshaped to +the proper size. If the reshape function from the button 3 menu +is selected, the default window size presented is the correct window +for \fIdmdmemory\fR. +.bp + If a different window size is swept, the core icon and +message string are again displayed. Similarly, if at any time the +window is reshaped back to an incorrect size, the core icon and string are +again displayed. When the window size is incorrect, \fIdmdmemory\fR is largely inactive, so at +times it may be desirable to place \fIdmdmemory\fR in this state to +free cpu resources for other processes. Reshaping the window back to the +correct size reactivates \fIdmdmemory\fR. +.P +In the working mode, the \fIdmdmemory\fR window contains the following, from top to bottom: +.IP "" 2 +\f3\(em\f1 Three numerical upper fields which are, from left to right: +.IP "" 5 +the scoped number of \fIalloc\fR blocks. +.br +the scoped number of \fIgcastray\fR blocks, +.br +the scoped number of \fIgcalloc\fR blocks. +.IP "" 5 +The number of scoped blocks is the number of those bolcks that +fall within the range of memory represented by the dmdmemory +window. +.IP "" 2 +\f3\(em\f1A bar graph which represents the user memory pool in +.br +.in +1 +the viewing scope. \fIAlloc\fR +blocks are reverse-videoed, \fIgcastray\fR blocks are \fIbackground\fR textured, and +\fIgcalloc\fR blocks are grey shaded. To help the visualization, the bar graph is +marked by 100 tick marks, 8 pixels apart. The \fIalloclimit\fR is represented by a longer +vertical bar. +.in 0 +.IP "" 2 +\f3\(em\f1 Five numerical lower fields which are, from left to right: +.IP "" 5 +the starting address of the viewing scope, +.br +the \fBalloclevel\fR address, +.br +the \fBalloclimit\fR address, +.br +the \fBgclevel\fR address, +.br +the ending address of the viewing scope. +.IP "" 2 +In \fIfull view\fR +the viewing scope addresses are the same as the boundary addresses of the total user +memory pool. In a \fIscoped view\fR, the \fBalloclevel\fR, \fBalloclimit\fR or \fBgclevel\fR +addresses may not be displayed if they are out of the viewing scope. +.IP "" 2 +\f3\(em\f1An alphanumeric field which displays information or +.br +.in +1 +help messages. Information +includes the scope setting (\fIfull view\fR or \fIscoped view\fR) and the number of +bytes per pixel. Help messages depend on the command selected. +.in 0 +.P +The \fIdmdmemory\fR facility supports six commands, all accessed from mouse button 2. +Note that when a command is being executed, the \fIdmdmemory\fR window cannot be reshaped. The six commands are described below. +.bp +.SS Base +This command toggles between decimal and hexadecimal bases. Hexadecimal numbers are +preceded by a "0x" prefix. + +.SS Process +This command changes the mouse cursor to a "target" cursor and asks the user to +pick a window by clicking button 1 over it. Picking nothing (i.e., the screen background) +or clicking other buttons will cancel the command. +.P +Clicking button 1 over a window will cause the three numerical upper fields to blink. +They now represent scoped amounts of \fIalloc\fR, \fIgcastray\fR and \fIgcalloc\fR +memory used by the process running inside the selected window. +The +display inside the bar graph also blinks to mark the corresponding positions of these memory +blocks. The alphanumeric field displays the address of the +process. +.P +Clicking or holding any button stops the blinking, exits this command mode, and returns +\fIdmdmemory\fR to the normal viewing mode. +.P +If a cached process is selected, dmdmemory displays only that +memory used by the process that was allocated via an alloc ro +gcalloc procedure call. The memory actually occupied by the +process code and data is not displayed by the process +command. + +.SS Stack +This command is similar to the \fIprocess\fR command, except that the information +now deals with the stack assigned to the specified process. +.P +Since the process stack is \fIalloc\fR'ed, only the \fIalloc\fR field can have a +non-zero value (assuming the stack is inside the viewing scope). The alphanumeric field +shows how many bytes of its stack a process has used. +.P +The stack command displays the amount of assigned stack space +whether the process is cached or not. +.bp +.SS Scope +This command allows the user to zoom in (or out) in order to have a closer look at +a particular region of the user memory pool. +.P +When this command is selected, a full-length vertical bar blinks at the left side of +the bar graph. The user drags the vertical bar by holding down button 1. Note that the +starting address of the viewing scope (left-most lower numerical field) also blinks, +and changes with new values corresponding to the dragged bar positions. Releasing +button 1 will select the new starting address of the viewing scope. +.P +The ending address of the viewing scope is modified in the same manner with a +blinking bar appearing at the right end of the bar graph. If this bar +is positioned to the left of the previous one, \fIdmdmemory\fR takes it as a +zoom-out, back to \fIfull view\fR setting. Otherwise, the action results +in a zoomed-in (or scoped) view of the memory pool, and the numerical fields are +updated accordingly. Note that some addresses in the +lower fields are now out of scope and therefore are +not displayed. +.P +During this process, if any button other than button 1 is pressed and held, the +command is aborted and the current viewing scope is retained. +.P +The smallest scope is one byte per pixel. Attempts to zoom in +further will automatically re-expand the viewing scope to this minimum setting. + +.SS Limit +This command allows the user to modify the value of \fBalloclimit\fR. +.P +When this command is selected, the vertical bar which represents the position +of \fBalloclimit\fR in the graphical bar starts to blink. The same thing happens +to the \fBalloclimit\fR numerical field (middle lower field). To modify its value, +the user holds down button 1 and drags the vertical bar to new positions. The numerical +field changes accordingly. Note that \fBalloclimit\fR cannot go lower than \fBalloclevel\fR; +otherwise, some \fIalloc\fR blocks would be out of the \fIalloc\fR pool. +.P +This command does nothing if the \fBalloclimit\fR is not within the scope. +.P +\fBCaution\fR: a value for \fBalloclimit\fR that is too low restricts the expansion of the +\fIalloc\fR pool, causing \fIalloc\fR requests to fail. +.SH FILES +$DMD/lib/dmdmemory.m downloadable file + +.SH SEE ALSO +ucache(1), alloc(3R), gcalloc(3R). diff --git a/static/unix-v10/man1/dmdpi.1 b/static/unix-v10/man1/dmdpi.1 new file mode 100755 index 00000000..aff5f198 --- /dev/null +++ b/static/unix-v10/man1/dmdpi.1 @@ -0,0 +1,702 @@ +.TH DMDPI 1 "630 MTG" +.SH NAME +dmdpi \- 630 MTG process inspector and debugger +.SH SYNOPSIS +.B dmdpi [ -c ] +.SH DESCRIPTION +.I Dmdpi +is a C language debugger that is bound dynamically to multiple subject +processes executing in a 630 MTG window in the layers environment. +In order to use dmdpi to its full capabilities, it is necessary to compile +the source program with the +.I -g +option of +.IR dmdcc . +However, if the target program is not compiled with +.I -g, +or no symbol tables +at all are available, dmdpi works as well as possible with the information +provided to it. +.PP +If the -c option is selected, \f2dmdpi\f1 will be +cached in the 630 MTG cache system. This will enable +\f2dmdpi\f1 to be executed again without the need for another +download. +.PP +Dmdpi uses a +multi-window user interface. +There are three types of windows: +debugger control windows, +which access the global state of the debugger; +process control windows (exactly one per process), +which start and stop processes and connect to process-specific functions; +and process inspection windows, +which include viewers for source text and memory, formatted various ways. +Initially, there are three debugger control +windows available: \fBdmdpi\fR, \fBhelp\fR +and \fBpwd/cd\fR. +.P +One might need to debug some initialization code that would ordinarily be +executed before dmdpi has a chance to gain control of the process. +The \fI-z\fR +of \fIdmdld\fR is useful for this purpose. This allows you to take +control of a process before the first statement is executed. +See the \fIdmdld(1)\fR manual page for details on using this option. + +.SS User Interface +Button 1 points. +Pointing at a window makes it current, noted with a highlighted border; +pointing at a line of text makes it current and inverts its video. +A scroll bar at the left of each window shows how +much of the text of a window is visible; +pointing into the scroll region and moving the mouse +controls what text is displayed. +.PP +Button 2 has a menu of operations that apply to the current line. +Operations above the +.B ~~~~~ +separator are specific to each line; +operations below the separator are generic line operations: +.TP 1i +.B cut +Remove the line. +.TP +.B sever +Remove the line and all lines above it. +.TP +.B fold +Wrap the line, if it extends past the right margin. +.TP +.B truncate +Truncate the line at the right margin. +.LP +Button 3 has a menu of window-level operations and is in two parts. +Operations above the separator are specific to each window. +Operations below the separator are the following generic window operations: +.TP 1i +.B reshape +Change the size of a window. +.TP +.B move +Move a window to a different place. +.TP +.B close +Delete a window. +.TP +.B fold +Like button 2 fold above except it applies to all lines in the window. +.TP +.B truncate +Like button 2 truncate above except it applies to all lines in the window. +.TP +.B top +The sub-menu off the \fBtop\fR +is a list of windows; +selecting one makes it top and current. +.LP +Button 3 also is also used to sweep out new windows. +.PP +Keyboard characters accumulate at the bottom of the window. +If the current line accepts input, it flashes with each keystroke; +otherwise, if the current window accepts input, its border flashes. +Carriage return is ignored until a line or window +accepts the text, whereupon +the input line is sent to the line or window. +.PP +The following keyboard commands are also available: +.TP +.B "\'>file\'" +This saves the contents of the current line, or current window if there is +no current line, into the named file. To achieve the status of no current line +in the window, scroll off the top or bottom of the window. +.TP +.B "\'state +variable is displayed and updated. +.PP +The menu operations on the process are: +.TP 1i +.PD 0 +.B run +let the process run +.TP +.B stop +stop the process +.TP +.B src text +open source text window(s) +.TP +.B Globals +open window for evaluating expressions in global scope +.TP +.B RawMemory +open window for editing uninterpreted memory +.TP +.B Assembler +open window for disassembler +.TP +.B User Types +open window for setting user types +.TP +.B Journal +open debugging session journal window +.TP +.B Bpt List +open breakpoint list window +.PD +.LP +Each line of the call stack traceback describes one function. +Each function in the traceback can open a stack frame +expression evaluator window +or display its current source line. + +.SS Process Inspection Windows +.TP +.B Source Text Windows +The source text window contains a listing of a source file. If there is more +than one source file for the process, selecting the +.B src text +item in the process control window will give you a source files window +in which there is a listing of all the source files associated with that +process. Library function source files are included in this list, even +though one might not actually have the source for these functions. +By highlighting a source line and selecting +.B open source file +in the button 2 menu, you can open a source listing for that file. +Each source file is in a separate window, which can be opened when needed. +The source files are searched for in the working directory. +Entering a pathname from the keyboard (when the Source files window is +current) enters a pathname prefix which points to a directory +where the source can be found, without changing the working directory. +.RS +.P +When opening a source file, +dmdpi +checks to see whether the source file is in time sync with the object module. +If not, dmdpi gives a message of this fact. One may override this +condition with the +.B reopen +item in the button 3 menu of the source text window. +Source lines are displayed on a "per request basis." In other words, only +the lines that are currently visible are sent from the host. More lines +are sent to be displayed on the terminal as needed. +.P +Specific strings may be searched for in the source text by +using \fI/string\fR, or the \fI?string\fR entered at the +keyboard, for searching forward and backward in the source +text respectively. The search will begin at the next (previous +for backwards search) C language statement rather than at the +next source line. Note that repeated reverse searches for the +same pattern must be specified as \fI??\fR rather than \fI?\fR +due to a conflict with the help operator (?). +Line numbers can also be searched +for by entering a line number at the keyboard when a line is not current +within the window. If a line is current, the number is evaluated as +a constant expression (see expressions below). To achieve the +status of no current line, scroll the current line off the top or bottom of +the window. +.P +.B Breakpoints +are set on source lines. A breakpoint is set by highlighting +the line on which you wish to break execution and selecting +.B set bpt +from the button 2 menu. +A breakpoint is denoted by a '>>>' next to the source line. +When the process reaches this line the process +halts and will not execute the line on which the breakpoint is set. +Clearing the breakpoint is done by highlighting the line on which a breakpoint +is set and selecting +.B clear bpt +from the button 2 menu. Clearing the breakpoint can also be done from the +breakpoint list +window (see below). A +.B conditional breakpoint +is a breakpoint that is set with a certain condition. When this condition +evaluates to TRUE, the process is halted. +Any valid dmdpi expression may be used as a condition +(see keyboard expressions). +To set a conditional breakpoint, select +.B cond bpt +from the button 2 menu. You are prompted to enter an expression +from the keyboard as a condition. +An example of a condition would be (x==1). When the variable x becomes +equal to 1, then execution breaks. The +.B trace on +item in the button 2 menu is actually a conditional breakpoint with +the condition of 0, meaning that the condition never evaluates to TRUE. +This has the effect of tracing a statement but never breaking execution. +The conditional breakpoint is removed in the same way a +regular breakpoint is removed. +.P +Once the process has been halted, select \f3run\f1 to start the process running again. +You can also +.B step +(execute) a number of source lines and then stop +again after these statements have been executed. +When statements are stepped, the debugger will not enter functions +unless the +.B step into fcn +item is actually specified. The current statement can always +be seen by selecting +the +.B current stmt +item in the button 3 menu. This highlights the statement currently in the PC. +.P +Another option that is available in the source text window is the ability +to look at the assembly code for a specified line. Highlighting a line and +selecting +.B assembler +in the button 2 menu displays the first assembler instruction of the +statement. +.RE + +.TP +.B Globals and Stack Frame Windows +A stack frame window is opened from a line in the call stack traceback +in the process control window or +from a line of source text. A globals window is opened from the button 3 menu +in the process control window. +These windows evaluate expressions with respect to global scope, +and scope in a function, respectively. +.RS +.P +.B "Expressions" +.P +Expressions may be entered from the keyboard or with the mouse. +The syntax for expressions in dmdpi is the same as C language expressions, +except for differences noted below. +The expressions are most commonly used for inspecting values of variables in +the program that is being debugged. +An example of an expression is +.I r.origin.x. +This +may be typed in order +to inspect the x coordinate value of a rectangle origin point if the process +has a rectangle +.I r. +.P +A summary of dmdpi's expression syntax is presented here only to +aid comprehension, rather than an exact statement of the language. +.RE +.sp +.RS +\fI +expression : + constant + primary + \(**expression + &expression + -expression + !expression + ~expression + sizeof expression + typeof expression + fabs (expression) + (type-name) expression /\(** from menu only \(**/ + {expression} identifier + expression binop expression + expression = expression + expression , expression + + +primary: + $ + identifier + ( expression ) + primary ( [expression-list] ) + primary[ expression ] + lvalue.identifier + primary -> identifier + +lvalue: + identifier + primary[expression] + lvalue.identifier + primary -> identifier + \(**expression + (lvalue) + +binop: + \(** / % + - >> << < > <= >= == != & ^ + | && || +\fR +.P +The major differences in the expressions which dmdpi understands and +the C expressions are: +.IP "" +The unary operators \fIfabs\fR and \fItypeof\fR are supported. +.I fabs +evaluates the absolute value of a floating point number. +.I typeof +evaluates the type of an expression. +Examples are: +.br + fabs(-2.0)=2 +.br + typeof(r.origin)= struct Point +.IP "" +The concept of a "current expression" has been introduced with the +.B $ +operator. +.B $ +is equal to the current highlighted expression. For example, if the line +containing \fIr.origin\fR is highlighted, one may type +.B $.x +to see the value of the x coordinate. +Another example of the +.B $ +expression is +.B $=. +This can be used, for instance if +.B $ +is equal to a variable x and you wish +to change the value of x to . +.IP "" +Expressions are evaluated within the scope boundaries of the window in +which they are typed. One can cross scope boundaries in order to evaluate +an expression with the syntax { expression } function-name. +This, for example, is useful for using the globals window to look +at static variables that are local +to a function +without having to open up a stack frame window. +.IP "" +Type casting may only be done through the use of the menu. +.IP "" +The following is not supported by dmdpi: ++ -- ?: op= string. +.IP "" +NOTE: expressions are always evaluated internally with a 32-bit precision. +Therefore, +results may not correspond in all cases with those generated by a C +program. +.P +Expressions are also used to specify the condition in the conditional +breakpoint. Note that the C comma operator is very useful in specifying +the condition. +Expressions separated by a comma are evaluated left-to-right and all but +the rightmost expression are discarded. +For example, a condition of \fI(x,y,x==y)\fR evaluates all +three expressions; however, only the last expression (x==y) determines +the result of the overall condition. The result is that the values of +x and y are printed but execution halts only when x==y. +.P +Registers in the stack frame windows are prefixed with the character +.B $ +, for example, +.B $d0. +The address of a register is the location at which it was saved. +Register values are only available after execution has been halted +at a breakpoint or after a step. The exception to this rule is that +one may look at register variables in calling functions if they happened +to be saved in the called function. +.P +An expression may be made +.I spy, +in order to observe changes in the expression. +The value of a spy expression is evaluated and displayed +each time the debugger looks at the process, i.e., when the process calls +wait() or sleep(). +If the value of a spy changes, the expression is updated and a message is +given that the expression has changed. +If a conditional breakpoint (or trace on) is set, then the process will be +halted. +The option +.B changed spies +in the button 2 menu will manually force all spies to be re-evaluated. +.P +A maximum of 150 global variables will fit into the globals menu. If +the targeted program has more than 150 global variables, the remaining +variables must be accessed by typing their name from the keyboard. +.RE +.SK +.TP +.B Raw Memory Window +The raw memory window is +a ``memory editor'' in which +memory is viewed as a sequence of 1-, 2-, 4- or 8-byte cells. +The +.B '.' +operator is a special symbol which denotes a cell address. Therefore, commands +such as +.B .+1 +in the button 2 menu give the next increment of memory after the current +cell address. The keyboard command +.B .= +displays the cell with address equal to expression. +The expression syntax is the same as defined above. +The format of the displayed +memory cells is +.I x/y: , +where x is the cell address, and y is the viewing increment. +.RS +Some of the functions available are: +.RS +.TP +change cell size and display format +Use the \fBsize\fR and \fBformat\fR items in the menu. +.TP +display cells above and below current cell. +Use the \fB.[+-]\fR options in the menu. +.TP +indirect to cell +Look at the cell using the contents of the current cell as an address. +Use the +.B \(** thru . +option. +.TP +change cell value +This is done with the keyboard expression: +.B $= +.TP +spy on memory cell +If the memory contents change, dmdpi will give notification. +.TP +disassemble instruction at cell. +Display the assembler instruction in the assembler window. Use the +.B asmblr +option in the button 2 menu. +.RE +.RE +.TP +.B (Dis)Assembler Window +Allows viewing of memory as a sequence of assembler instructions. +The menu options of this window are similar to those in the source text +window. The difference is that this window deals with assembler instructions +rather than the high-level source code. +.RS +.P +An instruction at a certain address can be displayed by entering the +keyboard expression +.B .=. +The expression syntax is the same as defined above. +More instructions can be viewed in a sequential manner using the +.B next +options in the button 2 menu. The next 1, 5, or 10 instructions +starting from the current instruction can be displayed. +.P +When setting a breakpoint or stepping into an assembler function, one must +step through the link and the movm.l instructions before \fIdmdpi\fR will be +able to generate the stack frame for the function. +.P +Some of the other functions available are: +.RS +.TP +change display format +.TP +open a stack frame window for instruction's function +.TP +display instruction as cells in the raw memory window +.TP +set/clear breakpoint on instruction +.TP +open stack frame window for instruction's function +.TP +display instruction at current PC +.TP +single step instruction(s) +.RE +.RE +.TP +.B User Types Window +Shows user-defined types and allows the display format of user-defined +types displayed in the globals and stack frame windows to be changed. +For example, the display format of a structure may be changed so that +certain fields are not displayed (hidden) and other fields are displayed +(shown). +.TP +.B Journal Window +Keeps a log of significant events in the course of a debugging session. +.TP +.B Breakpoint List Window +Lists all active source and assembler breakpoints. +Allows clearing of specified breakpoints or all breakpoints. +.RS +.P +Functions available include: +.RS +.TP +show source or assembler line at which a breakpoint is set +.TP +clear a single breakpoint +.TP +clear all breakpoints +.SH SEE ALSO +.PP +dmdcc(1), +dmdld(1), +ucache(1). +.SH WARNINGS +Do not use the -O optimizer option of dmdcc when compiling a program +to be debugged with dmdpi. +This will confuse dmdpi. +.P +It is possible to receive a message that there is no more memory on the +host system. This will happen if the process you are debugging has a very +large symbol table, or if you are debugging many processes at the same time. +The maximum amount of memory that a UNIX process is allowed to consume +can be changed by a system administrator. For a 3B2 host computer running +System V Release 2.0, how to change the per process memory limit is +documented in the manual \f2AT&T 3B2 Computer Unix System V Release 2.0 +System Administration Utilities Guide\f1 in the chapter +"Administrative Tasks" under "Tunable Parameters." An alternative to +changing the host computer's per process memory limit is to use +the \fImc68cprs\fR CCS utility to compress the size of process symbol tables +before they are opened for debugging with dmdpi. +.SH BUGS +In switch statements there is no boundary between the last case +and the branch code; the program +.I appears +to jump to the last case (but is really in the branch) +and then to the real case. +.P +The structure P which is of type "struct Proc \(**" within applications is +interpreted by \fIdmdpi\fR as "struct proc". This implies that one must +type P.state rather than P->state when accessing the structure P from the +keyboard. +.P +If a program contains multiple global structure declarations +of the same name, dmdpi will ignore all but the first declaration. +.P +A breakpoint cannot be set on a goto or return statement. +Attempting to do so will set a breakpoint on the following +line. Also, stepping onto a goto or return statement will +execute the goto or return instead of stopping on the line. +.P +When stepping past an if statement that is the +last statement within a while loop and the if condition fails +and does not have an else condition, +the program will appear to jump to the last line within the if +statement. It is really jumping to the statement that will +branch back to the top of the while loop. diff --git a/static/unix-v10/man1/dmdversion.1 b/static/unix-v10/man1/dmdversion.1 new file mode 100755 index 00000000..104cb1fa --- /dev/null +++ b/static/unix-v10/man1/dmdversion.1 @@ -0,0 +1,99 @@ +.TH DMDVERSION 1 "630 MTG" +.SH NAME +dmdversion \- inquire terminal/host software version +.SH SYNOPSIS +.B dmdversion +[ +.B \-ehlst +] +.SH DESCRIPTION +The +.I dmdversion +utility displays the version numbers of the 630 MTG terminal and host software. +The terminal version number is the equivalent to the ASCII +string which contains three fields (f1;f2;f3) defined as +follows: +.TP 1i +.B f1 +identifies the 630 MTG as a windowing terminal +.TP +.B f2 +identifies the terminal as a 630 MTG +.TP +.B f3 +identifies the firmware release +.LP +.PP +Host software version is read from the file $DMD/VERSION. +.PP +The \f3\-t\f1 option is used to display the terminal version number. +The \f3\-h\f1 option is used to display the host software version +number. The default action is to display both terminal and +host software version numbers. +.PP +In the \fBlayers\fR environment, terminal version is found through an +\fIioctl(2)\fR call to the +xt device driver. In non-layers, or if the \fB-e\fR flag is specified, the +terminal version is found through the Request Terminal Type escape sequence \fBESC[c\fR. +.PP +The \fB-l\fR option can be used to inquire if Local Area +Network (LAN) Encoding is set for the terminal +through terminal setup. This is found through the Request Encoding escape +sequence \fBESC[F\fR. This option excludes the \fB-e\fR option and does not +inquire the terminal version number. +.PP +When the \f3\-s\f1 flag is present, no output is printed but +an exit value is returned as follows. If the \f3\-t\f1 or +\f3\-e\f1 options are present, the decimal ascii value of the +last digit of the terminal's version is returned. If the +\f3\-l\f1 option is present, 1 is returned if LAN encoding is +enabled; 0 otherwise. The \f3\-l\f1 option will overide the +\f3\-t\f1 or \f3\-e\f1 options. In all other cases, 255 (-1) is +returned. +.SS EXAMPLE +The following example can be used to determine if a 630 MTG or +some other windowing terminal (such as a 5620) is being used. +.RS 6 +.nf +.ft CM +case `dmdversion -t` in + *'8;8'*) + echo I am a 630 + ;; + *'8;7'*) + echo I am a 5620 + ;; + *) + echo Unknown terminal type + ;; +esac +.fi +.ft R +.RE +.SH FILES +.TP 22 +$DMD/VERSION +the host version +.SH SEE ALSO +version(3R). +.br +ioctl(2) in the \f2UNIX System V Programmer's Reference Manual\f1. +.br +layers(1) in the UNIX System V Release 3 User's Reference +Manual. +.br +layers(1) in the 5620 Dot-Mapped Display Reference +Manual. +.br +\f2630 MTG Terminal User's Guide\f1. + +.SH DIAGNOSTICS +The +.B -e +and +.B -l +flags only work if the window connected to the standard output is +running the default 630 MTG terminal emulator or any other emulator that +supports the described escape sequences. + + diff --git a/static/unix-v10/man1/docgen.1 b/static/unix-v10/man1/docgen.1 new file mode 100644 index 00000000..4036ea71 --- /dev/null +++ b/static/unix-v10/man1/docgen.1 @@ -0,0 +1,68 @@ +.TH DOCGEN 1 +.CT 1 writing_aids +.SH NAME +docgen \- generate a document from a script +.SH SYNOPSIS +.B docgen +[ +.I option ... +] +[ +.I ofile +] +.SH DESCRIPTION +.I Docgen +guides interactive preparation of standard documents +according to canned scripts and +places the output in +.I ofile. +The output typically takes the form of +.IR troff (1) +input. +These options invoke standard scripts: +.TP +.B -mcs +(default) Bell Labs cover sheet; output (\c +.F temp.cover +by default) +may be typeset thus: +.L "troff temp.cover" +.TP +.B -ms +documents using the macro package +.IR ms (6); +output +.RF ( temp +by default) may be typeset thus: +.L "troff -ms temp" +.TP +.B -mm +similarly for the MM macro package of System V +.PP +Other options are: +.TP +.BI -f " file" +take script from +.I file +.TP +.B -v +(verbose) print document as it is generated +.TP +.B -d +(debug) print information about the script +as it is read +.PP +The reference tells how to construct scripts. +.SH FILES +.F /usr/lib/docgen/* +scripts +.br +.F temp.cover +.br +.F temp +.SH "SEE ALSO" +.IR troff (1), +.IR ms (6), +.IR mcs (6) +.SH BUGS +Not all document types are implemented. diff --git a/static/unix-v10/man1/docsubmit.1 b/static/unix-v10/man1/docsubmit.1 new file mode 100644 index 00000000..e0bd4eeb --- /dev/null +++ b/static/unix-v10/man1/docsubmit.1 @@ -0,0 +1,101 @@ +.TH DOCSUBMIT 1 +.CT 1 writing_output +.SH NAME +docsubmit \- send document to library +.SH SYNOPSIS +.B docsubmit +[ +.B -c +.I cover-file +] +[ +.B -C +] +[ +.B -r +.I ref-file +] +[ +.B -t +] +[ +.B -f +.I copyf +] +[ +.B -d +] +.I file ... +.SH DESCRIPTION +.I Docsubmit +sends the full text of a TM, including cover sheet, +to the Bell Laboratories library network, for inclusion +in the libraries' Linus database. +The +.I files +are those that would be mentioned in a +.I troff +command to print the paper; files included by +.B .so +macros or by preprocessors such as +.IR pic (1) +should not be mentioned. +The options are +.TP +.BI -c " coverfile +Cover sheet is in a file by itself. +.TP +.B -C +Cover sheet is in the document. +One of +.B -c +or +.B -C +must be specified. +.TP +.BI -r " ref-file +Specify a separate reference file for +.IR refer (1) +or +.IR prefer (1). +.TP +.B -t +The single +.I file +is +.IR tex (1) +source; only the base name, without +.BR .tex , +should be specified. +.TP +.BI -f copyf +Include a copy of +.I copyf +in the cpio file. This flag should only be necessary for +things like awk scripts executed inside the paper with .sy commands. +.TP +.B -d +Don't consided include files that can't be found as fatal errors. +.PP +Electronic submission +is not a substitute for the official paper submission. +For more information +contact your local library or call (201)582-4840. +.SH EXAMPLES +.EX +docgen cover-file +eqn cover-file file.1 file.2 | troff | lp +docsubmit -c cover-file file.1 file.2 +.EE +.SH FILES +.F /usr/lib/docsubmit/* +.SH "SEE ALSO" +.IR troff (1), +.IR docgen (1) +.SH BUGS +Only documents that may be viewed by any AT&T employee can +have their full text made available under Linus. +.br +Documents with a complicated construction process, +such as a shell script or makefile, cannot be handled +directly. diff --git a/static/unix-v10/man1/doctype.1 b/static/unix-v10/man1/doctype.1 new file mode 100644 index 00000000..d33ab684 --- /dev/null +++ b/static/unix-v10/man1/doctype.1 @@ -0,0 +1,53 @@ +.TH DOCTYPE 1 +.CT 1 writing_troff +.SH NAME +doctype \- guess command line for formatting a document +.SH SYNOPSIS +.B doctype +[ +.I option ... +] [ +.I file +] +... +.SH DESCRIPTION +.I Doctype +guesses and prints on the standard output the command line for printing +a document that uses +.IR troff (1), +related preprocessors like +.IR eqn (1), +and the +.IR ms (6) +and +.I mm +macro packages. +.PP +Option +.B -n +invokes +.I nroff +instead of +.I troff. +Other options are passed to +.I troff. +.SH EXAMPLES +.TP +.L +eval `doctype chapter.?` | apsend +Typeset files named chapter.0, chapter.1, ... +.SH SEE ALSO +.IR troff (1), +.IR eqn (1), +.IR tbl (1), +.IR refer (1), +.IR prefer (1), +.IR pic (1), +.IR ideal (1), +.IR grap (1), +.IR ped (9.1), +.IR mcs (6), +.IR ms (6), +.IR man (6) +.SH BUGS +It's pretty dumb about guessing the proper macro package. diff --git a/static/unix-v10/man1/double.1 b/static/unix-v10/man1/double.1 new file mode 100644 index 00000000..f2da42d7 --- /dev/null +++ b/static/unix-v10/man1/double.1 @@ -0,0 +1,60 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH DOUBLE 1 +.SH NAME +double \- double word finder +.SH SYNOPSIS +.B double +[ +.B \-flags +][ +.B \-ver +] +[file ...] +.SH DESCRIPTION +.I Double +searches text for consecutive occurrences of words. +It skips text contained in tables formatted with +.IR tbl (1) +and ignores consecutive occurrences of any single character +except +.IR a . +When +.I double +finds two words in a row, +it prints them with the line number of the first one. +.PP +.I Double +is one of the programs run under the +.IR proofr (1) +and +.IR wwb (1) +commands. +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH SEE ALSO +proofr(1), +wwb(1), +tbl(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/download.1 b/static/unix-v10/man1/download.1 new file mode 100644 index 00000000..72ff6730 --- /dev/null +++ b/static/unix-v10/man1/download.1 @@ -0,0 +1,175 @@ +.ds dH /usr/lib/font/postscript +.TH DOWNLOAD 1 "DWB 3.2" +.SH NAME +download \- host-resident PostScript font download +.SH SYNOPSIS +\*(mBdownload\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B download +prepends host-resident fonts to +.I files +and writes the results on the standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +.B download +assumes the input +.I files +are a single PostScript job and that requested fonts +can be included at the start of each input +.IR file . +The following +.I options +are understood: +.TP 1.0i +.OP \-f +Force a complete scan of each input +.I file. +In the absence of an explicit comment pointing +.I download +to the end of the file, the default scan stops +immediately after the PostScript header comments. +.TP 1.0i +.OP \-m name +Use +.I name +as the font map table. +A +.I name +that begins with +.MW / +is the full pathname of the +map table. +Otherwise +.I name +is relative to the host font directory. +.TP 1.0i +.OP \-p printer +Read the printer-resident font list from file +.br +.MI /etc/lp/printers/ printer /residentfonts \f1. +.br +Fonts named in this file will not be downloaded. +The +.OP \-p +option is for use with Unix 4.0 lp. +Other spoolers should use the +.OP \-r +option. +.TP 1.0i +.OP \-r file +Read the list of printer-resident fonts from +.I file. +Fonts named in this file will not be downloaded. +.TP 1.0i +.OP \-H dir +Use +.I dir +as the host font directory. +The default is +.MR \*(dH . +.TP 1.0i +.OP \-T dir +Use +.I dir +as the temporary file directory. +Only used to make a copy of standard input. +By default +.I dir +is set to +.MR /tmp . +.PP +Requested fonts are named in a +.MW %%DocumentFonts: +comment in the input +.IR files . +Available fonts are the ones listed in the map table +selected using the +.OP \-m +option. +.PP +The map table consists of fontname\-filename pairs. +The fontname is the full name of the PostScript font, +exactly as it would appear in a +.MW %%DocumentFonts: +comment. +The filename is the pathname of the host resident font. +A filename that begins with a +.MW / +is used as is, +otherwise the pathname is relative to the host font +directory. +Comments are introduced by +.MW % +(as in PostScript) and +extend to the end of the line. +.PP +The only candidates for downloading are fonts listed +in the map table that point +.B download +to readable files. +A font is downloaded at most once per job. +Requests for unlisted fonts or inaccessible files +are ignored. +All requests are ignored if the map table can't be read. +.SH EXAMPLES +A map table used to control the downloading +of the Bookman font family might be, +.EX -1 +% +% The first string is the full PostScript font name. The second string +% is the file name - relative the host font directory unless it begins +% with a /. +% + + Bookman-Light KR + Bookman-LightItalic KI + Bookman-Demi KB + Bookman-DemiItalic KX +.EE +Use file +.MW myprinter +(in the default host font directory) as the +map table: +.EX +download -m myprinter \f2file +.EE +Set the host font directory to +.MW /tmp/font +and use +.MW /tmp/font/xxx +as the map table: +.EX +download -H /tmp/font -mxxx \f2file +.EE +.SH DIAGNOSTICS +0 exit status is returned if +.I files +were successfully processed. +.SH BUGS +.B download +should be part of a more general program. +.PP +.B download +does not look for +.MW %%PageFonts: +comments +and there is no way to force multiple downloads of +a particular font. +.PP +Using full pathnames, either in map tables or for the map table +name, is not often recommended. +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy (1), +.BR postdmd (1), +.BR postio (1), +.BR postmd (1), +.BR postprint (1), +.BR posttek (1) diff --git a/static/unix-v10/man1/dpost.1 b/static/unix-v10/man1/dpost.1 new file mode 100644 index 00000000..976c2024 --- /dev/null +++ b/static/unix-v10/man1/dpost.1 @@ -0,0 +1,310 @@ +.ds dF /usr/lib/font +.ds dQ /usr/lib/postscript +.TH DPOST 1 "DWB 3.2" +.SH NAME +.B dpost +\- +.B troff +postprocessor for PostScript printers +.SH SYNOPSIS +\*(mBdpost\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B dpost +translates +.I files +created by +.BR troff (1) +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num +(default is 1.0). +Pages are scaled uniformly about the origin, +which is located near the upper left corner of +each page. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default, +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP mode. +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-w num +Set the line width used to implement +.B troff +graphics commands to +.I num +points, where a point is approximately 1/72 +of an inch. +By default +.I num +is set to 0.3 points. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed near the +upper left corner of the page, with positive +x to the right and positive y down the page. +Positive +.I num +moves everything right. +The default offset is 0 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves text down the page. +The default offset is 0. +.TP +.OP \-B +Include +.MW %%BoundingBox +comments in the output file. +Should only be used when the comments are needed +for picture inclusion. +Output is forced onto an 8.5\(mu11-inch page. +.TP +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ/ name .enc \f1. +A nonexistent encoding file is silently ignored. +There is no default. +.TP +.OP \-F dir +Use +.I dir +as the font directory. +The default +.I dir +is +.MR \*(dF , +and +.B dpost +reads +.SM ASCII +font files from directory +.MR \*(dF/devpost . +.TP +.OP \-H dir +Use +.I dir +as the host-resident font directory. +A file in +.I dir +that matches the name of the +.B troff +font is assumed to be a host resident font program +and is included in +.B dpost +output. +There is no default. +.TP +.OP \-L \^file +Use +.I file +as the PostScript prologue. +The default is +.MR \*(dQ/dpost.ps . +.TP +.OP \-T name +Use font files for device +.I name +as the best description of available PostScript fonts. +By default, +.I name +is +\*(mBpost\fP +and +.B dpost +reads +.SM ASCII +files from +.MR \*(dF/devpost . +.br +.ne 1i +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C \^file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in the output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request \|, +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0 the request +applies to all pages. +If +.I file +is omitted the request +lookup is done in +.MR \*(dQ/ps.requests . +.PP +All +.I files +should be prepared by +.B troff +for the same device. +Device tables that describe real PostScript fonts that can be +used by +.B dpost +should include +.EX +PDL PostScript +.EE +in their +.SM DESC +file. +Tables that depend on a non-standard character set encoding indicate +that fact by an +.MW Encoding +entry in their +.SM DESC +file. +For example, +.EX +Encoding Latin1 +.EE +means include file +.MR \*(dQ/Latin1.enc . +The +.OP \-E +option overrides the +.SM DESC +setting. +.SH EXAMPLES +.PP +A typical command line might be: +.EX +pic \f2files\fP | tbl | eqn | troff -mm | dpost +.EE +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully translated, +while 2 often indicates a syntax error in the input +.IR files . +.SH WARNINGS +.PP +.B dpost +output does not usually conform to Adobe's file-structuring conventions. +Send the output through +.B postreverse +to produce a minimally conforming PostScript file. +.PP +Emulation is expensive and does not always produce satisfactory results. +No attempt has been made to implement the character sets or fonts available +on all devices supported by +.BR troff . +Missing characters are replaced by white space, and unrecognized +fonts default to one of the Times fonts (e.g., +.MR R , +.MR I , +.MR B , +or +.MR BI ). +.SH FILES +.MW \*(dF/devpost/* +.br +.MW \*(dF/devpost/charlib/* +.br +.MW \*(dQ/dpost.ps +.br +.MW \*(dQ/color.ps +.br +.MW \*(dQ/draw.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR buildtables (1), +.BR postio (1), +.BR postprint (1), +.BR postreverse (1), +.BR psencoding (1), +.BR troff (1), +.BR font (5), +.BR troff (5) diff --git a/static/unix-v10/man1/dsw.1 b/static/unix-v10/man1/dsw.1 new file mode 100644 index 00000000..20db6304 --- /dev/null +++ b/static/unix-v10/man1/dsw.1 @@ -0,0 +1,28 @@ +.pa 1 +.he 'DSW (I)'3/15/72'DSW (I)' +.ti 0 +NAME dsw -- delete interactively +.sp +.ti 0 +SYNOPSIS dsw___ [ directory ] +.sp +.ti 0 +DESCRIPTION For +each file in the given directory ("." if not specified) +dsw___ types its name. If "y" is typed, the file is deleted; +if "x", dsw___ exits; if anything else, the file +is not removed. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO rm(I) +.sp +.ti 0 +DIAGNOSTICS "?" +.sp +.ti 0 +BUGS The name "dsw" +is a carryover from the ancient past. Its etymology is +amusing but the name is nonetheless ill-advised. diff --git a/static/unix-v10/man1/du.1 b/static/unix-v10/man1/du.1 new file mode 100644 index 00000000..4af9382c --- /dev/null +++ b/static/unix-v10/man1/du.1 @@ -0,0 +1,42 @@ +.pa 1 +.he 'DU (I)'1/20/73'DU (I)' +.ti 0 +NAME du -- summarize disk usage +.sp +.ti 0 +SYNOPSIS du__ [ -s__ ] [ -a__ ] [ name ... ] +.sp +.ti 0 +DESCRIPTION du__ +gives the number of blocks contained in all files +and (recursively) directories within each specified directory or file name____. +If name____ is missing, ._ is used. + +The optional argument -s__ causes only the grand total to +be given. +The optional argument -a__ causes an entry to be generated +for each file. +Absence of either causes an entry to be generated for +each directory only. + +A file which has two links to it is only counted once. +.sp +.ti 0 +FILES . +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS Non-directories +given as arguments (not under -a option) are not listed. +.sp +Removable +file systems do not work correctly +since i-numbers may be repeated while the corresponding +files are distinct. +Du should maintain an i-number list per root directory +encountered. diff --git a/static/unix-v10/man1/echo.1 b/static/unix-v10/man1/echo.1 new file mode 100644 index 00000000..ba2bdb50 --- /dev/null +++ b/static/unix-v10/man1/echo.1 @@ -0,0 +1,25 @@ +.pa 1 +.he 'ECHO (I)'3/15/72'ECHO (I)' +.ti 0 +NAME echo -- echo arguments +.sp +.ti 0 +SYNOPSIS echo____ [ arg89918 ... ] +.sp +.ti 0 +DESCRIPTION echo____ +writes all its arguments in order as a line on the +standard output file. +It is mainly useful for producing diagnostics in command files. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/ed.1 b/static/unix-v10/man1/ed.1 new file mode 100644 index 00000000..d9a38bb6 --- /dev/null +++ b/static/unix-v10/man1/ed.1 @@ -0,0 +1,421 @@ +.pa 1 +.he 'ED (I)'1/15/73'ED (I)' +.tr | +.ti 0 +NAME +.br +ed -- editor +.sp +.ti 0 +SYNOPSIS +.br +ed__ [ name ] +.sp +.ti 0 +DESCRIPTION +.br +.in -8 +ed__ +is the standard text editor. +.sp +If the optional argument is given, ed__ +simulates an e_ command on the named file; that is to say, +the file is read into ed__'s buffer so that it can be edited. +.sp +ed__ operates on a copy of any file it is editing; changes made +in the copy have no effect on the file until a write +(w_) command is given. +The copy of the text being edited resides +in a temporary file called the buffer______. There is only +one buffer. +.sp +Commands to ed__ have a simple and regular structure: zero or +more addresses_________ followed by a single character command_______, possibly +followed by parameters to the command. +These addresses specify one or more lines in the buffer. +Every command which requires addresses has default addresses, +so that the addresses can often be omitted. +.sp +In general, only one command may appear on a line. +Certain commands allow the input of text. +This text is placed in the appropriate place in the buffer. +While ed__ is accepting text, it is said +to be in input_____ mode____. In this mode, no commands are recognized; +all input is merely collected. +Input mode is left by typing a period (.) alone at the +beginning of a line. +.sp +ed__ supports a limited form of regular_______ expression__________ notation. +A regular expression is an expression which specifies +a set of strings of characters. +A member of this set of strings is said to be matched_______ +by the regular expression. +The regular expressions allowed by ed__ are constructed as follows: +.sp +.in +6 +.ti -3 +1. An ordinary character (not one of those discussed below) +is a regular expression and matches that character. +.sp +.ti -3 +2. A circumflex (^) at the beginning of a regular expression +matches the null character at the beginning of a line. +.sp +.ti -3 +3. A currency symbol ($) at the end of a regular expression +matches the null character at the end of a line. +.sp +.ti -3 +4. A period (.) matches any character but a new-line character. + +.ti -3 +5. A regular expression followed by an asterisk (*) +matches any number of adjacent occurrences (including zero) +of the regular expression it follows. + +.ti -3 +6. A string of characters enclosed in square brackets +([]) matches any character in the string but no others. +If, however, the first character of the string is a circumflex +(^) the regular expression matches any character but new-line +and the characters in the string. + +.ti -3 +7. The concatenation of regular expressions is a regular +expression which matches the concatenation of the strings +matched by the components of the regular expression. + +.ti -3 +8. The null regular expression standing alone +is equivalent to the last regular expression encountered. + +.in -6 +Regular expressions are used in addresses to specify +lines and in one command (s_, see below) +to specify a portion of a line which is to be replaced. + +If it is desired to use one of +the regular expression metacharacters as an ordinary +character, that character may be preceded by "\\". +This also applies to the character bounding the regular +expression (often "/") and to "\\" itself. +.sp +Addresses are constructed as follows. +To understand addressing in ed__ +it is necessary to know that at any time there is a current_______ +line____. Generally speaking, the current line is +the last line affected by a command; however, +the exact effect on the current line +by each command is discussed under the description of +the command. + +.in +6 +.ti -3 +1. The character "." addresses the current line. + +.ti-3 +2.|The character "^" addresses the line immediately before the current line. +.sp +.ti -3 +3. The character "$" addresses the last line of the buffer. + +.ti -3 +4. A decimal number n_ addresses the n_th line of the buffer. + +.ti -3 +6. A regular expression enclosed in slashes "/" addresses +the first line found by searching toward the end of the +buffer and stopping at the first line containing a +string matching the regular expression. +If necessary the search wraps around to the beginning of the +buffer. + +.ti -3 +5. A regular expression enclosed in queries "?" addresses +the first line found by searching toward the beginning of +the buffer and stopping at the first line found containing +a string matching the regular expression. If necessary +the search wraps around to the end of the buffer. + +.ti -3 +7. An address followed by a plus sign "+" +or a minus sign "-" followed by a decimal number specifies that address plus +(resp. minus) the indicated number of lines. +The plus sign may be omitted. + +.ti-3 +8.|"'x" addresses the line associated (marked) with the +mark name character "x" +which must be a printable character. +Lines may be marked with the "k" command described below. +.sp +.in -6 +Commands may require zero, one, or two addresses. +Commands which require no addresses regard the presence +of an address as an error. +Commands which accept one or two addresses +assume default addresses when insufficient are given. +If more addresses are given than such a command requires, +the last one or two (depending on what is accepted) are used. + +Addresses are separated from each other typically by a comma +(,). +They may also be separated by a semicolon +(;). In this case the current line "." is set to +the previous address before the next address is interpreted. +This feature can be used to determine the starting +line for forward and backward searches ("/", "?"). +The second address of any two-address sequence +must correspond to a line following the line corresponding to the first address. + +In the following list of ed__ commands, the default addresses +are shown in parentheses. The parentheses are not part of +the address, but are used to show that the given addresses are +the default. + +As mentioned, it is generally illegal for more than one +command to appear on a line. +However, any command may be suffixed by "p" (for "print"). +In that case, the current line is printed after the command +is complete. +.ne 6 + +.in +6 +.ti -3 +(.)a +.ti -3 + +.ti -3 +.li +. +.br +The a_ppend command reads the given text +and appends it after the addressed line. "." is left +on the last line input, if there +were any, otherwise at the addressed line. +Address "0" is legal for this command; text is placed +at the beginning of the buffer. + +.ti -3 +(.,.)c +.ti -3 + +.ti -3 +. +.br +The c_hange +command deletes the addressed lines, then accepts input +text which replaces these lines. +"." is left at the last line input; if there were none, +it is left at the first line not changed. + +.ti -3 +(.,.)d +.br +The d_elete command deletes the addressed lines from the buffer. +The line originally after the last line deleted becomes the current line; +if the lines deleted were originally at the end, +the new last line becomes the current line. + +.ti -3 +e filename +.br +The e_dit +command causes the entire contents of the buffer to be deleted, +and then the named file to be read in. +"." is set to the last line of the buffer. +The number of characters read is typed. +"filename" is remembered for possible use as a default file name +in a subsequent r_ or w_ command. +.sp +.ti-3 +f filename +.br +The f_ilename command prints the currently remembered file name. +If "filename" is given, +the currently remembered file name is changed to "filename". + +.ti -3 +(1,$)g/regular expression/command list +.br +In the g_lobal +command, the first step is to mark every line which matches +the given regular expression. +Then for every such line, the +given command list is executed with "." initially set to that line. +A single command or the first of multiple commands +appears on the same line with the global command. +All lines of a multi-line list except the last line must be ended with "\\". +a_, i_, and c_ commands and associated input are permitted; +the "." terminating input mode may be omitted if it would be on the +last line of the command list. +The (global) commands, g_ and v_, are not permitted in the command list. + +.ti -3 +(.)i +.ti -3 + +.ti -3 +. +.br +This command i_nserts the given text before the addressed line. +"." is left at the last line input; if there were none, +at the addressed line. +This command differs from the a_ command only in the placement of the +text. + +.ti-3 +(.)kx +.br +The mark_ command associates or marks the addressed line with +the single character mark name "x". +The ten most recent mark names are remembered. +The current mark names may be printed with the n_ command. + +.ti -3 +(.,.)mA +.br +The m_ove command will reposition the addressed lines after the line +addressed by "A". +The line originally after the last line moved becomes the current line; +if the lines moved were originally at the end, +the new last line becomes the current line. + +.ti-3 +n +.br +The markn_ames command will print the current mark names. + +.ti -3 +(.,.)p +.br +The p_rint command prints the addressed lines. "." +is left at the last line printed. +The p_ command may___ be placed on the same line after any command. + +.ti -3 +q_ +.br +The q_uit command causes ed__ to exit. No automatic write +of a file is done. + +.ti -3 +($)r filename +.br +The r_ead command +reads in the given file after the addressed line. +If no file name is given, +the remembered file name, if any, is used (see e_ and f_ commands). +The remembered file name is not changed unless +"filename" is the very first file name +mentioned. +Address "0" is legal for r_ and causes the +file to be read at the beginning of the buffer. +If the read is successful, the number of characters +read is typed. +"." is left at the last line read in from the file. + +.ti -3 +(.,.)s/regular expression/replacement/ or, +.ti -3 +(.,.)s/regular expression/replacement/g +.br +The s_ubstitute command searches each addressed +line for an occurrence of the specified regular expression. +On each line in which a match is found, +all matched strings are replaced by the replacement specified, +if the global replacement indicator "g" appears after the command. +If the global indicator does not appear, only the first occurrence +of the matched string is replaced. +It is an error for the substitution to fail on all addressed lines. +Any character other than space or new-line +may be used instead of "/" to delimit the regular expression +and the replacement. +"." is left at the last line substituted. + +The ampersand "&" appearing in the replacement +is replaced by the regular expression that was matched. +The special meaning of "&" in this context may be +suppressed by preceding it by "\\". + +.ti -3 +(1,$)v/regular expression/command list +.br +This command is the same as the g_lobal command +except that the command list is executed +with "." initially set to every line except______ those +matching the regular expression + +.ti -3 +(1,$)w filename +.br +The w_rite command writes the addressed lines onto +the given file. +If the file does not exist, +it is created mode 17 (readable and writeable by everyone). +The remembered file name is not___ changed unless +"filename" is the very first file name mentioned. +If no file name is given, +the remembered file name, if any, is used (see e_ and f_ commands). +"." is unchanged. +If the command is successful, the number of characters written is +typed. + +.ti -3 +($)= +.br +The line number of the addressed line is typed. +"." is unchanged by this command. + +.ti -3 +!UNIX command +.br +The remainder of the line after the "!" is sent +to UNIX to be interpreted as a command. +"." is unchanged. + +.ti -3 +(.+1) +.br +An address alone on a line causes that line to be printed. +A blank line alone is equivalent to ".+1p"; it is useful +for stepping through text. + +.in -6 +If an interrupt signal (ASCII DEL) is sent, +ed__ will print a "?" and return to its command level. + +If invoked with the command name '-', (see init____) +ed__ will sign on with the message "Editing system" +and print "*" as the command level prompt character. +.sp +Ed__ has size limitations on the maximum number of lines that can be edited, +and on the maximum number of characters in a line, +in a global's command list, +and in a remembered file name. +These limitations vary with the physical core size of the PDP11 computer +on which ed__ is being used. +The range of limiting sizes +for the above mentioned items is; +1300|-|4000 lines per file, +256|-|512 characters per line, +63|-|256 characters per global command list, +and +64 characters per file name. +.sp +.ti 0 +.in +8 +FILES +.br +/tmp/etm? temporary +.br +/etc/msh to implement the "!" command. +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS "?" for any error +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/efl.1 b/static/unix-v10/man1/efl.1 new file mode 100644 index 00000000..0bb15834 --- /dev/null +++ b/static/unix-v10/man1/efl.1 @@ -0,0 +1,74 @@ +.TH EFL 1 +.SH NAME +efl \- extended Fortran language preprocessor +.SH SYNOPSIS +.B efl +[ +.I option ... +] +[ +.I filename ... +] +.SH DESCRIPTION +.I Efl +compiles a program written in the EFL language into clean Fortran. +.I Efl +provides the same control flow constructs as does Ratfor (1), +which are essentially identical to those in C: +.TP +statement grouping with braces; +decision-making with if, if-else, and switch-case; +while, +for, +Fortran do, +repeat, +and repeat...until loops; +multi-level break and next. +In addition, EFL has C-like data structures, +and more uniform and convenient input/output syntax, +generic functions. +EFL also provides +some syntactic sugar to make programs easier to read and write: +.TP +free form input: +multiple statements/line; automatic continuation +statement label names (not just numbers), +.TP +comments: +# this is a comment +.TP +translation of relationals: +>, >=, etc., become .GT., .GE., etc. +.TP +return (expression) +returns expression to caller from function +.TP +define: +define name replacement +.TP +include: +include filename +.PP +.fi +The Efl command option +.B \-w +suppresses warning messages. +The option +.B \-C +causes comments to be copied through to the Fortran output (default); +.B \-# +prevents comments from being copied through. +If a command argument contains an embedded equal sign, +that argument is treated as if it had appeared in an +.B option +statement at the beginning of the program. +.I Efl +is best used with +.IR f77 (1). +.SH "SEE ALSO" +.IR f77 (1), +.IR ratfor (1). +.br +S. I. Feldman, +.IR "The Programming Language EFL", +Bell Labs Computing Science Technical Report #78. diff --git a/static/unix-v10/man1/eqn.1 b/static/unix-v10/man1/eqn.1 new file mode 100644 index 00000000..6236bea5 --- /dev/null +++ b/static/unix-v10/man1/eqn.1 @@ -0,0 +1,366 @@ +.TH EQN 1 +.CT 1 writing_troff +.EQ +delim $$ +.EN +.SH NAME +eqn, neqn, checkeq \- typeset mathematics +.SH SYNOPSIS +.B eqn +[ +.I option ... +] +[ +.I file ... +] +.PP +.B neqn +[ +.I option ... +] +[ +.I file ... +] +.PP +.B checkeq +[ +.I file ... +] +.SH DESCRIPTION +.I Eqn +is a +.IR troff (1) +preprocessor +for typesetting mathematics +on a phototypesetter, +.I neqn +on terminals. +Usage is almost always +.IP +.L +eqn file ... | troff +.br +.L +neqn file ... | nroff +.PP +If no files are specified, +these programs +read from the standard input. +.I Eqn +prepares output for the typesetter +named in the +.BI -T dest +option (Mergenthaler Linotron 202 default, see +.IR troff (1)). +When run with other preprocessor filters, +.I eqn +usually comes last. +.PP +A line beginning with +.B .EQ +marks the start of an equation; +the end of an equation +is marked by a line beginning with +.BR .EN . +Neither of these lines is altered, +so they may be defined in macro packages +to get +centering, numbering, etc. +It is also possible to set two characters +as `delimiters'; +text between delimiters is also +.I eqn +input. +Delimiters may be set to characters +.I x +and +.I y +with the option +.BI -d xy +or (more commonly) with +.B delim +.I xy +between +.B .EQ +and +.BR .EN . +Left and right delimiters may be identical. +(They are customarily taken to be +$font CW "$$" )$. +Delimiters are turned off by +.LR "delim off" . +All text that is neither between delimiters nor between +.B .EQ +and +.B .EN +is passed through untouched. +.PP +.I Checkeq +reports missing or unbalanced delimiters and +.BR .EQ / .EN +pairs. +.PP +Tokens within +.I eqn +are separated by +spaces, tabs, newlines, braces, double quotes, +tildes or circumflexes. +Braces {} are used for grouping; +generally speaking, +anywhere a single character like +.L x +could appear, a complicated construction +enclosed in braces may be used instead. +Tilde +.L ~ +represents a full space in the output, +circumflex +.L ^ +half as much. +.if t .ig +.PP +WARNING to users of the on-line manual. +Unless your terminal understands half-spacing, the +examples below will be nearly unreadable. +To get a well printed copy execute +.BR "man -t eqn | lp" . +.. +.PP +.vs 13p +Subscripts and superscripts are produced with the keywords +.B sub +and +.B sup. +Thus +.L "x sub i" +makes +$x sub i$, +.L "a sub i sup 2" +produces +$a sub i sup 2$, +and +.L "e sup {x sup 2 + y sup 2}" +gives +$e sup {x sup 2 + y sup 2}$. +.PP +Fractions are made with +.BR over : +.L "a over b" +yields $a over b$. +.PP +.B sqrt +makes square roots: +.L "1 over sqrt {ax sup 2 +bx+c}" +results in +$1 over sqrt {ax sup 2 +bx+c}$ . +.PP +The keywords +.B from +and +.B to +introduce lower and upper +limits on arbitrary things: +$lim from {n -> inf} sum from 0 to n x sub i$ +is made with +.L "lim from {n -> inf} sum from 0 to n x sub i". +.PP +Left and right brackets, braces, etc., of the right height are made with +.B left +and +.B right: +.L "left [ x sup 2 + y sup 2 over alpha right ] ~=~1" +produces +$left [ x sup 2 + y sup 2 over alpha right ] ~=~1$. +The +.B right +clause is optional. +Legal characters after +.B left +and +.B right +are braces, brackets, bars, +.B c +and +.B f +for ceiling and floor, +and +.B +"" +for nothing at all (useful for a right-side-only bracket). +.PP +Vertical piles of things are made with +.BR pile , +.BR lpile , +.BR cpile , +and +.BR rpile : +.L "pile {a above b above c}" +produces +$pile {a above b above c}$. +There can be an arbitrary number of elements in a pile. +.B lpile +left-justifies, +.B pile +and +.B cpile +center, with different vertical spacing, +and +.B rpile +right justifies. +.PP +Matrices are made with +.BR matrix : +.L "matrix { lcol { x sub i above y sub 2 } ccol { 1 above 2 } }" +produces +$matrix { lcol { x sub i above y sub 2 } ccol { 1 above 2 } }$. +In addition, there is +.B rcol +for a right-justified column. +.PP +.vs 12p +Diacritical marks are made with +.BR prime , +.BR dot , +.BR dotdot , +.BR hat , +.BR tilde , +.BR bar , +.BR under , +.BR vec , +.BR dyad , +and +.BR under : +.L "x sub 0 sup prime = f(t) bar + g(t) under" +is +$x sub 0 sup prime = f(t) bar + g(t) under$, +and +.L "x vec = y dyad" +is +$x vec = y dyad$. +.PP +Sizes and font can be changed with prefix operators +.B size +.I n, +.B size +.BI \(+- n, +.BR fat , +.BR roman , +.BR italic , +.BR bold , +or +.BR font +.I n. +Size and fonts can be changed globally in a document by +.B gsize +.I n +and +.B gfont +.IR n , +or by the command-line arguments +.BI -s n +and +.BI -f n. +.PP +Normally subscripts and superscripts are reduced by +3 point sizes from the previous size; +this may be changed by the command-line argument +.BI -p n. +.PP +Successive display arguments can be lined up. +Place +.B mark +before the desired lineup point in the first equation; +place +.B lineup +at the place that is to line up vertically in subsequent equations. +.PP +Shorthands may be defined +or existing keywords redefined with +.BI define : +.L define +.I thing +.L % +.I replacement +.L % +defines a new token called +.I thing +which will be replaced by +.I replacement +whenever it appears thereafter. +The +.L % +may be any character that does not occur in +.L replacement. +.PP +Keywords like +.L sum +.EQ +( sum ) +.EN +.L int +.EQ +( int ) +.EN +.L inf +.EQ +( inf ) +.EN +and shorthands like +.L >= +.EQ +(>=) +.EN +.L -> +.EQ +(->), +.EN +and +.L != +.EQ +( != ) +.EN +are recognized. +Greek letters are spelled out in the desired case, as in +.L alpha +or +.LR GAMMA . +Mathematical words like +.LR sin , +.LR cos , +.L log +are made Roman automatically. +.IR Troff (1) +four-character escapes like +.L \e(lh +(\(lh) can be used anywhere. +Strings enclosed in double quotes +.B +" " +are passed through untouched; +this permits keywords to be entered as text, +and can be used to communicate +with +.I troff +when all else fails. +.SH "SEE ALSO" +.IR troff (1), +.IR tbl (1), +.IR ms (6), +.IR eqnchar (6), +.IR doctype (1) +.br +B. W. Kernighan and L. L. Cherry, +`Typesetting Mathematics\(emUser's Guide', +this manual, Volume 2 +.br +J. F. Ossanna and B. W. Kernighan, +`NROFF/TROFF User's Manual', +.I ibid. +.SH BUGS +To embolden digits, parens, etc., +it is necessary to quote them, +as in +.LR bold\ "12.3" . +.EQ +delim off +.EN diff --git a/static/unix-v10/man1/esterel.1 b/static/unix-v10/man1/esterel.1 new file mode 100644 index 00000000..ad619c79 --- /dev/null +++ b/static/unix-v10/man1/esterel.1 @@ -0,0 +1,258 @@ +.EV +.TH esterel 1 local INRIA-CMA Esterel +.SH NAME +esterel \- Esterel compiler +.SH SYNTAX +.B esterel +[options] [file] ... +.SH DESCRIPTION +The +.I esterel +command invokes the various utilities constituting the Esterel language +development tools: +.IP "\fIstrlic\fP" +The Esterel front-end: receives files containing Esterel source +(\fB.strl\fP suffix) producing intermediate code (\fB.ic); +.IP "\fIiclc\fP" +The Esterel binder, performing the expansion of the \fBcopymodule\fP +statements; it receives several \fB.ic\fP (or \fB.lc\fP) +files and builds an unique linked code file (\fB.lc\fP); +.IP "\fIlcoc\fP" +The Esterel compiler, which produces from an unique \fB.lc\fP file, +Esterel automata in portable format (\fB.oc\fP); +.IP "\fIocl\fP" +A generic name for Esterel code generators, +translating portable automata (\fB.oc\fP) into a program written in one of +the supported target languages (see the \fB-L\fP option below). +.PP +If no files are given to the \fIesterel\fP command, the standard input +is used. Any suffix in the list \fB.strl\fP, \fB.ic\fP, \fB.lc\fP, +or \fB.oc\fP is recognized in the files names: the \fIesterel\fP command +will arrange for only the appropriate utilities to be called. +.SH OPTIONS +The following option is for the \fIesterel\fP command itself: +.IP "\fB-n\fP" +Tell what is to be done, but don't do it. +.PP +The option +.IP "\fB-version\fP" +display the version number of the \fIesterel\fP command, as well as the +ones of the various utilities including all known code generators. +.PP +The following options are passed to all four utilities: +.IP "\fB-v\fP" +Verbose mode: the \fIesterel\fP command and the various utilities +tell what they are doing; +.IP "\fB-w\fP" +Suppresse all warning messages; +.IP "\fB-W\fP" +Display all warning messages (the default is to display only "selected" +warnings); +.IP "\fB-stat\fP" +Display various time statistics; +.IP "\fB-memstat\fP" +Display statistics on dynamically allocated memory. +.PP +The three following options enable to stop the compilation process at +some intermediate stage: +.IP "\fB-ic\fP" +Just use \fIstrlic\fP to convert \fB.strl\fP files into \fB.ic\fP files +(with the same base name), ignoring all other files; +.IP "\fB-lc\fP" +Stop after running the binder (\fIiclc\fP); +.IP "\fB-oc\fP" +Stop after running the compiler (\fIlcoc\fP). +.PP +For the \fB-lc\fP and \fB-oc\fP options, one can specify the output +file name(s) with the \fB-B\fP and \fB-D\fP options. +.IP "\fB-B \fP\fIname\fP" +\fIname\fP denotes the output files default base name. +The appropriate suffix is added automatically (and possibly a working +directory name --see the following option). +If this option is omitted and if the \fIesterel\fP command +is invoked with only one file name, \fIname\fP defaults to the +base name of this unique file with the appropriate suffix; +otherwise it defaults to the base name \fBesterel\fP, still followed +by the appropriate suffix. +.IP "\fB-D \fP\fIdirectory\fP" +Specify a directory where the files produced by the command will be +placed. The default is the current directory. + +The \fB-B\fP and \fB-D\fP options and the corresponding +default rules apply to the files produced by +the \fB-K\fP (except \fB-Kic\fP) and \fB-L\fP options below. +.PP +The \fIesterel\fP command removes all the intermediate files it has created, +unless one of the following options is given: +.IP "\fB-Kic\fP +Keep all the \fB.ic\fP files (their names being the original ones, with +the suffix \fB.strl\fP replaced by \fB.ic\fP); +.IP "\fB-Klc\fP" +Keep the (unique) \fB.lc\fP file; +.IP "\fB-Koc\fP" +Keep the (unique) \fB.oc\fP file; +.IP "\fB-K" +Keep all the intermediate files. +.PP +The binder \fIiclc\fP recognizes some specific options: +.IP "\fB-Rs\fP" +Trace signal captures and renaming; +.IP "\fB-Rc\fP" +Trace constant captures and renaming; +.IP "\fB-R\fP" +Trace both signal and constant captures and renaming. +.PP +The compiler \fIlcoc\fP recognizes also some specific options: +.IP "\fB-size\fP" +Display the final size (states and bytes) of the generated automata; +.IP "\fB-show\fP" +Display dynamically the number of states generated so far. +.PP +The code generators (\fIocl\fP) recognize an unique option: +.IP "\fB-L\fP[\fIlanguage\fP][:\fIspecific_options\fP]" +.br +Set the target language: at this time only \fBc\fP, \fBlelisp\fP, +\fBtex\fP, \fBplm\fP, \fBauto\fP, +and \fBdebug\fP are known; it is likely that other languages be added. +The code generators have a name of the form \fBoc\fP\fIlanguage\fP. +If the \fB-L\fP option or the language are omitted, the default is \fBc\fP. +The string \fIspecific_options\fP allows to transmit language dependent +options to a given code generator (see \fBocl(1)\fP). +.IP +There can be as many \fB-L\fP options as needed. +.PP +Finally, there is a particular option to do as much as specified (by the +stop options) but producing nothing. +.IP "\fB-s\fP" +Perform all the compilation process, as specified by the other options, +but produce nothing. +.SH EXAMPLES +The simple command +.sp +.RS +.B esterel foo.strl +.RE +.sp +performs a full Esterel compilation, leaving the produced automaton, +in C language form, in the file \fBfoo.c\fP. +.PP +To produce debug format while keeping the generated automaton in portable +format, try +.sp +.RS +.B esterel -Koc -Ldebug foo.strl +.RE +.sp +.PP +A little more complex, the following command +.sp +.RS +.B esterel -Kic -Koc -Bautom -Llisp +.B f1.strl f2.ic f3.lc +.RE +.sp +will pass \fBf1.strl\fP through \fIstrlic\fP and keep the \fBf1.ic\fP file; +then it will pass \fBf1.ic\fP, \fBf2.ic\fP, and \fBf3.lc\fP +through \fIiclc\fP and \fIlcoc\fP, producing the file \fBautom.oc\fP +(the intermediate files are discarded); finally, +this last file will be converted into the LeLisp file \fBautom.ll\fP +by \fIoclelisp\fP. +.PP +The command +.sp +.RS +.B esterel -K -Bfoo -D/a/b f1.strl f2.strl f3.ic f4.oc +.RE +.sp +produces the following files: \fB/a/b/f1.ic\fP, \fB/a/b/f2.ic\fP, +\fB/a/b/foo.lc\fP, \fB/a/b/foo.oc\fP, and \fB/a/b/foo.c\fP. +.PP +To illustrate the \fB-s\fP option, note that +.sp +.RS +.B esterel -s foo.strl +.RE +.sp +performs a full compilation upto C code generation, but the C file is not +produced; similarly, +.sp +.RS +.B esterel -ic -s foo.strl +.RE +.sp +will only execute the front-end \fIstrlic\fP without producing any \fB.ic\fP +file. +.PP +Finally, +.sp +.RS +.B esterel -Lc -Lauto:"-signal EV1,EV2" foo.strl +.RE +.sp +performs a full compilation of the Esterel source file \fBfoo.strl\fP +to auto format (\fBfoo.auto\fP), passing the arguments +\fB-signal EV1,EV2\fP untouched to the corresponding code generator +(here \fIocauto\fP). +.SH DIAGNOSTICS +The command returns with exit code 0 if (and only if) +no error was detected by the various utilities. +.PP +Various error or warning messages indicate +incompatible or redundant options, or error +conditions related to file handling. +.SH BUGS +The command checks whether it generates a file which is already +present in its argument list, and if so, stops with an error, to +avoid clobbering the file. +.PP +The corresponding test is based on the name of files as given +by the user and is rather rustic. +For instance, the following erroneous condition (or any similar one) +is not detected +.sp +.RS +.B esterel -K -Bfoo -D.. foo.strl .././foo.lc +.RE +.sp +and will certainly result in loosing the original content of ../foo.lc +(use the \fB-n\fP option to see what will occur). +.SH FILES +.PP +In the following, $lib designates the default library directory for +Esterel utilities (usually /usr/local/lib/esterel). This default +path can be modified by the installer of the Esterel system, or by any +user setting the environment variable ESTERELLIB. +.sp +.ta \w'mmmmmm'u +\w'$lib/strlic 'u +.br +.ti0 + $lib/strlic Esterel front-end +.ti0 + $lib/iclc Esterel binder +.ti0 + $lib/lcoc Esterel compiler (automaton generator) +.ti0 + $lib/oc* Esterel code generators +.ti0 + + *.strl Esterel source files +.ti0 + *.ic Intermediate code files +.ti0 + *.lc Linked intermediate code file +.ti0 + *.oc Portable automata file +.ti0 + esterel.* Default names for keeping intermediate files +.SH SEE ALSO +strlic(l), iclc(l), lcoc(l), ocl(l) +.br +\fIEsterel V3 Reference Manual\fP +.br +\fIEsterel V3 System Manuals\fP +.SH IDENTIFICATION +Author: Jean-Paul Rigault, Ecole des Mines de Paris, CMA +.br +$Revision: 1.1 $ +.br +$Date: 88/04/07 13:39:34 $ diff --git a/static/unix-v10/man1/exit.1 b/static/unix-v10/man1/exit.1 new file mode 100644 index 00000000..970eacd6 --- /dev/null +++ b/static/unix-v10/man1/exit.1 @@ -0,0 +1,26 @@ +.pa 1 +.he 'EXIT(I)'3/15/72'EXIT(I)' +.ti 0 +NAME exit -- terminate command file +.sp +.ti 0 +SYNOPSIS exit____ +.sp +.ti 0 +DESCRIPTION exit____ +performs a seek____ to the end of its standard input file. +Thus, if it is invoked inside +a file of commands, upon return from exit____ the shell will +discover an end-of-file and terminate. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO if(I), goto(I), sh(I) +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/expr.1 b/static/unix-v10/man1/expr.1 new file mode 100644 index 00000000..3bc6fe3b --- /dev/null +++ b/static/unix-v10/man1/expr.1 @@ -0,0 +1,112 @@ +.TH EXPR 1 +.CT 1 shell +.SH NAME +expr \- integer and string-match expression evaluator for shell scripts +.SH SYNOPSIS +.B expr +.I arg ... +.SH DESCRIPTION +The arguments are taken as an expression. +After evaluation, the result is written on the standard output. +Each token of the expression is a separate argument. +.PP +The operators and keywords are listed below +in order of increasing precedence, +with equal precedence operators grouped. +.TP \w'\f5(\fI\ expr\ \f5)\ 'u +.IB expr1 " | " expr2 +Value is the value of +.I expr1 +if that is neither empty nor 0, +otherwise the value of +.IR expr2. +.TP +.IB expr1 " & " expr2 +Value is the value of +.I expr1 +if neither +.I expr1 +nor +.I expr2 +is empty or 0, otherwise 0. +.TP +.I expr1 relop expr2 +.I Relop +is one of +.L "< <= = != >= >" . +Value is 1 +if the indicated comparison is true, 0 +if false. +The comparison is numeric if both +.I expr +are integers, otherwise lexicographic. +.TP +.IB expr1 " + " expr2 +.br +.ns +.TP +.IB expr1 " - " expr2 +.br +Value is the sum or difference of the (integer) values of +.I expr1 +and +.I expr2. +.TP +.IB expr1 " * " expr2 +.br +.ns +.TP +.IB expr1 " / " expr2 +.br +.ns +.TP +.IB expr1 " % " expr2 +.br +Value is the product, quotient, or remainder of the (integer) +values of +.I expr1 +and +.I expr2. +.TP +.IB expr " : " regexp +Match the string value of +.I expr +with the regular expression +.IR regexp ; +regular expression syntax is the same as in +.IR ed (1), +but matches are anchored at the left. +On success a subexpression +.BR \e(\| ... \|\e) , +if present in +.I regexp, +picks out a return value from the matched string. +Otherwise, +the matching operator yields the number of characters matched +(0 on failure). +.TP +.BI ( " expr " ) +Parentheses for grouping. +.TP +.I arg +Value is the string +.I arg. +.PP +.SH EXAMPLES +.TP +.L +a=`expr $a + 1` +Add 1 to shell variable +.IR a . +.TP +.L +expr $a : '.*/\e(.*\e)' '|' $a +Same as +.LR "basename $a" . +.SH "SEE ALSO" +.IR sh (1), +.IR test (1) +.SH DIAGNOSTICS +.I Expr +returns exit code 0 if the expression is neither null nor 0, +1 if the expression is null or 0, 2 for invalid expressions. diff --git a/static/unix-v10/man1/f2c.1 b/static/unix-v10/man1/f2c.1 new file mode 100644 index 00000000..419ba030 --- /dev/null +++ b/static/unix-v10/man1/f2c.1 @@ -0,0 +1,191 @@ + + F2C(1) F2C(1) + + NAME + f2c - Convert Fortran 77 to C or C++ + + SYNOPSIS + f2c [ option ... ] file ... + + DESCRIPTION + F2c converts Fortran 77 source code in files with names end- + ing in `.f' or `.F' to C (or C++) source files in the cur- + rent directory, with `.c' substituted for the final `.f' or + `.F'. If no Fortran files are named, f2c reads Fortran from + standard input and writes C on standard output. File names + that end with `.p' or `.P' are taken to be prototype files, + as produced by option `-P', and are read first. + + The following options have the same meaning as in f77(1). + + -C Compile code to check that subscripts are within + declared array bounds. + + -I2 Render INTEGER and LOGICAL as short, INTEGER*4 as long + int. Assume the default libF77 and libI77: allow only + INTEGER*4 (and no LOGICAL) variables in INQUIREs. + Option `-I4' confirms the default rendering of INTEGER + as long int. + + -onetrip + Compile DO loops that are performed at least once if + reached. (Fortran 77 DO loops are not performed at all + if the upper limit is smaller than the lower limit.) + + -U Honor the case of variable and external names. Fortran + keywords must be in lower case. + + -u Make the default type of a variable `undefined' rather + than using the default Fortran rules. + + -w Suppress all warning messages. If the option is + `-w66', only Fortran 66 compatibility warnings are sup- + pressed. + + The following options are peculiar to f2c. + + -A Produce ANSI C. Default is old-style C. + + -a Make local variables automatic rather than static + unless they appear in a DATA, EQUIVALENCE, NAMELIST, or + SAVE statement. + + -C++ Output C++ code. + + -c Include original Fortran source as comments. + + Page 1 Local (printed 2/2/93) + + F2C(1) F2C(1) + + -E Declare uninitialized COMMON to be Extern (overridably + defined in f2c.h as extern). + + -ec Place uninitialized COMMON blocks in separate files: + COMMON /ABC/ appears in file abc_com.c. Option `-e1c' + bundles the separate files into the output file, with + comments that give an unbundling sed(1) script. + + -ext Complain about f77(1) extensions. + + -f Assume free-format input: accept text after column 72 + and do not pad fixed-format lines shorter than 72 char- + acters with blanks. + + -72 Treat text appearing after column 72 as an error. + + -g Include original Fortran line numbers in #line lines. + + -h Emulate Fortran 66's treatment of Hollerith: try to + align character strings on word (or, if the option is + `-hd', on double-word) boundaries. + + -i2 Similar to -I2, but assume a modified libF77 and libI77 + (compiled with -Df2c_i2), so INTEGER and LOGICAL vari- + ables may be assigned by INQUIRE and array lengths are + stored in short ints. + + -kr Use temporary values to enforce Fortran expression + evaluation where K&R (first edition) parenthesization + rules allow rearrangement. If the option is `-krd', + use double precision temporaries even for single- + precision operands. + + -P Write a file.P of ANSI (or C++) prototypes for defini- + tions in each input file.f or file.F. When reading + Fortran from standard input, write prototypes at the + beginning of standard output. Option -Ps implies -P + and gives exit status 4 if rerunning f2c may change + prototypes or declarations. + + -p Supply preprocessor definitions to make common-block + members look like local variables. + + -R Do not promote REAL functions and operations to DOUBLE + PRECISION. Option `-!R' confirms the default, which + imitates f77. + + -r Cast values of REAL functions (including intrinsics) to + REAL. + + -r8 Promote REAL to DOUBLE PRECISION, COMPLEX to DOUBLE + COMPLEX. + + Page 2 Local (printed 2/2/93) + + F2C(1) F2C(1) + + -s Preserve multidimensional subscripts. + + -Tdir + Put temporary files in directory dir. + + -w8 Suppress warnings when COMMON or EQUIVALENCE forces + odd-word alignment of doubles. + + -Wn Assume n characters/word (default 4) when initializing + numeric variables with character data. + + -z Do not implicitly recognize DOUBLE COMPLEX. + + -!bs Do not recognize backslash escapes (\", \', \0, \\, \b, + \f, \n, \r, \t, \v) in character strings. + + -!c Inhibit C output, but produce -P output. + + -!I Reject include statements. + + -!i8 Disallow INTEGER*8. + + -!it Don't infer types of untyped EXTERNAL procedures from + use as parameters to previously defined or prototyped + procedures. + + -!P Do not attempt to infer ANSI or C++ prototypes from + usage. + + The resulting C invokes the support routines of f77; object + code should be loaded by f77 or with ld(1) or cc(1) options + -lF77 -lI77 -lm. Calling conventions are those of f77: see + the reference below. + + FILES + file.[fF] + input file + + *.c output file + + /usr/include/f2c.h + header file + + /usr/lib/libF77.a + intrinsic function library + + /usr/lib/libI77.a + Fortran I/O library + + /lib/libc.a + C library, see section 3 + + Page 3 Local (printed 2/2/93) + + F2C(1) F2C(1) + + SEE ALSO + S. I. Feldman and P. J. Weinberger, `A Portable Fortran 77 + Compiler', UNIX Time Sharing System Programmer's Manual, + Tenth Edition, Volume 2, AT&T Bell Laboratories, 1990. + + DIAGNOSTICS + The diagnostics produced by f2c are intended to be self- + explanatory. + + BUGS + Floating-point constant expressions are simplified in the + floating-point arithmetic of the machine running f2c, so + they are typically accurate to at most 16 or 17 decimal + places. + Untypable EXTERNAL functions are declared int. + + Page 4 Local (printed 2/2/93) + diff --git a/static/unix-v10/man1/f77.1 b/static/unix-v10/man1/f77.1 new file mode 100644 index 00000000..d226c9f2 --- /dev/null +++ b/static/unix-v10/man1/f77.1 @@ -0,0 +1,212 @@ +.TH F77 1 +.CT 1 prog_other +.SH NAME +f77 \(mi Fortran 77 compiler +.SH SYNOPSIS +.B f77 +[ +.I option ... +] +.I file ... +.SH DESCRIPTION +.I F77 +is a Fortran 77 compiler. +It accepts several types of arguments: +.PP +Arguments whose names end with +.L .f +are taken to be +Fortran 77 source programs; +they are compiled, and +each object program is left on the file in the current directory +whose name is that of the source with +.L .o +substituted +for +.LR .f . +.PP +Arguments whose names end with +.L .r +or +.L .e +are taken to be Ratfor or EFL +source programs, respectively; these are first transformed by the +appropriate preprocessor, then compiled by +.I f77. +.PP +In the same way, +arguments whose names end with +.L .c +or +.L .s +are taken to be C or assembly source programs +and are compiled or assembled, producing a +.L .o +file. +.PP +The following options have the same meaning as in +.IR cc (1). +See +.IR ld (1) +for load-time options. +.TP +.B -c +Suppress loading and produce +.L .o +files for each source +file. +.TP +.B -g +Have the compiler produce additional symbol table information for +.IR sdb (A) +or +.IR pi (9.1). +.TP +.BR -w +Suppress all warning messages. +If the option is +.LR -w66 , +only Fortran 66 compatibility warnings are suppressed. +.TP +.B -p +Prepare object files for profiling, see +.IR prof (1). +.TP +.B -O +Invoke an +object-code optimizer. +.TP +.B -S +Compile the named programs, and leave the +assembler-language output on corresponding files suffixed +.LR .s . +(No +.L .o +is created.). +.TP +.BI -o " output" +Name the final output file +.I output +instead of +.LR a.out . +.PP +The following options are peculiar to +.IR f77 . +.TP +.BR -onetrip +Compile DO loops that are performed at least once if reached. +(Fortran 77 DO loops are not performed at all if the upper limit is smaller than the lower limit.) +.TP +.BR -u +Make the default type of a variable `undefined' rather than using the default Fortran rules. +.TP +.BR -C +Compile code to check that subscripts are within declared array bounds. +.TP +.B -I2 +Render +.SM INTEGER +and +.SM LOGICAL +as short, +.SM INTEGER\*S\(**4 +as long. +Allow only +.SM INTEGER\*S\(**4 +(and no +.SM LOGICAL\*S) +variables in +.SM INQUIRE\*Ss. +.TP +.B -U +Honor the case of variable and external names. +Fortran keywords must be in lower case. +.TP +.BR -F +Apply EFL and Ratfor preprocessors to relevant files, +put the results in the files +with the suffix changed to +.LR .f , +but do not compile. +.TP +.BR -m +Apply the M4 preprocessor to each +.L .r +or +.L .e +file before transforming +it with the Ratfor or EFL preprocessor. +.TP +.BI -E x +Use the string +.I x +as an EFL option in processing +.L .e +files. +.TP +.BI -R x +Use the string +.I x +as a Ratfor option in processing +.L .r +files. +.PP +Other arguments +are taken +to be either loader option arguments, or F77-compatible +object programs, typically produced by an earlier +run, +or perhaps libraries of F77-compatible routines. +These programs, together with the results of any +compilations specified, are loaded (in the order +given) to produce an executable program with name +.LR a.out . +.SH FILES +.TF /usr/lib/libF77.a +.TP +.IB file .[fresc] +input file +.TP +.B *.o +object file +.TP +.F a.out +loaded output +.TP +.F ./fort* +temporary +.TP +.F /usr/lib/f77pass1 +compiler +.TP +.F /lib/f1 +pass 2 +.TP +.F /lib/c2 +optional optimizer +.TP +.F /usr/lib/libF77.a +intrinsic function library +.TP +.F /usr/lib/libI77.a +Fortran I/O library +.TP +.F /lib/libc.a +C library, see section 3 +.SH "SEE ALSO" +.IR prof (1), +.IR cc (1), +.IR ld (1), +.IR efl (A), +.IR ratfor (A) +.br +S. I. Feldman and +P. J. Weinberger, +`A Portable Fortran 77 Compiler', +this manual, Volume 2 +.SH DIAGNOSTICS +The diagnostics produced by +.I f77 +itself are intended to be +self-explanatory. +Occasional messages may be produced by the loader. diff --git a/static/unix-v10/man1/factor.1 b/static/unix-v10/man1/factor.1 new file mode 100644 index 00000000..fb1aa2a5 --- /dev/null +++ b/static/unix-v10/man1/factor.1 @@ -0,0 +1,30 @@ +.pa 1 +.he 'FACTOR (I)'1/15/73'FACTOR (I)' +.ti 0 +NAME factor -- discover prime factors of a number +.sp +.ti 0 +SYNOPSIS factor______ +.sp +.ti 0 +DESCRIPTION When factor is invoked, it types +out "Enter:" at you. If you type in a positive +number less than 2^56 (about 7.2E16), it will repeat the number +back at you and then its prime factors each one printed +the proper number of times. Then it says "Enter:" again. +To exit, feed it an EOT or a delete. +.sp +Maximum time to factor is proportional to sqrt(n) and occurs +when n is prime. It takes 1 minute to factor a prime near 10^13. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS "Ouch." for input out of range or for garbage input. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/fc.1 b/static/unix-v10/man1/fc.1 new file mode 100644 index 00000000..5c33f614 --- /dev/null +++ b/static/unix-v10/man1/fc.1 @@ -0,0 +1,292 @@ +.pa 1 +.he 'FC (I)'9/1/72'FC (I)' +.ti 0 +NAME fc -- fortran compiler +.sp +.ti 0 +SYNOPSIS fc__ [ -c__ ] sfile\d1\u.f__ ... ofile\d1\u ... +.sp +.ti 0 +DESCRIPTION fc__ +is the UNIX Fortran compiler. +It accepts three types of arguments: + +Arguments whose names end with ".f" are assumed to be +Fortran source program units; they are compiled, and +the object program is left on the file sfile\d1\u.o (i.e. +the file whose name is that of the source with ".o" substituted +for ".f"). + +Other arguments (except for "-c") are assumed +to be either loader flags, or +object programs, typically produced by an earlier fc__ run, +or perhaps libraries of Fortran-compatible routines. +These programs, together with the results of any +compilations specified, are loaded (in the order +given) to produce an executable program with name +a.out_____. + +The "-c" argument suppresses the loading phase, as does +any syntax error in any of the routines being compiled. + +The following is a list +of differences between fc__ +and ANSI standard Fortran (also see the BUGS section): +.sp +.in +3 +.ti -3 +1. Arbitrary combination of types is allowed +in expressions. Not all combinations are expected to +be supported at runtime. +All of the normal +conversions involving integer, real, double +precision and complex are allowed. +.sp +.ti -3 +2. The 'standard' implicit statement is recognized. +.sp +.ti -3 +3. The types +doublecomplex, logical*1, +integer*2 and real*8 (doubleprecision) +are supported. +.sp +.ti -3 +4. &_ as the first character of a line +signals a continuation card. +.sp +.ti -3 +5. c_ as the first character of a line signals a comment. +.sp +.ti -3 +6. All keywords are recognized in lower case. +.sp +.ti -3 +7. The notion of 'column 7' is not implemented. + +.ti -3 +8. G-format input is free form-- +leading blanks are ignored, the first blank after the start +of the number terminates the field. + +.ti -3 +9. A comma in any numeric or logical input field terminates +the field. + +.ti -4 +10. There is no carriage control on output. +.sp +.in -3 +In I/O statements, only unit numbers 0-19 are supported. +Unit number nn__ corresponds to file "fortnn__;" +(e.g. unit 9 is file "fort09"). +For input, the file must exist; +for output, it will be created. + +Unit 5 is permanently associated with +the standard input file; unit 6 with the +standard output file. +.sp +.ti 0 +FILES file.f input file +.nf +a.out loaded output +f.tmp[123] temporary (deleted) +/usr/fort/fc[1234] compilation phases +/usr/lib/fr0.o runtime startoff +/usr/lib/filib.a interpreter library +/usr/lib/libf.a builtin functions, etc. +/usr/lib/liba.a system library +.fi +.sp +.ti 0 +SEE ALSO ANSI standard +.sp +.ti 0 +DIAGNOSTICS Compile-time diagnostics +are given by number. +If the source code is available, it is +printed with an underline at the current +character pointer. +Errors possible are: + +.in +8 +.ti -8 +1 statement too long +.ti -8 +2 syntax error in type statement +.ti -8 +3 redeclaration +.ti -8 +4 missing ( in array declarator +.ti -8 +5 syntax error in dimension statement +.ti -8 +6 inappropriate or gratuitous array declarator +.ti -8 +7 syntax error in subscript bound +.ti -8 +8 illegal character +.ti -8 +9 common variable is a parameter or already in common +.ti -8 +10 common syntax error +.ti -8 +11 subroutine/blockdata/function not first statement +.ti -8 +12 subroutine/function syntax error +.ti -8 +13 block data syntax error +.ti -8 +14 redeclaration in external +.ti -8 +15 external syntax error +.ti -8 +16 implicit syntax error +.ti -8 +17 subscript on non-array +.ti -8 +18 incorrect subscript count +.ti -8 +19 subscript out of range +.ti -8 +20 subscript syntax error +.ti -8 +22 DATA syntax error +.ti -8 +23 Illegal variable in DATA +.ti -8 +23 equivalence inconsistency +.ti -8 +24 equivalence syntax error +.ti -8 +25 separate common blocks equivalenced +.ti -8 +26 common block illegally extended by equivalence +.ti -8 +27 common inconsistency created by equivalence +.ti -8 +28 DATA table overflow +.ti -8 +29 () imbalance in expression +.ti -8 +30 expression syntax error +.ti -8 +31 illegal variable in equivalence +.ti -8 +32 Storage initialized twice by DATA +.ti -8 +33 non array/function used with subscripts/arguments +.ti -8 +35 goto syntax error +.ti -8 +37 illegal return +.ti -8 +38 continue, return, stop, call, end, or pause syntax error +.ti -8 +39 assign syntax error +.ti -8 +40 if syntax error +.ti -8 +41 I/O syntax error +.ti -8 +42 do or I/O iteration error +.ti -8 +43 do end missing +.ti -8 +50 illegal statement in block data +.ti -8 +51 multiply defined labels +.ti -8 +52 undefined label +.ti -8 +53 dimension mismatch +.ti -8 +54 expression syntax error +.ti -8 +55 end of statement in hollerith constant +.ti -8 +56 array too large +.ti -8 +99 B table overflow +.ti -8 +101 unrecognized statement +.ti -8 + +.ti -8 +Runtime diagnostics: +.ti -8 + +.ti -8 +1 invalid log argument +.ti -8 +2 bad arg count to amod +.ti -8 +3 bad arg count to atan2 +.ti -8 +4 excessive argument to cabs +.ti -8 +5 exp too large in cexp +.ti -8 +6 bad arg count to cmplx +.ti -8 +7 bad arg count to dim +.ti -8 +8 excessive argument to exp +.ti -8 +9 bad arg count to idim +.ti -8 +10 bad arg count to isign +.ti -8 +11 bad arg count to mod +.ti -8 +12 bad arg count to sign +.ti -8 +13 illegal argument to sqrt +.ti -8 +14 assigned/computed goto out of range +.ti -8 +15 subscript out of range +.ti -8 +16 real**real overflow + +.ti -8 +100 illegal I/O unit number +.ti -8 +101 inconsistent use of I/O unit +.ti -8 +102 cannot create output file +.ti -8 +103 cannot open input file +.ti -8 +104 EOF on input file +.ti -8 +105 illegal character in format +.ti -8 +106 format does not begin with ( +.ti -8 +107 no conversion in format but non-empty list +.ti -8 +108 excessive parenthesis depth in format +.ti -8 +109 illegal format specification +.ti -8 +110 illegal character in input field +.ti -8 +111 end of format in hollerith specification +.ti -8 +999 unimplemented input conversion +.sp +.in -8 +.ti 0 +BUGS The following is a list of +those features not yet implemented: +.sp +.br +arithmetic statement functions + +backspace, endfile, rewind runtime + +binary I/O + +no scale factors on input diff --git a/static/unix-v10/man1/fed.1 b/static/unix-v10/man1/fed.1 new file mode 100644 index 00000000..17413593 --- /dev/null +++ b/static/unix-v10/man1/fed.1 @@ -0,0 +1,127 @@ +.pa 1 +.he 'FED (I)'1/15/73'FED (I)' +.ti 0 +NAME +.br +fed -- edit associative memory for form letter +.sp +.ti 0 +SYNOPSIS +.br +fe__d_ +.sp +.ti 0 +DESCRIPTION +.br +fed___ is used to edit a form letter associative memory +file, form.m, which consists of named strings. +Commands consist of single letters followed by a list of +string names separated by a single space and ending with a +new line. +The conventions of the Shell with respect to '*' and '?' hold for +all commands but m_ where literal string names are expected. +The commands are: + +.in +5 +.ti -5 +e name918 ... + +e_dit writes the string whose name is name918 onto a temporary file +and executes the system editor ed__. On exit from the system +editor the temporary file is copied back into the associative +memory. Each argument is operated on separately. The sequence of +commands to add the string from 'file' to memory with name +'newname' is as follows: + + e newname + 0 (printed by ed) + r file + 200 + w + 200 + q (get out of ed) + q (get out of fe) + +To dump a string onto a file: + + e name + 200 (printed by ed) + w filename + 200 + q (get out of ed) + q (get out of fe) +.sp2 +.ti -5 +d [ name918 ... ] + +d_eletes a string and its name from the memory. When called with +no arguments d_ operates in a verbose mode typing each string +name and deleting only if a 'y' is typed. A 'q' response returns +to fed's command level. Any other response does nothing. +.sp 2 +.ti -5 +m name918 name928 ... + +(m_ove) changes the name of name918 to name928 and removes previous +string name928 if one exists. Several pairs of arguments may be given. +.sp 2 +.ti -5 +n [ name918 ... ] + +(n_ames) lists the string names in the memory. If called with +the optional arguments, it just lists those requested. +.sp 2 +.ti -5 +p name918 ... + +p_rints the contents of the strings with names given by the arguments. +.sp 2 +.ti -5 +q +(q_uit) returns to the system. +.sp 2 +.ti -5 +c [ p_ ] [ f_ ] + +c_hecks the associative memory file for consistency +and reports the number of free headers and blocks. +The optional arguments do the following: +.sp +.in +5 +.ti -2 +p causes any unaccounted for string to be +printed + +.ti -2 +f fixes broken memories by adding +unaccounted-for headers to free +storage and removing references to +released headers from associative +memory. +.in -5 +.sp +.sp +.in -5 +.ti 0 +FILES /tmp/ftmp? temporary +.br +form.m associative memory +.sp +.ti 0 +SEE ALSO form(I), ed(I), sh(I) +.sp +.ti 0 +DIAGNOSTICS '?' unknown command +.br +'Cannot open temp. file'-- cannot create a temporary file for ed command +.br +'name not in memory.' if string 'name' is not in the associative +memory and is used as an argument for d_ or m_. +.sp +.ti 0 +BUGS -- +.sp +.ti 0 +WARNING It +is legal but an unwise idea to have string names +with blanks, ":" or "?" in them. diff --git a/static/unix-v10/man1/fields.1 b/static/unix-v10/man1/fields.1 new file mode 100644 index 00000000..56fdeb98 --- /dev/null +++ b/static/unix-v10/man1/fields.1 @@ -0,0 +1,5 @@ +x = 1 2 3 4 -3 6 +y = 3 8 9 +x = 1 2 3 0 0 6 +y = 2 8 16 +p->a = 0x3, p->b = 0xf diff --git a/static/unix-v10/man1/file.1 b/static/unix-v10/man1/file.1 new file mode 100644 index 00000000..7e2aaa2a --- /dev/null +++ b/static/unix-v10/man1/file.1 @@ -0,0 +1,18 @@ +.th FILE I 11/1/73 +.sh NAME +file \*- determine format of file +.sh SYNOPSIS +.bd file +files +.sh DESCRIPTION +.it File +will examine each of its arguments +and give a guess as to the contents of the file. +It is the only program that will give +device numbers of special files. +.sh BUGS +If the file is not instantly recognized, +its type is given as `unknown'. +There should be some heuristic to +recognize source file `signatures' +in each of the standard languages. diff --git a/static/unix-v10/man1/find.1 b/static/unix-v10/man1/find.1 new file mode 100644 index 00000000..9fe8dd0c --- /dev/null +++ b/static/unix-v10/man1/find.1 @@ -0,0 +1,182 @@ +.TH FIND 1 +.CT 1 files dirs +.SH NAME +find \- find files +.SH SYNOPSIS +.B find +.I pathname ... expression +.SH DESCRIPTION +.I Find +recursively descends +the directory hierarchy for each +.I pathname, +seeking files that match a boolean +.I expression, +which consists of one or more arguments. +It does not follow symbolic links. +In the following descriptions of primary expressions, +.I n +is a decimal integer; +.BI + n +may be written to specify more than +.I n +and +.BI - n +to specify less. +.TP 10n +.BI -name " filename" +True if the +.I filename +argument matches the current file name. +Normal shell filename metacharacters may be used if quoted. +.TP +.BI -perm " onum" +True if the file permission flags +exactly +match the +octal number +.I onum +(see +.IR chmod (1)). +If +.I onum +is prefixed by a minus sign, +more mode bits (017777, see +.IR stat (2)) +become significant and +the modes are compared: +.IR (mode&onum)==onum . +.TP +.BI -type " c" +True if the type of the file +is +.I c, +where +.I c +is +.BI b ", " c ", " d ", " +.BI f ", " +or +.B L +for +block special file, character special file, +directory, plain file or symbolic link. +.TP +.BI -links " n" +True if the file has +.I n +links. +.TP +.BI -user " uname" +True if the file belongs to the user +.I uname +(login name or numeric userid). +.TP +.BI -group " gname" +True if the file belongs to group +.I gname +(group name or numeric groupid). +.TP +.BI -size " n" +True if the file is +.I n +blocks long (512 bytes per block). +.TP +.BI -inum " n" +True if the file has inode number +.I n. +.TP +.BI -atime " n" +True if the file has been accessed in +.I n +days. +.TP +.BI -mtime " n" +True if the file has been modified in +.I n +days. +.TP +.BI -ctime " n" +True if the inode has been changed in +.I n +days. +.TP +.BI -exec " command" +True if the executed command returns +a zero value as exit status. +The end of the command must be punctuated by an escaped +semicolon. +A command argument +.L {} +is replaced by the +current pathname. +.TP +.BI -ok " command" +Like +.B -exec +except that the generated command is written on +the standard output, then the standard input is read +and the command executed only upon response +.BI y . +.TP +.B -print +Always true; +causes the current pathname to be printed. +.TP +.BI -newer " file" +True if +the file has been modified more recently than the argument +.I file. +.TP +.BI -status " n +True if +.IR lstat +(see +.IR stat (2)) +applied to the file yields error number +.IR n ; +see +.IR intro (2). +Testing +.L -status +turns off diagnostics that errors normally produce. +On ordinary systems a nonzero error number occurs when a file +disappears underfoot or a file system is in trouble. +.PP +The following operators, listed in order of decreasing precedence, +may be used to combine primary expressions. +.TP +.BI ( " expression " ) +Group with parentheses. +.TP +.BI ! " expression +Negation. +True if and only if +.I expression +is not true. +.TP +.I expression expression +Conjunction. +True if both expressions are true. +.TP +.IB expression " -o " expression +Disjunction. +True if either expression is true. +.SH EXAMPLES +.HP +.L +find / \e( -name a.out -o -name '*.o' \e) -atime +7 -exec rm '{}' \e; +.br +Remove all files named +.L a.out +or +.L *.o +that have not been accessed for a week. +.SH FILES +.F /etc/passwd +.br +.F /etc/group +.SH "SEE ALSO" +.IR sh (1), +.IR test (1), +.IR filsys (5) diff --git a/static/unix-v10/man1/flex.1 b/static/unix-v10/man1/flex.1 new file mode 100644 index 00000000..99cb5667 --- /dev/null +++ b/static/unix-v10/man1/flex.1 @@ -0,0 +1,716 @@ +.TH FLEX 1 "20 June 1989" "Version 2.1" +.SH NAME +flex - fast lexical analyzer generator +.SH SYNOPSIS +.B flex +[ +.B -bdfipstvFILT -c[efmF] -Sskeleton_file +] [ +.I filename +] +.SH DESCRIPTION +.I flex +is a rewrite of +.I lex +intended to right some of that tool's deficiencies: in particular, +.I flex +generates lexical analyzers much faster, and the analyzers use +smaller tables and run faster. +.SH OPTIONS +In addition to lex's +.B -t +flag, flex has the following options: +.TP +.B -b +Generate backtracking information to +.I lex.backtrack. +This is a list of scanner states which require backtracking +and the input characters on which they do so. By adding rules one +can remove backtracking states. If all backtracking states +are eliminated and +.B -f +or +.B -F +is used, the generated scanner will run faster (see the +.B -p +flag). Only users who wish to squeeze every last cycle out of their +scanners need worry about this option. +.TP +.B -d +makes the generated scanner run in +.I debug +mode. Whenever a pattern is recognized the scanner will +write to +.I stderr +a line of the form: +.nf + + --accepting rule #n + +.fi +Rules are numbered sequentially with the first one being 1. Rule #0 +is executed when the scanner backtracks; Rule #(n+1) (where +.I n +is the number of rules) indicates the default action; Rule #(n+2) indicates +that the input buffer is empty and needs to be refilled and then the scan +restarted. Rules beyond (n+2) are end-of-file actions. +.TP +.B -f +has the same effect as lex's -f flag (do not compress the scanner +tables); the mnemonic changes from +.I fast compilation +to (take your pick) +.I full table +or +.I fast scanner. +The actual compilation takes +.I longer, +since flex is I/O bound writing out the big table. +.IP +This option is equivalent to +.B -cf +(see below). +.TP +.B -i +instructs flex to generate a +.I case-insensitive +scanner. The case of letters given in the flex input patterns will +be ignored, and the rules will be matched regardless of case. The +matched text given in +.I yytext +will have the preserved case (i.e., it will not be folded). +.TP +.B -p +generates a performance report to stderr. The report +consists of comments regarding features of the flex input file +which will cause a loss of performance in the resulting scanner. +Note that the use of +.I REJECT +and variable trailing context (see +.B BUGS) +entails a substantial performance penalty; use of +.I yymore(), +the +.B ^ +operator, +and the +.B -I +flag entail minor performance penalties. +.TP +.B -s +causes the +.I default rule +(that unmatched scanner input is echoed to +.I stdout) +to be suppressed. If the scanner encounters input that does not +match any of its rules, it aborts with an error. This option is +useful for finding holes in a scanner's rule set. +.TP +.B -v +has the same meaning as for lex (print to +.I stderr +a summary of statistics of the generated scanner). Many more statistics +are printed, though, and the summary spans several lines. Most +of the statistics are meaningless to the casual flex user, but the +first line identifies the version of flex, which is useful for figuring +out where you stand with respect to patches and new releases. +.TP +.B -F +specifies that the +.ul +fast +scanner table representation should be used. This representation is +about as fast as the full table representation +.ul +(-f), +and for some sets of patterns will be considerably smaller (and for +others, larger). In general, if the pattern set contains both "keywords" +and a catch-all, "identifier" rule, such as in the set: +.nf + + "case" return ( TOK_CASE ); + "switch" return ( TOK_SWITCH ); + ... + "default" return ( TOK_DEFAULT ); + [a-z]+ return ( TOK_ID ); + +.fi +then you're better off using the full table representation. If only +the "identifier" rule is present and you then use a hash table or some such +to detect the keywords, you're better off using +.ul +-F. +.IP +This option is equivalent to +.B -cF +(see below). +.TP +.B -I +instructs flex to generate an +.I interactive +scanner. Normally, scanners generated by flex always look ahead one +character before deciding that a rule has been matched. At the cost of +some scanning overhead, flex will generate a scanner which only looks ahead +when needed. Such scanners are called +.I interactive +because if you want to write a scanner for an interactive system such as a +command shell, you will probably want the user's input to be terminated +with a newline, and without +.B -I +the user will have to type a character in addition to the newline in order +to have the newline recognized. This leads to dreadful interactive +performance. +.IP +If all this seems to confusing, here's the general rule: if a human will +be typing in input to your scanner, use +.B -I, +otherwise don't; if you don't care about how fast your scanners run and +don't want to make any assumptions about the input to your scanner, +always use +.B -I. +.IP +Note, +.B -I +cannot be used in conjunction with +.I full +or +.I fast tables, +i.e., the +.B -f, -F, -cf, +or +.B -cF +flags. +.TP +.B -L +instructs flex to not generate +.B #line +directives (see below). +.TP +.B -T +makes flex run in +.I trace +mode. It will generate a lot of messages to stdout concerning +the form of the input and the resultant non-deterministic and deterministic +finite automatons. This option is mostly for use in maintaining flex. +.TP +.B -c[efmF] +controls the degree of table compression. +.B -ce +directs flex to construct +.I equivalence classes, +i.e., sets of characters +which have identical lexical properties (for example, if the only +appearance of digits in the flex input is in the character class +"[0-9]" then the digits '0', '1', ..., '9' will all be put +in the same equivalence class). +.B -cf +specifies that the +.I full +scanner tables should be generated - flex should not compress the +tables by taking advantages of similar transition functions for +different states. +.B -cF +specifies that the alternate fast scanner representation (described +above under the +.B -F +flag) +should be used. +.B -cm +directs flex to construct +.I meta-equivalence classes, +which are sets of equivalence classes (or characters, if equivalence +classes are not being used) that are commonly used together. +A lone +.B -c +specifies that the scanner tables should be compressed but neither +equivalence classes nor meta-equivalence classes should be used. +.IP +The options +.B -cf +or +.B -cF +and +.B -cm +do not make sense together - there is no opportunity for meta-equivalence +classes if the table is not being compressed. Otherwise the options +may be freely mixed. +.IP +The default setting is +.B -cem +which specifies that flex should generate equivalence classes +and meta-equivalence classes. This setting provides the highest +degree of table compression. You can trade off +faster-executing scanners at the cost of larger tables with +the following generally being true: +.nf + + slowest smallest + -cem + -ce + -cm + -c + -c{f,F}e + -c{f,F} + fastest largest + +.fi +Note that scanners with the smallest tables compile the quickest, so +during development you will usually want to use the default, maximal +compression. +.TP +.B -Sskeleton_file +overrides the default skeleton file from which flex constructs +its scanners. You'll never need this option unless you are doing +flex maintenance or development. +.SH INCOMPATIBILITIES WITH LEX +.I flex +is fully compatible with +.I lex +with the following exceptions: +.IP - +There is no run-time library to link with. You needn't +specify +.I -ll +when linking, and you must supply a main program. (Hacker's note: since +the lex library contains a main() which simply calls yylex(), you actually +.I can +be lazy and not supply your own main program and link with +.I -ll.) +.IP - +lex's +.B %r +(Ratfor scanners) and +.B %t +(translation table) options +are not supported. +.IP - +The do-nothing +.ul +-n +flag is not supported. +.IP - +When definitions are expanded, flex encloses them in parentheses. +With lex, the following +.nf + + NAME [A-Z][A-Z0-9]* + %% + foo{NAME}? printf( "Found it\\n" ); + %% + +.fi +will not match the string "foo" because when the macro +is expanded the rule is equivalent to "foo[A-Z][A-Z0-9]*?" +and the precedence is such that the '?' is associated with +"[A-Z0-9]*". With flex, the rule will be expanded to +"foo([A-z][A-Z0-9]*)?" and so the string "foo" will match. +Note that because of this, the +.B ^, $, , +and +.B / +operators cannot be used in a definition. +.IP - +The undocumented lex-scanner internal variable +.B yylineno +is not supported. +.IP - +The +.B input() +routine is not redefinable, though may be called to read characters +following whatever has been matched by a rule. If +.B input() +encounters an end-of-file the normal +.B yywrap() +processing is done. A ``real'' end-of-file is returned as +.I EOF. +.IP +Input can be controlled by redefining the +.B YY_INPUT +macro. +YY_INPUT's calling sequence is "YY_INPUT(buf,result,max_size)". Its +action is to place up to max_size characters in the character buffer "buf" +and return in the integer variable "result" either the +number of characters read or the constant YY_NULL (0 on Unix systems) +systems) to indicate EOF. The default YY_INPUT reads from the +file-pointer "yyin" (which is by default +.I stdin), +so if you +just want to change the input file, you needn't redefine +YY_INPUT - just point yyin at the input file. +.IP +A sample redefinition of YY_INPUT (in the first section of the input +file): +.nf + + %{ + #undef YY_INPUT + #define YY_INPUT(buf,result,max_size) \\ + result = (buf[0] = getchar()) == EOF ? YY_NULL : 1; + %} + +.fi +You also can add in things like counting keeping track of the +input line number this way; but don't expect your scanner to +go very fast. +.IP - +.B output() +is not supported. +Output from the ECHO macro is done to the file-pointer +"yyout" (default +.I stdout). +.IP - +If you are providing your own yywrap() routine, you must "#undef yywrap" +first. +.IP - +To refer to yytext outside of your scanner source file, use +"extern char *yytext;" rather than "extern char yytext[];". +.IP - +.B yyleng +is a macro and not a variable, and hence cannot be accessed outside +of the scanner source file. +.IP - +flex reads only one input file, while lex's input is made +up of the concatenation of its input files. +.IP - +The name +.bd +FLEX_SCANNER +is #define'd so scanners may be written for use with either +flex or lex. +.IP - +The macro +.bd +YY_USER_ACTION +can be redefined to provide an action +which is always executed prior to the matched rule's action. For example, +it could be #define'd to call a routine to convert yytext to lower-case, +or to copy yyleng to a global variable to make it accessible outside of +the scanner source file. +.IP - +In the generated scanner, rules are separated using +.bd +YY_BREAK +instead of simple "break"'s. This allows, for example, C++ users to +#define YY_BREAK to do nothing (while being very careful that every +rule ends with a "break" or a "return"!) to avoid suffering from +unreachable statement warnings where a rule's action ends with "return". +.SH ENHANCEMENTS +.IP - +.I Exclusive start-conditions +can be declared by using +.B %x +instead of +.B %s. +These start-conditions have the property that when they are active, +.I no other rules are active. +Thus a set of rules governed by the same exclusive start condition +describe a scanner which is independent of any of the other rules in +the flex input. This feature makes it easy to specify "mini-scanners" +which scan portions of the input that are syntactically different +from the rest (e.g., comments). +.IP - +.I yyterminate() +can be used in lieu of a return statement in an action. It terminates +the scanner and returns a 0 to the scanner's caller, indicating "all done". +.IP - +.I End-of-file rules. +The special rule "<>" indicates +actions which are to be taken when an end-of-file is +encountered and yywrap() returns non-zero (i.e., indicates +no further files to process). The action can either +point yyin at a new file to process, in which case the +action should finish with +.I YY_NEW_FILE +(this is a branch, so subsequent code in the action won't +be executed), or it should finish with a +.I return +statement. <> rules may not be used with other +patterns; they may only be qualified with a list of start +conditions. If an unqualified <> rule is given, it +applies only to the INITIAL start condition, and +.I not +to +.B %s +start conditions. +These rules are useful for catching things like unclosed comments. +An example: +.nf + + %x quote + %% + ... + <> { + error( "unterminated quote" ); + yyterminate(); + } + <> { + yyin = fopen( next_file, "r" ); + YY_NEW_FILE; + } + +.fi +.IP - +flex dynamically resizes its internal tables, so directives like "%a 3000" +are not needed when specifying large scanners. +.IP - +The scanning routine generated by flex is declared using the macro +.B YY_DECL. +By redefining this macro you can change the routine's name and +its calling sequence. For example, you could use: +.nf + + #undef YY_DECL + #define YY_DECL float lexscan( a, b ) float a, b; + +.fi +to give it the name +.I lexscan, +returning a float, and taking two floats as arguments. Note that +if you give arguments to the scanning routine, you must terminate +the definition with a semi-colon (;). +.IP - +flex generates +.B #line +directives mapping lines in the output to +their origin in the input file. +.IP - +You can put multiple actions on the same line, separated with +semi-colons. With lex, the following +.nf + + foo handle_foo(); return 1; + +.fi +is truncated to +.nf + + foo handle_foo(); + +.fi +flex does not truncate the action. Actions that are not enclosed in +braces are terminated at the end of the line. +.IP - +Actions can be begun with +.B %{ +and terminated with +.B %}. +In this case, flex does not count braces to figure out where the +action ends - actions are terminated by the closing +.B %}. +This feature is useful when the enclosed action has extraneous +braces in it (usually in comments or inside inactive #ifdef's) +that throw off the brace-count. +.IP - +All of the scanner actions (e.g., +.B ECHO, yywrap ...) +except the +.B unput() +and +.B input() +routines, +are written as macros, so they can be redefined if necessary +without requiring a separate library to link to. +.IP - +When +.B yywrap() +indicates that the scanner is done processing (it does this by returning +non-zero), on subsequent calls the scanner will always immediately return +a value of 0. To restart it on a new input file, the action +.B yyrestart() +is used. It takes one argument, the new input file. It closes the +previous yyin (unless stdin) and sets up the scanners internal variables +so that the next call to yylex() will start scanning the new file. This +functionality is useful for, e.g., programs which will process a file, do some +work, and then get a message to parse another file. +.IP - +Flex scans the code in section 1 (inside %{}'s) and the actions for +occurrences of +.I REJECT +and +.I yymore(). +If it doesn't see any, it assumes the features are not used and generates +higher-performance scanners. Flex tries to be correct in identifying +uses but can be fooled (for example, if a reference is made in a macro from +a #include file). If this happens (a feature is used and flex didn't +realize it) you will get a compile-time error of the form +.nf + + reject_used_but_not_detected undefined + +.fi +You can tell flex that a feature is used even if it doesn't think so +with +.B %used +followed by the name of the feature (for example, "%used REJECT"); +similarly, you can specify that a feature is +.I not +used even though it thinks it is with +.B %unused. +.IP - +Comments may be put in the first section of the input by preceding +them with '#'. +.SH FILES +.TP +.I flex.skel +skeleton scanner +.TP +.I lex.yy.c +generated scanner (called +.I lexyy.c +on some systems). +.TP +.I lex.backtrack +backtracking information for +.B -b +flag (called +.I lex.bck +on some systems). +.SH "SEE ALSO" +.LP +lex(1) +.LP +M. E. Lesk and E. Schmidt, +.I LEX - Lexical Analyzer Generator +.SH AUTHOR +Vern Paxson, with the help of many ideas and much inspiration from +Van Jacobson. Original version by Jef Poskanzer. Fast table +representation is a partial implementation of a design done by Van +Jacobson. The implementation was done by Kevin Gong and Vern Paxson. +.LP +Thanks to the many flex beta-testers and feedbackers, especially Casey +Leedom, Frederic Brehm, Nick Christopher, Chris Faylor, Eric Goldman, Eric +Hughes, Greg Lee, Craig Leres, Mohamed el Lozy, Jim Meyering, Esmond Pitt, +Jef Poskanzer, and Dave Tallman. Thanks to Keith Bostic, John Gilmore, Bob +Mulcahy, Rich Salz, and Richard Stallman for help with various distribution +headaches. +.LP +Send comments to: +.nf + + Vern Paxson + Real Time Systems + Bldg. 46A + Lawrence Berkeley Laboratory + 1 Cyclotron Rd. + Berkeley, CA 94720 + + (415) 486-6411 + + vern@csam.lbl.gov + vern@rtsg.ee.lbl.gov + ucbvax!csam.lbl.gov!vern + +.fi +I will be gone from mid-July '89 through mid-August '89. From August on, +the addresses are: +.nf + + vern@cs.cornell.edu + + Vern Paxson + CS Department + Grad Office + 4126 Upson + Cornell University + Ithaca, NY 14853-7501 + + + +.fi +Email sent to the former addresses should continue to be forwarded for +quite a while. Also, it looks like my username will be "paxson" and +not "vern". I'm planning on having a mail alias set up so "vern" will +still work, but if you encounter problems try "paxson". +.SH DIAGNOSTICS +.LP +.I flex scanner jammed - +a scanner compiled with +.B -s +has encountered an input string which wasn't matched by +any of its rules. +.LP +.I flex input buffer overflowed - +a scanner rule matched a string long enough to overflow the +scanner's internal input buffer (16K bytes - controlled by +.B YY_BUF_MAX +in "flex.skel"). +.LP +.I old-style lex command ignored - +the flex input contains a lex command (e.g., "%n 1000") which +is being ignored. +.SH BUGS +.LP +Some trailing context +patterns cannot be properly matched and generate +warning messages ("Dangerous trailing context"). These are +patterns where the ending of the +first part of the rule matches the beginning of the second +part, such as "zx*/xy*", where the 'x*' matches the 'x' at +the beginning of the trailing context. (Lex doesn't get these +patterns right either.) +If desperate, you can use +.B yyless() +to effect arbitrary trailing context. +.LP +.I variable +trailing context (where both the leading and trailing parts do not have +a fixed length) entails the same performance loss as +.I REJECT +(i.e., substantial). +.LP +For some trailing context rules, parts which are actually fixed-length are +not recognized as such, leading to the abovementioned performance loss. +In particular, parts using '|' or {n} are always considered variable-length. +.LP +Use of unput() or input() trashes the current yytext and yyleng. +.LP +Use of unput() to push back more text than was matched can +result in the pushed-back text matching a beginning-of-line ('^') +rule even though it didn't come at the beginning of the line. +.LP +yytext and yyleng cannot be modified within a flex action. +.LP +Nulls are not allowed in flex inputs or in the inputs to +scanners generated by flex. Their presence generates fatal +errors. +.LP +Flex does not generate correct #line directives for code internal +to the scanner; thus, bugs in +.I +flex.skel +yield bogus line numbers. +.LP +Pushing back definitions enclosed in ()'s can result in nasty, +difficult-to-understand problems like: +.nf + + {DIG} [0-9] /* a digit */ + +.fi +In which the pushed-back text is "([0-9] /* a digit */)". +.LP +Due to both buffering of input and read-ahead, you cannot intermix +calls to stdio routines, such as, for example, +.B getchar() +with flex rules and expect it to work. Call +.B input() +instead. +.LP +The total table entries listed by the +.B -v +flag excludes the number of table entries needed to determine +what rule has been matched. The number of entries is equal +to the number of DFA states if the scanner does not use REJECT, +and somewhat greater than the number of states if it does. +.LP +To be consistent with ANSI C, the escape sequence \\xhh should +be recognized for hexadecimal escape sequences, such as '\\x41' for 'A'. +.LP +It would be useful if flex wrote to lex.yy.c a summary of the flags used in +its generation (such as which table compression options). +.LP +The scanner run-time speeds still have not been optimized as much +as they deserve. Van Jacobson's work shows that the can go +faster still. +.LP +The utility needs more complete documentation. diff --git a/static/unix-v10/man1/fmt.1 b/static/unix-v10/man1/fmt.1 new file mode 100644 index 00000000..470951f5 --- /dev/null +++ b/static/unix-v10/man1/fmt.1 @@ -0,0 +1,37 @@ +.TH FMT 1 +.CT 1 writing_other +.SH NAME +fmt \(mi ultra-simple text formatter +.SH SYNOPSIS +.B fmt +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Fmt +copies the given +.I files +(standard input by default) +to its standard output, filling and indenting lines. +The options are +.TP +.BI -l " n +Output line length is +.I n, +including indent, (default 70). +.TP +.BI -i " n +Indent +.I n +spaces (default 0). +.PP +Empty lines and initial white space in input lines are preserved. +Empty lines are inserted between input files. +.PP +.I Fmt +is idempotent: it leaves already formatted text unchanged. +.SH BUGS +Words longer than 256 characters are split. diff --git a/static/unix-v10/man1/form.1 b/static/unix-v10/man1/form.1 new file mode 100644 index 00000000..4087d531 --- /dev/null +++ b/static/unix-v10/man1/form.1 @@ -0,0 +1,84 @@ +.pa 1 +.he 'FORM (I)'6/15/72'FORM (I)' +.ti 0 +NAME +.br +form -- form letter generator +.sp +.ti 0 +SYNOPSIS +.br +form____ proto arg918 ... +.sp +.ti 0 +DESCRIPTION +.br +form____ generates a form letter from a prototype +letter, an associative memory, arguments and in a special case, the +current date. +.sp +If form____ is invoked with the proto_____ argument 'x', the associative memory is +searched for an entry with name 'x' and the contents filed under that name are +used as the prototype. If the search fails, the message "[x]:" is typed on +the console and whatever text is typed in from the console, terminated by +two new lines, is used as the prototype. +.sp +If the prototype argument is missing, '{letter}' is assumed. +.sp +Basically, form____ is a copy process from the prototype to the output file. +If an element of the form [n] (where n_ is a digit from 1 to 9) is encountered, +the n_th argument arg___9n8 is inserted in its place, and that argument is then +rescanned. If [0] is encountered, the current date is inserted. If +the desired argument has not been given, a message of the form "[n]:" is +typed. The response typed in then is used for that argument. +.sp +If an element of the form [name] or {name} is encountered, the name is looked up in the +associative memory. If it is found, the contents of the memory under this +name replaces the original element (again rescanned). If +the name is not found, a message of the form "[name]:" is typed. +The response typed in is used for that element. The response is +entered in the memory under the name if the name is enclosed in []. +The response is not entered in the memory but is remembered for the +duration of the letter if the name is enclosed in {}. +.sp +In both of the above cases, the response is typed in by entering +arbitrary text terminated by two new lines. Only the first of the +two new lines is passed with the text. +.sp +If one of the special characters [{]}\\ is preceded by +a \\, it loses its special character. +.sp +If a file named "forma" already exists in the users directory, "formb" is +used as the output file and so forth to "formz". +.sp +The file "form.m" is created if none exists. Because form.m is +operated on by the disc allocater, it should only be changed by using +fed___, the form letter editor, or form____. +.sp +.fi +.ti 0 +FILES +.br +form.m associative memory +.br +form? output file (read only) +.sp +.fi +.ti 0 +SEE ALSO +.br +fed(I), type(I), roff(I) +.sp +.fi +.ti 0 +DIAGNOSTICS +.br +"cannot open output file" "cannot open memory file" +when the appropriate files cannot be located or created. +.sp +.fi +.ti 0 +BUGS +.br +An unbalanced ] or } acts as an end of file but +may add a few strange entries to the associative memory. diff --git a/static/unix-v10/man1/forml.1 b/static/unix-v10/man1/forml.1 new file mode 100644 index 00000000..092553b3 --- /dev/null +++ b/static/unix-v10/man1/forml.1 @@ -0,0 +1,50 @@ +.pa 1 +.he 'FORML (I)'10/24/72'FORML (I)' +.ti 0 +NAME forml -- form letter generator processor +.sp +.ti 0 +SYNOPSIS forml_____ [ name ] ... +.sp +.ti0 +DESCRIPTION A streamlined program for typing form letters. +The names pick out +prestored form letters prepared according to the conventions +of +.ul +form +and +.ul +roff. +The program prompts to get each blank +filled in. +When all the forms are completed, it prompts "Set paper." +It waits for a newline before printing each letter. + +If more than one name is given, the name of +each letter is announced +before the prompts for it begin. +If no names are given, the program asks "Which letter?" before +each. +Respond with the name and a newline, or newline only when done. +.sp +On a 2741 type terminal, the program assumes the +letter is to be typed with a correspondence ball, +and also prompts "Change ball." +Replace the ball at the end. +.sp +.ti0 +FILES form.m (memory), +.br +forma, formb, ... temporaries +.sp +.ti0 +SEE ALSO form(I), fed(I), roff(I) +.br +.sp +.ti0 +DIAGNOSTICS "Try again"--can't get a process +.br +.sp +.ti0 +BUGS -- diff --git a/static/unix-v10/man1/fstrip.1 b/static/unix-v10/man1/fstrip.1 new file mode 100644 index 00000000..8e89e8c7 --- /dev/null +++ b/static/unix-v10/man1/fstrip.1 @@ -0,0 +1,37 @@ +.pa 1 +.he '10/24/72''FSTRIP (I)' +.ti 0 +NAME fstrip -- remove Fortran internal symbols +.sp +.ti 0 +SYNOPSIS fstrip______ name\d1\u ... +.sp +.ti 0 +DESCRIPTION Fortran output +files occasionally refer to so +many symbols that the debugger db__ (I) balks. +.ul +fstrip +massages a Fortran output file to remove the symbols +which are internal to Fortran. + +From the symbol tables contained in the files +given as arguments, +fstrip______ removes the symbols of the form "l#", +where "l" is one of "t", "c", or "d", and "#" is +a decimal number. + +The output of fstrip______ is unacceptable to the loader +under any circumstances. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO fc(I) +.sp +.ti 0 +DIAGNOSTICS yes, hopefully self-explanatory +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/ftp.1 b/static/unix-v10/man1/ftp.1 new file mode 100644 index 00000000..be3ed7a9 --- /dev/null +++ b/static/unix-v10/man1/ftp.1 @@ -0,0 +1,963 @@ +.\" Copyright (c) 1985 The Regents of the University of California. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms are permitted +.\" provided that the above copyright notice and this paragraph are +.\" duplicated in all such forms and that any documentation, +.\" advertising materials, and other materials related to such +.\" distribution and use acknowledge that the software was developed +.\" by the University of California, Berkeley. The name of the +.\" University may not be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +.\" +.\" @(#)ftp.1 6.12.1.1 (Berkeley) 3/2/89 +.\" +.TH FTP 1 "February 23, 1989" +.UC 5 +.SH NAME +ftp \- internet file transfer program +.SH SYNOPSIS +.B ftp +[ +.I option ... +] [ +.B host +] +.PP +.B pftp +[ +.I option ... +] [ +.B host +] +.SH DESCRIPTION +.I Ftp +transfers files to and from a remote network +.I host +computer via the Internet file transfer protocol. +To reach outside Internet sites from +v10 machines, prefix the Internet host name with +.LR inet! ; +from System V machines, use +.I pftp. +After attempting to connect to the remote host, if any, +.I ftp +enters its command interpreter and prompts for instructions. +The following commands are recognized: +.TP +\f5\&!\fP [ \fIcommand\fP [ \fIargs\fP ] ] +Invoke an interactive shell on the local machine. +If there are arguments, the first is taken to be a command to execute +directly, with the rest of the arguments as its arguments. +.TP +\f5\&$\fP \fImacro-name\fP [ \fIargs\fP ] +Execute the macro \fImacro-name\fP that was defined with the +\f5macdef\fP command. +Arguments are passed to the macro unglobbed. +.TP +\f5account\fP [ \fIpasswd\fP ] +Supply a supplemental password required by a remote system for access +to resources once a login has been successfully completed. +If no argument is included, the user will be prompted for an account +password in a non-echoing input mode. +.TP +\f5append\fP \fIlocal-file\fP [ \fIremote-file\fP ] +Append a local file to a file on the remote machine. If a +.I remote-file +is not specified, the local file name is used +subject to altering +.I ntrans +or +.I nmap . +File transfer uses the current settings for +.IR type , +.IR format , +.IR mode , +and +.IR structure . +.TP +.B ascii +Set the file transfer +.I type +to network ASCII. This is the default type. +.TP +.B bell +Arrange that a bell be sounded after each file transfer +command is completed. +.TP +.B binary +Set the file transfer +.I type +to support binary image transfer. +.TP +.B bye +Terminate the session. +An end of file will also terminate the session. +.TP +.B case +Toggle remote computer file name case mapping during +.B mget +commands. +When +.B case +is on (default is off), remote computer file names with all letters in +upper case are written in the local directory with the letters mapped +to lower case. +.TP +.BI cd " remote-directory" +Change the working directory on the remote machine +to +.IR remote-directory . +.TP +.B cdup +Change the remote machine working directory to the parent of the +current remote machine working directory. +.TP +.B close +Terminate the session. +Any defined macros are erased. +.TP +.B cr +Toggle carriage return stripping during +ascii type file retrieval. +Records are denoted by a carriage return/linefeed sequence +during ascii type file transfer. +When +.B cr +is on (the default), carriage returns are stripped from this +sequence to conform with the UNIX single linefeed record +delimiter. +Records on non-UNIX remote systems may contain single linefeeds; +when an ascii type transfer is made, these linefeeds may be +distinguished from a record delimiter only when +.B cr +is off. +.TP +.BI delete " remote-file" +Delete the file +.I remote-file +on the remote machine. +.TP +\f5debug\fP [ \fIdebug-level\fP ] +Toggle debugging or set the debugging level. +When debugging is on, +.I ftp +prints each command sent to the remote machine, preceded +by the string +.LR --> . +.TP +\f5dir\fP [ \fIremote-directory\fP ] [ \fIlocal-file\fP ] +Place in +.IR local-file +a listing of the contents of +.IR remote-directory . +If +.I local-file +is +.LR - +or absent send output to the terminal. +If +.L prompt +is on, +.I ftp +asks for +.I local-file +to be confirmed. +If no +.IR remote-directory +is specified, the current working +directory on the remote machine is used. +.TP +.B disconnect +A synonym for +.BR close . +.TP +.BI form " format" +Set the file transfer +.I form +to +.IR format . +The default format is +.LR file . +.TP +\f5get\fP \fIremote-file\fP [ \fIlocal-file\fP ] +Retrieve the +.I remote-file +and store it on the local machine. If the local +file name is not specified, it is given the same +name it has on the remote machine, subject to +altering by +.IR case , +.IR ntrans , +and +.I nmap +settings. +The current settings for +.IR type , +.IR form , +.IR mode , +and +.I structure +are used while transferring the file. +.TP +.B glob +Toggle filename expansion for +.BR mdelete , +.BR mget , +and +.BR mput . +If globbing is turned off with +.BR glob , +the file name arguments +are taken literally and not expanded. +Globbing for +.B mput +is done as in +.IR csh (1). +For +.B mdelete +and +.BR mget , +ach remote file name is expanded +separately on the remote machine and the lists are not merged. +Expansion of a directory may be +different from expansion of the name of an ordinary file, +depending on the foreign operating system and FTP server. +It may be previewed by doing `\f5mls\fP\ \fIremote-files\fP\ \f5-\fP'. +Note: +.B mget and +.B mput +are not meant to transfer +entire directory subtrees of files. That can be done by +transferring a +.IR tar (1) +archive of the subtree (in binary mode). +.TP +.B hash +Toggle hash-sign +.RB ( # ) +printing for each data block +transferred. The size of a data block is 1024 bytes. +.TP +\f5help\fP [ \fIcommand\fP ] +Print an informative message about the meaning of +.IR command . +If no argument is given, +.I ftp +prints a list of the known commands. +.TP +\f5lcd\fP [ \fIdirectory\fP ] +Change the working directory on the local machine. If +no +.I directory +is specified, the user's home directory is used. +.TP +\f5ls\fP [ \fIremote-directory\fP ] [ \fIlocal-file\fP ] +List in +.I local-file +the contents of a +directory on the remote machine. +If \fIlocal-file\fR is +.L - +or absent, +the output is sent to the terminal. +The form of the list depends on the remote +server; most UNIX systems will produce +output from the command +.LR "ls -l" . +(See also +.BR nlist .) +If +.I remote-directory +is not specified, the current working directory is used. +.TP +\f5macdef\fP \fImacro-name\fP +Define a macro. +Subsequent lines are stored under +\fImacro-name\fP; a null line (consecutive newline characters +in a file or +carriage returns from the terminal) terminates macro input mode. +There is a limit of 16 macros and 4096 total characters in all +defined macros. +Macros remain defined until a +.B close +command is executed. +The macro processor interprets +.B $ +and +.B \e +as special characters. +A +.B $ +followed by a number (or numbers) is replaced by the +corresponding argument on the macro invocation command line. +A +.B $ +followed by an +.L i +signals that macro processor that the +executing macro is to be looped. +On the first pass +.B $i +is +replaced by the first argument on the macro invocation command line, +on the second pass it is replaced by the second argument, and so on. +A +.B \e +followed by any character is replaced by that character. +Use +.B \e +to prevent special treatment of +.BR $ . +.TP +\f5mdelete\fP [ \fIremote-files\fP ] +Delete the +.I +remote-files +on the remote machine. +.TP +\f5mdir\fP \fIremote-files\fP \fIlocal-file\fP +Like +.BR dir , +except multiple remote files may be specified. +If interactive prompting is on, +.I ftp +will prompt the user to verify that the last argument is indeed the +target local file for receiving +.B mdir +output. +.TP +\f5mget\fP \fIremote-files\fP +Expand +.I remote-files +on the remote machine +and do a +.L get +for each file name thus produced. +See +.L glob +for details on the filename expansion. +Resulting file names will then be processed according to +.IR case , +.IR ntrans , +and +.I nmap +settings. +Files are transferred into the local working directory. +.TP +\f5mkdir\fP \fIdirectory-name\fP +Make a directory on the remote machine. +.TP +\f5mls\fP \fIremote-files\fP \fIlocal-file\fP +Like +.LR nlist , +except multiple remote files may be specified, +and a +.I local-file +must be specified. +If +.L prompt +is on, +.I ftp +asks to confirm the +.I local-file. +.TP +\f5mode\fP [ \fImode-name\fP ] +Set the file transfer mode to +.IR mode-name . +The default mode is +.LR stream . +.TP +\f5modtime\fP \fIfile-name\fP +Show the last modification time of the file on the remote machine. +.TP +\f5mput\fP \fIlocal-files\fP +Expand wild cards in the list of local files given as arguments +and do a +.L put +for each file in the resulting list. +See +.L glob +for details of filename expansion. +Resulting file names will then be processed according to +.I ntrans +and +.I nmap +settings. +.TP +\f5nlist\fP [ \fIremote-directory\fP ] [ \fIlocal-file\fP ] +Like +.LR ls , +giving only file names. +.TP +\f5nmap\fP [ \fIinpattern\fP \fIoutpattern\fP ] +Set or unset the filename mapping mechanism. +If no arguments are specified, the filename mapping mechanism is unset. +If arguments are specified, remote filenames are mapped during +.B mput +commands and +.B put +commands issued without a specified remote target filename. +If arguments are specified, local filenames are mapped during +.B mget +commands and +.B get +commands issued without a specified local target filename. +This command is useful when connecting to a non-UNIX remote computer +with different file naming conventions or practices. +The mapping follows the pattern set by +.I inpattern +and +.IR outpattern . +.I Inpattern +is a template for incoming filenames (which may have already been +processed according to the +.B ntrans +and +.B case +settings). +Variable templating is accomplished by including the sequences +.LR $1 , +.LR $2 ", ...," +.LR $9 +in +.IR inpattern . +Use +.L \e +to prevent special treatment of +.BR $ . +For example, given +.I inpattern +.B $1.$2 +and the remote file name +.LR mydata.data , +.B $1 +would have the value +.LR mydata , +and +.B $2 +would have the value +.LR data . +The +.I outpattern +determines the resulting mapped filename. +The sequences +.BR $1 , +.BR $2 ", ....," +.B $9 +are replaced by any value resulting +from the +.I inpattern +template. +The sequence +.B $0 +is replace by the original filename. +Additionally, the sequence '[\fIseq1\fP,\fIseq2\f\P]' is replaced by +.I seq1 +if +.I seq1 +is not a null string; otherwise it is replaced by +.IR seq2 . +For example, the command +.L "nmap $1.$2.$3 [$1,$2].[$2,file]" +would yield +the output filename +.L myfile.data +for input filenames +.L myfile.data +and +.LR myfile.data.old , +.L myfile.file +or the input filename +.LR myfile , +and +.LR myfile.myfile +for the input filename +.LR .myfile . +Spaces may be included in +.IR outpattern , +for example: +.L +nmap $1 "|sed 's/ *$//' > $1" . +.TP +\f5ntrans\fP [ \fIinchars\fP [ \fIoutchars\fP ] ] +Set or unset the filename character translation mechanism. +If no arguments are specified, the filename character +translation mechanism is unset. +If arguments are specified, characters in +remote filenames are translated during +.B mput +commands and +.B put +commands issued without a specified remote target filename. +If arguments are specified, characters in +local filenames are translated during +.B mget +commands and +.B get +commands issued without a specified local target filename. +This command is useful when connecting to a non-UNIX remote computer +with different file naming conventions or practices. +Characters in a filename matching a character in +.I inchars +are replaced with the corresponding character in +.IR outchars . +If the character's position in +.I inchars +is longer than the length of +.IR outchars , +the character is deleted from the file name. +.TP +\f5open\fP \fIhost\fP [ \fIport\fP ] +Establish a connection to the specified +.I host +FTP server. An optional port number may be supplied, +in which case, +.I ftp +will attempt to contact an FTP server at that port. +If the +.I auto-login +option is on (default), +.I ftp +will also attempt to automatically log the user in to +the FTP server (see below). +.TP +.B prompt +Toggle file-by-file prompting fo +.BR mget , +.BR mput , +and +.BR mdelete +(on by default). +.TP +\f5proxy\fP \fIftp-command\fP +Execute an ftp command on a secondary control connection. +This command allows simultaneous connection to two remote ftp +servers for transferring files between the two servers. +The first +.B proxy +command should be an +.BR open , +to establish the secondary control connection. +Enter the command +.L "proxy ?" +to see other commands executable on the +secondary connection. +The following commands behave differently when prefaced by +.BR proxy : +.B open +will not define new macros during the auto-login process, +.B close +will not erase existing macro definitions, +.B get +and +.B mget +transfer files from the host on the primary control connection +to the host on the secondary control connection, and +.BR put , +.BR mput , +and +.B append +transfer files from the host on the secondary control connection +to the host on the primary control connection. +.TP +\f5put\fP \fIlocal-file\fP [ \fIremote-file\fP ] +Store a local file on the remote machine. If +.I remote-file +is not specified, the local file name is used +after processing according to any +.I ntrans +or +.I nmap +settings. File transfer uses the +current settings for +.IR type , +.IR format , +.IR mode , +and +.IR structure . +.TP +.B pwd +Print the name of the current working directory on the remote +machine. +.TP +.B quit +A synonym for +.BR bye . +.TP +.BI quote " arg1 arg2 ..." +The arguments specified are sent, verbatim, to the remote FTP +server. +.TP +\f5recv\fP \fIremote-file\fP [ \fIlocal-file\fP ] +A synonym for get. +.TP +\f5remotehelp\fP [ \fIcommand-name\fP ] +Request help from the remote FTP server. If a +.I command-name +is specified it is supplied to the server as well. +.TP +\f5remotestatus\fP [ \fIfile-name\fP ] +With no arguments, show status of remote machine. +If +.I file-name +is specified, show status of +.I file-name +on the remote machine. +.TP +\f5rename\fP [ \fIfrom\fP ] [ \fIto\fP ] +Rename the file +.I from +on the remote machine, to the file +.IR to . +.TP +.B reset +Clear reply queue. +This command re-synchronizes command/reply sequencing with the remote +ftp server. +Resynchronization may be necessary following a violation of the ftp protocol +by the remote server. +.TP +.BI rmdir " directory-name" +Delete a directory on the remote machine. +.TP +.B runique +Toggle storing of files on the local system with unique filenames. +If the target of a +.B get +or +.B mget +command already exists locally, a +.L .1 +is appended to the name. +If that name, too, matches another existing file, +a +.L .2 +is appended and so on until +.LR .99 , +when the transfer is aborted. +Note that +.B runique +will not affect local files generated from a shell command +(see below). +The default value is off. +.TP +\f5send\fP \fIlocal-file\fP [ \fIremote-file\fP ] +A synonym for put. +.TP +.B sendport +Toggle the use of PORT commands. By default, +.I ftp +will attempt to use a PORT command when establishing +a connection for each data transfer. +The use of PORT commands can prevent delays +when performing multiple file transfers. If the PORT +command fails, +.I ftp +will use the default data port. When the use of PORT +commands is disabled, no attempt will be made to use +PORT commands for each data transfer. This is useful +for certain FTP implementations which ignore PORT +commands but incorrectly indicate they've been accepted. +.TP +.BI size " file-name" +Return size of +.I file-name +on the remote machine. +.TP +.B status +Show the current status of +.IR ftp . +.TP +\f5struct\fP [ \fIstruct-name\fP ] +Set the file transfer +.I structure +to +.IR struct-name . +By default +.L stream +structure is used. +.TP +.B sunique +Toggle storing of files on remote machine under unique file names. +Default value is off. +.TP +.B system +Show the type of operating system running on the remote machine. +.TP +.B tenex +Set the file transfer type to that needed to +talk to TENEX machines. +.TP +.B trace +Toggle packet tracing. +.TP +\f5type\fP [ \fItype-name\fP ] +Set the file transfer +.I type +to +.IR type-name . +If no type is specified, the current type +is printed. The default type is network ASCII. +.TP +\f5user\fP \fIuser-name\fP [ \fIpassword\fP ] [ \fIaccount\fP ] +Identify yourself to the remote FTP server. If the +password is not specified and the server requires it, +.I ftp +will prompt the user for it (after disabling local echo). +If an account field is not specified, and the FTP server +requires it, the user will be prompted for it. +If an account field is specified, an account command will +be relayed to the remote server after the login sequence +is completed if the remote server did not require it +for logging in. +Unless +.I ftp +is invoked with +.L auto-login +disabled, this +process is done automatically on initial connection to +the FTP server. +.TP +.B verbose +Toggle verbose mode. In verbose mode, all responses from +the FTP server are displayed to the user. In addition, +if verbose is on, when a file transfer completes, statistics +regarding the efficiency of the transfer are reported. By default, +verbose is on. +.TP +\f5?\fP [ \fIcommand\fP ] +A synonym for help. +.PP +Command arguments which have embedded spaces may be quoted with +quote +.B \&" marks. +.SS "Aborting a file transfer +The signal processing in the research version of +.I ftp +has been stripped out. Aborts will generally close the connection. +.SS "File naming conventions +Files specified as arguments to +.I ftp +commands are processed according to the following rules. +.TP +1) +If the file name +.L - +is specified, +.B stdin +(for reading) or +.B stdout +(for writing) is used. +.TP +2) +If the first character of the file name is +.LR | , +the remainder of the argument is interpreted as a shell command. +.I Ftp +reads the standard output of the command, or writes the +standard input. +If the shell command includes spaces, it +must be quoted with double quotes. +A useful example of this mechanism is: +.LR |more . +.TP +3) +Failing the above checks, if glob is enabled, +local file names are expanded +according to the rules used in +.IR csh (1); +c.f. the +.I glob +command. +If the +.I ftp +command expects a single local file (e.g. +.BR put ), +only the first filename generated by the globbing operation is used. +.TP +4) +For +.B mget +commands and +.B get +commands with unspecified local file names, the local filename is +the remote filename, subject to altering by +.BR case , +.BR ntrans , +or +.B nmap +setting. +The resulting filename may then be altered if +.B runique +is on. +.TP +5) +For +.B mput +commands and +.B put +commands with unspecified remote file names, the remote filename is +the local filename, subject to altering by +.B ntrans +or +.B nmap +setting. +The resulting filename may then be altered by the remote server if +.B sunique +is on. +.SS "File transfer parameters +The FTP specification specifies many parameters which may +affect a file transfer. The +.I type +may be one of +.LR ascii , +.LR image +(binary), +.LR ebcdic , +and +.L local byte size +(for PDP-10's +and PDP-20's mostly). +.I Ftp +supports the ascii and image types of file transfer, +plus local byte size 8 for +.B tenex +mode transfers. +.PP +.I Ftp +supports only the default values for the remaining +file transfer parameters: +.IR mode , +.IR form , +and +.IR struct . +.SS "Options +Options may be specified at the command line, or to the +command interpreter. +.TP +.B \-v +Verbose. +Show all responses from the remote server, as well +as report on data transfer statistics. +.TP +.B \-n +Do not attempt +.L auto-login +upon initial connection. +If auto-login is enabled, +.I ftp +will check the +.F .netrc +(see below) file in the user's home directory for an entry describing +an account on the remote machine. If no entry exists, +.I ftp +will prompt for the remote machine login name (default is the user +identity on the local machine), and, if necessary, prompt for a password +and an account with which to login. +.TP +.B \-i +Do not prompt during +multiple file transfers. +.TP +.B \-d +Enable debugging. +.TP +.B \-g +Disables file name globbing. +.SS "The .netrc file +The +.F .netrc +file contains login and initialization information +used by the auto-login process. +It resides in the user's home directory. +The following tokens are recognized; they may be separated by spaces, +tabs, or new-lines: +.TP +\f5machine\fP \fIname\fP +Identify a remote machine name. +The auto-login process searches +.F .netrc +for a +.B machine +token that matches the remote machine specified on the +.I ftp +command line or as an +.B open +command argument. +Once a match is made, subsequent tokens are processed, +until end of file is reached or another +.B machine +or a +.B default +token is encountered. +.TP +.B default +This is the same as +.BI machine " name +except that +.B default +matches any name. +There can be only one +.B default +token, and it must be after all +.B machine +tokens. +This is normally used as: +.RS +.IP +.B +default login anonymous password user@site +.LP +thereby giving the user automatic anonymous ftp login to +machines not specified in +.BR .netrc . +.RE +.TP +\f5login\fP \fIname\fP +Identify a user on the remote machine. +If this token is present, the auto-login process will initiate +a login using the specified name. +.TP +\f5password\fP \fIstring\fP +Supply a password. +If this token is present, the auto-login process will supply the +specified string if the remote server requires a password as part +of the login process. +If this token is present in +.F .netrc +for any user other +than +.LR anonymous , +and +.F .netrc +is readable by nonowners, +.I ftp +will abort auto-login. +.TP +\f5account\fP \fIstring\fP +Supply an additional account password. +If this token is present, auto-login supplies the +.I string +when the remote server demands an additional +account password; otherwise auto-login initiates an +ACCT command. +.TP +\f5macdef\fP \fIname\fP +Define a macro in the style of +.BR macdef . +If a macro named +.I init +is defined, it is automatically executed as the last step in +auto-login. +.SH "SEE ALSO" +.IR ftpd (8) +.SH BUGS +Remote servers may not support all features documented here. +.br +Interrupts cause +.I ftp +to exit. diff --git a/static/unix-v10/man1/games.1 b/static/unix-v10/man1/games.1 new file mode 100644 index 00000000..b50fea6f --- /dev/null +++ b/static/unix-v10/man1/games.1 @@ -0,0 +1,272 @@ +.TH GAMES 1 +.CT 1 misc inst_info +.SH NAME +games, demo \- some playthings +.SH SYNOPSIS +.2C +.fi +.BI /usr/jerq/bin/demo +[ +.I game +] +.de xx +.ti -3n +\fB\\$1 \\$2 \\$3\fP +.br +.. +.PP +.xx Labyrinth games +.B adventure +.br +.B zork +.br +.B rogue +.br +.B wump +.PP +.xx Card games +.B fish +.br +.B canfield +.br +.B bridge +[ +.I arg ... +] +.br +.B mille +.PP +.xx Board games +.B back +.PP +.xx Word games +.B hangman +[ +.B -a +] +.br +.B word_clout +.br +.B ana +[ +.I n +] +.br +.B festoon +.I length percent +.PP +.xx System games +.B imp +.br +.B tso +.PP +.xx War games +.B mars +[ +.B -dfhmp +] +[ +.BI -cqs value +] +.I file ... +.br +.B ogre +[ +.I type +] +.br +.B warp +.PP +.xx Games of speed and dexterity +.B atc +.br +.B snake +.br +.B worm +.br +.PP +.xx Educational games +.B quiz +[ +.B \-i +.I file +] +[ +.B \-t +] +[ +.I question answer +] +.br +.B arithmetic +[ +.B +-x/ +] +[ +.I range +] +.br +.PP +.xx Creative games +.B /usr/jerq/bin/twid +.br +.B banner +.PP +.xx Sayings +.B fortune +[ +.I file +] +.br +.B doctor +.br +.B say +[ +.I N +] +.PP +.xx Coding games +.br +.B bcd +.IR text +.br +.B ppt +.br +.B morse +.br +.B /usr/bin/number +.PP +.xx Out-of-layer games +.B /usr/jerq/bin/pen +.br +.B /usr/jerq/bin/crabs +[ +.B -i +] +.B \e +.br + [ +.B -s +.I gracetime +] +[ +.B -v +.I speed +] +[ +.I n +] +.sp +.1C +.PD +.SH DESCRIPTION +Game programs exist sporadically on various machines. +Manuals for many of them may be obtained by using +.IR man (1). +For example, to see manual pages for +.I atc +and +.I twid, +type +.BR "man atc twid" . +Unless shown otherwise, games live in +.FR /usr/games , +which may be put in your shell +.B PATH +to reach them more conveniently. +Some need a cursor-addressed terminal; see the appropriate +manual pages and +.IR term (9.1). +.PP +.I Demo +and other games found in +.FR /usr/jerq/bin +need a Teletype 5620 terminal running under +.IR mux (9.1). +.I Demo +comprises many games, which are listed when it +is invoked without an argument. +Experiment with the mouse to find out they work. +Some unobvious interactions are these: +.IP +.I Swar +is for two players, one using +.L asdwx +on the keyboard, the other +.LR 12350 +on the keypad. +.br +.I Pacman +is controlled by +.L hjkl +keys as in +.IR vi (1). +.PP +Here is a list of some +.I demo +games. +.LP +.2C +.xx Watch the time +.B clock +.PP +.xx War games +.B swar +.br +.PP +.xx Games of speed and dexterity +.B gebam +.br +.B pengo +.br +.B centipede +.br +.B asteroids +.br +.B pacman +.PP +.xx Educational games +.B maxwell +.PP +.xx Out-of-layer games +.B tracks +.br +.B pogo +.br +.B magnet +.PP +.xx Animation +.B EWD +.br +.B road +.br +.B juggle +.br +.B ball +.br +.B fence +.PP +.xx Movies +.B horse +.br +.B dodec +.br +.B explode +.br +.B arno +.PP +.xx Patterns +.B bounce +.br +.B moire +.br +.B fireworks +.br +.B rose +.br +.B disc +.br +.B lunch +.1C +.SH " " + diff --git a/static/unix-v10/man1/gcc.1 b/static/unix-v10/man1/gcc.1 new file mode 100644 index 00000000..df8fcd52 --- /dev/null +++ b/static/unix-v10/man1/gcc.1 @@ -0,0 +1,641 @@ +bg +.\ " ====================== +.\ " This version is 1.22 +.\ " ====================== +.TH GCC 1 "17 May 1988" "Version 1.22" +.SH NAME +gcc \- GNU project C Compiler +.SH SYNOPSIS +.B gcc +[ option ] ... file ... +.SH DESCRIPTION +The +.I GNU\ C\ compiler +uses a command syntax much like the Unix C compiler. The +.I gcc +program accepts options and file names as operands. Multiple +single-letter options may +.I not +be grouped: `\fB\-dr\fR' +is very different from `\fB\-d\ \-r\fR'. +When you invoke +.I GNU\ CC +\, it normally does preprocessing, compilation, +assembly and linking. File names which end in `\fB.c\fR' +are taken as C +source to be preprocessed and compiled; compiler output files plus any +input files with names ending in `\fB.s\fR' +are assembled; then the +resulting object files, plus any other input files, are linked together to +produce an executable. +Command options allow you to stop this process at an intermediate stage. +For example, the `\fB\-c\fR' +option says not to run the linker. +Then the output consists of object files output by the assembler. +Other command options are passed on to one stage. +Some options control the preprocessor and others the compiler itself. +.SH OPTIONS +Here are the options to control the overall compilation process, +including those that say whether to link, whether to assemble, and so on. +.TP +.BI \-o "\ \ file" +Place linker output in file \fIfile\fR. +This applies regardless to whatever sort of output is being produced, +whether it be an executable file, an object file, an assembler file or +preprocessed C code. +If `\fB\-o\fR' +is not specified, the default is to put an executable file +in `a.out', the object file `\fIsource\fB.c\fR' in `\fIsource\fB.o\fR', +an assembler file in `\fIsource\fB.s\fR', +and preprocessed C on standard output. +.TP +.B \-c +Compile or assemble the source files, but do not link. +Produce object files with names made by replacing `\fB\.c\fR' +or `\fB\.s\fR' +with `\fB\.o\fR' +at the end of the input file names. +Do nothing at all for object files specified as input. +.TP +.B \-S +Compile into assembler code but do not assemble. +The assembler output file name is made by replacing `\fB\.c\fR' +with `\fB\.s\fR' +at the end of the input file name. +Do nothing at all for assembler source files or object files specified +as input. +.TP +.B \-E +Run only the C preprocessor. +Preprocess all the C source files specified +and output the results to standard output. +.TP +.B \-v +Compiler driver program prints the commands it executes as it runs +the preprocessor, compiler proper, assembler and linker. +Some of these are directed to print their own version numbers. +.TP +.BI \-B "prefix" +Compiler driver program tries \fIprefix\fR as a prefix for each program +it tries to run. These programs are `\fBcpp\fR', `\fBcc1\fR', +`\fBas\fR' and `\fBld\fR'. +For each subprogram to be run, the compiler driver first tries +the `\fB\-B\fR' prefix, if any. +If that name is not found, or if `\fB\-B\fR' was not specified, +the driver tries two standard prefixes, +which are `\fB/usr/lib/gcc-\fR' and `\fB/usr/local/lib/gcc-\fR'. +If neither of those results in a file name that is found, +the unmodified program name is searched for using the directories +specified in your `\fBPATH\fR' environment variable. +The run-time support file `\fBgnulib\fR' is also searched for using +the `\fB\-B\fR' prefix, if needed. +If it is not found there, the two standard prefixes above are tried, +and that is all. +The file is left out of the link if it is not found by those means. +Most of the time, on most machines, you can do without it. +.PP +These options control the C preprocessor, +which is run on each C source file before actual compilation. +If you use the `\fB\-E\fR' option, nothing is done except C preprocessing. +Some of these options make sense only together with `\fB\-E\fR' +because they request preprocessor output that is not suitable +for actual compilation. +.TP +.B \-C +Tell the preprocessor not to discard comments. Used with the `\fB\-E\fR' +option. +.TP +.BI \-I "dir" +Search directory +.I dir +for include files. +.TP +.B \-I\- +Any directories specified with `\fB\-I\fR' options before the `\fB\-I\-\fR' +option are searched only for the case of `\fB#include "\fIfile\fB"\fR'; +they are not searched for `\fB#include <\fIfile\fB>\fR'. +If additional directories are specified with `\fB\-I\fR' options after +the `\fB\-I\-\fR', these directories are searched for all '\fB#include\fR' +directives. (Ordinally \fIall\fR '\fB\-I\fR' directories are used this +way.) +In addition, the `\fB\-I\-\fR' option inhibits the use of the current +directory as the first search directory for `\fB#include "\fIfile\fB"\fR'. +Therefore, the current directory is searched only if it is requested +explicitly with `\fB\-I.\fR'. +Specifying both `\fB\-I\-\fR' and `\fB\-I.\fR' allows you to control precisely +which directories are searched before the current one and which are +searched after. +.TP +.B \-nostdinc +Do not search the standard system directories for header files. +Only the directories you have specified with `\fB\-I\fR' options +(and the current directory, if appropriate) are searched. +Between `\fB\-nostdinc\fR' and `\fB\-I-\fR', you can eliminate all +directories from the search path except those you specify. +.TP +.B \-M +Tell the preprocessor to output a rule suitable for \fBmake\fR +describing the dependencies of each source file. +For each source file, the preprocessor outputs one \fBmake\fR-rule +whose target is the object file name for that source file and +whose dependencies are all the files `\fB#include\fR'd in it. +This rule may be a single line or may be continued `\fB\\\fR'-newline +if it is long.`\fB\-M\fR' implies `\fB\-E\fR'. +.TP +.B \-MM +Like `\fB\-M\fR' but the output mentions only the user-header files included +with `\fB#include "\fIfile\fB"\fR'. +System header files included with `\fB#include <\fIfile\fB>\fR' +are omitted.`\fB\-MM\fR' implies `\fB\-E\fR'. +.TP +.BI \-D "macro" +Define macro \fImacro\fR +with the empty string as its definition. +.TP +.B \-D\fImacro=defn\fR +Define macro \fImacro\fR as \fIdefn\fR. +.TP +.BI \-U "macro" +Undefine macro \fImacro\fR. +.TP +.B \-T +Support ANSI C trigraphs. +You don't want to know about this brain-damage. +The `\fB\-ansi\fR' option also has this effect. +.PP +These options control the details of C compilation itself. +.TP +.B \-ansi +Support all ANSI standard C programs. +This turns off certain features of GNU C that are incompatible with +ANSI C, such as the \fBasm\fR, \fBinline\fR and \fBtypeof\fR keywords, and +predefined macros such as \fBunix\fR and \fBvax\fR that identify +the type of system you are using. +It also enables the undesirable and rarely used ANSI trigraph feature. +The `\fB\-ansi\fR' option does not cause non-ANSI programs to be rejected +gratuitously. +For that, `\fB\-pedantic\fR' is required in addition to `\fB\-ansi\fR'. +The macro \fB__STRICT_ANSI__\fR +is predefined when the `-ansi' option is used. +Some header files may notice this macro and refrain from declaring +certain functions or defining certain macros that the ANSI standard +doesn't call for; this is to avoid interfering with any programs +that might use these names for other things. +.TP +.B \-traditional +Attempt to support some aspects of traditional C compilers. +Specifically: +.br +\(** All \fBextern\fR declarations take effect globally even if +they are written inside of a function definition. +This includes implicit declarations of functions. +.br +\(** The keywords \fBtypeof\fR, \fBinline\fR, \fBsigned\fR, \fBconst\fR +and \fBvolatile\fR are not recognized. +.br +\(** Comparisons between pointers and integers are always allowed. +.br +\(** Integer types \fBunsigned short\fR and \fBunsigned char\fR +promote to \fBunsigned int\fR. +.br +\(** In the preprocessor, comments convert to nothing at all, +rather than to a space. +This allows traditional token concatenation. +.br +\(** In the preprocessor, single and double quote characters are +ignored when scanning macro definitions, so that macro arguments +can be replaced even within a string or character constant. +Quote characters are also ignored when skipping text inside +a failing conditional directive. +.TP +.B \-pedantic +Issue all the warnings demanded by strict ANSI standard C; +reject all programs that use forbidden extensions. +Valid ANSI standard C programs should compile properly with or +without this option (though a rare few will require `\fB\-ansi\fR'. +However, without this option, certain GNU extensions and +traditional C features are supported as well. +With this option, they are rejected. +There is no reason to \fIuse\fR +this option; it exists only to satisfy pedants. +.TP +.B \-O +Optimize. Optimizing compilation takes somewhat more time, and a lot +more memory for a large function. +Without `\fB\-O\fR', the compiler's goal is to reduce the cost of +compilation and to make debugging produce the expected results. +Statements are independent: if you stop the program with a breakpoint +between statements, you can then assign a new value to any variable or +change the program counter to any other statement in the function and +get exactly the results you would expect from the source code. +Without `\fB\-O\fR', only variables declared \fBregister\fR +are allocated in registers. +The resulting compiled code is +a little worse than produced by PCC without `\fB\-O\fR'. +With `\fB\-O\fR', the compiler tries to reduce code size and execution time. +Some of the `\fB\-f\fR' options described below turn specific +kinds of optimization on or off. +.TP +.B \-g +Produce debugging information in DBX format. +Unlike most other C compilers, +GNU CC allows you to use `\fB\-g\fR' with `\fB\-O\fR'. +The shortcuts taken by optimized code may occasionally +produce surprising results: some variables you declared may not exist +at all; flow of control may briefly move where you did not expect it; +some statements may not be executed because they compute constant +results or their values were already at hand; some statements may +execute in different places because they were moved out of loops. +Nevertheless it proves possible to debug optimized output. +This makes it reasonable to use the optimizer for programs that might +have bugs. +.TP +.B \-gg +Produce debugging information in GDB(GNU Debugger)'s own format. +This requires the GNU assembler and linker +in order to work. +.TP +.B \-w +Inhibit all warning messages. +.TP +.B \-W +Print extra warning messages for these events: +.br +\(** An automatic variable is used without first being initialized. +These warnings are possible only in optimizing compilation, because +they require data flow information that is computed only when +optimizing. +They occur only for variables that are candidates for register +allocation. Therefore, they do not occur for a variable that is +declared +.B volatile, +or whose address is taken, or whose size is other than +1,2,4 or 8 bytes. Also, they do not occur for structures, +unions or arrays, even when they are in registers. +Note that there may be no warning about a variable that is used +only to compute a value that itself is never used, because such +computations may be deleted by the flow analysis pass before the +warnings are printed. +These warnings are made optional because GNU CC is not smart +enough to see all the reasons why the code might be correct +despite appearing to have an error. +.br +\(** A nonvolantile automatic variable might be changed +by a call to \fBlongjmp\fR. +These warnings as well are possible only in optimizing compilation. +The compiler sees only the calls to \fBsetjmp\fR. +It cannot know where \fBlongjmp\fR +will be called; in fact, a signal handler could call it at any point +in the code. As a result, you may get a warning even when there is +in fact no problem because \fBlongjmp\fR +cannot in fact be called at the place which would cause a problem. +.br +\(** A function can return either with or without a value. +(Falling off the end of the function body is considered returning +without a value.) +Spurious warning can occur because GNU CC does not realize that +certain functions (including \fBabort\fR +and \fBlongjmp\fR) will never return. +.TP +.B \-Wimplicit +Warn whenever a function is implicitly declared. +.TP +.B \-Wreturn-type +Warn whenever a function is defined with a return-type that +defaults to \fBint\fR. Also warn about any \fBreturn\fR +statement with no return-value in a function whose return-type +is not \fBvoid\fR. +.TP +.B \-Wcomment +Warn whenever a comment-start sequence `/*' appears in a comment. +.TP +.B \-p +Generate extra code to write profile information suitable for the +analysis program \fBprof\fR. +.TP +.B \-pg +Generate extra code to write profile information suitable for the +analysis program \fBgprof\fR. +.TP +.BI \-l "library" +Search a standard list of directories for a library named \fIlibrary\fR, +which is actually a file named `\fBlib\fIlibrary\fB.a\fR'. +The linker uses this file as if it had been specified precisely by name. +The directories searched include several standard system directories +plus any that you specify with `\fB\-L\fR'. +Normally the files found this way are library files - archive files whose +members are object files. The linker handles an archive file by through +it for members which define symbols that have so far been referenced +but not defined. But if the file that is found is an ordinary +object file, it is linked in the usual fashion. +The only difference between an `\fB\-l\fR' option and the full file name of +the file that is found is syntactic and the fact that several directories +are searched. +.TP +.BI \-L "dir" +Add directory \fIdir\fR to the list of directories to be searched +for `\fB\-l\fR'. +.TP +.B \-nostdlib +Don't use the standard system libraries and startup files when +linking. Only the files you specify (plus `\fBgnulib\fR') +will be passed to the linker. +.TP +.BI \-m "machinespec" +Machine-dependent option specifying something about the type of target machine. +These options are defined by the macro \fBTARGET_SWITCHES\fR +in the machine description. The default for the options is also +defined by that macro, which enables you to change the defaults. +.IP +These are the `\fB\-m\fR' options defined in the 68000 machine description: +.TP 10 +.B \ \ \ \ \ \ \ \ \-m68020 +Generate output for a 68020 (rather than a 68000). +This is the default if you use the unmodified sources. +.TP 10 +.B \ \ \ \ \ \ \ \ \-m68000 +Generate output for a 68000 (rather than a 68020). +.TP 10 +.B \ \ \ \ \ \ \ \ \-m68881 +Generate output containing 68881 instructions for floating point. +This is the default if you use the unmodified sources. +.TP 10 +.B \ \ \ \ \ \ \ \ \-msoft-float +Generate output containing library calls for floating point. +.TP 10 +.B \ \ \ \ \ \ \ \ \-mshort +Consider type \fBint\fR to be 16 bits wide, like \fBshort int\fR. +.TP 10 +.B \ \ \ \ \ \ \ \ \-mnobitfield +Do not use the bit-field instructions. +.B '\-m68000' +implies +.B '\-mnobitfield'. +.TP 10 +.B \ \ \ \ \ \ \ \ \-mbitfield +Do use the bit-field instructions. +.B '\-m68020' +implies +.B '\-mbitfield'. +This is the default if you use the unmodified sources. +.TP 10 +.B \ \ \ \ \ \ \ \ \-mrtd +Use a different function-calling convention, in which functions that +take a fixed number of arguments return with the \fBrtd\fR +instruction, which pops their arguments while returning. This saves +one instruction in the caller since there is no need to pop the +arguments there. +This calling convention is incompatible with the one normally used on +Unix, so you cannot use it if you need to call libraries compiled with +the Unix compiler. +Also, you must provide function prototypes for all functions that take +variable numbers of arguments (including \fBprintf\fR); otherwise +incorrect code will be generated for calls to those functions. +In addition, seriously incorrect code will result if you call a +function with too many arguments. (Normally, extra arguments are +harmlessly ignored.) +The \fBrtd\fR +instruction is supported by the 68010 and 68020 +processors, but not by the 68000. +.IP +These are the `\fB\-m\fR' options defined in the VAX machine description: +.TP 10 +.B \ \ \ \ \ \ \ \ \-munix +Do not output certain jump instructions ( +.B aobleq +and so on) that the Unix assembler +for the VAX cannot handle across long ranges. +.TP 10 +.B \ \ \ \ \ \ \ \ \-mgnu +Do output those jump instructions, on the assumption +that you will assemble with the GNU assembler. +.TP 5 +.BI \-f "flag" +Specify machine-independent flags. These are the flags: +.TP 10 +.B \ \ \ \ \ \ \ \ \-ffloat-store +Do not store floating-point variables in registers. +This prevents undesirable excess precision on machines such as the 68000 +where the floating registers (of the 68881) keep more precision +than a \fBdouble\fR is supposed to have. +For most programs, the excess precision does only good, but a few +programs rely on the precise definition of IEEE floating point. +Use ` +.B \-ffloat-store' +for such programs. +.TP 10 +.B \ \ \ \ \ \ \ \ \-frno-asm +Do not recognize \fBasm\fR, \fBinline\fR or \fBtypeof\fR +as a keyword. These words may then be used as identifiers. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fno-defer-pop +Always pop the arguments to each function call as soon as that +function returns. +Normally the compiler (when optimizing) lets arguments accumulate on the +stack for several function calls and pops them all at once. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fcombine-regs +Allow the combine pass to combine an instruction that copies one +register into another. +This might or might not produce better code when used in addition to ` +.B \-O'. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fforce-mem +Force memory operands to be copied into registers before doing +arithmetic on them. +This may produce better code by making all +memory references potential common subexpressions. +When they are not common subexpressions, +instruction combination should eliminate the separate register-load. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fforce-addr +Force memory address constants to be copied into registers before +doing arithmetic on them. +This may produce better code just as ` +.B \-fforce-mem' +may. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fomit-frame-pointer +Don't keep the frame pointer in a register for functions that don't +need one. This avoids the instructions to save, set up and restore +frame pointers; it also makes an extra register available in many +functions. \fBIt\ also\ makes\ debugging\ impossible.\fR +On some machines, such as the VAX, this flag has no effect, +because the standard calling sequence automatically handles +the frame pointer and nothing is saved by pretending it doesn't exist. +The machine-description macro \fBFRAME_POINTER_REQUIRED\fR +controls whether a target machine supports this flag. +.TP 10 +.B \ \ \ \ \ \ \ \ \-finline-functions +Integrate all simple functions into their callers. +The compiler heuristically decides which functions are simple enough +to be worth integrating in this way. +If all calls to a given function are integrated, and the function +is declared \fBstatic\fR, +then the function is normally not output as assembler code in its +own right. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fkeep-inline-functions +Even if all calls to a given function are integrated, and the +function is declared \fBstatic\fR, +nevertheless output a separate run-time callable version of +the function. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fwritable-strings +Store string constants in the writable data segment and don't uniquize them. +This is for compatibility with old programs which assume +they can write into string constants. Writing into string constants +is a very bad idea; ``constants'' should be constant. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fno-function-cse +Do not put function addresses in registers; make each instruction that +calls a constant function contain the function's address explicitly. +This option results in less efficient code, but some strange hacks +that alter the assembler output may be confused by the optimizations +performed when this option is not used. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fvolatile +Consider all memory references through pointers to be volatile. +.TP 10 +.B \ \ \ \ \ \ \ \ \-funsigned-char +Let the type \fBchar\f be the unsigned, like \fBunsigned char\fR. +Each kind of machine has a default for what \fBchar\fR +should be. It is either like \fBunsigned char\fR +by default of like \fBsigned char\fR +by default. (Actually, at present, the default is always signed.) +The type \fBchar\fR +is always a distinct type from either \fBsigned char\fR +or \fBunsigned char\fR, +even though its behavior is always just like one of those two. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fsigned-char +Let the type \fBchar\fR be the same as \fBsigned char\fR. +.TP 10 +.B \ \ \ \ \ \ \ \ \-ffixed-\fIreg\fR +Treat the register named \fIreg\fR as a fixed register; generated +code should never refer to it (except perhaps as a stack pointer, +frame pointer or in some other fixed role). \fIreg\fR +must be the name of a register. +The register names accepted are machine-specific and are defined in +the \fBREGISTER_NAMES\fR +macro in the machine description macro file. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fcall-used-\fIreg\fR +Treat the register named \fIreg\fR +as an allocatable register that is clobberred by function calls. +It may be allocated for temporaries or variables +that do not live across a call. +Functions compiled this way will not save and restore the +register \fIreg\fR. +Use of this flag for a register that has a fixed pervasive role +in the machine's execution model, such as the stack pointer or +frame pointer, will produce disastrous results. +.TP 10 +.B \ \ \ \ \ \ \ \ \-fcall-saved-\fIreg\fR +Treat the register named \fIreg\fR +as an allocatable register saved by functions. +It may be allocated even for temporaries or +variables that live across a call. Functions compiled this way +will save and restore the register \fIreg\fR if they use it. +Use of this flag for a register that has a fixed pervasive role +in the machine's execution model, such as the stack pointer or +frame pointer, will produce disastrous results. +A different sort of disaster will result from the use of this +flag for a register in which function values are may be returned. +.TP +.BI \-d "letters" +Says to make debugging dumps at times specified by \fIletters\fR. +Here are the possible letters: +.TP 10 +.B \ \ \ \ \ \ \ \ r +Dump after RTL generation. +.TP 10 +.B \ \ \ \ \ \ \ \ j +Dump after first jump optimization. +.TP 10 +.B \ \ \ \ \ \ \ \ J +Dump after last jump optimization. +.TP 10 +.B \ \ \ \ \ \ \ \ s +Dump after CSE (including the jump optimization that sometimes +follows CSE). +.TP 10 +.B \ \ \ \ \ \ \ \ L +Dump after loop optimization. +.TP 10 +.B \ \ \ \ \ \ \ \ f +Dump after flow analysis. +.TP 10 +.B \ \ \ \ \ \ \ \ c +Dump after instruction combination. +.TP 10 +.B \ \ \ \ \ \ \ \ l +Dump after local register allocation. +.TP 10 +.B \ \ \ \ \ \ \ \ g +Dump after global register allocation. +.TP 10 +.B \ \ \ \ \ \ \ \ m +Print statistics on memory usage, at the end of the run. +.SH FILES +.ta \w'/usr/local/lib/gcc-gnulib 'u +file.c input file +.br +file.o object file +.br +a.out loaded output +.br +/tmp/cc? temporary +.br +/usr/local/lib/gcc-cpp preprocessor +.br +/usr/local/lib/gcc-cc1 compiler +.br +/usr/local/lib/gcc-gnulib library need by GCC on some machines +.br +/lib/crt0.o runtime startoff +.br +/lib/libc.a standard library, see +.IR intro (3) +.br +/usr/include standard directory for `#include' files +.br +.SH "SEE ALSO" +B. W. Kernighan and D. M. Ritchie, +.I The C Programming Language, +Prentice-Hall, +1978 +.br +B. W. Kernighan, +.I +Programming in C +.br +D. M. Ritchie, +.I +C Reference Manual +.br +adb(1), ld(1), dbx(1), as(1) +.SH BUGS +Bugs should be reported to bug-gcc@prep.ai.mit.edu. Bugs tend actually to be +fixed if they can be isolated, so it is in your interest to report them +in such a way that they can be easily reproduced according to get newer version. +.SH COPYING +Copyright (C) 1988 Richard M. Stallman. +.br +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. +.br +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +section entitled "GNU CC General Public License" is included exactly as +in the original, and provided that the entire resulting derived work is +distributed under the terms of a permission notice identical to this one. +.br +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the section entitled "GNU CC General Public License" may be +included in a translation approved by the author instead of in the original +English. +.SH AUTHORS +Richard M. Stallman diff --git a/static/unix-v10/man1/getlab.1 b/static/unix-v10/man1/getlab.1 new file mode 100644 index 00000000..a740e23d --- /dev/null +++ b/static/unix-v10/man1/getlab.1 @@ -0,0 +1,49 @@ +.TH GETLAB 1 +.CT 1 shell +.SH NAME +getlab \- print security labels of files and processes +.SH SYNOPSIS +.B getlab +[ +.B -d +] +[ +.I file ... +] +.SH DESCRIPTION +If there is a +.I file +argument, +.I getlab +prints, in the style of +.IR labtoa (3), +the security labels of the named files. +Otherwise, +.I getlab +prints the security label of the process and the process ceiling, +The option is +.TP +.B -d +Also print labels of all open file descriptors. +.PP +If a (character special) +.I file +can be opened, and the labels of the file and the file descriptor +differ, both are printed. +.SH EXAMPLES +.TP +.B getlab /dev/stdin +Print the labels (file system entry and file +descriptor) of the standard input. +.TP +.B drop getlab -d +Print the process label, +preventing the open-file check and the ceiling-label +check (see +.IR getplab (2)) +from raising the +process label. +.SH SEE ALSO +.IR stat (1), +.IR getflab (2), +.IR getplab (2) diff --git a/static/unix-v10/man1/getopt.1 b/static/unix-v10/man1/getopt.1 new file mode 100644 index 00000000..ed35b03f --- /dev/null +++ b/static/unix-v10/man1/getopt.1 @@ -0,0 +1,78 @@ +.if t .ds ' \h@.05m@\s+4\v@.333m@\'\v@-.333m@\s-4\h@.05m@ +.if n .ds ' ' +.if t .ds ` \h@.05m@\s+4\v@.333m@\`\v@-.333m@\s-4\h@.05m@ +.if n .ds ` ` +.TH GETOPT 1 +.SH NAME +getopt \- parse command options +.SH SYNOPSIS +.B set \-\- \*`getopt optstring $\(**\*` +.SH DESCRIPTION +.I Getopt\^ +is used to break up options in command lines for easy parsing by shell +procedures, and to check for legal options. +.I Optstring\^ +is a string of recognized option letters (see getopt(3C)); +if a letter is followed by a colon, the option +is expected to have an argument which may or +may not be separated from it by white space. +The special option \fB\-\-\fP is used to delimit the end of the +options. +.I Getopt\^ +will place \fB\-\-\fP in the arguments at the end +of the options, or recognize it if used explicitly. +The shell arguments ($1 $2 . . .) are reset so that each option +is preceded by a \fB\-\fP and in its own shell argument; each option +argument is also in its own shell argument. +.SH DIAGNOSTICS +.I Getopt\^ +prints an error message on +the standard error +when it encounters an option letter not included in +.IR optstring . +.SH EXAMPLES +The following code fragment shows how one might process the arguments +for a command that can take the options +.B a +and +.BR b , +and the option +.BR o , +which requires an argument. +.PP +.RS +.nf +.ss 18 +set \-\- \*`getopt abo: $\(**\*` +if [ $? != 0 ] +then + echo $USAGE + exit 2 +fi +for i in $\(** +do + case $i in + \-a \(bv \-b) FLAG=$i; shift;; + \-o) OARG=$2; shift; shift;; + \-\-) shift; break;; + esac +done +.fi +.ss 12 +.RE +.PP +This code will accept any of the following as equivalent: +.PP +.RS +.nf +.ss 18 +cmd \-aoarg file file +cmd \-a \-o arg file file +cmd \-oarg \-a file file +cmd \-a \-oarg \-\- file file +.fi +.ss 12 +.RE +.SH SEE ALSO +.IR sh (1), +.IR getopt (3C). diff --git a/static/unix-v10/man1/gets.1 b/static/unix-v10/man1/gets.1 new file mode 100644 index 00000000..66fddb86 --- /dev/null +++ b/static/unix-v10/man1/gets.1 @@ -0,0 +1,55 @@ +.TH GETS 1 deprecated +.UC 4 +.SH NAME +gets \- get a string from standard input +.SH SYNOPSIS +.B gets +[ default ] +.SH DESCRIPTION +.B N.B.: +This command was introduced for use in \fI.login\fR scripts when the facilities +of the +.IR tset (1) +command were not totally adequate in setting the terminal type. +This is no longer true, and +.I gets +should no longer be needed. +To boot, a construct ``$<'' is available in +.IR csh (1) +now which has the functionality of +.IR gets: +.IP +\fBset a=$<\fR +.br +\fBif ($a == '') set a=default +.LP +replaces +.IP +\fBset a=`gets default`\fR +.LP +Users of +.IR sh (1) +should use its +.I read +command rather than +.I gets. +.PP +.I Gets +can be used with +.IR csh (1) +to read a string from the standard input. +If a +.I default +is given it is used if just return is typed, or if an error occurs. +The resultant string (either the default or as read from the standard +input is written to the standard output. +If no +.I default +is given and an error occurs, +.I gets +exits with exit status 1. +.SH "SEE ALSO" +csh (1) +.SH BUGS +.I Gets +is obsolete. diff --git a/static/unix-v10/man1/getuid.1 b/static/unix-v10/man1/getuid.1 new file mode 100644 index 00000000..b04e2e6b --- /dev/null +++ b/static/unix-v10/man1/getuid.1 @@ -0,0 +1,85 @@ +.TH GETUID 1 +.CT 1 proc_man secur +.SH NAME +getuid, id \(mi get user identity +.SH SYNOPSIS +.B getuid +[ +.B - +] +[ +.I arguments +] +.PP +.B id +.SH DESCRIPTION +.I Getuid +prints on its standard output information about its invoker, +based on the effective user id, as presented in the password file. +With no arguments, +.I getuid +prints the login id of its invoker. +Arguments select which information to print: +.IP +.TF passwd +.TP +.B user +login id +.TP +.B group +group id +.TP +.B passwd +encrypted password +.TP +.B uid +numerical user id +.TP +.B gid +numerical group id +.TP +.B acct +comp center account number +.TP +.B bin +comp center output bin +.TP +.B home +home directory +.TP +.B shell +default shell +.PD +.PP +If the optional +.B - +or more than one argument is present, +the information is displayed in the form +.IP +user=name +.LP +as suitable for setting environment variables in the shell. +.PP +.I Id +prints the effective userid and groupid +and the login name. +The userid and groupid are printed numerically and, if +possible, textually. +.SH FILES +.TP +.F /etc/passwd +.TP +.F /etc/group +.SH "SEE ALSO" +.IR who (1), +.IR getuid (2), +.IR passwd (5), +.IR newgrp (1) +.SH BUGS +.I Getuid +reports the default group for the user, +not the current effective group id. +.br +The login id reported is the first one in the password file with +the correct numerical user id, not necessarily the login +for the current session. diff --git a/static/unix-v10/man1/goto.1 b/static/unix-v10/man1/goto.1 new file mode 100644 index 00000000..64feea78 --- /dev/null +++ b/static/unix-v10/man1/goto.1 @@ -0,0 +1,37 @@ +.pa 1 +.he 'GOTO (I)'3/15/72'GOTO (I)' +.ti 0 +NAME goto -- command transfer +.sp +.ti 0 +SYNOPSIS goto____ label +.sp +.ti 0 +DESCRIPTION goto____ +is only allowed when the Shell +is taking commands from a file. +The file is searched (from the beginning) +for a line beginning with ":" followed by one +or more spaces followed by +the label_____. +If such a line is found, the goto____ command returns. +Since the read pointer in the command file points to the +line after the label, +the effect is to cause the Shell to transfer to the +labelled line. + +":" is a do-nothing +command that only serves to place a label. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO sh(I), :(I) +.sp +.ti 0 +DIAGNOSTICS "goto error", if +the input file is a typewriter; "label not found". +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/grabit.1 b/static/unix-v10/man1/grabit.1 new file mode 100644 index 00000000..04b4845f --- /dev/null +++ b/static/unix-v10/man1/grabit.1 @@ -0,0 +1,86 @@ +.ds dQ /usr/lib/postscript +.TH GRABIT 1 "DWB 3.2" +.SH NAME +.B grabit +\- recover the text representation of PostScript objects +.SH SYNOPSIS +\*(mBgrabit\f1 +.OP "" options [] +.OP "" object +\&... +.SH DESCRIPTION +.B Grabit +builds a PostScript program that generates a text representation +of one or more PostScript +.IR object s. +The program is written on the standard output. +The following +.I options +are understood: +.TP 1.0i +.OP \-d +Do not automatically dump the contents of unrecognized dictionary +objects found in PostScript arrays. +.TP 1.0i +.OP \-C file +Copy +.I file +into the PostScript program. +.I file +must contain legitimate PostScript. +.TP 1.0i +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/grabit.ps . +.PP +When the program built by +.B grabit +is sent to a PostScript printer the text representation of each +.I object +is normally returned to the host computer over the printer's serial port. +Use +.BR hardcopy (1) +if you do not have access to the port. +.PP +Each argument should be a PostScript +.I object +or commands that generate a PostScript +.IR object . +The program built by +.B grabit +produces results that are often close to legitimate PostScript that +can be successfully sent through an interpreter. +.SH EXAMPLES +.PP +If you can read and write +.MW /dev/tty00 +and there is a PostScript printer on +the other end, then +recover the readable portions of the +.MW userdict +and +.MW statusdict +dictionaries: +.EX +grabit userdict statusdict | postio -l/dev/tty00 -t +.EE +Otherwise get a printout of the dictionaries: +.EX +grabit userdict statusdict | hardcopy | lp ... +.EE +Arguments should be PostScript code that leaves an object on the stack. +Dump the contents of Adobe's +.MW internaldict +dictionary: +.EX +grabit "1183615869 internaldict" | postio -l/dev/tty00 -t +.EE +.SH FILES +.MW \*(dQ/grabit.ps +.SH SEE ALSO +.BR hardcopy (1), +.BR postio (1) diff --git a/static/unix-v10/man1/gram.1 b/static/unix-v10/man1/gram.1 new file mode 100644 index 00000000..627301c3 --- /dev/null +++ b/static/unix-v10/man1/gram.1 @@ -0,0 +1,81 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH GRAM (1) +.SH NAME +gram \- find split infinitives and incorrect indefinite articles +.br +splitrules \- print information about split infinitives +.SH SYNOPSIS +.B gram +[ +.B \-flags +][ +.B \-ver +] +[file ...] +.PP +.B splitrules +[ +.B \-flags +][ +.B \-ver +] +.SH DESCRIPTION +.I Gram +uses the +.IR parts (1) +(part of speech assignment) program +to look for infinitives that are split by one or more adverbs. +It also checks for incorrect indefinite articles. +.PP +Grammatical information about split infinitives +can be obtained by typing: +.BR splitrules . +.PP +Two options, which apply to both programs, +give information about the programs: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.PP +.I Gram +is one of the programs run under the +.IR proofr (1) +and +.IR wwb (1) +commands. +.SH FILES +.TP 21 +/tmp/$$ +temporary files +.SH SEE ALSO +proofr(1), +wwb(1), +deroff(1), +parts(1). +.SH BUGS +.PP +Because +.I parts +is not always correct in its assignments, +.I gram +also makes errors. +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/grap.1 b/static/unix-v10/man1/grap.1 new file mode 100644 index 00000000..b380401e --- /dev/null +++ b/static/unix-v10/man1/grap.1 @@ -0,0 +1,400 @@ +.TH GRAP 1 +.CT 1 writing_troff graphics +.SH NAME +grap \(mi pic preprocessor for drawing graphs +.SH SYNOPSIS +.B grap +[ +.I file ... +] +.SH DESCRIPTION +.I Grap +is a +.IR pic (1) +preprocessor for drawing graphs on a typesetter. +Graphs are surrounded by the +.I troff +`commands' +.B \&.G1 +and +.BR \&.G2 . +Data that is enclosed is scaled and plotted, +with tick marks supplied automatically. +Commands exist to modify the frame, +add labels, override the default ticks, +change the plotting style, +define coordinate ranges and transformations, +and include data from files. +In addition, +.I grap +provides the same loops, conditionals and macro processing that +.I pic +does. +.PP +.BI frame +.B ht +.I e +.B wid +.I e +.B top +.B dotted +.I \&...: +Set the frame around the graph to specified +.B ht +and +.BR wid ; +default is 2 by 3 (inches). +The default mode applies to all four sides; +.BR top , +.BR bot , +.BR left , +or +.B right +can be set to +.BR dotted , +.BR dashed , +.BR invis , +or +.BR solid +independently. +.PP +.B label +.I side +.B \&"a label" +.B \&"as a set of strings" +.I adjust: +Place label on specified side; default side is bottom. +.I adjust +is +.B up +(or +.B down +.B left +.BR right ) +.I expr +to shift default position; +.B width +.I expr +sets the width explicitly. +.PP +.BI ticks +.I side +.B in +.B at +.I "optname expr, expr, ...: +Put ticks on +.I side +at +.I "expr, ..., +and label with +.I \&"expr". +If any +.I expr +is followed by "...", label tick with "...", +and turn off all automatic labels. +If "..." contains +.BR %f 's, +they will be interpreted as +.B printf +formatting instructions for the tick value. +Ticks point +.B in +or +.B out +(default out). +Tick iterator: instead of +.B at +.I \&..., +use +.BI from +.I expr +.B to +.I expr +.B by +.I "o expr +where +.I o +is optionally +.B +-*/ +for additive or multiplicative steps. +.B by +can be omitted, to give steps of size 1. +If no ticks are requested, they are supplied automatically; +suppress this with +.B ticks +.BR off . +Automatic ticks normally +leave a margin of 7% on each side; set this to anything by +.B margin +.B = +.I expr. +.PP +.B grid +.I "side linedesc" +.B at +.I "optname expr, expr, ...: +Draw grids perpendicular to +.I side +in style +.I linedesc +at +.I "expr, ....\& +Iterators and labels work as with ticks. +.PP +.B coord +.I optname +.B x +.I "min, max" +.B y +.I "min, max" +.B "log x +.BR " log y : +Set range of coords and optional log scaling on either or both. +This overrides computation of data range. +Default value of +.I optname +is current coordinate system +(each +.B coord +defines a new coordinate system). +.PP +.B plot +.I \&"str" +.B at +.IR point ; +.B +.I \&"str" +.B at +.I point: +Put +.I str +at +.I point. +Text position can be qualified with +.BR rjust , +.BR ljust , +.BR above , +.BR below +after "...". +.PP +.B line +.B from +.I point +.B to +.I "point linedesc: +Draw line from here to there. +.B arrow +works in place of +.BR line . +.PP +.B next +.I optname +.B at +.I "point linedesc: +Continue plot of data in +.I optname to +.IR point ; +default is current. +.PP +.BI draw +.I "optname linedesc...:" +Set mode for +.BR next : +use this style from now on, +and plot "..." at each point (if given). +.PP +.BI new +.I "optname linedesc ...:" +Set mode for +.BR next , +but disconnect from previous. +.PP +A list of numbers +.I "x y1 y2 y3 ... +is treated as +.B plot +.B bullet +.B at +.IR x,y1 ; +.B plot +.B bullet +.B at +.IR x,y2 ; +etc., or as +.B next +.B at +.I x,y1 +etc., if +.B draw +is specified. +Abscissae of 1,2,3,... are provided if there is only one input number per line. +.PP +A +point +.I "optname expr, expr +maps the point to the named coordinate system. +A +.I linedesc +is one of +.B dot +.B dash +.B invis +.B solid +optionally followed by an expression. +.PP +.BI define +.I name +.BI { whatever } : +Define a macro. +There are macros already defined for standard plotting +symbols like +.BR bullet , +.BR circle , +.BR star , +.BR plus , +etc., in +.FR /usr/lib/grap.defines , +which is included if it exists. +.PP +.I var +.B = +.I expr: +Evaluate an expression. +Operators are +.B= +.B + +.B - +.B * +and +.B / . +Functions are +.B log +and +.B exp +(both base 10), +.BR sin , +.BR cos , +.BR sqrt ; +.B rand +returns random number on [0,1); +.BI max( e , e ) , +.BI min( e , e ) , +.BI int( e ) . +.PP +.B print +.IR expr ; +.B print +.I \&"...:" +As a debugging aid, print +.I expr or +.I string +on the standard error. +.PP +.B copy +\f5"\fIfilename\f5"\fR +.I : +Include this file right here. +.PP +.B copy +.B thru +.I macro: +Pass rest of input (until +.BR \&.G2 ) +through +.IR macro , +treating each field (non-blank, or "...") as an argument. +.I macro +can be the name of a macro previously defined, +or the body of one in place, like +.BR "/plot $1 at $2,$3/" . +.PP +.B copy +.B thru +.I macro +.B until +.B \&" +.I string +.B \&" +: +Stop copy when input is +.I string +(left-justified). +.PP +.BI pic +.I "remainder of line: +Copy to output with leading blanks removed. +.PP +.BI graph +.I "Name pic-position: +Start a new frame, place it at specified position, +e.g., +.B graph +.B Thing2 +.BR "with .sw at Thing1.se + (0.1,0)" . +.I Name +must be capitalized to keep +.I pic +happy. +.PP +.BI \&. "anything at beginning of line: +Copied verbatim. +.PP +.B sh +.BI % anything % : +Pass everything between the +.BR % 's +to the shell; +as with macros, +.B % +may be any character and +.I anything +may include newlines. +.PP +.B # +.I anything: +A comment, which is discarded. +.PP +Order is mostly irrelevant; no category is mandatory. +Any arguments on the +.B \&.G1 +line are placed on the generated +.B \&.PS +line for +.I pic. +.SH +EXAMPLES +.EX +.ps -1 +.vs -1 +\&.G1 +frame top invis right invis +coord x 0, 10 y 1, 5 log y +ticks left in at 1 "bottommost tick", 2,3,4,5 "top tick" +ticks bot in from 0 to 10 by 2 +label bot "this is a" "silly graph" +label left "left side label" "here" +grid bot dotted at 2,4,6,8 +grid left dashed at 2.5 +copy thru / circle at $1,$2 / +1 1 +2 1.5 +3 2 +4 1.5 +10 5 +\&.G2 +.ps +.vs +.EE +.SH FILES +.TF /usr/lib/grap.defines +.TP +.F /usr/lib/grap.defines +definitions of standard plotting characters, e.g., bullet +.SH "SEE ALSO" +.IR graph (1), +.IR pic (1), +.IR plot (3) +.br +J. L. Bentley and B. W. Kernighan, +.I "GRAP \(em A Language for Typesetting Graphs, +CSTR 114, 1984 diff --git a/static/unix-v10/man1/graph.1 b/static/unix-v10/man1/graph.1 new file mode 100644 index 00000000..839aa2a3 --- /dev/null +++ b/static/unix-v10/man1/graph.1 @@ -0,0 +1,151 @@ +.TH GRAPH 1 +.CT 1 numbers graphics +.SH NAME +graph \- draw a graph +.SH SYNOPSIS +.B graph +[ +.I option ... +] +.SH DESCRIPTION +.I Graph +with no options takes pairs of numbers from the +standard input as abscissas +.RI ( x -values) +and ordinates +.RI ( y -values) +of a graph. +Successive points are connected by straight lines. +The graph is encoded on the standard output +for display by +.IR plot (1) +filters. +.PP +If the ordinate of a point is followed by +a nonnumeric string, that string is printed as a +label beginning on the point. +Labels may be surrounded with quotes +.L +" " +in which case they may be empty or contain blanks +and numbers; +labels never contain newlines. +.PP +The following options are recognized, +each as a separate argument. +.TP +.B -a +Supply abscissas automatically; no +.IR x -values +appear in the input. +Spacing is given by the next +argument (default 1). +A second optional argument is the starting point for +automatic abscissas (default 0, or 1 +with a log scale in +.I x, +or the lower limit given by +.BR -x ). +.TP +.B -b +Break (disconnect) the graph after each label in the input. +.TP +.B -c +Character string given by next argument +is default label for each point. +.TP +.B -g +Next argument is grid style, +0 no grid, 1 frame with ticks, 2 full grid (default). +.TP +.B -l +Next argument is a legend to title the graph. +Grid ranges +are automatically printed as part +of the title unless a +.B -s +option is present. +.TP +.B -m +Next argument is mode (style) +of connecting lines: +0 disconnected, 1 connected. +Some devices give distinguishable line styles +for other small integers. +Mode \-1 (default) begins with style 1 and +rotates styles for successive curves under option +.BR -o . +.TP +.B -o +(Overlay.) +The ordinates for +.I n +superposed curves appear in the input +with each abscissa value. +The next argument is +.IR n . +.TP +.B -s +Save screen; no new page for this graph. +.TP +.B -x l +If +.B l +is present, +.IR x -axis +is logarithmic. +Next 1 (or 2) arguments are lower (and upper) +.I x +limits. +Third argument, if present, is grid spacing on +.I x +axis. +Normally these quantities are determined automatically. +.TP +.B -y l +Similarly for +.IR y . +.TP +.B -e +Make automatically determined +.I x +and +.I y +scales equal. +.TP +.B -h +Next argument is fraction of space for height. +.TP +.B -w +Similarly for width. +.TP +.B -r +Next argument is fraction of space to move right before plotting. +.TP +.B -u +Similarly to move up before plotting. +.TP +.B -t +Transpose horizontal and vertical axes. +(Option +.B -a +now applies to the vertical axis.) +.PP +If a specified lower limit exceeds the upper limit, +the axis +is reversed. +.SH "SEE ALSO" +.IR plot (1), +.IR grap (1), +.IR spline (A) +.SH BUGS +In +.I graph +segments that run out of bounds are dropped, not windowed. +.br +Logarithmic axes may not be reversed. +.br +Option +.B -e +actually makes automatic limits, rather than automatic scaling, +equal. diff --git a/static/unix-v10/man1/gre.1 b/static/unix-v10/man1/gre.1 new file mode 100644 index 00000000..dbaa0b8c --- /dev/null +++ b/static/unix-v10/man1/gre.1 @@ -0,0 +1,188 @@ +.TH GRE 1 +.CT 1 files +.SH NAME +gre, grep, egrep, fgrep \(mi search a file for a pattern +.SH SYNOPSIS +.B gre +[ +.I option ... +] +.I pattern +[ +.I file ... +] +.PP +.B grep +[ +.I option ... +] +.I pattern +[ +.I file ... +] +.PP +.B egrep +[ +.I option ... +] +.I pattern +[ +.I file ... +] +.PP +.B fgrep +[ +.I option ... +] +.I strings +[ +.I file ... +] +.SH DESCRIPTION +.I Gre\^ +searches the input +.I files\^ +(standard input default) +for lines (with newlines excluded) that match the +.I pattern, +a regular expression as defined in +.IR re (3). +A file name of +.B - +is interpreted as standard input. +Normally, each line matching the pattern is `selected', +and each selected line is copied to the standard output. +The options are +.TP +.B -1 +Print only the first selected line of each file argument. +.PD 0 +.TP +.B -b +Mark each printed line with its byte position in its file. +This is sometimes useful in locating patterns in non-text files. +.TP +.B -c +Print only a count of matching lines. +.TP +.BI -e " pattern" +Same as a simple +.I pattern +argument, +but useful when +.I pattern +begins with a +.BR - . +.TP +.B -E +Simulate +.IR egrep. +.TP +.BI -f " file" +Read the pattern from +.IR file ; +there is no +.I pattern +argument +.TP +.B -F +Simulate +.IR fgrep. +.TP +.B -G +Simulate +.IR grep. +.TP +.B -h +Do not print filename tags (headers) with output lines. +.TP +.B -i +Ignore alphabetic case distinctions. +.TP +.B -l +Print the names of files with selected lines; don't print the lines. +.TP +.B -L +Print the names of files with no selected lines; +the converse of +.BR -l . +.TP +.B -n +Mark each printed line with its line number counted in its file. +.TP +.B -s +Produce no output, but return status. +.TP +.B -v +Reverse: print lines that do not match the pattern. +.TP +.B -x +Exact match: The pattern is +.BI ^( pattern )$ . +The implicit parentheses count in back references. +.PD +.PP +Output lines are tagged by filename when there is more than one +input file. +(To force this tagging, include +.B /dev/null +as a filename argument.) +If the output line exceeds some internal limit, +a warning is given and a small block of text surrounding the match is printed. +.PP +Care should be taken when +using the shell metacharacters +.B $*[^|()\e +and newline +in +.IR pattern ; +it is safest to enclose the +entire expression +in single quotes +.BR \&\|\(fm \|.\|.\|.\| \(fm . +.PP +.I Gre +supplants three classic programs, which are still available: +.PP +.I Grep +handles only +.IR ed (1)-like +regular expressions. +It uses +.L \e(\|\e) +instead of +.LR (\|) . +.PP +.I Egrep +handles the same patterns as +.I gre +except for back-referencing with +.BR \e1 , +.BR \e2 , +\&... +.PP +.I Fgrep +handles no operators except newline (alternation). +.SH SEE ALSO +.IR re (3), +.IR awk (1), +.IR sed (1), +.IR sam (9.1), +.IR strings (1) +.SH DIAGNOSTICS +Exit status is 0 if any lines are selected, +1 if none, 2 for syntax errors, inaccessible files +(even if matches were found). +Warnings will be given for input lines that exceed +a (generous) internal limit. +.SH BUGS +.I Grep, egrep, +and +.I fgrep +do not support some options and print block numbers +rather than byte numbers for option +.BR -b . +.br +.I Egrep +may fail on input containing characters greater +than 0176. diff --git a/static/unix-v10/man1/grep.1 b/static/unix-v10/man1/grep.1 new file mode 100644 index 00000000..bd5a1010 --- /dev/null +++ b/static/unix-v10/man1/grep.1 @@ -0,0 +1,56 @@ +.th GREP I 3/3/73 +.sh NAME +grep \*- search a file for a pattern +.sh SYNOPSIS +.bd grep +[ +.bd \*-v +] [ +.bd \*-l +] [ +.bd \*-n +] expression [input] [output] +.sh DESCRIPTION +.it Grep +will search the input file +(standard input default) +for each line containing the +regular expression. +Normally, each line found +is printed on the output file +(standard output default). +If the +.bd \*-v +flag is used, +all lines but those matching +are printed. +If the +.bd \*-l +flag is used, +each line printed is +preceded by its line number. +If the +.bd \*-n +flag is used, +no lines are printed, +but the number of lines that would +normally have been printed is reported. +If interrupt is hit, +the number of lines +searched is printed. +.s3 +For a complete description +of the regular expression, +see ed(I). +Care should be taken when +using the characters +$ * [ ^ | ( ) and \\ in the regular +expression as they are +also meaningful to the shell. +(Precede them by \\) +.sh "SEE ALSO" +ed(I), sh(I) +.sh BUGS +Lines +are limited to 512 characters; +longer lines are truncated. diff --git a/static/unix-v10/man1/hang.1 b/static/unix-v10/man1/hang.1 new file mode 100644 index 00000000..8915394a --- /dev/null +++ b/static/unix-v10/man1/hang.1 @@ -0,0 +1,16 @@ +.TH HANG 1 +.CT 1 proc_man debug_tune +.SH NAME +hang \(mi start a process in stopped state +.SH SYNOPSIS +.B hang +.I command +.SH DESCRIPTION +The given command is executed, but stopped before +.B main() +is called so that +the process can be picked up by a debugger. +To ensure that breakpoints may be set, the process does not share its text. +.SH SEE ALSO +.IR pi (9.1), +.IR kill (1) diff --git a/static/unix-v10/man1/hardcopy.1 b/static/unix-v10/man1/hardcopy.1 new file mode 100644 index 00000000..fd43e269 --- /dev/null +++ b/static/unix-v10/man1/hardcopy.1 @@ -0,0 +1,131 @@ +.ds dQ /usr/lib/postscript +.TH HARDCOPY 1 "DWB 3.2" +.SH NAME +.B hardcopy +\- redirects output from PostScript file operators to paper +.SH SYNOPSIS +\*(mBhardcopy\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B hardcopy +surrounds +.I files +with PostScript that redirects file output to paper, +and writes the results on the standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP 0.75i +.OP \-f name +Print +.I files +using font +.IR name , +which should be the name of a constant width font. +The default font is Courier. +.TP 0.75i +.OP \-m num +Magnify each page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which is located near the upper left corner of +each page. +The default magnification is 1.0. +.TP 0.75i +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP 0.75i +.OP \-s num +Print +.I files +using point size +.IR num . +When printing in landscape mode +.I num +is scaled by a factor that depends on the +imaging area of the device. +The default size for portrait mode is 10. +.TP 0.75i +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed near the +upper left corner of the page, with positive +x to the right and positive y down the page. +Positive +.I num +moves everything right. +The default offset is 0.25 inches. +.TP 0.75i +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves text down the page. +The default offset is 0.25 inches. +.TP 0.75i +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/hardcopy.ps . +.PP +.B hardcopy +generates paper output from data that a PostScript program +normally sends back to a host computer. +It is particularly useful for recovering data from a printer +that does not allow access to its serial port. +.SH EXAMPLES +For a list of ROM based fonts type: +.EX +echo 'FontDirectory {pop ==} forall' | hardcopy | lp \(el +.EE +To recover the version number of the PostScript interpreter: +.EX +echo 'version ==' | hardcopy -pland | lp \(el +.EE +To build and print a width table for font +.MW R +type: +.EX +trofftable -TLatin1 R | hardcopy | lp \(el +.EE +.SH WARNINGS +Results are unpredictable if the input +.I files +make changes to the graphics state. +.SH FILES +.MW \*(dQ/hardcopy.ps +.SH SEE ALSO +.BR buildtables (1), +.BR postio (1), +.BR trofftable (1) diff --git a/static/unix-v10/man1/hoc.1 b/static/unix-v10/man1/hoc.1 new file mode 100644 index 00000000..18786cd9 --- /dev/null +++ b/static/unix-v10/man1/hoc.1 @@ -0,0 +1,156 @@ +.TH HOC 1 +.CT 1 numbers +.SH NAME +hoc \(mi interactive floating point language +.SH SYNOPSIS +.B hoc +[ +.I file ... +] +.SH DESCRIPTION +.I Hoc +interprets a simple language for floating point arithmetic, +at about the level of Basic, with C-like syntax and +functions. +.PP +The named +.IR file s +are read and interpreted in order. +If no +.I file +is given or if +.I file +is +.L - +.I hoc +interprets the standard input. +.PP +.I Hoc +input consists of +.I expressions +and +.IR statements . +Expressions are evaluated and their results printed. +Statements, typically assignments and function or procedure +definitions, produce no output unless they explicitly call +.IR print . +.PP +Variable names have the usual syntax, including +.LR _ ; +the name +.L _ +by itself contains the value of the last expression evaluated. +Certain variables are already initialized: +.TP +.B E +base of natural logs +.PD0 +.TP +.B PI +.TP +.B PHI +golden ratio +.TP +.B GAMMA +Euler's constant +.TP +.B DEG +180/PI, degrees per radian +.TP +.B PREC +maximum number of significant digits in output, initially 15; +.B PREC=0 +gives shortest `exact' values. +.PD +.PP +Expressions are formed with these C-like operators, listed by +decreasing precedence. +.TP +.B ^ +exponentiation +.TP +.B ! - ++ -- +.TP +.B * / % +.TP +.B + - +.TP +.B > >= < <= == != +.TP +.B && +.TP +.B || +.TP +.B = += -= *= /= %= +.PP +Built in functions include +.BR abs , +.BR acos , +.B atan +(one argument), +.BR cos , +.BR cosh , +.BR erf , +.BR erfc , +.BR exp , +.BR gamma , +.BR int , +.BR log , +.BR log10 , +.BR sin , +.BR sinh , +.BR sqrt , +.BR tan , +and +.BR tanh . +The function +.B read(x) +reads a value into the variable +.BR x ; +the statement +.B print +prints a list of expressions that may include +string constants such as +.B \&\&\&"hello\en". +.PP +Control flow statements are +.BR if - else , +.BR while , +and +.BR for , +with braces for grouping. +Newline ends a statement. +Backslash-newline is equivalent to a space. +.PP +Functions and procedures are introduced by the words +.B func +and +.BR proc ; +.B return +is used to return with a value from a function. +Within a function or procedure, +arguments are referred to as +.BR $1 , +.BR $2 , +etc.; all other variables are global. +.SH EXAMPLES +.EX +func gcd() { + temp = abs($1) % abs($2) + if(temp == 0) return abs($2) + return gcd($2, temp) +} +for(i=1; i<12; i++) print gcd(i,12) +.EE +.SH "SEE ALSO" +.IR bc (1), +.IR dc (1) +.br +B. W. Kernighan and R. Pike, +.I +The Unix Programming Environment, +Prentice-Hall, 1984 +.SH BUGS +Error recovery is imperfect within function and procedure definitions. +.br +The treatment of newlines is not exactly user-friendly. diff --git a/static/unix-v10/man1/hostname.1 b/static/unix-v10/man1/hostname.1 new file mode 100644 index 00000000..5d4754bb --- /dev/null +++ b/static/unix-v10/man1/hostname.1 @@ -0,0 +1,16 @@ +.TH HOSTNAME 1 +.SH NAME +hostname, whoami \- computer name +.SH SYNOPSIS +.B hostname +.SH DESCRIPTION +.I Hostname +prints the computer name as used by +.IR mail (1) +or +.IR uucp (1). +.SH FILES +.TF /etc/whoami +.TP +.F /etc/whoami +file containing the computer name diff --git a/static/unix-v10/man1/hp.1 b/static/unix-v10/man1/hp.1 new file mode 100644 index 00000000..cb0ce0e5 --- /dev/null +++ b/static/unix-v10/man1/hp.1 @@ -0,0 +1,65 @@ +.TH UL 1 +.CT 1 comm_term +.SH NAME +ul, hp \- print underlines on screen terminals +.SH SYNOPSIS +.B ul +[ +.B -i +] +[ +.B -t +.I terminal +] +[ +.I file ... +] +.PP +.B hp +[ +.B -e +] +[ +.B -m +] +.SH DESCRIPTION +.I Ul +replaces backspaced, overstruck underscores by control sequences suitable +for the terminal given by the environment variable +.L TERM +or by option +.BR -t . +It reads from the standard input or the named files and +writes on the standard output. +Option +.B -i +represents underlining by a separate line of +.L - +characters. +.PP +.I Hp +is a filter that presents most +.IR nroff +output sensibly on HP 2600 series terminals. +Option +.B -s +stops and waits for a newline at the beginning of each page. +Option +.B -e +uses `display enhancement' features to distinguish +underlines, superscripts, and subscripts, +which are normally all shown in inverse video. +Option +.B -m +squeezes multiple newlines out of the output. +.SH SEE ALSO +.IR column (1) +.SH BUGS +.I Hp +does not reliably handle reverse line feeds as produced +by +.IR tbl (1); +pipe the input through +.I col +to get rid of them; see +.IR column (1). diff --git a/static/unix-v10/man1/hyphen.1 b/static/unix-v10/man1/hyphen.1 new file mode 100644 index 00000000..77daab21 --- /dev/null +++ b/static/unix-v10/man1/hyphen.1 @@ -0,0 +1,29 @@ +.pa 1 +.he 'HYPHEN (I)'1/15/73'HYPHEN (I)' +.ti 0 +NAME hyphen -- find hyphenated words +.sp +.ti 0 +SYNOPSIS hyphen______ file\d1\u ... +.sp +.ti 0 +DESCRIPTION It finds all of the words in a +document which are hyphenated across lines +and prints them back at you in a convenient format. + +If no arguments are given, the standard output +is used. +Thus hyphen______ may be used as a filter. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS yes +.sp +.ti 0 +BUGS yes, it gets confused, but with no ill effects other than +spurious extra output. diff --git a/static/unix-v10/man1/ican.1 b/static/unix-v10/man1/ican.1 new file mode 100644 index 00000000..48df33cd --- /dev/null +++ b/static/unix-v10/man1/ican.1 @@ -0,0 +1,203 @@ +.TH ICAN 1 +.CT 1 writing_output comm_dev +.SH NAME +ican, ibcan, idcan, itcan \- interface to Imagen laser-printer spooler +.SH SYNOPSIS +.B ican +[ +.I option ... +] +[ +.I file ... +] +.PP +.B ibcan +[ +.I option ... +] +[ +.I file ... +] +.PP +.B idcan +[ +.I option ... +] +[ +.I file ... +] +.PP +.B itcan +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +These commands print +.I files +(standard input by default) on Imagen laser printers. +The four commands +handle particular kinds of data files: +.TP +.I ican +ASCII text +.TP +.I ibcan +bitmap images created by +.IR blitblt (9.1) +.TP +.I idcan +output from +.IR troff (1) +.TP +.I itcan +output for a Tektronix 4014 terminal, as produced by +.IR plot (1) +.PP +The destination printer is determined in the following ways, +listed in order of decreasing precedence. +.IP +option +.B -d +.I dest +.br +environment variable +.L ICANDEST +.br +printer named in file +.F /etc/icandest +.LP +Printers at the mother site are: +.RS +.TP +.B 1 +1st floor, stair 8 (sid) +.PD0 +.TP +.B 3 +3rd floor, stair 8 (shannon) +.TP +.B 5 +5th floor, 2C-5 (hunny) +.TP +.B j +5th floor, 2D-5 (jones) +.TP +.BI / name +printer attached to machine with Datakit destination +.I name +.RE +.PD +.PP +Options: +.PP +.TP +.BI -c " n" +Number of copies to be printed. +.TP +.BI -d " dest" +Select the destination printer. +.TP +.BI -f " font" +Set the font (default +.LR CW.11 ) +for +.IR can ; +see +.IR font (7). +.TP +.B -L +(landscape) Rotate +.I ibcan +pages 90 degrees. +.TP +.BI -l " n" +Set number of lines per page for +.I can +(default 66). +.TP +.BI -m " n" +Set +.I ibcan +magnification to a power of 2, +where +.I n += 0, 1, or 2 +(default 1). +.TP +.BI -o " list" +Print only pages whose page numbers appear in +the comma-separated +.I list +of numbers and ranges. +A range +.IB n - m +means pages +.I n +through +.IR m ; +a range +.BI - b +means from the beginning to page +.IR n ; +a range +.IB n - +means from page +.I n +to the end. +.B -o +implies +.BR -r . +.TP +.B -r +print +pages in reverse order +(default for +.IR ican " and " idcan ). +.TP +.BI -u " user" +set the name which appears on the banner page; +default is login name. +.TP +.BI -x " n" +set the horizontal +offset of the print image, measured in dots (default 60). +There are 300 dots to the inch. +.TP +.BI -y " n" +set the vertical +offset of the print image (default 0), +except in +.I itcan, +where this option specifies +.I n +extra tekpoints vertically. +.SH FILES +.TF /usr/spool/lp +.TP +.F /etc/icandest +default destination +.PD0 +.TP +.F /usr/lib/font/devi300 +font directory +.TP +.F /usr/spool/lp +spool directory +.SH SEE ALSO +.IR pr (1), +.IR blitblt (9.1), +.IR plot (1), +.IR font (7) +.SH BUGS +The `landscape' option is supported only by +.IR ibcan ; +.BR -o +is supported only by +.I ican +and +.I idcan. +.br +There ought to be a way to determine the service class from the input data. diff --git a/static/unix-v10/man1/iclc.1 b/static/unix-v10/man1/iclc.1 new file mode 100644 index 00000000..5f1ad4cb --- /dev/null +++ b/static/unix-v10/man1/iclc.1 @@ -0,0 +1,136 @@ +.TH ICLC 1 "1 July 1988" +.SH NAME +iclc \- Esterel binder +.SH SYNOPSIS +.B iclc +[ option ] ... [ file ]... +.SH DESCRIPTION +\fIiclc\fR is the Esterel v3 binder. +It produces an \fIlc\fR format output +(or \fIic\fR if some \fBcopymodule\fP instruction +could not be expanded) from one or more \fIic\fR format inputs. +If there is no input file, the standard input is used. +\fIic\fP format input describes Esterel \fBmodules\fP to be processed, +and \fIlc\fP format output describes Esterel \fBmodules\fP with +no \fBcopymodule\fP instruction. +Typical use is: +.br +.DS +iclc < game1.ic > game.lc +.DE +.br +or +.br +.DS +iclc game1.ic game2.ic > game.lc +.DE +.LP +The following options are interpreted by \fIiclc\fP: +.IP \fB-v\fR 10 +Verbose mode. Tells what's going on. +.IP \fB-version\fR 10 +Prints the version number and exits. +.IP \fB-stat\fR 10 +Prints times and memory sizes for the main phases. +.IP \fB-memstat\fR 10 +Gives the memory allocator state at the end of processing. +.IP \fB-Rs\fR 10 +Signal renaming trace mode. +.IP \fB-Rc\fR 10 +Constant renaming trace mode. +.IP \fB-cascade\fR 10 +"Cascade" mode. Creates a file FOO.casc +using the -o, -B and -D options to find the name +(esterel.casc as a last resort). +.IP "\fB\-B\fP \fIname\fP" 10 +Basename for the auxiliary output file. +.IP "\fB-D\fP \fIname\fP" 10 +The name of the directory where the auxiliary output file will go. +For instance, +.br +iclc -D /users/john/wd -B game -cascade game*.ic +.br +will write in the file "/users/john/wd/game.casc". +.IP "\fB\-d\fP[level]" 10 +Debug mode. Barely for you. +.IP "\fB\-o\fP \fIname\fP" 10 +Names the final output file \fIname\fP (deleting the existing text). +Obsolete. +.IP \fB-\fR 10 +Specifies the standard input as input stream. Works only once. Obsolete. +.SH FILES +The caller of the command +must have read/write permission for the directories containing +the working files, and execute permission for the \fIiclc\fR file itself. +.SH DIAGNOSTICS +The diagnostics produced by \fIiclc\fR compiler are intended (as usual) +to be self-explanatory. +They have one of the following forms: +.IP +"file",line n: iclc error (or warning) : message +.IP +*** iclc: message +.IP +>>>iclc s_trace (or c_trace) : message +.LP +The first two forms are described in the \fIError Messages Manual\fR. +The last one is +generated by the -Rs or -Rc option. +The possible messages with -Rc are: +.IP "root module FOO:" +the binder begins to treat the root module FOO. +.IP "submodule /FOO/BAR:" +the binder begins to treat the module BAR, "called" +by module FOO. +.LP +CONSTANT added as @33 <<: +.IP +CONSTANT is added to the list of final +constants with number 33. The "<<" is here +to help you find later the name of constant +number 33. Just look upward for 33 followed by "<<". +.LP +CONSTANT captured by @33 in module /FOO/BAR: +.IP +CONSTANT is implicitly captured by final constant +number 33 which was defined in module /FOO/BAR. +.LP +CONSTANT replaced by @33 in module /FOO/BAR: +.IP +CONSTANT is explicitly renamed to final +constant number 33 by a copymodule instruction defined in module /FOO/BAR. +.LP +Messages generated by -Rs are alike, except that no module name is given +(all signals must be defined in the parent module). + +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: J-M. Tanzi, +CMA, Ecole des Mines de Paris, +.sp 0 +Sophia-Antipolis, 06600 Valbonne, FRANCE +.sp 0 +Revision Number: +$Revision: 1.3 $ +; Release Date: +$Date: 88/07/04 10:32:28 $ +\&. +.SH SEE ALSO +Esterel v3 Programming Language Manual +.sp 0 +Esterel v3 System Manuals. +.sp 0 +strlic (1), lcoc(1), ocl (1). +.sp 0 +.SH BUGS +.IP - +error messages should point to the Esterel source code +and not to an intermediate code input file. +.IP - +there is no error message if the same signal or constant +appears more than once in a renaming list. Only one renaming +is applied, however. +.IP - +the "cascade" mode in not fully implemented. diff --git a/static/unix-v10/man1/icon.1 b/static/unix-v10/man1/icon.1 new file mode 100755 index 00000000..34b3fa86 --- /dev/null +++ b/static/unix-v10/man1/icon.1 @@ -0,0 +1,162 @@ +.TH ICON 1 "630 MTG" +.SH NAME +icon \- interactive icon drawing program +.SH SYNOPSIS +.B icon +[ \fB\-x\fR m ] [ \fB\-y\fR n ] [ \fB\-c\fR ] +.SH DESCRIPTION +The +.I icon +utility +is a menu-driven interactive icon and picture drawing program. +It runs under +.I layers +using the "mouse" and keyboard for command and text entry. +The default \fIicon\fR display consists of a 50X50 cell grid in the +lower right-hand corner of the layer in which +.I icon +is invoked. By invoking \fIicon\fR with the \fB\-x\fR and \fB\-y\fR flags, +the grid size may be specified to be \fIm\fRX\fIn\fR, overriding the default. +Each cell in this grid corresponds to a single bit in the +.I icon +being created or edited. +In the upper left-hand corner of the layer, +an actual size view of the icon is displayed. +.P +The \f3\-c\f1 option causes icon to be cached in the 630 MTG +application cache. +.P +The grid size parameters \f2m\f1 and \f2n\f1 must be in the +range of 1 to 480. A parameter larger than 480 is reduced to +480, and a parameter smaller than 1 is set to the default +value of 50. +.P +If icon is invoked in a window that is too small for the +specified grid size, icon will display a grid icon in +the upper left corner of the window along with a message +``menu on button 2''. The window must be reshaped before icon +will continue. At this point a menu on button 2 will contain a +reshape selection. If selected, icon will automatically +reshape its window to a size and shape appropriate for the +grid size. Alternately, the button 3 reshape function can be +used to manually reshape the window. If at any time the window +is again reshaped to a size too small to display the selected +grid size, icon will redisplay the grid icon and the ``menu on +button 2'' message. +.P +When using icon, the meanings of the three mouse buttons are +as follows: +.TP 15 +\f3Button 1\f1 +Button 1, when depressed and held in, fills in the +grid position pointed to by the mouse cursor. +.TP +\f3Button 2\f1 +Button 2, when depressed and held in, clears the +grid position pointed to by the mouse cursor. +.TP +\f3Button 3\f1 +Button 3, when depressed, displays a matrix of icons. +By moving the cursor (now a box) over the desired icon and releasing the +button, commands will be invoked. +If the command requires a section of the grid display to be +selected, depressing button 2 will select a 16x16 grid outline. +To specify other than this 16x16 grid outline, +depress button 3 and sweep out the rectangle you wish +the command to act on. +.bp +.SS Commands +The command selection matrix icons are described below from the upper left by rows +to the bottom right. +On the bottom row is a help command designated by the word "help." +.TP 25 +\fBArrow\fR +move selection to another portion of the grid. +.TP +\fBCopier\fR +copy selection to another portion of the grid. +.TP +\fBBlack and white squares\fR +change light squares to dark and dark squares +to light (invert video). +.TP +\fBGarbage can\fR +erase. +.TP +\fBHorizontal wrap arrow\fR +flip on the x-axis. +.TP +\fBVertical wrap arrow\fR +flip on the y-axis. +.TP +\fBTo right and down arrow\fR +rotate 90 degrees clockwise. +.TP +\fBUp and to left arrow\fR +rotate 90 degrees counterclockwise. +.TP +\fBHorizontal lines\fR +shear along the x-axis. +.TP +\fBVertical lines\fR +shear along the y-axis. +.TP +\fBFour line sets\fR +stretch (expand). +.TP +\fBPinwheels\fR +take one pattern and make many copies of it. +.TP +\fBEyeglasses\fR +read an icon file. +.TP +\fBGrid\fR +draw a reference grid. +.TP +\fBMouse\fR +change current mouse cursor to selected 16 x 16 grid. +.TP +\fBQuill pen\fR +write an icon file. +.TP +\fBGrid, arrow to grid\fR +bitblt operator. +.TP +\fBHELP\fR +prints the help menu. +.TP +\fBSmoking gun\fR +exit the \fIicon\fR program. +.SS Cursor Icons +The following are status indicator icons that the mouse cursor changes to +under various conditions: +.TP 25 +\fBAlarm clock\fR +wait. +.TP +\fBDead Mouse\fR +mouse inactive. +.TP +\fBDark square in stack\fR +menu on button 3. +.TP +\fBSquare with arrow\fR +sweep rectangle (button 3). +.TP +\fBDouble square with arrow\fR +sweep rectangle (button 3) +or get 16x16 grid frame (button 2). +.bp +.SH FILES +.ta \w'$DMD/src/icons/texture/* 'u +$DMD/lib/icon.m terminal support program +.br +$DMD/icons/* icons +.SH SEE ALSO +ucache(1). +.br +layers(1) in the +\f2UNIX System V Release 3 User's Reference Manual\f1. +.br +layers(1) in the +\f25620 Dot-Mapped Display Reference Manual\f1. diff --git a/static/unix-v10/man1/icon_pi.1 b/static/unix-v10/man1/icon_pi.1 new file mode 100644 index 00000000..2fc07e27 --- /dev/null +++ b/static/unix-v10/man1/icon_pi.1 @@ -0,0 +1,205 @@ +.ds M \fH +.de Ds +.nf +.in +.5i +.ft H +.sp .5 +.. +.de De +.ft R +.in -.5i +.fi +.sp .5 +.. +.TH ICON_PI 1 "The University of Arizona \- 5/6/86" +.SH NAME +icon_pi \- construct personalized interpreter for Icon +.SH SYNOPSIS +\*Micon_pi\fR +.SH DESCRIPTION +A personalized interpreter is +a version of Icon in which the run-time system can be easily +augmented and modified by the user. +.PP +To set up a personalized interpreter, a new directory should +be created solely for the use of the interpreter; otherwise +files may be accidentally destroyed by the set-up process. +For the purpose of example, suppose this directory is +named \*Mmyicon\fR. The set-up process consists of +.Ds +mkdir myicon +cd myicon +icon_pi +.De +Note that \*Micon_pi\fR must be run in the area in which the personalized +interpreter is to be built. +.PP +The shell script \*Micon_pi\fR constructs three subdirectories: +\*Mh\fR, \*Mstd\fR, and \*Mpi\fR. The subdirectory \*Mh\fR +contains header files that are needed in C routines. The subdirectory +\*Mstd\fR contains the portions of the Icon system that are needed +to build a personalized interpreter. The subdirectory \*Mpi\fR +contains a \*MMakefile\fR for building a personalized interpreter +and also is the place where source code for new C functions normally +resides. +.PP +The \*MMakefile\fR that is constructed by \*Micon_pi\fR +contains two definitions to facilitate building personalized +interpreters: +.IP \*MOBJS\fR .5i +a list of object modules that are to be added to or replaced +in the run-time system. \*MOBJS\fR initially is empty. +.IP \*MLIB\fR +a list of library options that are used when the run-time system +is built. \*MLIB\fR initially is empty. +.PP +Performing a \fImake\fR in \*Mmyicon/pi\fR creates four additional files +in \*Mmyicon\fR: +.Ds +.ta 1i +picont \fRcommand processor\*M +pilink \fRlinker\*M +piconx \fRrun-time system\*M +piconx.hdr \fRheader for linker output\*M +.De +A link to \*Mpicont\fR also is constructed in \*Mmyicon/pi\fR so that +the new personalized interpreter can be tested in the directory in +which it is made. +.PP +The file \*Mpicont\fR normally is built only on the first \fImake\fR. The +file \*Mpilink\fR is built on the first \fImake\fR and is +rebuilt whenever the repertoire of built-in functions is changed. +The file \*Mpiconx\fR is rebuilt whenever the source code in the +run-time system is changed. +.PP +The user of the personalized interpreter uses \*Mpicont\fR in +the same fashion that the standard \*Micont\fR; see \fIicont(1)\fR. +(Note that the accidental use of \*Micont\fR in place of +\*Mpicont\fR may produce mysterious results.) +In turn, \*Mpicont\fR translates a source program using the +standard Icon translator and links it using \*Mpilink\fR. +The resulting icode file uses \*Mpiconx\fR. +Note that the location of \*Mpiconx\fR is built into the icode file. +.PP +The relocation bits and symbol tables in +\*Mpiconx\fR can be removed by +.Ds +make Stripx +.De +in \*Mmyicon/pi\fR. This reduces the size of this file substantially +but makes the use of debuggers impractical. +.PP +If a \fImake\fR is performed in \*Mmyicon/pi\fR before any +run-time files are added or modified, the resulting personalized +interpreter is identical to the standard one. Such a \fImake\fR can +be performed to verify that the personalized interpreter system +is performing properly. +.PP +Note that a personalized interpreter inherits the parameters and +configuration of the locally installed version of Icon in \*Mv6\fR, including +optional language extensions. +The file \*Mmyicon/h/config.h\fR contains configuration information. +The definitions in this file should not be changed. +.PP +To add a new function to the personalized interpreter, it is first +necessary to provide the C code, adhering to the conventions and +data structures used throughout Icon. +Some useful functions are +contained in \*Mv6/pi/pil\fR, where \*Mv6\fR is the root +of the source hierarchy for the Icon system. +The directory +\*Mv6/src/iconx\fR contains the source code for the standard built-in +functions, which also can be used as models for new ones. +.PP +Suppose that \*Mgetenv\fR from \*Mv6/pi/pil\fR is to be +added to a personalized interpreter. The source code can be obtained by +.Ds +cp v6/pi/pil/getenv.c myicon/pi +.De +(Note that the actual paths depend on the +local hierarchy.) +.PP +Four things now need to be done to +incorporate this function in the personalized interpreter: +.IP 1. 5n +Add a line consisting of +.Ds +FncDef(getenv) +.De +to \*Mmyicon/h/fdef.h\fR in proper alphabetical order. +This causes the linker and the run-time system to know about the new function. +.IP 2. +Add \*Mgetenv.o\fR to the definition of \*MOBJS\fR in +\*Mmyicon/pi/Makefile\fR. +This causes \*Mgetenv.c\fR to be compiled and the resulting +object file to be loaded with the run-time system when a \fImake\fR is performed. +.IP 3. +Add a dependency line in \*Mmyicon/pi/Makefile\fR for \*Mgetenv.o\fR +to reflect the file that it includes, namely +.Ds +getenv.o: ../h/rt.h +.De +.IP 4. +Perform a \fImake\fR in \*Mmyicon/pi\fR. +This produces +new versions of \*Mpilink\fR and \*Mpiconx\fR in \*Mmyicon\fR. +.LP +The function \*Mgetenv\fR now can be used like any other built-in +function. +.PP +More than one function can be included in a single source file. +If a function requires a library to be loaded, that library should +be added to the definition of \*MLIB\fR in the \*MMakefile\fR. +.PP +The use of personalized interpreters is not limited to the addition +of new functions. Any module in the standard run-time system can +be modified as well. +To modify an existing portion of the Icon run-time system, +copy the source code file from the standard system to \*Mmyicon/pi\fR. +(Source code for a few run-time routines is placed in \*Mmyicon/std\fR +when a personalized interpreter is set up. Check this directory +first and use that file, if appropriate, rather than making +another copy in \*Mmyicon/pi\fR.) When a source-code file in +\*Mmyicon/pi\fR has been modified, place it in the \*MOBJS\fR +list just like a new file and perform a \fImake\fR. Note that +an entire module must be replaced, even if a change is made to +only one routine. +Any module that is replaced must contain all the global variables in +the original module to prevent \fIld(1)\fR from also loading the +original module. There is no way to delete routines from the run-time +system. +.PP +The directory \*Mmyicon/h\fR contains header files that are included +in various source-code files. +The file \*Mmyicon/h/rt.h\fR contains declarations and definitions that +are used throughout the run-time system. This is where the declaration +for the structure of a new type of data object would be placed. +.PP +Care +must be taken when modifying header files not to make changes that +would produce inconsistencies between previously compiled components +of the Icon run-time system and new ones. +.SH FILES +.ta 1i +.nf +\*Mv6/pi\fR code for building personalized interpreters +\*Mv6/src/iconx\fR run-time system +.fi +.SH SEE ALSO +icont(1) +.LP +\fIPersonalized Interpreters for Version 6.0 of Icon\fR, Ralph E. +Griswold, TR 86-12, Department of Computer Science, The University +of Arizona, May 1986. +.LP +\fIThe Icon Programming Language\fR, +Ralph E. Griswold and Madge T. Griswold, +Prentice-Hall Inc., +Englewood Cliffs, New Jersey, +1983. +.LP +\fIVersion 6.0 of Icon\fR, Ralph E. Griswold, William H. Mitchell, and +Janalee O'Bagy, +TR 86-10, +Department of Computer Science, The University of Arizona, +May 1986. diff --git a/static/unix-v10/man1/icont.1 b/static/unix-v10/man1/icont.1 new file mode 100644 index 00000000..bf252d5c --- /dev/null +++ b/static/unix-v10/man1/icont.1 @@ -0,0 +1,267 @@ +.ds M \fH +.de Ds +.nf +.in +.5i +.ft H +.sp .5 +.. +.de De +.ft R +.in -.5i +.fi +.sp .5 +.. +.TH ICONT 1 "The University of Arizona \- 5/27/86" +.SH NAME +icont \- process Icon programs +.SH SYNOPSIS +\*Micont\fR +[ option ... ] file ... [ +\*M\-x\fR +arg ... ] +.SH DESCRIPTION +The program \*Micont\fR +is a command processor for running Version 6.0 Icon programs. +Used in its simplest form, +it produces a file suitable for interpretation by the Icon +interpreter. +Processing consists of two phases: +\fItranslation\fR +and +\fIlinking\fR. +During translation, +each Icon source file is translated into an intermediate language called \fIucode\fR; +during linking, +the one or more ucode files are combined and a single +\fIicode\fR file is produced. +Unless the +\*M\-o\fR +option is specified, the name of the resulting icode file is +formed by deleting the suffix of the first input file named on the +command line. +If the +\*M\-x\fR +argument is used, +the file is automatically executed by the interpreter +and any arguments following the +\*M\-x\fR +are passed as execution arguments to the Icon program itself. +.PP +Files whose names end in \*M.icn\fR are assumed to be Icon source programs. +These programs are translated, and the intermediate code is left in two ucode files of +the same name with \*M.u1\fR and \*M.u2\fR substituted for \*M.icn\fR. +The ucode code files normally are deleted when \*Micont\fR completes. +Files whose names end in \*M.u1\fR are assumed to refer to ucode +files from a previous translation; these files and the corresponding \*M.u2\fR +files are included in the linking phase after any \*M.icn\fR +files have been translated. +A \*M.u1\fR or \*M.u2\fR file that is explicitly named is not deleted. +Icon source programs may be read from standard input. +The argument +\*M\-\fR +signifies the use of standard input as a source file. +In this case, the ucode files are named \*Mstdin.u1\fR and \*Mstdin.u2\fR +and the icode file is named \*Mstdin\fR. +.PP +The following options are recognized by +\*Micont\fR: +.TP 4 +\*M\-c\fR +Suppress the linking phase. +The ucode code files are not deleted. +.TP +\*M\-m\fR +Preprocess each \*M.icn\fR source file +with the \fIm4\^(1)\fR +macro processor before translation. +.TP +\*M\-o \fIoutput\fR +Name the icode file +\fIoutput\fR. +.TP +\*M\-s\fR +Suppress informative messages from the translator and +linker. +Normally, both informative messages and error messages are sent +to standard error output. +.TP +\*M\-t\fR +Arrange for \*M&trace\fR to have an initial value of \-1 +when the program is executed. +Normally, \*M&trace\fR has an initial value of 0. +.TP +\*M\-u\fR +Issue warning messages for undeclared identifiers in the program. +The warnings are issued during the linking phase. +.PP +Icon has several tables related to the translation and linking +of programs. +These tables are large enough for most programs, but their sizes can be +changed, if necessary, by the \*M\-S\fR option. This option has the +form \*M\-S\^[cfgilrstCL]\fI n\fR, where the letter following the +\*MS\fR specifies the table and \fIn\fR is the number of storage units to +allocate for the table. +Some sizes depend on the size of the address space of the computer. +For this purpose, a VAX has a large address space, +while a PDP-11 has a small address space. +The tables and their default sizes for computers +with large and small memory sizes are: +.nf +.in +.5i +.sp +.ta .3i 2.5iR 3.3iR + \fIlarge small\fR +.sp .5 +\*Mc\fR constant table 100 100 +\*Mf\fR field table 100 100 +\*Mg\fR global symbol table 200 200 +\*Mi\fR identifier table 500 500 +\*Ml\fR local symbol table 100 100 +\*Mr\fR field table for records 100 100 +\*Ms\fR string space 15,000 7,500 +\*Mt\fR tree space 15,000 5,000 +\*MC\fR code buffer 20,000 4,000 +\*ML\fR labels 500 500 +.sp +.in -.5i +.fi +The units depend on the table involved, but the default values can +be used as a general guide for appropriate settings of \*M\-S\fR +options without knowing the units. +.PP +The environment variable \*MIPATH\fR controls the location of files +specified in link directives. The value of \*MIPATH\fR should be a blank-separated +form \fIp1\0p2 \*(El\0 pn\fR where the \fIpi\fR name directories. +Each directory is searched in turn to locate files named in link +directives. The default value for \*MIPATH\fR is \*M.\fR , that is, the current +directory. +.PP +The icode +file produced by the Icon linker is +executable. +\fRFor example, the command +.nf +.in +.5i +\*M +.sp -.5 +icont hello.icn +.ft R +.in -.5i +.sp .5 +.fi +produces a file named \*Mhello\fR +that can be run by the command +.nf +.in +.5i +\*M +.sp -.5 +hello +.ft R +.in -.5i +.sp .5 +.fi +.PP +Arguments can be passed to the Icon program by following the program +name with the arguments. Any such arguments are passed to the main +procedure as a list of strings. +.PP +When an Icon program is executed, several environment variables +are examined to determine certain execution parameters. +The values assigned to these variables should be numbers. +The variables that affect execution +and the interpretations of their values are as follows: +.TP 4 +\*MTRACE\fR +Initialize the value of \*M&trace\fR. +If this variable has a value, it overrides the translation-time +\*M\-t\fR +option. +.TP +\*MNBUFS\fR +The number of i/o buffers to use for files. +When a file is opened, it is assigned an i/o buffer if one is available +and the file is not a tty. +If no buffer is available, the file is not buffered. +\*M&input\fR, \*M&output\fR, and \*M&errout\fR are buffered if buffers +are available. +On large-memory systems, the default value of \fINBUFS\fR is 10. +On small-memory systems, it is 5. +.TP +\*MNOERRBUF\fR +If set, \*M&errout\fR is not buffered. +.TP +\*MICONCORE\fR +If set, a core dump is produced for error termination. +.TP +\*MSTRSIZE\fR +The initial size of the string space, in bytes. +The string space grows if necessary, but it never shrinks. +On large-memory systems, the default value of \*MSTRSIZE\fR is 51,200; +on small-memory systems, it is 10,240. +.TP +\*MHEAPSIZE\fR +The initial size of the allocated block region, in bytes. +The heap grows if necessary, but it never shrinks. +On large-memory systems, the default value of \*MHEAPSIZE\fR is 51,200; +on small-memory systems, it is 10,240. +.TP +\*MCOEXPSIZE\fR +The size, in words, of each co-expression block. +On large-memory systems, the default value of \*MCOEXPSIZE\fR is 2,000; +on small-memory systems, it is 1,000. +.TP +\*MMSTKSIZE\fR +The size, in words, of the main interpreter stack. On large-memory +systems, the default value of \*MMSTKSIZE\fR is 10,000; +on small-memory systems, it is 3,000. +.TP +\*MSTATSIZE\fR +The size, in bytes, of the static region in which co-expression blocks +are allocated. On large-memory systems, the default value of \*MSTATSIZE\fR +is 20,480; on small-memory systems, it is 1,024. +.TP +\*MSTATINCR\fR +The size of the increment used when the static region is expanded. +The default increment is one-fourth of the initial size of the static +region. +.SH FILES +.ta \w'\*Mitran\fR 'u +\*Micont\fR Icon command processor +.br +\*Mitran\fR Icon translator +.br +\*Milink\fR Icon linker +.br +\*Miconx\fR Icon run-time system +.br +.SH SEE ALSO +\fIThe Icon Programming Language\fR, +Ralph E. Griswold and Madge T. Griswold, +Prentice-Hall Inc., +Englewood Cliffs, New Jersey, +1983. +.LP +\fIVersion 6.0 of Icon\fR, Ralph E. Griswold, William H. Mitchell, +and Janalee O'Bagy, +TR 86-10, +Department of Computer Science, The University of Arizona, +May 1986. +.LP +m4\^(1), icon_pi(1) +.SH BUGS +.LP +Icode files do not stand alone; the Icon run-time system must be +present. +An icode +file produced on one system will not work on another system unless +the Icon run-time system is in the same place on both systems and +the run-time system is of the same version of Icon as the linker +that produced the icode file. +.LP +Stack overflow is checked using a heuristic that is not always effective. +.LP +If the +\*M\-m\fR +option is used, +line numbers reported in error messages or tracing messages +are from the file after, not before, preprocessing. diff --git a/static/unix-v10/man1/ideal.1 b/static/unix-v10/man1/ideal.1 new file mode 100644 index 00000000..38f6740a --- /dev/null +++ b/static/unix-v10/man1/ideal.1 @@ -0,0 +1,380 @@ +.TH IDEAL 1 +.CT 1 writing_troff graphics +.SH NAME +ideal \(mi troff preprocessor for drawing pictures +.SH SYNOPSIS +.B ideal +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Ideal +is a constraint-based +.IR troff (1) +preprocessor for typesetting figures in the complex plane. +A line beginning +.L .IS +marks the start of an +.I ideal +program, +.B .IE +or +.BR .IF +marks the end. +.B .IE +leaves the typesetting baseline below the bottom of the picture; +.B .IF +(flyback) leaves it at the top. +The options are +.TP +.BI -T dev +Produce instructions for +.IR troff (1) +device +.I dev. +.B -a +is a synonym for +.BR -Taps ; +.B -t +for +.BR -T202 . +.TP +.B -tex +Produce output for +.IR tex (1). +.TP +.B -p +Produce +.IR plot (1) +instructions. +Erases come unbidden at every +.BR .IS . +.TP +.B -4 +Produce instructions for a Tektronix +4014 and wait at each +.B .IE +for an input character +before erasing and starting the next picture. +.TP +.B -n +Produce raw +.IR ideal +output, which passes unharmed through +.I nroff. +.TP +.B -v +Print calculated values of variables on standard error. +.PP +.I Ideal +programs are built of +`boxes'; +boxes look like C functions, +in that they are named and delimited by braces. +They may include the following kinds of statements, +each terminated by a semicolon: +.TF spline +.TP +.B var +declares one or more complex variables local to the box. +Variable names are made up of letters and digits, and +start with a letter; do not use any of the following +keywords as variable names: +.LR at , +.LR bdlist , +.LR boundary , +.LR box , +.LR conn , +.LR construct , +.LR draw , +.LR exterior , +.LR interior , +.LR left , +.LR opaque , +.LR put , +.LR right , +.LR spline , +.LR text , +.LR to , +.LR using , +.L var +.TP +.I equation +declares relative positions of significant points of the box +.TP +.B conn +asks for a straight-line path through named points +.TP +.B pen +asks for a box to be replicated along a line between two points +.TP +.B left +left-justifies text with respect to a point +.TP +.B text +centers text with respect to a point +.TP +.B right +right-justifies text with respect to a point +.TP +.B spline +draws a spline guided by the named points +.TP +.B put +asks for an instance of a box to be drawn +.TP +.B opaque +asks for a box to erase lines already in the picture that +are covered by its bounding polygon +.TP +.B boundary +specifies the bounding polygon for an opaque box +.TP +.B construct +builds a partial picture on a separate `sheet of paper' +.TP +.B draw +adds the contents of the named constructed box to the current picture +.PD +.PP +.I Ideal +expects all components of a picture to be specified as boxes; +instructions to draw the entire picture should comprise a box called +.LR main . +Boxes are remembered across +.BR .IS / .IE +boundaries; +if you won't need a box again, you can reclaim the +space it requires by including the command +.BI ...forget " boxname" +on a line between any +.BR .IS / .IE +pair after the last use of +.I boxname. +Box +.L main +is an exception to this rule: +it is always forgotten at +.BR .IE . +.PP +During its first pass, +.I ideal +solves all the equations to determine the locations of all points +it needs to know. +These equations must be linear equations in complex variables, +although they may include non-linear operators: +.I ideal +plugs in for as many variables, and does as much function evaluation, +as it can before solving the linear equation. +It waits until it has absolutely no hope of reducing an equation +to a linear equation before complaining. +.I Ideal +knows about the following functions: +.TF f[z,w] +.TP +.IB f [ z , w ] +.I == z+(w-z)f, +fraction +.I f +of the way from +.I z +to +.I w +.TP +.BI re( z ) +real part of complex number +.TP +.BI im( z ) +imaginary part of complex number +.TP +.BI conj( z ) +complex conjugate of complex number +.TP +.BI abs( z ) +absolute value (modulus) of complex number +.TP +.BI cis( z ) +the unit vector +.if n .ig +$cos^x~+~i^sin^x$, +.. +.if t .ig +cos(x) + i*sin(x) +.. +where +.IR x " = re(" z ) +and +.I x +is measured in degrees +(radians if the line +.B ...radians +appeared more +recently in the file than the line +.BR ...degrees ) +.TP +.BI E( x ) +.RI "== cis(360 x ) +if +.I x +is measured in degrees +.TP +.BI angle( z ) +angle of complex number, +.RI arctan(im( z )/re( z )) +.PD +.PP +During the second pass, +.I ideal +draws the picture. +.PP +To draw a circle, +include the line +.B ...libfile circle +between the +.B .IS +and +.B .IE +lines, +and +.B put +the box named +.LR circle , +giving enough information that +the circle can be determined; +for instance, give the center and the radius, +or give three points through which the circle passes, +or give the center and a point on the circle. +The circle has center +.LR center , +radius +.LR radius , +and passes through +.BR z1 , +.BR z2 , +and +.B z3. +.PP +To draw an arc, +include the line +.B ...libfile arc +between the +.B .IS +and +.B .IE +lines, +and +.B put +the box named +.LR arc , +again giving enough information to determine the arc; +for instance, give the center, radius, and starting and ending angles, +or give three points on the arc--where to start, where to end, and somewhere +in between. +The arc has center +.LR center , +radius +.LR radius , +starts at point +.LR start , +passes through point +.L midway +at angle +.LR midang , +and +ends at point +.L end +at angle +.LR endang . +If no +.L midway +is specified, the arc is drawn counterclockwise from +.L start +to +.LR end . +.PP +The picture will be scaled to a default width of four inches +and centered in a column of six inches. +The default width can be changed by a +.B ...width +command, +which includes a number in inches. +The default column width can be changed by a +.B ...colwid +command. +To defeat +.I ideal's +notion of the size of the picture, you can include lines of +the form +.BR ...minx , +.BR ...miny , +.BR ...maxx , +or +.BR ...maxy ; +these give the various coordinates of the bounding box of the +picture in the coordinate system used by the picture. +.PP +.I Ideal +supports both C-style comments (between +.L /* +and +.L */ +brackets \(em which nest), +and shell-style comments (between +.L # +and newline). +.SH EXAMPLES +.EX +.mk +\&...libfile circle +triangle { + var z1, z2, z3; + conn z1 to z2 to z3 to z1; +} +main { + put T: triangle { + z1 = 0; z2 = 1; z3 = (2,2); + } + put circle { + z1 = T.z1; z2 = T.z2; z3 = T.z3; + } +} +.EE +.de xx +.. +.if n .ig xx +.rt +.IS +...width 6 +...libfile circle +...minx -8 +triangle { + var z1, z2, z3; + conn z1 to z2 to z3 to z1; +} +main { + put T: triangle { + z1 = 0; z2 = 1; z3 = (2,2); + } + put circle { + z1 = T.z1; z2 = T.z2; z3 = T.z3; + } +} +.IE +.xx +.SH "SEE ALSO" +.IR troff (1), +.IR pic (1), +.IR ped (9.1), +.IR doctype (1) +.br +C. J. Van Wyk, +`IDEAL User's Manual', +this manual, Volume 2 +.SH BUGS +.I Ideal +is relatively unforgiving about syntax errors. +.br +Bounding box computation is naive for arcs and text strings. diff --git a/static/unix-v10/man1/idiff.1 b/static/unix-v10/man1/idiff.1 new file mode 100644 index 00000000..2a8047eb --- /dev/null +++ b/static/unix-v10/man1/idiff.1 @@ -0,0 +1,77 @@ +.TH IDIFF 1 +.CT 1 files dirs +.SH NAME +idiff \(mi interactive file comparison +.SH SYNOPSIS +.B idiff +[ +.I option +] +.I file1 file2 +.SH DESCRIPTION +.I Idiff +compares +.I file1 +with +.I file2 +using +.IR diff , +then presents each set of changed lines +for selection or processing. +.I File2 +may be a directory; +in that case, the basename of +.I file1 +is appended. +.PP +For each group, legal responses are +.TP +.B < +to retain the `from' lines +.TP +.B > +to retain the `to' lines +.TP +.B e +to edit both sets of lines +.TP +.B d +to delete both sets +.TP +.B 1 +to retain the rest of the `from' file +.TP +.B 2 +to retain the rest of the `to' file +.TP +.B ! +to invoke a shell command +.PP +Lines that compare equal are copied verbatim from +.I file1. +Lines produced by this process, +including the lines written from within the editor, +are written to file +.IR idiff.out . +Comparison may be affected by the +.IR diff (1) +options +.TP +.B -b +Ignore trailing blanks (spaces and tabs) and treat other +strings of blanks as if they were a single space. +.TP +.B -B +Ignore all blanks. +.SH FILES +.TF /tmp/idiff.* +.TP +.F idiff.out +.TP +.F idiff.* +.TP +.F /tmp/idiff.* +.SH SEE ALSO +.IR diff (1) +.SH BUGS +There is no way to revisit a choice. diff --git a/static/unix-v10/man1/if.1 b/static/unix-v10/man1/if.1 new file mode 100644 index 00000000..917ec740 --- /dev/null +++ b/static/unix-v10/man1/if.1 @@ -0,0 +1,76 @@ +.pa 1 +.he 'IF (I)'3/15/72'IF (I)' +.ti 0 +NAME if -- conditional command +.sp +.ti 0 +SYNOPSIS if__ expr command [ arg918 ... ] +.sp +.ti 0 +DESCRIPTION if__ +evaluates the expression expr____, and if its value is true____, +executes the given command_______ with the given arguments. + +The following primitives are used to construct +the expr____: + +.in +9 +.ti -4 +-r__ file +.br +true if the file exists and is readable. + +.ti -4 +-w__ file +.br +true if the file exists and is writable + +.ti -4 +s1 =_ s2 +.br +true if the strings s1__ and s2__ are equal. + +.ti -4 +s1 !=__ s2 +.br +true if the strings s1__ and s2__ are not equal. + +.in -9 +These primaries may be combined with the +following operators: + +.in +5 +!_ +.ti +4 +unary negation operator + +-a__ +.ti +4 +binary and___ operator + +-o__ +.ti +4 +binary or__ operator + +(_ expr )_ +.ti +4 +parentheses for grouping. + +.in -5 +-a__ has higher precedence than -o__. +Notice that all the operators and flags are separate +arguments to if__ and hence must be surrounded by spaces. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO sh(I) +.sp +.ti 0 +DIAGNOSTICS "if error", +if the expression has the wrong syntax; +"command not found." +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/imscan.1 b/static/unix-v10/man1/imscan.1 new file mode 100644 index 00000000..0aaaf98a --- /dev/null +++ b/static/unix-v10/man1/imscan.1 @@ -0,0 +1,51 @@ +.TH IMSCAN 1 "arend" +.CT 1 graphics +.SH NAME +imscan \(mi scan greyscale images +.SH SYNOPSIS +.B imscan +[ +.BI -s N +] +[ +.BI -l N +] +.I file +.SH DESCRIPTION +.I Imscan +digitizes an image with an Imagitex grey-scale scanner +and places the result in the named file in the form of +.IR picfile (5). +The options are +.TP +.BI -s N +Set a scale factor +.RI 1\(<= N \(<=9, +default 4. +With scale factor +.I N +the image is subsampled: only 1 out of every +.I N\(muN +pixels is stored. +A larger scale factor, therefore, produces a smaller image. +.TP +.BI -l N +Use lens focal length +.I N, +where +.I N +is either 5 or 8 (default). +The 8-inch lens scans images at 480 dots per inch. +The 5-inch lens scans at 754 dots per inch. +.SH "SEE ALSO" +.IR cscan (1), +.IR pico (1), +.IR qsnap (1), +.I mugs +in +.IR face (9.7), +.IR picfile (5) +.SH BUGS +It is hard to get more than 2000 pixels per scanline reliably. +For large originals, higher scale factors work better than +smaller ones. diff --git a/static/unix-v10/man1/inews.1 b/static/unix-v10/man1/inews.1 new file mode 100644 index 00000000..15bb55a6 --- /dev/null +++ b/static/unix-v10/man1/inews.1 @@ -0,0 +1,151 @@ +.TH INEWS 1 +.SH NAME +inews \- submit news articles +.SH SYNOPSIS +.B inews +[ +.B \-h +] +.B \-t +.IR title " [ " +.B \-n +.IR newsgroups " ] [ " +.B \-e +.IR "expiration date" " ]" +.PP +.B "inews \-p" +.RI " [ " filename " ] " +.PP +.BI "inews \-C " newsgroup +.SH DESCRIPTION +.I Inews +submits news articles to the USENET news +network. +It is intended as a raw interface, not as a human user interface. +Casual users should probably use +.IR postnews (1) +instead. +.PP +The first form is for submitting user articles. +The body will be read from the standard +input. A +.I title +must be specified as there is no default. Each article +belongs to a list of newsgroups. If the +.B \-n +flag is omitted, the list +will default to something line +.IR general . +(On ours, it is +.IR general .) +If you wish to submit +an article in multiple newsgroups, the +.I newsgroups +must be separated by commas and/or spaces. +If not specified, the expiration date will be +set to the local default. +The +.B \-f +flag specifies the article's sender. Without this flag, the sender +defaults to the user's name. +If +.B \-f +is specified, the real sender's name will be included as a Sender line. +The +.B \-h +flag specifies that headers are present at the beginning of the +article, and these headers should be included with the article +header instead of as text. +(This mechanism can be used to edit headers and supply additional +nondefault headers, but not to specify certain information, +such as the sender and article ID, that inews itself generates.) +.LP +When posting an article, the environment is checked for +information about the sender. +If NAME is found, its value is used for the full name, +rather than the system value (often in /etc/passwd). +This is useful if the system value cannot be set, or when +more than one person uses the same login. +If ORGANIZATION is found, the value overrides the system +default organization. +This is useful when a person uses a guest login and is +not primarily associated with the organization owning the machine. +.LP +The second form is used for receiving articles from other machines. +If +.I filename +is given, the article will be read from the specified file; otherwise +the article will be read from the standard input. An expiration date +need not be present and a receival date, if present, will be ignored. +.LP +After local installation, inews will transmit the article to all systems +that subscribe to the newsgroups that the article belongs to. +.LP +The third form is for creating new newsgroups. On some systems, this may +be limited to specific users such as the super-user or news administrator. +(This happens on ours.) +.LP +If the file /usr/lib/news/recording is present, it is taken as a list of +"recordings" to be shown to users posting news. +(This is by analogy to the recording you hear when you dial information +in some parts of the country, asking you if you really wanted to do this.) +The file contains lines of the form: +.br + newsgroups filename +.br +for example: +.br + net.all net.recording + fa.all fa.recording +.br +Any user posting an article to a newsgroup matching the pattern on +the left will be shown the contents of the file on the right. +The file is found in the LIB directory (often /usr/lib/news). +The user is then told to hit DEL to abort or RETURN to proceed. +The intent of this feature is to help companies keep proprietary +information from accidently leaking out. +.SH FILES +.PD 0 +.TP 25 +/usr/spool/news/.sys.nnn +temporary articles +.TP 25 +.RI /usr/spool/news/ newsgroups / article_no. +Articles +.TP 25 +/usr/spool/oldnews/ +Expired articles +.TP 25 +/usr/lib/news/active +List of known newsgroups and highest local article numbers in each. +.TP 25 +/usr/lib/news/seq +Sequence number of last article +.TP 25 +/usr/lib/news/history +List of all articles ever seen +.TP 25 +/usr/lib/news/sys +System subscription list +.PD +.SH "SEE ALSO" +Mail(1), +binmail(1), +getdate(3), +msgs(1), +news(5), +newsrc(5), +postnews(1), +readnews(1), +recnews(1), +sendnews(8), +uucp(1), +uurec(8), +.SH AUTHORS +Matt Glickman +.br +Mark Horton +.br +Stephen Daniel +.br +Tom R. Truscott diff --git a/static/unix-v10/man1/init.1 b/static/unix-v10/man1/init.1 new file mode 100644 index 00000000..77aff09e --- /dev/null +++ b/static/unix-v10/man1/init.1 @@ -0,0 +1,16 @@ + 1 2 3 4 + 5 6 + 7 +if +for +else +while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +1 2 3 if +4 5 0 for +6 7 8 else +9 10 11 while +0 0 0 diff --git a/static/unix-v10/man1/intro.1 b/static/unix-v10/man1/intro.1 new file mode 100644 index 00000000..9c10c446 --- /dev/null +++ b/static/unix-v10/man1/intro.1 @@ -0,0 +1,34 @@ +.TH INTRO 1 +.SH NAME +intro \- introduction to commands +.SH DESCRIPTION +This section describes publicly accessible commands +in alphabetic order. +.PP +The name of a particular machine at the head of the +page means that the command lives there and not necessarily +elsewhere. +`Local' means the same, without being specific about where. +.SH SEE ALSO +Section (7) for databases. +.br +Section (8) for `hidden' commands for booting, maintenance, etc. +.br +Section (9) for commands that involve the Teletype 5620 terminal. +.br +.I How to get started, +in the Introduction. +.SH DIAGNOSTICS +Upon termination each command returns two bytes of status, +one supplied by the system giving the cause for +termination, and (in the case of `normal' termination) +one supplied by the program; +see +.IR exit (2). +The former byte is 0 for normal termination, the latter +is customarily 0 for successful execution, nonzero +to indicate troubles such as erroneous parameters, bad or inaccessible data, +or other inability to cope with the task at hand. +It is called variously `exit code', `exit status' or +`return code', and is described only where special +conventions are involved. diff --git a/static/unix-v10/man1/jim.1 b/static/unix-v10/man1/jim.1 new file mode 100755 index 00000000..f43ae986 --- /dev/null +++ b/static/unix-v10/man1/jim.1 @@ -0,0 +1,331 @@ +.TH JIM 1 "630 MTG" +.SH NAME +jim, jim.recover\- 630 MTG text editor +.SH SYNOPSIS +.B jim +[ +.B \-c +] [ files \&. \&. \&. ] +.br +\f3jim.\(**\f1 +[ +.B \-f +] [ +.B \-t +] [ files \&. \&. \&. ] +.SH DESCRIPTION +.I Jim +is the text editor for the 630 MTG terminal. +.P +It is a shared cached application if the \f3\-c\f1 option is +specified. +This means that multiple instances of jim +may run simultaneously without needing to do a download for +each instance. Once jim is downloaded it does not have to be +downloaded again. +.P +Jim relies on the mouse to select text and commands; +it runs only under +.IR layers (1). +.IR Jim 's +screen consists of a number of +.IR frames , +a one-line command and diagnostic frame at the bottom, +and zero or more larger file frames above it. +Except where indicated, these frames behave identically. +One of the frames is always the current frame, +to which typing and editing commands refer, +and one of the file frames is the working frame, +to which file commands such as pattern searching and I/O refer. +.PP +A frame has at any time a selected region of text, +indicated by reverse video highlighting. +The selected region may be a null string between two characters, +indicated by a narrow vertical bar between the characters. +The editor has a single +.I "save buffer +containing an arbitrary string. +The editing commands simply invoke transformations between the +selected region and the save buffer. +.PP +The mouse buttons are used for the most common operations. +Button 1 is used for selection. +Clicking button 1 in a frame +which is not the current frame makes the indicated frame current. +Clicking button 1 in the current frame selects the null string closest +to the mouse cursor. +Making the same null selection twice (`double clicking') selects +(in decreasing precedence) the bracketed or quoted string, word, or line +enclosing the selection. +By depressing and holding button 1, an arbitrary contiguous visible string +may be selected. +Button 2 provides a small menu of text manipulation functions, described below. +Button 3 provides control for inter-frame operations. +.PP +The button 2 menu entries are: +.TP +.B cut +Copy the selected text to the save buffer and delete it from the frame. +If the selected text is null, the save buffer is unaffected. +.TP +.B paste +Replace the selected text by the contents of the save buffer. +.TP +.B snarf +Copy the selected text to the save buffer. +If the selected text is null, the save buffer is unaffected. +.bp +.PP +Typing +replaces the selected text with the typed text. +If the selected text is not null, +the first character typed forces an implicit +.BR cut . +Control characters are discarded, but +BS (control H), +ETB (control W), +NL (control J) and ESC (escape) have special meanings. +BS is the usual backspace character, which erases the character before the selected text (which is a null string when it takes effect). +ETB erases back to the word boundary preceding the selected text. +There is no line kill character. +NL toggles the current frame between the workframe and the diagnostic +frame, and can be a substitute for manual frame selection with the +mouse. +ESC selects the text typed since the last button hit or ESC. +If an ESC is typed immediately after a button hit or ESC, +it is identical to a +.BR cut . +ESC followed by +.B paste +provides the functionality of a simple undo feature. +.PP +The button 3 menu entries are: +.TP +.B new +Create a new frame by sweeping with the mouse. +.TP +.B reshape +Change the shape of the indicated frame. +The frame is selected by clicking button 3 over the frame. +.TP +.B close +Close the indicated frame and its associated file. +The file is still available for editing later; +only the associated frame is shut down. +.TP +.B write +Write the indicated frame's contents to its associated file. +.PP +The rest of the menu is a list of file names available for editing. +To work in a different file, select the file from the menu. +If the file is not open on the screen, the cursor will switch to an +outline box to prompt for a rectangle to be swept out with button 3. +(Clicking button 3 without moving the mouse creates the largest +possible rectangle.) +If the file is already open, it will simply be made the workframe and +current frame (for typing), perhaps after redrawing if it is obscured +by another frame. +The format of the lines in the menu is: +.TP +\- +possibly an apostrophe, indicating that the file has been modified since +last written, +.TP +\- +possibly a period or asterisk, indicating the file is open (asterisk) or +the workframe (period), +.TP +\- +a blank, +.TP +\- +and the file name. +The file name may be abbreviated by compacting path components to keep +the menu manageable, but the last component will always be complete. +.bp +.PP +The work frame has a +.I "scroll bar +\(em a black vertical bar down the left edge. +A small tick in the bar indicates the relative position of the frame +within the file. +Pointing to the scroll bar and clicking a button controls scrolling +operations in the file: +.TP +button 1 +Move the line at the top of the screen to the y position of the mouse. +.TP +button 2 +Move to the absolute position in the file indicated by the y position of the mouse. +.TP +button 3 +Move the line at the y position of the mouse to the top of the screen. +.PP +The bottom line frame is used for a few typed commands, modeled on +.IR ed (1) , +which operate on the workframe. +When a carriage return is typed in the bottom line, +the line is interpreted as a command. +The bottom line scrolls, but only +when the first character of the next line is typed. +Thus, typically, after some message appears in the bottom line, +a command need only be typed; +the contents of the line will be automatically cleared when the first +character of the command is typed. +The commands available are: +.TP +.B e \f2file\f1\f3 +Edit the named +.IR file , +or use the current file name if none specified. +Note that each file frame has an associated file name. +.TP +.B E \f2file\f1\f3 +Edit the named +.IR file +unconditionally, as in \fIed\fP(1). +.TP +.B f \f2file\f1\f3 +Set the name of the +file associated with the work frame, if one is specified, +and display the result. +.TP +.B g \f2files\f1\f3 +Enter the named +.I files +into the filename menu, without duplication, +and set the work frame to one of the named files. +If the new work frame's file is not open, the user is prompted to create its frame. +The arguments to +.IT g +are passed through +.IR echo (1) +for shell metacharacter interpretation. +.TP +.B w \f2file\f1\f3 +Write the named +.IR file , +or use the current file name if none specified. +.TP +.B q +Quit the editor. +.bp +.TP +.B Q +Quit the editor unconditionally, as in \fIed\fP(1). +.TP +.B / +Search forward for the string matching the regular expression after the slash. +If found, the matching text is selected. +The regular expressions are exactly as in +.IR egrep (1), +with two additions: the character `@' matches any character +.I including +newline, and the sequence `\en' specifies a newline, even in character classes. +The negation of a character class does not match a newline. +An empty regular expression (slash-newline) repeats the last regular expression. +.TP +.B ? +Search backwards for the expression after the query. +.TP +.B 94 +Select the text of line 94, as in +.IR ed . +.TP +.B $ +Select the text of the last line. +.TP +.B cd \f2dir\f1\f3 +Set the working directory to \fIdir\fP, as in the shell. +There is no CDPATH search, but $HOME is the default \fIdir\fP. +.TP +.B = +Display the line number of selection in the current frame. +.TP +.B >\f2Unix-command\fP +Sends the selected text to the standard input of +.IR Unix-command . +.TP +.B <\f2Unix-command\fP +Replaces the selected text by the standard output of +.IR Unix-command . +.TP +.B |\|\f2Unix-command\fP +Replaces the selected text by the standard output of +.IR Unix-command, +given the original selected text as standard input. +.PP +If any of <, > or | is preceded by an asterisk \(**, +the command is applied to the entire file, instead of just the selected text. +If the command for < or | exits with non-zero status, the original text +is not deleted; otherwise, the new text is selected. +Finally, the standard error output of the command, which is merged with the +standard output for >, is saved in the file +$HOME/jim.err . +If the file is non-empty when the command completes, the first line is +displayed in the diagnostic frame. Therefore the command ``>pwd'' +will report +.IR jim 's +current directory. +.PP +The most recent search command ('/' or '?') and Unix command ('<', '|', +or '>') are added to the button 2 menu, so that they may be easily repeated. +.PP +Attempts to quit with modified files, or edit a new file +in a modified frame, are rejected. +A second `q' or `e' command will succeed. +The `Q' or `E' commands ignore modifications and work immediately. +Some consistency checks are performed for the `w' command. +.I jim +will reject write requests which it considers dangerous +(such as writes that change files which are modified when +read into memory). +A second `w' will always write the file. +.bp +.PP +If +.I jim +receives a hang-up signal, it writes a recover file, +which is a shell command file that, when executed, will +retrieve files that were being edited and had been modified. +The name of the file will be of the form \f2jim.\f1 followed +by a uniquely generated alphanumeric string. \f2Jim\f1 will +send mail to the logon id saying files may be recovered and +specifying the path and name of the recover file. If it cannot +write this file in the home directory, it writes it in the +current working directory. The \f3-t\f1 option prints a table +of contents. By default, the jim recover file is interactive; +the \f3-f\f1 option suppresses the interaction. +If no \f2file\f1 argument is given to the jim.recover shell +file, the recovery will apply to all modified files at the +time when jim received the hang-up signal. If there is a +\f2file\f1 argument, only those files will be recovered. +.SH FILES +.ta \w'$DMD/lib/jim.m 'u +$DMD/lib/jim.m terminal support program +.br +/tmp/jim.\(** temporary file +.br +$HOME/jim.err diagnostic output from Unix commands +.br +jim.\(** recovery script created upon \fIjim\fP failure +.SH SEE ALSO +ucache(1). +.br +ed(1), echo(1), egrep(1) in the \f2UNIX System V +User's Reference Manual\f1. +.br +layers(1) in the \f2Unix System V Release 3 User's Reference Manual\f1. +.br +layers(1) in the \f25620 Dot-Mapped Display Reference Manual.\f1 +.SH WARNING +\f2Jim\f1 is reshapable, but a reshape clears the screen +space of all open frames. +.SH BUGS +\" spectacular is the real word... +The regular expression matcher is non-deterministic (unlike +.IR egrep ), +and may be slow for +complicated expressions. +.P +The < and | operators don't snarf the original text. diff --git a/static/unix-v10/man1/join.1 b/static/unix-v10/man1/join.1 new file mode 100644 index 00000000..94117fff --- /dev/null +++ b/static/unix-v10/man1/join.1 @@ -0,0 +1,144 @@ +.TH JOIN 1 +.CT 1 files +.SH NAME +join \(mi relational database operator +.SH SYNOPSIS +.B join +[ +.I options +] +.I file1 file2 +.SH DESCRIPTION +.I Join +forms, on the standard output, +a join +of the two relations specified by the lines of +.I file1 +and +.IR file2 . +If one of the file names is +.LR - , +the standard input is used. +.PP +.I File1 +and +.I file2 +must be sorted in increasing +.SM ASCII +collating +sequence on the fields +on which they are to be joined, +normally the first in each line. +.PP +There is one line in the output +for each pair of lines in +.I file1 +and +.I file2 +that have identical join fields. +The output line normally consists of the common field, +then the rest of the line from +.IR file1 , +then the rest of the line from +.IR file2 . +.PP +Input fields are normally separated spaces or tabs; +output fields by space. +In this case, multiple separators count as one, and +leading separators are discarded. +.PP +The following options are recognized, with Posix syntax. +.TP +.BI -a " n +In addition to the normal output, +produce a line for each unpairable line in file +.IR n , +where +.I n +is 1 or 2. +.TP +.BI -v " n +Like +.BI -a , +omitting output for paired lines. +.TP +.BI -e " s +Replace empty output fields by string +.IR s . +.TP +.BI -1 " m +.br +.ns +.TP +.BI -2 " m +Join on the +.IR m th +field of +.I file1 +or +.I file2. +.TP +.BI -j "n m" +Archaic equivalent for +.BI - n " m. +.TP +.BI -o fields +Each output line comprises the designated fields. +The comma-separated field designators are either +.BR 0 , +meaning the join field, or have the form +.IR n . m , +where +.I n +is a file number and +.I m +is a field number. +Archaic usage allows separate arguments for field designators. +.PP +.TP +.BI -t c +Use character +.I c +as the only separator (tab character) on input and output. +Every appearance of +.I c +in a line is significant. +.SH EXAMPLES +.TP +.L +sort /etc/password | join -t: -a 1 -e "" - bdays +Add birthdays to password information, leaving unknown +birthdays empty. +The layout of +.F /etc/passwd +is given in +.IR passwd (5); +.B bdays +contains sorted lines like +.LR "ken:Feb\ 4" . +.TP +.L +tr : ' ' temp +.br +.ns +.TP +.L +join -1 3 -2 3 -o 1.1,2.1 temp temp | awk '$1 < $2' +Print all pairs of users with identical userids. +.SH "SEE ALSO" +.IR sort (1), +.IR comm (1), +.IR awk (1) +.SH BUGS +With default field separation, +the collating sequence is that of +.BI "sort -b" +.BI -k y , y, +with +.BR -t , +the sequence is that of +.BI "sort -t" x +.BI -k y , y. +.br +One of the files must be randomly accessible. + diff --git a/static/unix-v10/man1/jx.1 b/static/unix-v10/man1/jx.1 new file mode 100755 index 00000000..ab0ebc03 --- /dev/null +++ b/static/unix-v10/man1/jx.1 @@ -0,0 +1,130 @@ +.ds ZZ DEVELOPMENT PACKAGE +.TH JX 1 "630 MTG" +.SH NAME +jx \- 630 MTG execution and stdio interpreter +.SH SYNOPSIS +.B jx +[\fB \-d \fR] [\fB \-p \fR] [\fB \-z \fR] [ \fB\-f\fR ] [ \fB\-Z\fR n ] [ \fB\-n\fR ] file +.br +[ command line arguments] +.SH DESCRIPTION +The +.I jx +utility +downloads the program in +.I file +to the 630 MTG +and runs it there, simulating most of the standard I/O library +functions. +This gives application programs downloaded into the 630 MTG the ability +to perform operations such as file I/O to files resident on the host +computer, using the same interface as programs +written for execution on the host computer. +.PP +The jx utility calls +.I dmdld +to do the download into the terminal. Therefore, the +\f2-d\f1, \f2-p\f1, \f2-z\f1, \f2-f\f1, \f2-Z\f1, and \f2-n\f1 +options are available for use with \f2jx\f1. See the +.I dmdld(1) +manual page for information on these options. +.PP +\fIStdin\fR directed to the host portion of \f2jx\f1, either through the \f2jx\f1 +command line or with the \fIpopen\fR function, is properly redirected. +Note that input from the 630 MTG keyboard is not translated to \fIstdin\fR +to the host portion of \f2jx\f1. Rather, programs wishing to read from the +keyboard should use \fIkbdchar\fR(3R). +.PP +.I Stdout +and \fIstderr\fR, written to by the below library functions, +will be stored in a buffer during execution. +After the terminal program has +been rebooted, +.I stdout +and +.I stdin +will be redirected to the terminal. +.PP +Programs intended for use by +.I jx +should include \f3\f1 and <\f3dmdio.h\f1> +and call \fIexit\fR(3R) upon termination. \fIExit\fR() returns control to +the shell and causes a reboot of +the default terminal emulator. +.PP +What follows is a list of +stdio library functions available under \fIjx\fR. +These functions are called +from an application downloaded into the 630 MTG +by \f2jx\f1. The \f2jx\f1 library routines in the terminal then +translate the call into a message which is sent to the host portion +of \f2jx\f1 for processing. +.sp +.TS +center; +l l l l. +getc getchar fgets fflush +.sp +putc putchar puts fputs +.sp +fopen freopen fclose access +.sp +popen pclose fread fwrite +.sp +printf Printf fprintf Fprintf +.TE +.sp +The functions fprintf and printf are stripped down versions of +those on UNIX. The functions that start with an upper case +letter are identical to those on UNIX. See printf(3L) for more +details. +.bp +.SH FILES +.nf +$DMD/include/dmdio.h + +$DMD/lib/sysint host portion of \f2jx\f1 after download is complete + +$HOME/.jxout saved standard output + +$HOME/.jxerr saved standard diagnostic output +.fi +.SH SEE ALSO +dmdld(1), exit(3R), kbdchar(3R), printf(3L). +.br +access(2), +fopen(3S), +fread(3S), +getc(3S), +popen(3S), +printf(3S), +putc(3S), +puts(3S) in the +\f2UNIX System V Programmer's Reference Manual\f1. +.SH WARNING +.P +Because 630 MTG keyboard data is not sent to the \f2stdin\f1 of the +host component of \f2jx\f1, applications running under \f2jx\f1 which read +from the \f2stdin\f1 will hang if their \f2stdin\f1 is not redirected. +.P +The \f2stdin\f1 can be redirected either from the command line or by +function calls inside the application process running on the +630 MTG terminal. +.SH BUGS +.I Jx +does not work when su'ed to another user. +.P +.I Jx +does not work in the nonlayers environment. +.P +\fIJx\fR does not work with application cached with +\fBA_SHARED\fR, \fBA_BSS\fR or \fBA_DATA\fR. +.P +\fIStderr\fR is buffered. Use fflush (stderr) if this is a +problem. +.P +\fIgetc(), getchar(), putc()\fR, and \fIputchar()\fR are not +macros as described in \fIgetc(3S)\fR and \fIputc(3S)\fR. +.P +The \fIfopen()\fR routine does not support the following +modes: r+, w+, a+. diff --git a/static/unix-v10/man1/kill.1 b/static/unix-v10/man1/kill.1 new file mode 100644 index 00000000..df1c0cbe --- /dev/null +++ b/static/unix-v10/man1/kill.1 @@ -0,0 +1,22 @@ +.th KILL I 8/18/73 +.sh NAME +kill \*- do in an unwanted process +.sh SYNOPSIS +.bd kill +processid ... +.sh DESCRIPTION +Kills the specified processes. +The processid of each asynchronous process +started with `&' is reported by the shell. +Processid's can also be found by using \fIps\fR (I). +.s3 +The killed process must have +been started from the same typewriter +as the current user, unless +he is the superuser. +.sh "SEE ALSO" +ps(I), sh(I) +.sh BUGS +Clearly people should only be allowed to kill +processes owned by them, and having the same typewriter +is neither necessary nor sufficient. diff --git a/static/unix-v10/man1/kp.1 b/static/unix-v10/man1/kp.1 new file mode 100644 index 00000000..58502a5b --- /dev/null +++ b/static/unix-v10/man1/kp.1 @@ -0,0 +1,91 @@ +.TH KP 1 +.CT 1 proc_man sa_mortals +.SH NAME +kp \(mi kernel profiling +.SH SYNOPSIS +.B kp +[ +.B -t +.I duration +] +[ +.B -c +.I command +] +[ +- +.B fsx +] +[ +.I kernel +] +.PP +.SH DESCRIPTION +.I Kp +prints kernel profiling data. +If the +.B -t +option is specified +.I kp +uses data collected during a +sleep of the indicated duration +(in seconds). +If the +.B -c +option is specified +.I kp +uses data +collected while the indicated command is run +by +.IR system (3). +If neither option is specified +all profiling data since last boot is used; +it is illegal to specify both +.B -t +and +.B -c +options. +.LP +Profiling data consists of +(1) +clock-driven +.IR profil (2)-style +pc bucket counting +and +(2) +system call counts. +The bucket counts are reported resolved to the kernel source-file level +or the +external text symbol level, +according to whether the +.B -f +or +.B -x +options is given, respectively. +Raw unscaled bucket tick counts are given. +System call counts are reported if the +.B -s +option is specified. +Specifying none of +.B sfx +is equivalent to specifying them all: +the default treatment is to report ``the works.'' +.LP +Normally the namelist in +.B /unix +is believed, but this may be overruled by giving the filename +.I kernel +argument. +.LP +Since this program needs privileges to read +.FR /dev/kmem , +the +.B -c +option +is an invitation to horesmanship. +.SH FILES +.B /unix +.br +.B /dev/kmem +.SH BUGS +Not sorted. diff --git a/static/unix-v10/man1/ksh.1 b/static/unix-v10/man1/ksh.1 new file mode 100644 index 00000000..3ed7ef3b --- /dev/null +++ b/static/unix-v10/man1/ksh.1 @@ -0,0 +1,3787 @@ +.ds OK [\| +.ds CK \|] +.ds ' \s+4\v@.3m@\'\v@-.3m@\s-4 +.ds ` \s+4\v@.3m@\`\v@-.3m@\s-4 +.de P +.br +.. +.TH KSH 1 +.SH NAME +ksh \- Korn shell, the not standard command programming language +.SH SYNOPSIS +.B ksh +[ +.B \-acefhikmnorstuvx +] [ +.B \-o +option ] .\|.\|. +[ arg .\|.\|. ] +.br +.SH DESCRIPTION +.I Ksh\^ +is a command programming language +that executes commands read from a terminal +or a file. +.I Rsh\^ +is a restricted version of the standard command interpreter +.IR sh ; +it is used to set up login names and execution environments whose +capabilities are more controlled than those of the standard shell. +See +.I Invocation\^ +below +for the meaning of arguments to the shell. +.SS Definitions. +A +.I metacharacter\^ +is one of the following characters: +.RS +.PP +\f3; & ( ) \(bv < > new-line space tab\fP +.RE +.PP +A +.I blank\^ +is a +.B tab +or a +.BR space . +An +.I identifier\^ +is a sequence of letters, digits, or underscores +starting with a letter or underscore. +Identifiers are used as names for +.IR aliases , +.IR functions , +and +.IR "named parameters" . +A +.I word\^ +is a sequence of +.I characters\^ +separated by one or more non-quoted +.IR metacharacters . +.SS Commands. +A +.I simple-command\^ +is a sequence of +.I blank\^ +separated words +which may be preceded by a parameter assignment list. +(See +.I Environment\^ +below). +The first word specifies the name of the command to +be executed. +Except as specified below, +the remaining words are passed as arguments +to the invoked command. +The command name is passed as argument 0 +(see +.IR exec (2)). +The +.I value\^ +of a simple-command is its exit status +if it terminates normally, or (octal) 200+\f2status\^\fP if +it terminates abnormally (see +.IR signal (2) +for a list of +status values). +.PP +A +.I pipeline\^ +is a sequence of one or more +.I commands\^ +separated by +.BR \(bv . +The standard output of each command but the last +is connected by a +.IR pipe (2) +to the standard input of the next command. +Each command is run as a separate process; +the shell waits for the last command to terminate. +The exit status of a pipeline is the exit +status of the last command. +.PP +A +.I list\^ +is a sequence of one or more +pipelines +separated by +.BR ; , +.BR & , +.BR && , +or +.BR \(bv\|\(bv , +and optionally terminated by +.BR ; , +.BR & , +or +.BR \(bv& . +Of these five symbols, +.BR ; , +.BR & , +and +.BR \(bv& +have equal precedence, +which is lower than that of +.B && +and +.BR \(bv\|\(bv . +The symbols +.B && +and +.B \(bv\|\(bv +also have equal precedence. +A semicolon +.RB ( ; ) +causes sequential execution of the preceding pipeline; an ampersand +.RB ( & ) +causes asynchronous execution of the preceding pipeline (i.e., the shell does +.I not\^ +wait for that pipeline to finish). +The symbol +.B \(bv& +causes asynchronous execution of the preceding command or pipeline +with a two-way pipe established to the parent shell. +The standard input and output of the spawned command +can be written to and read from by the parent Shell +using the +.B \-p +option of +the special commands +.B read +and +.B print\^ +described later. +Only one such command can be active +at any given time. +The symbol +.B && +.RB (\| \(bv\|\(bv \^) +causes the +.I list\^ +following it to be executed only if the preceding +pipeline +returns a zero (non-zero) value. +An arbitrary number of new-lines may appear in a +.I list,\^ +instead of semicolons, +to delimit commands. +.PP +A +.I command\^ +is either a simple-command +or one of the following. +Unless otherwise stated, +the value returned by a command is that of the +last simple-command executed in the command. +.TP +\f3for\fP \f2identifier\^\fP \*(OK \f3in\fP \f2word\^\fP .\|.\|. \*(CK \f3do\fP \f2list\^\fP \f3done\fP +Each time a +.B for +command is executed, +.I identifier\^ +is set to the next +.I word\^ +taken from the +.B in +.I word\^ +list. +If +.BI in " word\^" +\&.\|.\|. +is omitted, then +the +.B for +command executes the \f3do\fP \f2list\^\fP once for each positional parameter +that is set +(see +.I "Parameter Substitution\^" +below). +Execution ends when there are no more words in the list. +.TP +\f3select\fP \f2identifier\^\fP \*(OK \f3in\fP \f2word\^\fP .\|.\|. \*(CK \f3do\fP \f2list\^\fP \f3done\fP +A +.B select +command prints on standard error (file descriptor 2), the set of +.IR word s, +each preceded by a number. +If +.BI in " word\^" +\&.\|.\|. +is omitted, then +the +positional parameters +are used instead +(see +.I "Parameter Substitution\^" +below). +The +.SM +.B PS3 +prompt is printed +and a line is read from the standard input. +If this line consists of the number +of one of the listed +.BR word s, +then the value of the parameter +.I identifier\^ +is set to the +.I word\^ +corresponding to this number. +If this line is empty the selection list is +printed again. +Otherwise the value of the parameter +.I identifier\^ +is set to +.BR null . +The contents of the line read from standard input is +saved in +the parameter +.SM +.BR REPLY. +The +.I list\^ +is executed for each selection until a +.B break\^ +or +.I end-of-file\^ +is encountered. +.TP +\f3case\fP \f2word\^\fP \f3in\fP \*(OK \f2pattern\^\fP \*(OK \(bv \ +\f2pattern\^\fP \*(CK .\|.\|. \f3)\fP \f2list\^\fP \f3;;\fP \*(CK .\|.\|. \f3esac\fP +A +.B case +command executes the +.I list\^ +associated with the first +.I pattern\^ +that matches +.IR word . +The form of the patterns is +the same as that used for +file-name generation (see +.I "File Name Generation\^" +below). +.TP +\f3if\fP \f2list\^\fP \f3then\fP \f2list\^\fP \*(OK \ +\f3elif\fP \f2list\^\fP \f3then\fP \f2list\^\fP \*(CK .\|.\|. \ +\*(OK \f3else\fP \f2list\^\fP \*(CK \f3f\&i\fP +The +.I list\^ +following \f3if\fP is executed and, +if it +returns a zero exit status, the +.I list\^ +following +the first +.B then +is executed. +Otherwise, the +.I list\^ +following \f3elif\fP +is executed and, if its value is zero, +the +.I list\^ +following +the next +.B then +is executed. +Failing that, the +.B else +.I list\^ +is executed. +If no +.B else +.I list\^ +or +.B then +.I list\^ +is executed, then the +.B if +command returns a zero exit status. +.TP +.PD 0 +\f3while\fP \f2list\^\fP \f3do\fP \f2list\^\fP \f3done\fP +.TP +\f3until\fP \f2list\^\fP \f3do\fP \f2list\^\fP \f3done\fP +.PD +A +.B while +command repeatedly executes the +.B while +.I list\^ +and, if the exit status of the last command in the list is zero, executes +the +.B do +.IR list ; +otherwise the loop terminates. +If no commands in the +.B do +.I list\^ +are executed, then the +.B while +command returns a zero exit status; +.B until +may be used in place of +.B while +to negate +the loop termination test. +.TP +\f3(\fP\f2list\^\fP\f3)\fP +.br +Execute +.I list\^ +in a separate environment. +Note, that if two adjacent open parentheses are +needed for nesting, a space must be inserted to avoid +arithmetic evaluation as described below. +.TP +\f3{ \fP\f2list\^\fP\f3;}\fP +.br +.I list\^ +is simply executed. +Note that +.B { +is a +.I keyword\^ +and requires a blank +in order to be recognized. +.TP +.PD 0 +\f3function\fP \f2identifier\^\fP \f3{\fP \f2list\^\fP \f3;}\fP +.TP +\f2identifier\^\fP \f3() {\fP \f2list\^\fP \f3;}\fP +.PD +Define a function which is referenced by +.IR identifier . +The body of the function is the +.I list\^ +of commands between +.B { +and +.BR } . +(See +.I Functions\^ +below). +.TP +\f3time \fP\f2pipeline\^\fP +.br +The +.I pipeline\^ +is executed and the elapsed time as well as +the user and system time are printed on standard error. +.PP +The following keywords +are only recognized as the first word of a command +and when not quoted: +.if t .RS +.PP +.B +.if n if then else elif fi case esac for while until do done { } function select time +.if t if then else elif fi case esac for while until do done { } function select time +.if t .RE +.SS Comments. +A word beginning with +.B # +causes that word and all the following characters up to a new-line +to be ignored. +.SS Aliasing. +The first word of each command is replaced by the text of an +.B alias +if an +.B alias +for this word has been defined. +The +first character of an +.B alias +name can be any printable character, +but the rest of the characters +must be the same as for a valid +.IR identifier . +The replacement string can contain any +valid Shell script +including the metacharacters listed above. +The first word of each command of the +replaced text will not be tested for additional aliases. +If the last character of the alias value is a +.I blank\^ +then the word following the alias will also be checked for alias +substitution. +Aliases can be used to redefine special +builtin commands but cannot be used to redefine +the keywords listed above. +Aliases can be created, listed, and exported with the +.B alias +command and can be removed with the +.B unalias +command. +Exported aliases remain in effect for sub-shells +but must be reinitialized for separate invocations +of the Shell (See +.I Invocation\^ +below). +.PP +.I Aliasing\^ +is performed when +scripts are read, +not while they are executed. +Therefore, +for an alias to take effect +the +.B +alias +command has to be executed before +the command which references the alias is read. +.PP +Aliases are frequently used as a short hand for full path +names. +An option to the aliasing facility allows the value of the alias +to be automatically set to the full pathname of +the corresponding command. +These aliases are called +.I tracked +aliases. +The value of a +.I tracked +alias is defined the first time the identifier +is read and becomes undefined each time +the +.SM +.B PATH +variable is reset. +These aliases remain +.I tracked +so that the next +subsequent reference will redefine the value. +Several tracked aliases are compiled into the shell. +The +.B \-h +option of the +.B set +command makes each command name which is an +.I identifier\^ +into a tracked alias. +.PP +The following +.I exported aliases +are compiled into the shell +but can be unset or redefined: +.RS 20 +.PD 0 +.TP +.B "echo=\(fmprint \-\(fm" +.TP +.B "false=\(fmlet 0\(fm" +.TP +.B "functions=\(fmtypeset \-f\(fm" +.TP +.B "history=\(fmfc \-l\(fm" +.TP +.B "integer=\(fmtypeset \-i\(fm" +.TP +.B "nohup=\(fmnohup \(fm" +.TP +.B "pwd=\(fmprint \- $\s-1PWD\s+1\(fm" +.TP +.B "r=\(fmfc \-e \-\(fm" +.TP +.B "true=\(fm:\(fm" +.TP +.B "type=\(fmwhence \-v\(fm" +.TP +.B "hash=\(fmalias \-t\(fm" +.PD +.RE +.SS Tilde Substitution. +After alias substitution is performed, each word +is checked to see if it begins with an unquoted +.BR \(ap . +If it does, then the word up to a +.B / +is checked to see if it matches a user name in the +.B /etc/passwd +file. +If a match is found, the +.B \(ap +and the matched login name is replaced by the +login directory of the matched user. +This is called a +.I tilde +substitution. +If no match is found, the original text is left unchanged. +A +.B \(ap +by itself, or in front of a +.BR / , +is replaced by the value of the +.B +.SM HOME +parameter. +A +.B \(ap +followed by a +.B + +or +.B \- +is replaced by the value of +the parameter +.B +.SM PWD +and +.B +.SM OLDPWD +respectively. +.PP +In addition, the value of each +.I "keyword parameter" +is checked to see if it begins with a +.B \(ap +or if a +.B \(ap +appears after a +.BR : . +In either of these cases a +.I tilde +substitution is attempted. +.SS Command Substitution. +The standard output from a command enclosed in +a pair of grave accents (\^\f3\*`\^\*`\fP\^) may be used as part or all +of a word; +trailing new-lines are removed. +The command substitution +\^\f3\*`\^cat file\^\*`\fP\^ +can be replaced by the equivalent but faster +\^\f3\*`\^ \|" ''. +.TP +.SM +.B PS3 +Selection prompt string +used within a +.B select +loop, by default +.RB `` "#? \|" ''. +.TP +.SM +.B SHELL +The pathname of the +.I shell\^ +is kept in the environment. +At invocation, if the value of this variable contains an +.B r +in the basename, +then the shell becomes restricted. +.TP +.B +.SM TMOUT +If set to a value greater than zero, +the shell will terminate if a command is not entered within +the prescribed number of seconds. +(Note that the shell can be compiled with a maximum bound +for this value which cannot be exceeded.) +.TP +.B +.SM VISUAL +If the value of this variable ends in +.IR emacs , +.IR gmacs , +or +.I vi +then the corresponding option +(see Special Command +.B set +below) +will be turned on. +.PD +.RE +.PP +The shell gives default values to +\f3\s-1PATH\s+1\fP, \f3\s-1PS1\s+1\fP, \f3\s-1PS2\s+1\fP, \f3\s-1MAILCHECK\s+1\fP, +\f3\s-1TMOUT\s+1\fP and \f3\s-1IFS\s+1\fP, +while +.SM +.BR HOME , +.SM +.B SHELL +.SM +.B ENV +and +.SM +.B MAIL +are +not set at all by the shell (although +.SM +.B HOME +.I is\^ +set by +.IR login (1)). +On some systems +.SM +.B MAIL +and +.SM +.B SHELL +are also +set by +.IR login (1)). +.SS Blank Interpretation. +After parameter and command substitution, +the results of substitutions are scanned for the field separator +characters ( +those found in +.SM +.B IFS +) +and split into distinct arguments where such characters are found. +Explicit null arguments (\^\f3"\^"\fP or \f3\*\(fm\^\*\(fm\fP\^) are retained. +Implicit null arguments +(those resulting from +.I parameters\^ +that have no values) are removed. +.SS File Name Generation. +Following substitution, each command +.I word\^ +is scanned for +the characters +.BR \(** , +.BR ? , +and +.B \*(OK\^ +unless the +.B \-f +option has been +.BR set . +If one of these characters appears +then the word is regarded as a +.IR pattern . +The word is replaced with alphabetically sorted file names that match the pattern. +If no file name is found that matches the pattern, then +the word is left unchanged. +When a +.I pattern\^ +is used for file name generation, +the character +.B . +at the start of a file name +or immediately following a +.BR / , +as well as the character +.B / +itself, +must be matched explicitly. +In other instances of pattern matching the +.B / +and +.B . +are not treated specially. +.PP +.PD 0 +.RS +.TP +.B \(** +Matches any string, including the null string. +.TP +.B ? +Matches any single character. +.TP +.BR \*(OK \^.\|.\|.\^ \*(CK +Matches any one of the enclosed characters. +A pair of characters separated by +.B \- +matches any +character lexically between the pair, inclusive. +If the first character following the opening "[ \|" +is a "! \|" then any character not enclosed is matched. +A +.B \- +can be included in the character set by putting it as the +first or last character. +.PD +.RE +.SS Quoting. +Each of the +.I metacharacters\^ +listed above (See +.I Definitions +above). +has a special meaning to the shell +and cause termination of a word unless quoted. +A character may be +.I quoted\^ +(i.e., made to stand for itself) +by preceding +it with a +.BR \e . +The pair +.B \enew-line +is ignored. +All characters enclosed between a pair of single quote marks (\^\f3\(fm\^\(fm\fP\^), +except a single quote, +are quoted. +Inside double quote marks +(\f3"\^"\fP), +parameter and command substitution occurs and +.B \e +quotes the characters +.BR \e , +.BR \(fm , +\f3"\fP, +and +.BR $ . +.B +"$\(**" +is equivalent to +\f3"$1 \|$2\fP \|.\|.\|.\f3"\fP, +whereas +.B +"$@" +is equivalent to +.B +"$1"\| +.B +"$2"\| +\&.\|.\|.\^. +.PP +The special meaning of keywords can be removed by quoting any +character of the keyword. +The recognition of special command names listed below cannot be altered +by quoting them. +.SS Arithmetic Evaluation. +An ability to perform integer arithmetic +is provided with the special command +.BR let . +Evaluations are performed using +.I long\^ +arithmetic. +Constants are of the form +\*(OK\f2base\f3#\^\f1\*(CK\f2n\^\fP +where +.I base\^ +is a decimal number between two and thirty-six +representing the arithmetic base +and +.I n\^ +is a number in that base. +If +.I base\^ +is omitted +then base 10 is used. +.PP +An internal integer representation of a +.I named parameter\^ +can be specified with the +.B \-i +option of the +.B typeset +special command. +When this attribute is selected +the first assignment to the +parameter determines the arithmetic base +to be used when +parameter substitution occurs. +.PP +Since many of the arithmetic operators require +quoting, an alternative form of the +.B let +command is provided. +For any command which begins with a +.BR (( , +all the characters until a matching +.B )) +are treated as a quoted expression. +More precisely, +.B (( +\&.\|.\|. +.B )) +is equivalent to +.B let\^ +\f3"\fP \|.\|.\|.\f3"\fP. +.SS Prompting. +When used interactively, +the shell prompts with the value of +.SM +.B PS1 +before reading a command. +If at any time a new-line is typed and further input is needed +to complete a command, then the secondary prompt +(i.e., the value of +.BR \s-1PS2\s+1 ) +is issued. +.SS Input/Output. +Before a command is executed, its input and output +may be redirected using a special notation interpreted by the shell. +The following may appear anywhere in a simple-command +or may precede or follow a +.I command\^ +and are +.I not\^ +passed on to the invoked command. +Command and parameter substitution occurs before +.I word\^ +or +.I digit\^ +is used except as noted below. +File name generation +occurs only if the pattern matches a single file +and blank interpretation is not performed. +.TP 14 +.BI < word +Use file +.I word\^ +as standard input (file descriptor 0). +.TP +.BI > word +Use file +.I word\^ +as standard output (file descriptor 1). +If the file does not exist then it is created; +otherwise, it is truncated to zero length. +.TP +.BI >\h@-.3m@> word +Use file +.I word\^ +as standard output. +If the file exists then output is appended to it (by first seeking to the end-of-file); +otherwise, the file is created. +.TP +\f3<\h@-.3m@<\fP\*(OK\f3\-\fP\*(CK\f2word\fP +The shell input is read up to a line that is the same as +.IR word , +or to an end-of-file. +No parameter substitution, command substitution or +file name generation is performed on +.IR word . +The resulting document, +called a +.IR here-document , +becomes +the standard input. +If any character of +.I word\^ +is quoted, then no interpretation +is placed upon the characters of the document; +otherwise, parameter and command substitution occurs, +.B \enew-line +is ignored, +and +.B \e +must be used to quote the characters +.BR \e , +.BR $ , +.BR \*` , +and the first character of +.IR word . +If +.B \- +is appended to +.BR <\h@-.3m@< , +then all leading tabs are stripped from +.I word\^ +and from the document. +.TP +.BI <& digit +The standard input is duplicated from file descriptor +.I digit +(see +.IR dup (2)). +Similarly for the standard output using +.BR >& +.IR digit . +.TP +.B <&\- +The standard input is closed. +Similarly for the standard output using +.BR >&\- . +.PP +If one of the above is preceded by a digit, +then the +file descriptor number referred to is that specified +by the digit +(instead of the default 0 or 1). +For example: +.RS +.PP +\&.\|.\|. \|2>&1 +.RE +.PP +means file descriptor 2 is to be opened +for writing as a duplicate +of file descriptor 1. +.PP +The order in which redirections are specified is significant. +The shell evaluates each redirection in terms of the +.RI ( "file descriptor" ", " file ) +association at the time of evaluation. +For example: +.RS +.PP +\&.\|.\|. \|1>\f2fname\^\fP 2>&1 +.RE +.PP +first associates file descriptor 1 with file +.IR fname\^ . +It then associates file descriptor 2 with the file associated with file +descriptor 1 (i.e. +.IR fname\^ ). +If the order of redirections were reversed, file descriptor 2 would be associated +with the terminal (assuming file descriptor 1 had been) and then file descriptor +1 would be associated with file +.IR fname\^ . +.PP +If a command is followed by +.B & +and job control is not active, +then the default standard input +for the command +is the empty file +.BR /dev/null . +Otherwise, the environment for the execution of a command contains the +file descriptors of the invoking shell as modified by +input/output specifications. +.SS Environment. +The +.I environment\^ +(see +.IR environ (7)) +is a list of name-value pairs that is passed to +an executed program in the same way as a normal argument list. +The names must be +.I identifiers\^ +and the values are character strings. +The shell interacts with the environment in several ways. +On invocation, the shell scans the environment +and creates a +parameter +for each name found, +giving it the corresponding value and marking it +.I export . +Executed commands inherit the environment. +If the user modifies the values of these +parameters +or creates new ones, +using the +.B export +or +.B typeset \-x +commands they become part of the +environment. +The environment seen by any executed command is thus composed +of any name-value pairs originally inherited by the shell, +whose values may be modified by the current shell, +plus any additions +which must be noted in +.B export +or +.B typeset \-x +commands. +.PP +The environment for any +.I simple-command\^ +or function +may be augmented by prefixing it with one or more parameter assignments. +A parameter assignment argument is a word of the form +.IR identifier=value . +Thus: +.RS +.PP +\s-1TERM\s+1=450 \|cmd \|args and +.br +(export \|\s-1TERM\s+1; \|\s-1TERM\s+1=450; \|cmd \|args) +.RE +.PP +are equivalent (as far as the above execution of +.I cmd\^ +is concerned). +.PP +If the +.B \-k +flag is set, +.I all\^ +parameter assignment arguments are placed in the environment, +even if they occur after the command name. +The following +first prints +.B "a=b c" +and then +.BR c: +.PP +.RS +.nf +echo \|a=b \|c +set \|\-k +echo \|a=b \|c +.fi +.RE +.SS Functions. +.PP +The +.B function\^ +keyword, described in the +.I Commands +section above, +is used to define shell functions. +Shell functions are read in and stored internally. +Alias names are resolved when the function is read. +Functions are executed like commands with the arguments +passed as positional parameters. +(See +.I Execution +below). +.PP +Functions execute in the same process as the caller and +share all files, traps ( other than +.SM +.B EXIT +and +.SM +.BR ERR ) +and present working directory with the +caller. +A trap set on +.SM +.B EXIT +inside a function +is executed after the function completes. +Ordinarily, +variables are shared between the calling program +and the function. +However, +the +.B typeset +special command used within a function +defines local variables whose scope includes +the current function and +all functions it calls. +.PP +The special command +.B return +is used to return +from function calls. +Errors within functions return control to the caller. +.PP +Function identifiers +can be listed with the +.B \-f +option of the +.B typeset +special command. +The text of functions will also +be listed. +Function can be undefined with the +.B \-f +option of the +.B unset +special command. +.PP +Ordinarily, +functions are unset when the shell executes a shell script. +The +.B \-xf +option of the +.B typeset +command allows a function to be exported +to scripts that are executed without a separate +invocation of the shell. +Functions that need to be defined across separate +invocations of the shell should be placed in the +.B +.SM +ENV +file. +.SS Jobs. +.PP +If the +.B monitor +option of the +.B set +command is turned on, +an interactive shell associates a \fIjob\fR with each pipeline. It keeps +a table of current jobs, printed by the +.B jobs +command, and assigns them small integer numbers. When +a job is started asynchronously with +.BR & , +the shell prints a line which looks +like: +.PP +.DT + [1] 1234 +.PP +indicating that the job which was started asynchronously was job number +1 and had one (top-level) process, whose process id was 1234. +.PP +This paragraph and the next require features that are +not in all versions of UNIX and may not apply. +If you are running a job and wish to do something else you may hit the key +\fB^Z\fR (control-Z) which sends a STOP signal to the current job. +The shell will then normally indicate that the job has been `Stopped', +and print another prompt. You can then manipulate the state of this job, +putting it in the background with the +.B bg +command, or run some other +commands and then eventually bring the job back into the foreground with +the foreground command +.BR fg . +A \fB^Z\fR takes effect immediately and +is like an interrupt in that pending output and unread input are discarded +when it is typed. +.PP +A job being run in the background will stop if it tries to read +from the terminal. Background jobs are normally allowed to produce output, +but this can be disabled by giving the command ``stty tostop''. +If you set this +tty option, then background jobs will stop when they try to produce +output like they do when they try to read input. +.PP +There are several ways to refer to jobs in the shell. The character +.B % +introduces a job name. If you wish to refer to job number 1, you can +name it as +.B %1 . +Jobs can also be named by prefixes of the string typed in to +.B kill +or restart them. +Thus, on systems that support job control, +.RB ` fg +.BR %ed ' +would normally restart +a suspended +.IR ed (1) +job, if there were a suspended job whose name began with +the string `ed'. +.PP +The shell maintains a notion of the current and previous jobs. +In output pertaining to jobs, the current job is marked with a +.B + +and the previous job with a +.BR \- . +The abbreviation +.B %+ +refers +to the current job and +.B %\- +refers to the previous job. +.B %% +is also a synonym for the current job. +.PP +This shell learns immediately whenever a process changes state. +It normally informs you whenever a job becomes blocked so that +no further progress is possible, but only just before it prints +a prompt. This is done so that it does not otherwise disturb your work. +.PP +When you try to leave the shell while jobs are running or stopped, you will +be warned that `You have stopped(running) jobs.' You may use the +.B jobs +command to see what they are. If you do this or immediately try to +exit again, the shell will not warn you a second time, and the stopped +jobs will be terminated. +.SS Signals. +The \s-1INT\s+1 and \s-1QUIT\s+1 signals for an invoked +command are ignored if the command is followed by +.B & +and job +.B monitor +option is not active. +Otherwise, signals have the values +inherited by the shell from its parent, +with the exception of signal 11 +(but see also +the +.B trap +command below). +.SS Execution. +Each time a command is executed, the above substitutions +are carried out. +If the command name matches one +of the +.I "Special Commands\^" +listed below, +it is executed within the +current shell process. +Next, the command name is checked to see if +it matches one of the user defined functions. +If it does, +the positional parameters are saved +and then reset to the arguments of the +.I function\^ +call. +When the +.I function\^ +completes or issues a +.BR return , +the positional parameter list is restored +and any trap set on +.SM +.B EXIT +within the function is executed. +The value of a +.I function\^ +is the value of the last command executed. +A function is also executed in the +current shell process. +If a command name is not a +.I "special command\^" +or a user defined +.IR function , +a process is created and +an attempt is made to execute the command via +.IR exec (2). +.PP +The shell parameter +.B +.SM PATH +defines the search path for +the directory containing the command. +Alternative directory names are separated by +a colon +.RB ( : ). +The default path is +.B :/bin:/usr/bin +(specifying the current directory, +.BR /bin , +and +.BR /usr/bin , +in that order). +Note that the current directory +is specified by a null path name, +which can appear immediately after the +equal sign, between colon delimiters, +or at the end of the path list. +If the command name contains a \f3/\fP then the search path +is not used. +Otherwise, each directory in the path is +searched for an executable file. +If the file has execute permission but is not a +directory or an +.B a.out +file, +it is assumed to be a file containing shell commands. +A sub-shell is spawned to read it. +All non-exported aliases, +functions, +and named parameters are removed in this case. +A parenthesized command is also executed in +a sub-shell. +.SS Command Re-entry. +The text of the last +.B +.SM +HISTSIZE +(default 128) +commands entered from a terminal device +is saved in a +.I history +file. +The file +.B \s-1$HOME\s+1/.history +is used if the +.B +.SM +HISTFILE +variable is not set +or is not writable. +A shell can access the commands of +all +.I interactive +shells which use the same named +.SM +.BR HISTFILE . +The special command +.B fc\^ +is used to list or +edit a portion this file. +The portion of the file to be edited or listed can be selected by +number or by giving the first character or +characters of the command. +A single command or range of commands can be specified. +If you do not specify an editor program as +an argument to +.B fc\^ +then the value of the parameter +.SM +.B FCEDIT +is used. +If +.SM +.B FCEDIT +is not defined then +.I /bin/ed +is used. +The edited command(s) is printed and re-executed upon +leaving the editor. +The editor name +.B \- +is used to skip the editing phase and +to re-execute the command. +In this case a substitution parameter of the form +\f2old\fP\f3=\fP\f2new\fP +can be used to modify the command before execution. +For example, if +.B r +is aliased to +.B \(fmfc \-e \-\(fm +then typing +`\f3r bad=good c\fP' +will re-execute the most recent command which starts with the letter +.BR c , +replacing the string +.B bad +with the string +.BR good . +.SS In-line Editing Options +Normally, each command line entered from a terminal device is simply +typed followed by a new-line (`RETURN' or `LINE\ FEED'). +If either the +.IR emacs , +.IR gmacs , +or +.I vi +option is active, the user can edit the command line. +To be in either of these edit modes +.B set +the corresponding +option. +An editing option is automatically selected each time the +.SM +.B VISUAL +or +.SM +.B EDITOR +variable is assigned a value ending in either of these +option names. +.PP +The editing features require that the user's terminal +accept `RETURN' as carriage return without line feed +and that a space (`\ ' must overwrite the current character on +the screen. +ADM terminal users should set the "space\ -\ advance" +switch to `space'. +Hewlett-Packard series 2621 terminal users should set the straps to +`bcGHxZ\ etX'. +.PP +The editing modes implement a concept where the user is looking through a +window at the current line. +The window width is the value of +.SM +.B COLUMNS +if it is defined, otherwise 80. +If the line is longer than the window width minus two, a mark is +displayed at the end of the window to notify the user. +As the cursor moves and reaches the window boundaries the window will be +centered about the cursor. +The mark is a +.BR > " (" +.BR < ", " +.BR * ) +if the line extends on the +right (left, both) side(s) of the window. +.SS Emacs Editing Mode +This mode is entered by enabling either the +.I emacs +or +.I gmacs +option. +The only difference between these two modes is the way +they handle +.BR ^T . +To edit, the user +moves the cursor to the point needing correction and +then inserts or deletes characters or words as needed. +All the editing commands are control characters or escape +sequences. +The notation for control characters is caret ( +.B ^ +) followed +by the character. +For example, +.B ^F +is the notation for control +.BR F . +This is entered by depressing `f' while holding down the +`CTRL' (control) key. +The `SHIFT' key is +.I not +depressed. +(The notation +.B ^? +indicates the DEL (delete) key.) +.PP +The notation for escape sequences is +.B M- +followed by a +character. +For example, +.B M-f +(pronounced Meta f) +is entered by depressing ESC +(ascii +.B 033 +) +followed by `f'. +( +.B M-F +would be the notation for ESC followed by `SHIFT' (capital) `F'.) +.PP +All edit commands +operate from any place on the line +(not just at the beginning). +Neither the "RETURN" nor the "LINE FEED" key is +entered after edit commands except when noted. +.PP +.PD 0 +.TP 10 +.BI ^F +Move cursor forward (right) one character. +.PP +.TP 10 +.BI M-f +Move cursor forward one word. +(The editor's idea of a word is a string of characters +consisting of only letters, digits and underscores.) +.PP +.TP 10 +.BI ^B +Move cursor backward (left) one character. +.PP +.TP 10 +.BI M-b +Move cursor backward one word. +.PP +.TP 10 +.BI ^A +Move cursor to start of line. +.PP +.TP 10 +.BI ^E +Move cursor to end of line. +.PP +.TP 10 +.BI ^] char +Move cursor to character +.I char +on current line. +.PP +.TP 10 +.BI ^X^X +Interchange the cursor and mark. +.PP +.TP 10 +.I erase +(User defined erase character as defined +by the stty command, usually +.B ^H +or +.BR # .) +Delete previous character. +.PP +.TP 10 +.BI ^D +Delete current character. +.PP +.TP 10 +.BI M-d +Delete current word. +.PP +.TP 10 +.BI M-^H +(Meta-backspace) Delete previous word. +.PP +.TP 10 +.BI M-h +Delete previous word. +.PP +.TP 10 +.BI M-^? +(Meta-DEL) Delete previous word (if your interrupt character is +.B ^? +(DEL, the default) then this command will not work). +.PP +.TP 10 +.BI ^T +Transpose current character with next character in +.I emacs +mode. +Transpose two previous characters in +.I gmacs +mode. +.PP +.TP 10 +.BI ^C +Capitalize current character. +.PP +.TP 10 +.BI M-C +Capitalize current word. +.PP +.TP 10 +.BI ^K +Kill from the cursor to the end of the line. +If given a parameter of zero then kill from +the start of line to the cursor. +.PP +.TP 10 +.BI ^W +Kill from the cursor to the mark. +.PP +.TP 10 +.BI M-p +Push the region from the cursor to the mark on the stack. +.PP +.TP 10 +.I kill +(User defined kill character as defined +by the stty command, usually +.B ^G +or +.BR @ .) +Kill the entire current line. +If two +.I kill +characters are entered in succession, all +kill characters from then on cause a line feed +(useful when using paper terminals). +.PP +.TP 10 +.BI ^Y +Restore last item removed from line. (Yank item back to the line.) +.PP +.TP 10 +.BI ^L +Line feed and print current line. +.PP +.TP 10 +.BI ^@ +(Null character) Set mark. +.PP +.TP 10 +.BI M- +(Meta space) Set mark. +.PP +.TP 10 +.BI ^J +(New\ line) Execute the current line. +.PP +.TP 10 +.BI ^M +(Return) Execute the current line. +.PP +.TP 10 +.I eof +End-of-file character, +normally +.BR ^D , +will terminate the shell +if the current line is null. +.PP +.TP 10 +.BI ^P +Fetch previous command. +Each time +.B ^P +is entered +the previous command back in time is accessed. +.PP +.TP 10 +.BI M-< +Fetch the least recent (oldest) history line. +.PP +.TP 10 +.BI M-> +Fetch the most recent (youngest) history line. +.PP +.TP 10 +.BI ^N +Fetch next command. +Each time +.B ^N +is entered +the next command forward in time is accessed. +.PP +.TP 10 +.BI ^R string +Reverse search history for a previous command line containing +.IR string . +If a parameter of zero is given the search is forward. +.I String +is terminated by a "RETURN" or "NEW\ LINE". +.PP +.TP 10 +.B ^O +Operate \- Execute the current line and fetch +the next line relative to current line from the +history file. +.PP +.TP 10 +.BI M- digits +(Escape) Define numeric parameter, the digits +are taken as a parameter to the next command. +The commands that accept a parameter are +.BR ^F , +.BR ^B , +.IR erase , +.BR ^D , +.BR ^K , +.BR ^R , +.B ^P +and +.BR ^N . +.PP +.TP 10 +.BI M- letter +Soft-key \- Your alias list is searched for an +alias by the name +.BI _ letter +and if an alias of this name is defined, its +value will be inserted on the line. +The +.I letter +must not be one of the above meta-functions. +.PP +.TP 10 +.B M-_ +The last parameter of the previous command is inserted +on the line. +.PP +.TP 10 +.B M-. +The last parameter of the previous command is inserted +on the line. +.PP +.TP 10 +.B M-* +Attempt file name generation on the current word. +.PP +.TP 10 +.BI ^U +Multiply parameter of next command by 4. +.PP +.TP 10 +.BI \e +Escape next character. +Editing characters, the user's erase, kill and +interrupt (normally +.B ^? +) +characters +may be entered +in a command line or in a search string if preceded by a +.BR \e . +The +.B \e +removes the next character's +editing features (if any). +.PP +.TP 10 +.BI ^V +Display version of the shell. +.PD +.SS Vi Editing Mode +There are two typing modes. +Initially, when you enter a command you are in the +.I input\^ +mode. +To edit, the user enters +.I control\^ +mode by typing ESC ( +.B 033 +) and +moves the cursor to the point needing correction and +then inserts or deletes characters or words as needed. +Most control commands accept an optional repeat +.I count +prior to the command. +.P +When in vi mode on most systems, +canonical processing is initially enabled and the +command will be echoed again if the speed is 1200 baud or greater and it +contains any control characters or less than one second has elapsed +since the prompt was printed. +The ESC character terminates canonical processing for the remainder of the command +and the user can than modify the command line. +This scheme has the advantages of canonical processing with the type-ahead +echoing of raw mode. +.P +If the option +.B viraw\^ +is also set, the terminal will always have canonical processing +disabled. This mode is implicit for systems that do not support two +alternate end of line delimiters, +and may be helpful for certain terminals. +.SS "\ \ \ \ \ Input Edit Commands" +.PP +.RS +By default the editor is in input mode. +.PD 0 +.TP 10 +.I erase +(User defined erase character as defined +by the stty command, usually +.B ^H +or +.BR # .) +Delete previous character. +.TP 10 +.BI ^W +Delete the previous blank separated word. +.TP 10 +.BI ^D +Terminate the shell. +.TP 10 +.BI ^V +Escape next character. +Editing characters, the user's erase or kill +characters may be entered +in a command line or in a search string if preceded by a +.BR ^V . +The +.B ^V +removes the next character's +editing features (if any). +.TP 10 +.BI \e +Escape the next +.I erase +or +.I kill +character. +.P +.RE +.SS "\ \ \ \ \ Motion Edit Commands" +.RS +These commands will move the cursor. +.TP 10 +[\f2count\fP]\f3l\fP +Cursor forward (right) one character. +.TP 10 +[\f2count\fP]\f3w\fP +Cursor forward one alpha-numeric word. +.TP 10 +[\f2count\fP]\f3W\fP +Cursor to the beginning of the next word that follows a blank. +.TP 10 +[\f2count\fP]\f3e\fP +Cursor to end of word. +.TP 10 +[\f2count\fP]\f3E\fP +Cursor to end of the current blank delimited word. +.TP 10 +[\f2count\fP]\f3h\fP +Cursor backward (left) one character. +.TP 10 +[\f2count\fP]\f3b\fP +Cursor backward one word. +.TP 10 +[\f2count\fP]\f3B\fP +Cursor to preceding blank separated word. +.TP 10 +[\f2count\fP]\f3f\fP\f2c\fP +Find the next character \fIc\fP in the current line. +.TP 10 +[\f2count\fP]\f3F\fP\f2c\fP +Find the previous character \fIc\fP in the current line. +.TP 10 +[\f2count\fP]\f3t\fP\f2c\fP +Equivalent to +.B f +followed by +.BR h . +.TP 10 +[\f2count\fP]\f3T\fP\f2c\fP +Equivalent to +.B F +followed by +.BR l . +.TP 10 +.B ; +Repeats the last single character find command, +.BR f , +.BR F , +.BR t , +or +.BR T . +.TP 10 +.B , +Reverses the last single character find command. +.TP 10 +.B 0 +Cursor to start of line. +.TP 10 +.B ^ +Cursor to first non-blank character in line. +.TP 10 +.B $ +Cursor to end of line. +.RE +.SS "\ \ \ \ \ Search Edit Commands" +.RS +These commands access your command history. +.TP 10 +[\f2count\fP]\f3k\fP +Fetch previous command. +Each time +.B k +is entered +the previous command back in time is accessed. +.TP 10 +[\f2count\fP]\f3\-\fP +Equivalent to +.BR k . +.TP 10 +[\f2count\fP]\f3j\fP +Fetch next command. +Each time +.B j +is entered +the next command forward in time is accessed. +.TP 10 +[\f2count\fP]\f3+\fP +Equivalent to +.BR j . +.TP 10 +[\f2count\fP]\f3G\fP +The command number +.I count +is fetched. +The default is the least recent history command. +.TP 10 +.BI / string +Search backward through history for a previous command containing +.IR string . +.I String +is terminated by a "RETURN" or "NEW\ LINE". +If \fIstring\fP is null the previous string will be used. +.TP 10 +.BI ? string +Same as +.B / +except that search will be in the forward direction. +.TP 10 +.B n +Search for next match of the last pattern to +.B / +or +.B ? +commands. +.TP 10 +.B N +Search for next match of the last pattern to +.B / +or +.BR ? , +but in reverse direction. +Search history for the \fIstring\fP entered by the previous \fB/\fP command. +.RE +.SS "\ \ \ \ \ Text Modification Edit Commands" +.RS +These commands will modify the line. +.TP 10 +.B a +Enter input mode and enter text after the current character. +.TP 10 +.B A +Append text to the end of the line. Equivalent to +.BR $a . +.TP 10 +[\f2count\fP]\f3c\fP\f2motion\fP +.TP 10 +\f3c\fP[\f2count\fP]\f2motion\fP +Delete current character through the character +.I motion +moves the cursor to and enter input mode. +If \fImotion\fP is +.BR c , +the entire line will be deleted and +input mode entered. +.TP 10 +.B C +Delete the current character through the end of line and enter input mode. +Equivalent to +.BR c$ . +.TP 10 +.B S +Equivalent to +.BR cc . +.TP 10 +.B D +Delete the current character through the end of line. +.TP 10 +[\f2count\fP]\f3d\fP\f2motion\fP +.TP 10 +\f3d\fP[\f2count\fP]\f2motion\fP +Delete current character through the character +.I motion +moves the cursor to. Equivalent to +.BR d$ . +If \fImotion\fP is +.B d , +the entire line will be deleted. +.TP 10 +.B i +Enter input mode and insert text before the current character. +.TP 10 +.B I +Insert text before the beginning of the line. Equivalent to +the two character sequence +.BR ^i . +.TP 10 +[\f2count\fP]\f3P\fP +Place the previous text modification before the cursor. +.TP 10 +[\f2count\fP]\f3p\fP +Place the previous text modification after the cursor. +.TP 10 +.B R +Enter input mode and +replace characters on the screen with characters you type overlay fashion. +.TP 10 +.BI r c +Replace the current character with +.IR c . +.TP 10 +[\f2count\fP]\f3x\fP +Delete current character. +.TP 10 +[\f2count\fP]\f3X\fP +Delete preceding character. +.TP 10 +[\f2count\fP]\f3.\fP +Repeat the previous text modification command. +.TP 10 +.B \(ap +Invert the case of the current character and advance the cursor. +.TP 10 +[\f2count\fP]\f3_\fP +Causes the +.I count\^ +word of the previous command to be appended and +input mode entered. +The last word is used +if +.I count\^ +is omitted. +.TP 10 +.B * +Causes an +.B * +to be appended to the current word and file name generation attempted. +If no match is found, +it rings the bell. Otherwise, the word is replaced +by the matching pattern and input mode is entered. +.RE +.SS "\ \ \ \ \ Other Edit Commands" +.RS +Miscellaneous commands. +.TP 10 +.B u +Undo the last text modifying command. +.TP 10 +.B U +Undo all the text modifying commands performed on the line. +.TP 10 +[\f2count\fP]\f3v\fP +Returns the command +.BI "fc \-e ${\s-1VISUAL\s+1:\-${\s-1EDITOR\s+1:\-vi}}" " count" +in the input buffer. +If +.I count\^ +is omitted, then the current line is used. +.TP 10 +.BI ^L +Line feed and print current line. +Has effect only in control mode. +.TP 10 +.BI ^J +(New\ line) Execute the current line, regardless of mode. +.TP 10 +.BI ^M +(Return) Execute the current line, regardless of mode. +.TP 10 +.B \# +Equivalent to +\f3I#\fP\f2\fP. +Useful for causing the current line to be +inserted in the history without being executed. +.RE +.PD +.SS Special Commands. +The following simple-commands are executed in the shell process. +Input/Output redirection is permitted. +File descriptor 1 is the default output location. +Parameter assignment lists preceding the command do not +remain in effect when the command completes unless noted. +.TP +\f3:\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +Parameter assignments remain in effect after the command completes. +The command only expands parameters. +A zero exit code is returned. +.br +.ne 2 +.TP +\f3\|. \f2file\^\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +Parameter assignments remain in effect after the command completes. +Read and execute commands from +.I file\^ +and return. +The commands are executed in the current Shell environment. +The search path +specified by +.B +.SM PATH +is used to find the directory containing +.IR file . +If any arguments +.I arg\^ +are given, +they become the positional parameters. +Otherwise the positional parameters are unchanged. +.TP +\f3alias\fP \*(OK \f3\-tx\fP \*(CK \*(OK \f2name\fP\*(OK \f2=value\^\fP \*(CK .\|.\|. \*(CK +.I Alias\^ +with no arguments prints the list of aliases +in the form +.I name=value\^ +on standard output. +An +.I alias\^ +is defined +for each name whose +.I value\^ +is given. +A trailing space in +.I value\^ +causes the next word to be checked for +alias substitution. +The +.B \-t +flag is used to set and list tracked aliases. +The value of a tracked alias is the full pathname +corresponding to the given +.IR name . +The value becomes undefined when the value of +.SM +.B PATH +is reset but the aliases remained tracked. +Without the +.B \-t +flag, +for each +.I name\^ +in the argument list +for which no +.I value\^ +is given, the name +and value of the alias is printed. +The +.B \-x +flag is used to set or print exported aliases. +An exported alias is defined across sub-shell environments. +Alias returns true unless a +.I name\^ +is given for which no alias has been defined. +.TP +\f3bg\fP \*(OK \f3%\f2job\^\fP \*(CK +This command is only built-in on systems that support job control. +Puts the specified +.I job\^ +into the background. +The current job is put in the background +if +.I job\^ +is not specified. +.TP +\f3break\fP \*(OK \f2n\^\fP \*(CK +Exit from the enclosing +.BR for +.BR while +.BR until +or +.B select\^ +loop, if any. +If +.I n\^ +is specified then break +.I n\^ +levels. +.TP +\f3continue\fP \*(OK \f2n\^\fP \*(CK +Resume the next iteration of the enclosing +.BR for +.BR while +.BR until +or +.B select\^ +loop. +If +.I n\^ +is specified then resume at the +.IR n -th +enclosing loop. +.TP +.PD 0 +\f3cd\fP \*(OK \f2arg\^\fP \*(CK +.TP +\f3cd\fP \f2old\^\fP \f2new\^\fP +.PD +This command can be in either of two forms. +In the first form it +changes the current directory to +.IR arg . +If +.I arg\^ +is +.B \- +the directory is changed to the previous +directory. +The shell +parameter +.B +.SM HOME +is the default +.IR arg . +The parameter +.SM +.B PWD +is set to the current directory. +The shell parameter +.B +.SM CDPATH +defines the search path for +the directory containing +.IR arg . +Alternative directory names are separated by +a colon +.RB ( : ). +The default path is +.B +(specifying the current directory). +Note that the current directory is specified by a null path name, +which can appear immediately after the equal sign +or between the colon delimiters anywhere else in the path list. +If +.I arg +begins with a \f3/\fP then the search path +is not used. +Otherwise, each directory in the path is +searched for +.IR arg . +.P +The second form of +.B cd +substitutes the string +.I new +for the string +.I old +in the current directory name, +.SM +.B PWD +and tries to change to this new directory. +.P +The +.B cd\^ +command may not be executed by +.I rsh\^. +.TP +\f3eval\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +The arguments are read as input +to the shell +and the resulting command(s) executed. +.TP +\f3exec\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +Parameter assignments remain in effect after the command completes. +If +.I arg\^ +is given, +the command specified by +the arguments is executed in place of this shell +without creating a new process. +Input/output arguments may appear and +affect the current process. +If no +arguments are given +the effect of this command is to +modify file descriptors +as prescribed by the input/output redirection list. +In this case, +any file descriptor numbers greater than 2 that are +opened with this mechanism are closed when invoking +another program. +.TP +\f3exit\fP \*(OK \f2n\^\fP \*(CK +Causes the shell to exit +with the exit status specified by +.IR n . +If +.I n\^ +is omitted then the exit status is that of the last command executed. +An end-of-file will also cause the shell to exit +except for a +shell which has the +.I ignoreeof +option (See +.B set +below) turned on. +.TP +\f3export\fP \*(OK \f2name\^\fP .\|.\|. \*(CK +The given +.IR name s +are marked for automatic +export to the +.I environment\^ +of subsequently-executed commands. +.TP +.PD 0 +\f3fc\fP \*(OK \f3\-e \f2ename\^\fP \ \*(CK \*(OK \f3\-\f3nlr\^\f1 \*(CK \*(OK \f2first\^\fP \*(CK \*(OK \f2last\^\fP \*(CK +.TP +\f3fc \-e \-\fP \*(OK \f2old\fP\f3\=\fP\f2new\^\fP \*(CK \*(OK \f2command\^\fP \*(CK +.PD +In the first form, +a range of commands from +.I first\^ +to +.I last\^ +is selected from the last +.SM +.B HISTSIZE +commands that were typed at the terminal. +The arguments +.I first\^ +and +.I last\^ +may be specified as a number or as a string. +A string is used to locate the most recent command starting with +the given string. +A negative number is used as an offset to the current command number. +If the flag +.BR \-l , +is selected, +the commands are listed on standard output. +Otherwise, the editor program +.I ename\^ +is invoked on a file containing these +keyboard commands. +If +.I ename\^ +is not supplied, then the value of the parameter +.SM +.B FCEDIT +(default /bin/ed) +is used as the editor. +When editing is complete, the edited command(s) +is executed. +.I last\^ +is not specified +then it will be set to +.IR first . +If +.I first\^ +is not specified +the default is the previous command +for editing and \-16 for listing. +The flag +.B \-r +reverses the order of the commands and +the flag +.B \-n +suppresses command numbers when listing. +In the second form the +.I command\^ +is re-executed after the substitution +\f2old\^\fP\f3=\fP\f2new\^\fP +is performed. +.TP +\f3fg\fP \*(OK \f3%\f2job\^\fP \*(CK +This command is only built-in on systems that support job control. +If +.I job\^ +is specified it brings it to the foreground. +Otherwise, the current job is +brought into the foreground. +.TP +\f3jobs\fP \*(OK \f3\-l\^\fP \*(CK +Lists the active jobs; given the +.B \-l +options lists process id's in addition to the normal information. +.TP +\f3kill\fP \*(OK \f3\-\f2sig\^\fP \*(CK \f2process\^\fP .\|.\|. +Sends either the TERM (terminate) signal or the +specified signal to the specified jobs or processes. +Signals are either given by number or by names (as given in +.I /usr/include/signal.h, +stripped of the prefix ``SIG''). +The signal names are listed by +.BR "kill \-l'" . +There is no default, saying just `kill' does not +send a signal to the current job. +If the signal being sent is TERM (terminate) or HUP (hangup), +then the job or process will be sent a CONT (continue) signal +if it is stopped. +The argument +.I process\^ +can be either a process id or a job. +.TP +\f3let\fP \f2arg\^\fP .\|.\|. +Each +.I arg +is an +.IR "arithmetic expression" +to be evaluated. +All calculations are done as long +integers and no check for overflow +is performed. +Expressions consist of constants, +named parameters, and operators. +The following set of operators, +listed in order of decreasing precedence, +have been implemented: +.RS +.PD 0 +.TP +.B \- +unary minus +.TP +.B ! +logical negation +.TP +.B "* / %" +.br +multiplication, division, remainder +.TP +.B "+ \-" +addition, subtraction +.TP +.B "<= >= < >" +.br +comparison +.TP +.B "== !=" +.br +equality inequality +.TP +.B = +arithmetic replacement +.PD +.PP +Sub-expressions in parentheses +.B (\|) +are evaluated first and can be used +to override the above precedence rules. +The evaluation within a precedence group +is from right to left for the +.B = +operator +and from left to right for the others. +.PP +A parameter name must be a valid +.IR identifier . +When a parameter is encountered, +the value associated with the +parameter name is substituted and expression evaluation resumes. +Up to nine levels of recursion are +permitted. +.PP +The return code is +0 if the value of the last expression +is non-zero, and 1 otherwise. +.RE +.TP +\f3newgrp\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +Equivalent to +.BI "exec newgrp" " arg\^" +\&.\|.\|.\^. +.TP +\f3print\fP \*(OK \f3\-Rnprsu\^\fP\*(OK\f2n\fP \*(CK \*(CK \*(OK \f2arg\^\fP .\|.\|. \*(CK +The shell output mechanism. +With no flags or with flag +.BR \- , +the arguments are printed +on standard output as described by +.IR echo (1). +In raw mode, +.B \-R +or +.BR \-r , +the escape conventions of +.I echo +are ignored. +The +.B \-R +option will print all subsequent arguments and options +other than +.BR \-n . +The +.B \-p +option causes the +arguments to be written onto the pipe +of the process spawned with +.B \(bv& +instead of standard output. +The +.B \-s +option causes the +arguments to be written onto the history file +instead of standard output. +The +.B \-u +flag can be used to specify a one digit +file descriptor unit number +.B n\^ +on which the +output will be placed. +The default is 1. +If the flag +.B \-n +is used, no +.B new-line\^ +is added to the output. +.TP +\f3read\fP \*(OK \f3\-prsu\^\fP\*(OK \f2n\^\fP \*(CK \*(CK \*(OK \f2name\f3?\f2prompt\^\f1 \*(CK \*(OK \f2name\^\fP .\|.\|. \*(CK +The shell input mechanism. +One line is read and +is broken up into words using the characters in +.B +.SM IFS +as separators. +In raw mode, +.B \-r, +a +.B \e +at the end of a line does not signify +line continuation. +The first +word is assigned to the first +.IR name , +the second word +to the second +.IR name , +etc., with leftover words assigned to the last +.IR name . +The +.B \-p +option causes the input line +to be taken from the input pipe +of a process spawned by the shell +using +.BR \(bv& . +If the +.B \-s +fag is present, +the input will be saved as a command in the history file. +The flag +.B \-u +can be used to specify a one digit file +descriptor unit to read from. +The file descriptor can be opened with the +.B exec\^ +special command. +The default value of +.I n\^ +is 0. +If +.IR name +is omitted then +.SM +.B REPLY +is used as the default +.IR name. +The return code is 0 unless an end-of-file is encountered. +An end-of-file with the +.B \-p +option causes cleanup for this process +so that another can be spawned. +If the first argument contains a +.BR ? , +the remainder of this word is used as a +.I prompt\^ +when the shell is interactive. +If the given file descriptor is open for writing +and is a terminal device then the prompt is placed +on this unit. +Otherwise the prompt is issued on file descriptor 2. +The return code is 0 unless an end-of-file is encountered. +.TP +\f3readonly\fP \*(OK \f2name\fP .\|.\|. \*(CK +The given +.IR names +are marked +readonly and these +names cannot be changed +by subsequent assignment. +.TP +\f3return\fP \*(OK \f2n\^\fP \*(CK +Causes a shell +.I function +to return +to the invoking script +with the return status specified by +.IR n . +If +.I n\^ +is omitted then the return status is that of the last command executed. +If +.B return +is invoked while not in a +.I function +then it is the same as an +.BR exit . +.TP +\f3set\fP \*(OK \f3\-aefhkmnostuvx\fP \*(CK \*(OK \f3\-o\fP \f2option\^\fP .\|.\|. \*(CK \*(OK \f2arg\^\fP .\|.\|. \*(CK +The flags for this command have meaning as follows: +.RS +.PD 0 +.TP 8 +.B \-a +All subsequent parameters that are defined are automatically exported. +.TP 8 +.B \-e +If the shell is non-interactive and if a command fails, +execute the +.SM +.B ERR +trap, if set, +and exit immediately. +This mode is disabled while reading profiles. +.TP 8 +.B \-f +Disables file name generation. +.TP 8 +.B \-h +Each command whose name is an +.I identifier\^ +becomes a tracked alias when first encountered. +.TP 8 +.B \-k +All parameter assignment arguments are placed in the environment for a command, +not just those that precede the command name. +.TP 8 +.B \-m +Background jobs will run in a separate process group +and a line will print upon completion. +The exit status of background jobs is reported in a completion message. +On systems with job control, +this flag is turned on automatically for +interactive shells. +.TP 8 +.B \-n +Read commands but do not execute them. +.TP 8 +.B \-o +The following argument can be one of the following option names: +.RS +.TP 8 +.B allexport +Same as +.BR \-a . +.TP 8 +.B errexit +Same as +.BR \-e . +.TP 8 +.B emacs +Puts you in an +.I emacs +style in-line editor for command entry. +.TP 8 +.B gmacs +Puts you in a +.I gmacs +style in-line editor for command entry. +.TP 8 +.B ignoreeof +The shell will not exit on end-of-file. +The command +.B exit +must be used. +.TP 8 +.B keyword +Same as +.BR \-k . +.TP 8 +.B markdirs +All directory names resulting from file name generation have a trailing +.B / +appended. +.TP 8 +.B monitor +Same as +.BR \-m . +.TP 8 +.B noexec +Same as +.BR \-n . +.TP 8 +.B noglob +Same as +.BR \-f . +.TP 8 +.B nounset +Same as +.BR \-u . +.TP 8 +.B verbose +Same as +.BR \-v . +.TP 8 +.B trackall +Same as +.BR \-h . +.TP 8 +.B vi +Puts you in insert mode of a +.I vi\^ +style in-line editor +until you hit escape character +.BR 033 . +This puts you in move mode. +A return sends the line. +.TP 8 +.B viraw +Each character is processed as it is typed +in +.I vi\^ +mode. +.TP 8 +.B xtrace +Same as +.BR \-x . +.TP 8 + +If no option name is supplied then the current option settings are printed. +.RE +.TP 8 +.B \-s +Sort the positional parameters. +.TP 8 +.B \-t +Exit after reading and executing one command. +.TP 8 +.B \-u +Treat unset parameters as an error when substituting. +.TP 8 +.B \-v +Print shell input lines as they are read. +.TP 8 +.B \-x +Print commands and their arguments as they are executed. +.TP 8 +.B \- +Turns off +.B \-x +and +.B \-v +flags and stops examining arguments for flags. +.TP 8 +.B \-\- +Do not change any of the flags; useful in setting +.B $1 +to a value beginning with +.BR \- . +If no arguments follow this flag then the positional parameters are unset. +.PD +.PP +Using +.B \+ +rather than +.B \- +causes these flags to be turned off. +These flags can also be used upon invocation of the shell. +The current set of flags may be found in +.BR $\- . +The remaining arguments are positional +parameters and are assigned, in order, +.if t to\p +.if n to +.BR $1 , +.BR $2 , +\&.\|.\|.\^. +If no arguments are given then the values +of all names are printed on the standard output. +.RE +.TP +\f3shift\fP \*(OK \f2n\^\fP \*(CK +.br +The positional parameters from +\f3$\fP\f2n\fP\f3+1\fP +\&.\|.\|. +are renamed +.B $1 +\&.\|.\|.\^ +, default +.I n\^ +is 1. +The parameter +.I n\^ +can be any arithmetic expression that evaluates to a non-negative +number less than or equal to +.BR $# . +.TP +\f3test\fP \*(OK \f2expr\^\fP \*(CK +.br +Evaluate conditional expression +.IR expr . +See +.IR test (1) +for usage and description. +The arithmetic comparison operators +are not restricted to integers. +They allow any arithmetic expression. +Four additional primitive expressions are allowed: +.RS +.PD 0 +.TP +\f3\-L\fP \f2file\^\fP +True if +.I file\^ +is a symbolic link. +.TP +\f2file1\^\fP \f3\-nt\fP \f2file2\^\fP +True if +.I file1\^ +is newer than +.IR file2 . +.TP +\f2file1\^\fP \f3\-ot\fP \f2file2\^\fP +True if +.I file1\^ +is older than +.IR file2 . +.TP +\f2file1\^\fP \f3\-ef\fP \f2file2\^\fP +True if +.I file1\^ +has the same device and i-node number as +.IR file2 . +.PD +.RE +.TP +\f3times\fP +.br +Print the accumulated user and system times for +the shell and for processes +run from the shell. +.TP +\f3trap\fP \*(OK \f2arg\^\fP \*(CK \*(OK \f2sig\^\fP \*(CK .\|.\|. +.I arg\^ +is a command to be read and executed when the shell +receives signal(s) +.IR sig . +(Note that +.I arg\^ +is scanned once when +the trap is set and once when the trap +is taken.) +Each +.I sig\^ +can be given as a number or as the name of the signal. +Trap commands are executed in order of signal number. +Any attempt to set a trap on a signal that +was ignored on entry to the current shell +is ineffective. +An attempt to trap on signal 11 (memory fault) produces an error. +If +.I arg\^ +is omitted or is +.BR \- , +then all trap(s) +.I sig\^ +are reset +to their original values. +If +.I arg\^ +is the null +string then this signal is ignored by the shell and by the commands +it invokes. +If +.I sig\^ +is +.SM +.B ERR +then +.I arg\^ +will be executed whenever a command has a non-zero exit code. +This trap is not inherited by functions. +If +.I sig\^ +is +.B 0 +or +.SM +.B EXIT +and the +.B trap +statement is executed inside the body of a function, +then the command +.I arg\^ +is executed +after the function completes. +If +.I sig\^ +is +.B 0 +or +.SM +.B EXIT +for a +.B trap +set outside any function +then the command +.I arg\^ +is executed +on exit from the shell. +The +.B trap +command +with no arguments prints a list +of commands associated with each signal number. +.TP +\f3typeset\fP \*(OK \f3\-FLRZefilprtux\^\fP\*(OK\f2n\fP \*(CK \*(OK \f2name\fP\*(OK \f2=value\^\fP \*(CK \^ \*(CK .\|.\|. \*(CK +Parameter assignments remain in effect after the command completes. +When invoked inside a function, +a new instance of the parameter +.I name\^ +is created. +The parameter value and type are restored +when the function completes. +The following list of attributes may be specified: +.RS +.PD 0 +.TP +.B \-F +This flag provides UNIX to host-name file mapping on non-UNIX +machines. +.TP +.B \-L +Left justify and remove leading blanks from +.IR value . +If +.I n +is non-zero it defines the width +of the field, +otherwise it is determined by the width of the value of +first assignment. +When the parameter is assigned to, it is +filled on the right with blanks or truncated, if necessary, to +fit into the field. +Leading zeros are removed if the +.B \-Z +flag is also set. +The +.B \-R +flag is turned off. +.TP +.B \-R +Right justify and fill with leading blanks. +If +.I n +is non-zero it defines the width +of the field, +otherwise it is determined by the width of the value of +first assignment. +The field is left filled with blanks or +truncated from the end if the +parameter is reassigned. +The +.B L +flag is turned off. +.TP +.B \-Z +Right justify and fill with leading zeros if +the first non-blank character is a digit and the +.B \-L +flag has not been set. +If +.I n +is non-zero it defines the width +of the field, +otherwise it is determined by the width of the value of +first assignment. +.TP +.B \-e +Tag the parameter as having an error. +This tag is currently unused by the shell and can be +set or cleared by the user. +.TP +.B \-f +The names refer to function names rather than +parameter names. +No assignments can be made and the only other +valid flag is +.BR \-x . +.TP +.B \-i +Parameter is an integer. +This makes arithmetic faster. +If +.I n +is non-zero it defines the output arithmetic base, +otherwise the first assignment determines the output base. +.TP +.B \-l +All upper-case characters +converted to lower-case. +The upper-case flag, +.B \-u +is turned off. +.TP +.B \-p +The output of this command, if any, is written onto the two-way pipe +.TP +.B \-r +The given +.IR names +are marked +readonly and these +names cannot be changed +by subsequent assignment. +.TP +.B \-t +Tags the named parameters. +Tags are user definable and have no special +meaning to the shell. +.TP +.B \-u +All lower-case characters are converted +to upper-case characters. +The lower-case flag, +.B \-l +is turned off. +.TP +.B \-x +The given +.IR name s +are marked for automatic +export to the +.I environment\^ +of subsequently-executed commands. +.PD +.PP +Using +.B \+ +rather than +.B \- +causes these flags to be turned off. +If no +.I name\^ +arguments are given but flags are specified, +a list of +.I names\^ +(and optionally the +.I values\^ +) +of the +.I parameters\^ +which have these +flags set +is printed. +(Using +.B \+ +rather than +.B \- +keeps the +values to be printed.) +If no +.IR name s +and flags +are given, +the +.I names\^ +and +.I attributes\^ +of all +.I parameters\^ +are printed. +.RE +.TP +\f3ulimit\fP \*(OK \f3\-cdfmpt\fP \*(CK \*(OK \f2n\^\fP \*(CK +.RS +.PD 0 +.TP +.B \-c +imposes a size limit of +.I n\^ +blocks on the size of core dumps +(\s-1BSD\s+1 only). +.TP +.B \-d +imposes a size limit of +.I n\^ +blocks on the size of the data area +(\s-1BSD\s+1 only). +.TP +.B \-f +imposes a size limit of +.I n\^ +blocks on files written by child processes (files of any size may be read). +.TP +.B \-m +imposes a soft limit of +.I n\^ +blocks on the size of physical memory +(\s-1BSD\s+1 only). +.TP +.B \-p +changes the pipe size to +.I n\^ +(\s-1UNIX\s+1/\s-1RT\s+1 only). +.TP +.B \-t +imposes a time limit of +.I n\^ +seconds to be used by each process +(\s-1BSD\s+1 only). +.PD +.PP +If no option is given, +.B \-f +is assumed. +If +.I n\^ +is not given the current limit is printed. +.RE +.TP +\f3umask\fP \*(OK \f2nnn\^\fP \*(CK +The user file-creation mask is set to +.I nnn\^ +(see +.IR umask (2)). +If +.I nnn\^ +is omitted, the current value of the mask is printed. +.TP +\f3unalias\fP \f2name\^\fP .\|.\|. +The +.IR +parameters +given by the list of +.IR name s +are removed from the +.I alias\^ +list. +.TP +\f3unset\fP \*(OK \f3\-f\fP \*(CK \f2name\^\fP .\|.\|. +The parameters given by the list of +.IR name s +are unassigned, +i. e., +their values and attributes are erased. +Readonly variables cannot be unset. +If the flag, +.BR \-f , +is set, then the names refer to +.I function\^ +names. +.TP +\f3wait\fP \*(OK \f2n\^\fP \*(CK +Wait for the specified process and +report its termination status. +If +.I n\^ +is not given then all currently active child processes are waited for. +The return code from this command is that of +the process waited for. +.TP +\f3whence\fP \*(OK \f3\-v\fP \*(CK \f2name\^\fP .\|.\|. +For each +.IR name , +indicate how it +would be interpreted if used as a command name. +.P +The flag, +.BR \-v , +produces a more verbose report. +.SS Invocation. +If the shell is invoked by +.IR exec (2), +and the first character of argument zero +.RB ( $0 ) +is +.BR \- , +then the shell is assumed to be a +.I login +shell and +commands are read from +.B /etc/profile +and then from either +.B .profile +in the current directory or +.BR \s-1$HOME\s+1/.profile , +if either file exists. +Next, commands are read from +the file named by +performing parameter substitution on +the value of the environment parameter +.SM +.B ENV +if the file exists. +Commands are then read as described below; +the following flags are interpreted by the shell +when it is invoked: +.PP +.PD 0 +.TP 10 +.BI \-c "\| string\^" +If the +.B \-c +flag is present then +commands are read from +.IR string . +.TP +.B \-s +If the +.B \-s +flag is present or if no +arguments remain +then commands are read from the standard input. +Shell output, +except for the output of some of the +.I Special commands\^ +listed above, +is written to +file descriptor 2. +.TP +.B \-i +If the +.B \-i +flag is present or +if the shell input and output are attached to a terminal (as told by +.IR gtty (2)) +then this shell is +.IR interactive . +In this case \s-1TERMINATE\s+1 is ignored (so that \f3kill 0\fP +does not kill an interactive shell) and \s-1INTERRUPT\s+1 is caught and ignored +(so that +.B wait +is interruptible). +In all cases, \s-1QUIT\s+1 is ignored by the shell. +.TP +.B \-r +If the +.B \-r +flag is present the shell is a restricted shell. +.PD +.PP +The remaining flags and arguments are described under the +.B set +command above. +.SS Rsh Only. +.I Rsh +is used to set up login names and execution environments whose +capabilities are more controlled than those of the standard shell. +The actions of +.I rsh\^ +are identical to those of +.IR sh , +except that the following are disallowed: +.RS +.PD 0 +.PP +changing directory (see +.IR cd (1)), +.br +setting the value of +.SM +.B SHELL +or +.SM +.BR PATH\*S, +.br +specifying path or +command names containing +.BR / , +.br +redirecting output +.RB ( > +and +.BR >> ). +.PD +.RE +.PP +The restrictions above are enforced +after \f3.profile\fP and the +.SM +.B ENV +files are interpreted. +.PP +When a command to be executed is found to be a shell procedure, +.I rsh\^ +invokes +.I sh\^ +to execute it. +Thus, it is possible to provide to the end-user shell procedures +that have access to the full power of +the standard shell, +while imposing a limited menu of commands; +this scheme assumes that the end-user does not have write and +execute permissions in the same directory. +.PP +The net effect of these rules is that the writer of the +.B .profile +has complete control over user actions, +by performing guaranteed setup actions +and leaving the user in an appropriate directory +(probably +.I not\^ +the login directory). +.PP +The system administrator often sets up a directory +of commands +(i.e., +.BR /usr/rbin ) +that can be safely invoked by +.IR rsh . +Some systems also provide a restricted editor +.IR red . +.SH EXIT STATUS +Errors detected by the shell, such as syntax errors, +cause the shell +to return a non-zero exit status. +If the shell is being used non-interactively +then execution of the shell file is abandoned. +Otherwise, the shell returns the exit status of +the last command executed (see also the +.B exit +command above). +.SH FILES +/etc/passwd +.br +/etc/profile +.br +\s-1$HOME\s+1/\f3.\fPprofile +.br +/tmp/sh\(** +.br +/dev/null +.SH SEE ALSO +cat(1), +cd(1), +echo(1), +emacs(1), +env(1), +gmacs(1), +newgrp(1), +test(1), +umask(1), +vi(1), +dup(2), +exec(2), +fork(2), +gtty(2), +pipe(2), +signal(2), +umask(2), +ulimit(2), +wait(2), +rand(3), +a.out(5), +profile(5), +environ(7). +.SH CAVEATS +.PP +If a command which is a +.I "tracked alias" +is executed, and then a command with the same name is +installed in a directory in the search path before the directory where the +original command was found, the shell will continue to +.I exec\^ +the original command. +Use the +.B \-t +option of the +.B alias\^ +command to correct this situation +.PP +If you move the current directory or one above it, +.B pwd\^ +may not give the correct response. +Use the +.B cd\^ +command with a full path name +to correct this situation. +.PP +Some very old shell scripts contain a +.B ^ +as a synonym for the pipe character +.BR \(bv . diff --git a/static/unix-v10/man1/lab.1 b/static/unix-v10/man1/lab.1 new file mode 100644 index 00000000..6f492a36 --- /dev/null +++ b/static/unix-v10/man1/lab.1 @@ -0,0 +1,40 @@ +.TH LAB 1 alice +.CT 1 misc +.SH NAME +lab \(mi label maker +.SH SYNOPSIS +.B lab +[ +.B -m +] +[ +.I file ... +] +.SH DESCRIPTION +.I Lab +causes the +.I files +to be queued for printing as mailing labels. +If no files are named, the standard input is read. +The option +.B -m +causes notification via +.IR mail (1) +to be sent when the job completes. +.PP +The last line of each label is identified by ending it +with one or more spaces and a hyphen. +The hyphen must be the last character in the line; +no white space may follow it. +.SH FILES +.TF /usr/spool/lab/* +.TP +.F /usr/spool/lab/* +spool area +.TP +.F /usr/lib/lab +printer daemon +.SH SEE\ ALSO +.IR pr (1) +.SH BUGS +Queued jobs print in directory (seemingly random) order. diff --git a/static/unix-v10/man1/langs.1 b/static/unix-v10/man1/langs.1 new file mode 100644 index 00000000..7b9998d1 --- /dev/null +++ b/static/unix-v10/man1/langs.1 @@ -0,0 +1,191 @@ +.TH LANGS 1 +.CT 1 prog_other +.SH NAME +altran, cospan, esterel, icon, lisp, macsyma, maple, ops5, pascal, ratfor, S, smp, sno, spitbol, struct, twig \- languages +.SH SYNOPSIS +.B altran +[ +.I option ... +] +.I file ... +.br +.B cospan +[ +.I option ... +] +file +.nf +.B esterel +.B iconc +.B icont +.B lisp +.B /usr/lbin/macsyma +.B maple +.B /usr/lbin/ops5 +.fi +.B ratfor +[ +.I option ... +] +.I file ... +.br +.B S +.br +.B smp +.br +.B sno +[ +.I file ... +] +.br +.B spitbol +[ +.I option ... +] +.I file ... +.br +.B struct +[ +.I option ... +] +.I file ... +.br +.B twig +[ +.BI -w xx +] +.I file +.SH DESCRIPTION +.I Altran, +a language for rational algebra, is +described in W. S. Brown, +.I ALTRAN User's Manual. +For more information execute +.LR "man altran" . +.PP +.I Cospan, +a system which analyzes concurrent programs written in the data-flow +language S/R for properties defined by automata, is +described in +Z. Har'El and R. P. Kurshan, +.I COSPAN User's Guide, +1121-871009-21TM, AT&T Bell Laboratories, 1987. +For more information, execute +.LR "man cospan" . +.PP +.I Esterel +compiles single-process implementations of +programs expressed in terms of asynchronously cooperating +automata. +For more information, execute +.LR "man esterel" . +.PP +.I Icon, +a general-purpose language with +stream-based coroutines is described in R. E. Griswold, +.I The Icon Programming Language, +Prentice-Hall, 1983. +For more information, execute +.LR "man icont" . +.PP +.I Lisp, +the symbol manipulation language, is described in +J. K. Foderara, +`The Franz Lisp Manual', in +Unix Programmer's Manual, Seventh Edition, Virtual VAX-11 Version, +1980, Volume 2C +(Berkeley) +.PP +.I Macsyma, +another symbolic algebra language, +is described in +.I Macsyma Reference Manual, +Laboratory for Computer Science, MIT, 1977. +It breaks if the environment contains shell functions. +.PP +.I Maple, +a third symbolic algebra language, +is described in K. O. Geddes, G. H. Gonnet, and B. W. Char, +.I MAPLE User's Manual, Third Edition, +Research Report CS-83-41 +Dept. of Computer Science, University of Waterloo, 1983. +For more information execute +.LR "man maple" . +.PP +.I Ops5 +is a production-system interpreter +described in +C. L. Forgy +.IR "OPS5 User's Manual" , +Department of Computer Science, +Carnegie-Mellon University, +July, 1981. +For more information execute +.LR "man ops5" . +.PP +.I Pascal +is an interpreter and +.I pc +is a compiler for the well known language. +For more information, type +.LR "man pascal pc pxp" . +.PP +.I Ratfor +accepts Fortran extended with C-like control +constructs and compiles into Fortran. +For more information execute +.LR "man ratfor" . +For a full description see B. W. Kernighan and P. J. Plauger, +.I Software Tools, +Addison-Wesley, 1976. +.PP +.I S, +a system for data analysis and graphics, +is described in +R. A. Becker, J. M. Chambers, and A. R. Wilks, +.I +The New S Language, +Wadsworth, 1988. +.PP +.I Smp, +a fourth symbolic algebra language, +is described in C. Cole and S. Wolfram, +.I SMP Handbook, +California Institute of Technology, 1981. +.PP +.I Sno +is a dialect of Snobol 3. +For more information execute +.LR "man sno" . +.PP +.I Spitbol +is a dialect of Snobol 4. +For more information execute +.LR "man spitbol" . +The full story is in +R. B. K. Dewar, A. P. McCann, R. E. Goldberg, +and S. G. Duff, +.I Macro SPITBOL Program Reference Manual, +and R. E. Griswold, J. F. Poage, and I. P. Polonsky, +.I The SNOBOL4 Programming Language +Academic Press, 1968. +.PP +.I Struct, +an inverse of +.I ratfor, +deduces rational control structure from pure Fortran. +For more information execute +.LR "man struct" . +.PP +.I Twig +is a language for tree manipulation, +useful for code generation and other applications. +For more information execute +.LR "man twig" . +See also S. W. K. Tjiang, +.I Twig Reference Manual, +AT&T Bell Laboratories Computing Science Technical Report 120. +.SH BUGS +These language processors are available on a haphazard +collection of machines. +Many are maintained in the same spirit. diff --git a/static/unix-v10/man1/laserbar.1 b/static/unix-v10/man1/laserbar.1 new file mode 100644 index 00000000..e845fc9b --- /dev/null +++ b/static/unix-v10/man1/laserbar.1 @@ -0,0 +1,41 @@ +.TH LASERBAR 1 +.SH NAME +laserbar \- produce bar codes on a PostScript laser printer +.SH SYNOPSIS +.B laserbar +[\fB-r\fP rotate] [\fB-x\fP xoffset] [\fB-y\fP yoffset] +[\fB-X\fP xscale] [\fB-Y\fP yscale] [\fB-lns\fP] string +.SH DESCRIPTION +.I Laserbar +prints on the standard output the PostScript text that will produce +(on a suitable laser printer) the \s-2CODE-39\s+2 bar code +corresponding to +.I string. +The \fBr\fP option may be used to specify a rotation (in +degrees) of the bar code. +The \fBx\fP, \fBy\fP, \fBX\fP, and \fBY\fP options may be used to specify +an x- or y-axis offset (in inches) or scaling factor, respectively. +(The offset is measured from the lower left corner of the page +to the upper left corner of the bar +code. By default, the bar code produced is one inch high, and is scaled +so that the narrowest elements are each 1/72-inch \- i.e., one point \- wide.) +If the \fBl\fP option is specified, the bar code produced is labeled. +If the \fBn\fP option is specified, the resulting PostScript text +includes a leading \f(CWnewpath\fP command, so that the text may stand +alone or precede any other PostScript commands. +If the \fBs\fP option is specified, the resulting PostScript text includes +a trailing \f(CWshowpage\fP command, so that the text may stand alone +or follow any other PostScript commands. +.P +This manual page (if it appears with a bar code printed on it) was +produced by something like the following sequence: +.IP +.ft CW +laserbar -x 2.5 -y 3 -l -n ABC123xyz > tempfile +.br +troff -man -Tpost laserbar.1 | dpost >> tempfile +.br +prt -dprinter -lpostscript tempfile +.ft P +.SH SEE ALSO +laserbar(3), prt(1), dpost(1), postbgi(1), postprint(1), postdmd(1), posttek(1), etc. diff --git a/static/unix-v10/man1/lcc.1 b/static/unix-v10/man1/lcc.1 new file mode 100644 index 00000000..29ab1194 --- /dev/null +++ b/static/unix-v10/man1/lcc.1 @@ -0,0 +1,505 @@ +.TH LCC 1 "local \- 4/13/93" +.SH NAME +lcc \- local ANSI C compiler +.SH SYNOPSIS +.B lcc +[ +.I option +| +.I file +]... +.br +.SH DESCRIPTION +.PP +.I lcc +is a local ANSI C compiler for the VAX, MIPS, SPARC, and Motorola MC68020. +.PP +Arguments whose names end with `.c' are taken to be +C source programs; they are preprocessed, compiled, and +each object program is left on the file +whose name is that of the source with `.o' substituted for `.c'. +Arguments whose names end with `.i' are treated similarly, +except they are not preprocessed. +In the same way, +arguments whose names end with `.s' are taken to be assembly source programs +and are assembled, producing a `.o' file. +.PP +.I lcc +deletes a `.o' file if and only if exactly one +source file (`.c', `.s', or `.i' file) is mentioned and no other file +(source, object, library) or +.B \-l +option is mentioned. +.PP +.I lcc +uses ANSI standard header files +in preference to the `old-style' header files normally found in +.B /usr/include +(see `FILES' below). +Include files not found in the ANSI header files +are taken from the normal default include areas, +which usually includes +.BR /usr/include . +.PP +.I lcc +interprets the following options; unrecognized options are +taken as loader options (see +.IR ld (1)) +unless +.BR \-c , +.BR \-S , +or +.B \-E +precedes them. +Except for +.BR \-l , +all options are processed before any of the files +and apply to all of the files. +Applicable options are passed to each compilation phase in the order given. +.TP +.B \-c +Suppress the loading phase of the compilation, and force +an object file to be produced even if only one program is compiled. +.TP +.B \-g +Produce additional symbol table information for the local debuggers. +.I lcc +warns when +.B \-g +is unsupported. +.TP +.B \-w +Suppress warning diagnostics, such as those +announcing unreferenced statics, locals, and parameters. +The line +.I +#pragma ref id +simulates a reference to the variable +.IR id . +.TP +.BI \-d n +Generate jump tables for switches whose density is at least +.IR n , +a floating point constant between zero and one. +The default is 0.5. +.TP +.SM +.B \-A +Warns about +declarations and casts of function types without prototypes, +missing return values in returns from int functions, +assignments between pointers to ints and pointers to enums, and +conversions from pointers to smaller integral types. +A second +.SM +.B \-A +warns about +unrecognized control lines, +non-ANSI language extensions and source characters in literals, +unreferenced variables and static functions, +declaring arrays of incomplete types, +and exceeding +.I some +ANSI environmental limits, like more than 257 cases in switches. +It also arranges for duplicate global definitions in separately compiled +files to cause loader errors. +.TP +.SM +.B \-P +Writes declarations for all defined globals on standard error. +Function declarations include prototypes; +editing this output can simplify conversion to ANSI C. +This output may not correspond to the input when +there are several typedef's for the same type. +.TP +.B \-n +Arrange for the compiler to produce code +that tests for dereferencing zero pointers. +The code reports the offending file and line number and calls +.IR abort (3). +.TP +.SM +.B \-O +is ignored. +.TP +.SM +.B \-S +Compile the named C programs, and leave the +assembler-language output on corresponding files suffixed `.s'. +.TP +.SM +.B \-E +Run only the preprocessor on the named C programs +and unsuffixed file arguments, +and send the result to the standard output. +.TP +.SM +.B \-C +Prevent the preprocessor from eliding comments. +.TP +.BI \-o " output" +Name the output file +.IR output . +If +.B \-c +or +.B \-S +is specified and there is exactly one source file, +this option names the object or assembly file, respectively. +Otherwise, this option names the final executable +file generated by the loader, and `a.out' is left undisturbed. +.I lcc +warns if +.B \-o +and +.B \-c +or +.B \-S +are given with more than one source file and ignores the +.B \-o +option. +.TP +.SM +.BI \-D \*Sname=def +.br +.ns +.TP +.SM +.BI \-D \*Sname +Define the +.I name +to the preprocessor, as if by `#define'. +If no definition is given, the name is defined as "1". +.TP +.SM +.BI \-U \*Sname +Remove any initial definition of +.IR name . +.TP +.SM +.BI \-I \*Sdir +`#include' files +whose names do not begin with `/' are always +sought first in the directory of the +.I file +arguments, then in directories named in +.SM +.B \-I +options, then in directories on a standard list. +.TP +.SM +.B \-N +Do not search +.I any +of the standard directories for `#include' files. +Only those directories specified by explicit +.SM +.B \-I +options will be searched, in the order given. +.TP +.SM +.BI \-B \*Sstr +Use the compiler \fIstr\fP\fBrcc\fP instead of the default version. +Note that +.I str +often requires a trailing slash. +On Suns only, +.SM +.B \-Bstatic +and +.SM +.BI \-Bdynamic +are passed to the loader; see +.IR ld (1). +.TP +.B \-v +Print commands as they are executed; some of the executed +programs are directed to print their version numbers. +More than one occurrence of +.B \-v +causes the commands to be printed, but +.I not +executed. +.TP +.B \-b +Produce code that counts the number of times each expression is executed. +If loading takes place, replace the standard exit +function by one that writes a +.B prof.out +file when the object program terminates. +A listing annotated with execution counts can then be generated with +.IR bprint (1). +.I lcc +warns when +.B \-b +is unsupported. +.B \-Wf-C +is similar, but counts only the number of function calls. +.TP +.B \-p +Produce code that counts the number of times each function is called. +If loading takes place, replace the standard startup +function by one that automatically calls +.IR monitor (3) +at the start and arranges to write a +.B mon.out +file when the object program terminates normally. +An execution profile can then be generated with +.IR prof (1). +.I lcc +warns when +.B \-p +is unsupported. +.TP +.B \-pg +Causes the compiler to produce counting code like +.BR \-p , +but invokes a run-time recording mechanism that keeps more +extensive statistics and produces a +.B gmon.out +file at normal termination. +Also, a profiling library is searched, in lieu of the standard C library. +An execution profile can then be generated with +.IR gprof (1). +.I lcc +warns when +.B \-pg +is unsupported. +.TP +.SM +.BI \-t \*Sname +.br +.ns +.TP +.SM +.BI \-t +Produce code to print the name of the function, an activation number, +and the name and value of each argument at function entry. +At function exit, produce code to print +the name of the function, the activation number, and the return value. +By default, +.I printf +does the printing; if +.I name +appears, it does. +For null +.I char* +values, "(null)" is printed. +On Suns only, +.SM +.BI \-target +.I name +is accepted, but ignored. +.TP +.SM +.BI \-W \*Sx \fIarg\fP +pass argument +.I arg +to the program indicated by +.IR x ; +.I x +can be one of +.BR p , +.BR f , +.BR a , +or +.BR l , +which refer, respectively, to the preprocessor, the compiler proper, +the assembler, and the loader. +.I arg +is passed as given; if a +.B \- +is expected, it must be given explicitly. +.SM +.BI \-W \*So \fIarg\fP +specifies a system-specific option, +.IR arg . +.PP +Other arguments +are taken to be either loader option arguments, or C-compatible +object programs, typically produced by an earlier +.I lcc +run, or perhaps libraries of C-compatible routines. +Duplicate `.o' files are ignored. +These programs, together with the results of any +compilations specified, are loaded (in the order +given) to produce an executable program with name +.BR a.out . +.PP +.I lcc +assigns the most frequently referenced scalar parameters and +locals to registers whenever possible. +For each block, +explicit register declarations are obeyed first; +remaining registers are assigned to automatic locals if they +are `referenced' at least 3 times. +Each top-level occurrence of an identifier +counts as 1 reference. Occurrences in a loop, +either of the then/else arms of an if statement, or a case +in a switch statement each count, respectively, as 10, 1/2, or 1/10 references. +These values are increased accordingly for nested control structures. +.B \-Wf-a +causes +.I lcc +to read a +.B prof.out +file from a previous execution and to use the data therein +to compute reference counts (see +.BR \-b ). +.SH LIMITATIONS +.PP +.I lcc +accepts the C programming language +as described in the proposed ANSI standard +and in the second edition of Kernighan and Ritchie. +.I lcc +is intended to be used with the GNU C preprocessor, which supports the +preprocessing features introduced by the ANSI standard. +The +.SM +.B \-Wp-trigraphs +option is required to enable trigraph sequences. +.PP +Wide-character literals are accepted +but are treated as plain char literals. +Plain chars are signed chars, +ints and long ints are the same size +as are doubles and long doubles, and +plain int bit fields are signed. +Bit fields are aligned like unsigned integers but are otherwise laid out +as if by the standard C compiler, +.IR cc (1). +Other compilers, such as the GNU C compiler, +.IR gcc (1), +may choose other, incompatible layouts. +.PP +Likewise, calling conventions are intended to be compatible with +.IR cc (1), +except possibly for passing and returning structures. +Specifically, +.I lcc +passes structures like +.I cc +on all targets, +but returns structures like +.I cc +on only the MIPS. +Consequently, calls to/from such functions compiled with +.I cc +or other C compilers may not work. +Calling a function that returns +a structure without declaring it as such violates +the ANSI standard and may cause a core dump. +.SH FILES +.PP +The file names listed below are +.IR typical , +but vary among installations; installation-dependent variants +can be displayed by running +.I lcc +with the +.B \-v +option. +.PP +.ta \w'/usr/lib/gcc-cppxx'u +.nf +file.c input file +file.o object file +a.out loaded output +/tmp/lcc? temporaries +/usr/lib/gcc-cpp preprocessor +/usr/lib/rcc compiler +/usr/lib/bbexit.o exit for profiling +/lib/crt0.o runtime startoff +/lib/[gm]crt0.o startoffs for profiling +/lib/libc.a standard library +/usr/include/lcc ANSI standard headers +/usr/include/libc local ANSI headers +/usr/include traditional headers +prof.out file produced for \fIbprint\fR(1) +mon.out file produced for \fIprof\fR(1) +gmon.out file produced for \fIgprof\fR(1) +.fi +.PP +.I lcc +predefines the macros `unix' and `__LCC__'. +It may also predefine some installation-dependent symbols; option +.B \-v +exposes them. +.SH "SEE ALSO" +B. W. Kernighan and D. M. Ritchie, +.I The C Programming Language, +Prentice-Hall, 2nd Ed., 1988. +.PP +.I +American National Standard for Information Systems, Programming Language C, +ANSI X3.159-1989, American National Standard Institute, Inc., New York, 1990. +.PP +cc(1), ld(1) +.br +.SH BUGS +Mail bug reports along with the shortest program +that exposes them and the details reported by +.IR lcc 's +.B \-v +option to lcc-bugs@princeton.edu. +.PP +The `ANSI standard headers' conform to the specifications in +the standard, which may be too restrictive for some applications, +but necessary for portability. +Functions given in the ANSI headers may be missing from +the local C library (e.g., `wide character' functions) +or may not correspond exactly to the local version; +for example, the ANSI standard +.B stdio.h +specifies that +.IR printf , +.IR fprintf , +and +.I sprintf +return the number of characters written to the file or array, +but few existing libraries implement this convention. +.PP +On VAXes running 4.3bsd UNIX, +the definitions of +.I tolower +and +.I toupper +erroneously return bad values for non-letter arguments. +.PP +On the MIPS and SPARC, old-style variadic functions must use +.B varargs.h +from MIPS or Sun. New-style is recommended. +.PP +The Sun assembler version 3.5 or later is required on the MC68020, +and only the MC68881 is supported. +.PP +With +.BR \-b , +files compiled +.I without +.B \-b +may cause +.I bprint +to print erroneous call graphs. +For example, if +.B f +calls +.B g +calls +.B h +and +.B f +and +.B h +are compiled with +.BR \-b , +but +.B g +is not, +.B bprint +will report that +.B f +called +.BR h . +The total number of calls is correct, however. diff --git a/static/unix-v10/man1/lcoc.1 b/static/unix-v10/man1/lcoc.1 new file mode 100644 index 00000000..3ed6b108 --- /dev/null +++ b/static/unix-v10/man1/lcoc.1 @@ -0,0 +1,76 @@ +.TH LCOC 1 "30 June 1988" +.SH NAME +lcoc \- Esterel compiler +.SH SYNOPSIS +.B lcoc +[ option ] ... [ file ]... +.SH DESCRIPTION +\fIlcoc\fR is the Esterel v3 compiler. +It produce an \fIoc\fR format output from one or more \fIlc\fR format inputs +(or \fIic\fR if no Esterel \fBcopymodule\fP instruction is used). +If there is no input files, the standard input is used. +\fIic\fP format inputs describes Esterel \fBmodules\fP to be processed, +and \fIoc\fP format output describes the computed automata. +Typical use is: +.br +.DS +lcoc < game1.ic > game1.oc +.DE +.br +or +.br +.DS +lcoc game1.ic > game1.oc +.DE +.LP +The following options are interpreted by \fIlcoc\fP. +.IP \fB-version\fR 10 +Gives the version name and terminates ignoring all others arguments. +.IP \fB-v\fR 10 +Verbose option: gives names of the modules compiled. +.IP \fB-stat\fR 10 +Prints statistic informations into the standard error stream: +parsing and compiling times and size of the process. +.IP \fB-size\fR 10 +Prints size informations into the standard error stream: +how many states, actions and action calls are produced. +.IP \fB-memstat\fR 10 +Memory state after compiling. +.IP \fB-W\fR 10 +Give warnings about .ic unused actions and .ic dead code. +.IP \fB-show\fR 10 +During the compiling process, gives two informations into +the standard error stream: +how many states are already created and how many states are already +analysed. +.SH FILES +The caller of the command +must have read/write permission for the directories containing +the working files, and execute permission for the \fIlcoc\fR file itself. +.SH DIAGNOSTICS +The diagnostics produced by \fIlcoc\fR compiler are intended +to be self-explanatory. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: F. Boussinot, +CMA, Ecole des Mines de Paris, +.sp 0 +Sophia-Antipolis, 06600 Valbonne, FRANCE +.sp 0 +Revision Number: +$Revision: 1.3 $ +; Release Date: +$Date: 88/06/30 12:08:10 $ +\&. +.SH SEE ALSO +Esterel v3 Programming Language Manual +.sp 0 +Esterel v3 System Manuals. +.sp 0 +strlic (1), iclc(1), ocl (1). +.sp 0 +.SH BUGS + + diff --git a/static/unix-v10/man1/lcomp.1 b/static/unix-v10/man1/lcomp.1 new file mode 100644 index 00000000..a6514b0d --- /dev/null +++ b/static/unix-v10/man1/lcomp.1 @@ -0,0 +1,133 @@ +.TH LCOMP 1 +.SH NAME +lcomp, lprint \(mi line-by-line profiler +.SH SYNOPSIS +.B lcomp +[ option ... ] file ... +.PP +.B lprint +[ option ] [ file ... ] +.SH DESCRIPTION +.I Lcomp +is used in place of +.I cc (1) +or +.I f77 (1) +to insert instruction-counting code into programs. +It recognizes options whose initial letters are taken from the string +.LR CwpDUIRdlNnz , +and accepts files whose names end in +.LR .c , +.LR .f , +.LR .s , +or +.LR .o . +From each source file it derives a +.L .o +file and a +.L .sL +file which +.I lprint +uses to correlate source lines with basic blocks. +.PP +Option +.B -C +declares that +.L .c +files (and +.L .o +files, if no source files are named) +are C++ files. +If the +.B -c +option is not present +.I lcomp +creates +.FR a.out . +Each time +.F a.out +is run statistics are added +to a profiling file +.FR prof.out . +.PP +.I Lprint +produces on the standard output a listing (in the style of +.IR pr (1)) +of the programs compiled by +.I lcomp. +Without arguments or files, +each line of the listing is preceded by the number of times it was executed, +as determined from the data in +.FR prof.out . +.I Lprint +interprets the following options. +.TP +.B -a +Detailed listing of every machine instruction and how often it was executed. +.TP +.B -b +How often each basic block was executed. +.TP +.B -c +Compress the +.F prof.out +file, which otherwise grows with every execution of +.LR a.out . +.TP +.B -f +Print summary information by function: instruction executions, number of +invocations, source instructions, and number of instructions never executed. +.TP +.B -i +Before each line of source print the number of machine instructions executed. +.TP +.B -p +Before each line of source print the number of times the first basic block +in that line was executed. +.TP +.B -s +Summarize the counts by source file: instruction exectuions, source +instructions, instructions never executed, basic block executions, total +number of source basic blocks, and how many were never executed. +.PP +If any file names are given, the arguments +.L abip +apply only to them. +If no options are given, +.L -p +is assumed. +Any combination of options is allowed. +.SH FILES +.TF /usr/lib/nexit.o +.TP +.F prof.out +counts +.TP +.F *.sL +for correlating with source +.TP +.F /usr/lib/bb +for finding basic blocks and inserting counting code +.TP +.F /usr/lib/nexit.o +for printing counts when +.L a.out +exits +.SH "SEE ALSO" +cc(1), f77(1) +.SH BUGS +A line in the source file may be in zero, one, or more basic +blocks; +the count given in the listing corresponds to some particular +choice of the basic block to associate with the line. +.br +Processing the output of +.IR yacc (1) +without removing +.L #line +directives will produce unsatisfactory results. +.br +Option +.B -C +masks an option of +.IR cc (1). diff --git a/static/unix-v10/man1/ld.1 b/static/unix-v10/man1/ld.1 new file mode 100644 index 00000000..1347d1b6 --- /dev/null +++ b/static/unix-v10/man1/ld.1 @@ -0,0 +1,111 @@ +.pa 1 +.he 'LD (I)'3/15/72'LD (I)' +.ti 0 +NAME ld -- link editor +.sp +.ti 0 +SYNOPSIS ld__ [ -sulxr______ ] name\d1\u ... +.sp +.ti 0 +DESCRIPTION ld__ combines several +object programs into one; resolves external +references; and searches libraries. +In the simplest case the names of several object +programs are given, and ld__ combines them, producing +an object module which can be either executed or +become the input for a further ld__ run. +In the latter case, the "-r" option must be given +to preserve the relocation bits. +.sp +The argument routines are concatenated in the order +specified. The entry point of the output is the +beginning of the first routine. +.sp +If any argument is a library, it is searched exactly once. +Only those routines defining an unresolved external +reference are loaded. +If a routine from a library +references another routine in the library, +the referenced routine must appear after the +referencing routine in the library. +Thus the order of programs within libraries +is important. +.sp +ld__ understands several flag arguments which are written +preceded by a "-": +.sp +.in +6 +.ti -3 +-s "squash" the output, that is, remove the symbol table +and relocation bits to save space (but impair the +usefulness of the debugger). +This information can also be removed by strip_____. +.ti -3 +.sp +-u take the following argument as a symbol and enter +it as undefined in the symbol table. This is useful +for loading wholly from a library, since initially the symbol +table is empty and an unresolved reference is needed +to force the loading of the first routine. +.sp +.ti -3 +-l This option is an abbreviation for a library name. +"-l" alone stands for "/usr/lib/liba.a", which +is the standard system library for assembly language +programs. +"-lx" stands for "/usr/lib/libx.a" where x is any character. +There are libraries for Fortran (x="f"), C (x="c"), Explor (x="e") and B (x="b"). + +.ti -3 +-x Do not preserve local +(non-.globl) symbols in the output symbol table; only enter +external symbols. +This option saves some space in the output file. + +.ti -3 +-r generate relocation bits in the output file +so that it can be the subject of another ld__ run. +.sp +.in -6 +The output of ld__ is left on a.out_____. This file is executable +only if no errors occurred during the load. +.sp +.ti 0 +FILES /usr/lib/lib?.a libraries +.br +a.out output file +.sp +.ti 0 +SEE ALSO as(I), ar(I) +.sp +.ti 0 +DIAGNOSTICS "file +not found"-- bad argument +.sp +"bad format"-- bad argument +.sp +"relocation error"-- bad argument (relocation +bits corrupted) +.sp +"multiply defined"-- same symbol defined twice in same load +.sp +"un"-- stands for "undefined symbol" + +"symbol not found"-- loader bug + +"can't move output file"-- can't move temporary to a.out file + +"no relocation bits"-- an input file lacks relocation information + +"too many symbols"-- too many references to external +symbols in a given routine + +"premature EOF" + +"can't create l.out"-- cannot make temporary file + +"multiple entry point"-- more than one entry point +specified (not possible yet). +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/ld80.1 b/static/unix-v10/man1/ld80.1 new file mode 100644 index 00000000..b35d608d --- /dev/null +++ b/static/unix-v10/man1/ld80.1 @@ -0,0 +1,120 @@ +.th "ld80" 1 1/2/78 +.sh NAME +"ld80" \*- link editor for the 8080/Z80 load moduals. +.sh SYNOPSIS +.bd "ld80" +[ +.bd \*-ultdb +] name ... +.sh DESCRIPTION +.it "ld80" +combines several +object programs into one; resolves external +references; and searches libraries. +In the simplest case the names of several object +programs are given, and +.it "ld80" +combines them, producing +an object module which can be either executed or +become the input for a further +.it "ld80" +run. +The output of +.it "ld80" +is left on +.bd "80.out". +This file is made executable +only if no errors occurred during the load. +.s3 +The argument routines are concatenated in the order +specified. The entry point of the output is the +beginning of the first routine. +.s3 +If any argument is a library, it is searched exactly once +at the point it is encountered in the argument list. +Only those routines defining an unresolved external +reference are loaded. +If a routine from a library +references another routine in the library, +the referenced routine must appear after the +referencing routine in the library. +Thus the order of programs within libraries +is important. +.s3 +.it "ld80" +understands several flag arguments which are written +preceded by a `\*-'. +Except for \fB\*-l\fR, +they should appear before the file names. +.s3 +.lp +4 4 +\fB\*-b\fR This +option is used to provide an absolute origin for the bss segment +of the resultant "80.out". +The supplied origin must be the next argument on the command +line and must be a positive or negative octal (leading 0) or +decimal number. +The defualt is for the bss segment to immediately follow the data +segment. +Use of this option will cause the relocation information to +be suppressed from the output. +.s3 +.lp +4 4 +\fB\*-d\fR This +option is used to provide an absolute origin for the data segment +of the resultant "80.out". +The supplied origin must be the next argument on the command +line and must be a positive or negative octal (leading 0) or +decimal number. +The default is to have the data placed directly +after the text. +Use of this option will cause the relocation information to +be suppressed from the output. +.s3 +.lp +4 4 +\fB\*-u\fR take the following argument as a symbol and enter +it as undefined in the symbol table. This is useful +for loading wholly from a library, since initially the symbol +table is empty and an unresolved reference is needed +to force the loading of the first routine. +.s3 +.lp +4 4 +\fB\*-t\fR This +option is used to provide an absolute origin for the text segment +of the resultant "80.out". +The supplied origin must be the next argument on the command +line and must be a positive or negative octal (leading 0) or +decimal number. +The default origin is 0. +Use of this option will cause the relocation information to +be suppressed from the output. +.s3 +.lp +4 4 +\fB\*-l\fR This +option is an abbreviation for a library name. +\fB\*-l\fR +alone stands for `/usr/z8080/lib/z80', which +is the standard library for assembly language +programs. +\fB\*-l\fIx\fR +stands for `/usr/z8080/lib/z80\fIx\fR.a' where \fIx\fR is any character. +A library is searched when its name is encountered, +so the placement of a \fB\*-l\fR +is significant. +.i0 +.dt +.sh FILES +/usr/z8080/lib/z80 libraries +.br +"80.out" output file +.sh "SEE ALSO" +"as80" (I), ar (I) +.sh BUGS +Most diagnostics are self explanatory. +The strangest is 'origin - conflict' and +occurs whenever an origin supplied by the user via +the -t -d or -b options causes segments to overlap. +The numbers printed out correspond +origins and sizes(both in octal) of each resultant segment. +.bd "80.out" +is produced. diff --git a/static/unix-v10/man1/learn.1 b/static/unix-v10/man1/learn.1 new file mode 100644 index 00000000..db6181ca --- /dev/null +++ b/static/unix-v10/man1/learn.1 @@ -0,0 +1,84 @@ +.TH LEARN 1 panther +.CT 1 inst_info +.SH NAME +learn \(mi computer aided instruction about UNIX +.SH SYNOPSIS +.B learn +[ +.BI - directory +] +[ +.I subject +[ +.I lesson +[ +.I speed +] +] +] +.SH DESCRIPTION +.I Learn +gives CAI courses and practice in the use of UNIX. +To get started +simply type `learn'. +The program will ask questions to find out what +you want to do. +The questions may be bypassed by naming a +.I subject, +and the last +.I lesson +number that +.I learn +told you in the previous session. +You may also include a +.I speed +number that was given with the lesson number +(but without the parentheses that +.I learn +places around the speed number). +If +.I lesson +is +.LR - , +.I learn +prompts for each lesson; +this is useful for debugging. +.PP +The +.I subjects +presently handled are +.EX + editor + eqn + files + macros + morefiles + C +.EE +.PP +The special command +.L bye +terminates a +.I learn +session. +.PP +The +.BI - directory +option allows one to exercise a script in +a nonstandard place. +.SH FILES +.F /usr/learn/* +.SH BUGS +The main strength of +.I learn, +that it asks the student to use the real +UNIX, also makes possible baffling mistakes. +It is helpful, especially for nonprogrammers, +to have a UNIX initiate near at hand during the first +sessions. +.PP +Occasionally lessons are incorrect, sometimes because the local version +of a command operates in a non-standard way. +Such lessons may be skipped, +but it takes some sophistication to recognize +the situation. diff --git a/static/unix-v10/man1/lex.1 b/static/unix-v10/man1/lex.1 new file mode 100644 index 00000000..95dd3007 --- /dev/null +++ b/static/unix-v10/man1/lex.1 @@ -0,0 +1,71 @@ +.TH LEX 1 +.CT 1 prog_other +.SH NAME +lex \(mi generator of lexical analysis programs +.SH SYNOPSIS +.B lex +[ +.B -tvfn +] +[ +.I file ... +] +.SH DESCRIPTION +.I Lex +generates programs to be used in simple lexical analysis of text. +The input +.I files +(standard input default) +contain regular expressions +to be searched for, and actions written in C to be executed when +expressions are found. +.PP +A C source program, +.F lex.yy.c +is generated, to be compiled thus: +.IP +.B cc lex.yy.c -ll +.LP +This program, when run, copies unrecognized portions of +the input to the output, +and executes the associated +C action for each regular expression that is recognized. +.PP +The options have the following meanings. +.TP +.B -t +Place the result on the standard output instead of in file +.FR lex.yy.c . +.TP +.B -v +Print a one-line summary of statistics of the generated analyzer. +.TP +.B -n +Opposite of +.BR -v ; +.B -n +is default. +.TP +.B -f +`Faster' compilation: don't bother to pack +the resulting tables; limited to small programs. +.SH EXAMPLES +This program converts upper case to lower, +removes blanks at the end of lines, +and replaces multiple blanks by single blanks. +.PP +.EX +%% +[A-Z] putchar(yytext[0]+\'a\'-\'A\'); +[ ]+$ +[ ]+ putchar(\' \'); +.EE +.SH FILES +.F lex.yy.c +.SH "SEE ALSO" +.IR yacc (1), +.IR sed (1) +.br +M. E. Lesk and E. Schmidt, +`LEX\(emLexical Analyzer Generator', +this manual, Volume 2 diff --git a/static/unix-v10/man1/library.1 b/static/unix-v10/man1/library.1 new file mode 100644 index 00000000..d6517a3b --- /dev/null +++ b/static/unix-v10/man1/library.1 @@ -0,0 +1,241 @@ +.nr X \" 0=3b2(default), 1=vax,uts \" 0=3b2(default), 1=vax,uts +.if \nX=0 .ds x} LIBRARY 1 "User Environment Utilities" "RDS Standard" 1 +.if \nX=1 .ds x} LIBRARY 1 "R&D UNIX STD" +.if \nX=2 .ds x} LIBRARY 1 "R&D UNIX STD" "\&" +.if \nX=3 .ds x} +.TH \*(x} +.SH NAME +library \- send information requests to appropriate organization +.PD +.SH SYNOPSIS +.B library [-1234567] [request string] +.PD +.SH DESCRIPTION +.I library +sends document/information requests to the +appropriate organization within the Library Network. +It also handles a variety of requests for other AT&T organizations +(e.g., Engineering Information Services). +It requires the user to discriminate between seven classes of requests +as indicated by the menu it displays: +.sp +.nf +1) Order by number - this includes nearly everything announced + by the AT&T Library Network (e.g. TMs, bulletin items) or handled + by the Engineering Information Services (e.g. J docs, CPSs). +2) Order item not announced by the AT&T Library Network. Available: + Buy a copy of a book; Address labels; Technical Reports; + Internal document by date (id unknown); Photocopies; + Subscribe to a journal; foreign language services. +3) Subscribe or unsubscribe to a bulletin (e.g. Mercury, CTP) +4) Submit a database search. Examples of available databases: + book catalog, internal documents, AT&T personnel, released papers +5) Request human assistance / interaction. Type(s) available: + General AT&T Library Network assistance; Reference question. +6) Request AT&T Library Network information/services. Examples: + LINUS info, products/services descriptions, loan/reserve status +7) Read AT&T Library Network email transmissions + +.fi +Note that the first class includes anything announced by the Library Network operated by AT&T Bell Laboratories. +.PP +The main menu level of +.I library +can be skipped by giving +the number of the desired option (1 - 7) +as the first parameter to the +\f2library\f1. +.PP +The secondary menu levels in +.I library +(presently in options 2, 4, 5 and 6) +can be bypassed by selecting the desired option as the second +parameter. +For example, to do order a photocopy, use the +command +.ce +library -2 -p +.PP +Similarly, if you want to do a search of the personnel database, +you can do the command line +.ce +library -4 -p waldstein, r k +.PP +Requests for objects that can be meaningfully described with one +line can be entered on the command line. +This includes the things orderable by options 1, 3, 4, and 6. +Note that library tries in this case to function with a minimum +of interaction. +For example, if you request a TM this way, +you will not be given a chance to enter remarks connected with the request. +.PP +When permitted, the command line requests can include more than one item +(presently only options 1 and 3 support this). +An example command line is +.ce +library -1 123456-851234-56tm 5d123 ad-123456 +.PP +In options 2, 5, and 6, +.I library +will prompt for a variety of information of varying complexity. +A period (.) at any point in this session will delete the +request being entered. +Blank lines (just hit return) will cause optional information to +be left out of the request. +A line consisting of tilde e (\~e) will, when a long response is +permitted, put you into an editor. +This editor defaults to ed(1). +However, if the environment variable EDITOR is set, the specified +editor is used. +A line consisting of tilde r (\~r) will, when a long response is +permitted, read in the indicated file. +.PP +Option 7 is a misfit, in that it is primarily a reader, not a +request transmitter; although it does allow requesting items. +This option is intended for reading electronic transmissions +from the library network: primarily responses to option 4 search +requests and ASAP (specialized searches like electronic Mercury). +A convenient way to use option 7 is to invoke it via a pipe +from mail(1), mailx(1) or post(1). +.ce + | 3 "library -7" +This assumes that mail message 3 consists of a search result. +The quote marks are required due to post(1) and mailx(1) syntax. +.PP +Break causes +.I library +to exit +without sending any requests. +.PP +In general for more information about what the library command can +do, go into each option and enter a question mark. +This will cause a description of how the option works and +what it can request. +.PP +Several other pieces of information can be passed +to +.I library +to ease and improve its usage. +This information is looked up in a file called .lib (or the file indicated +by the LIBFILE shell variable). +It expects this file to contain lines of the form: +.sp +.ti 10 +ID: \f2individual's PAN or Social Security Number\f1 +.ti 10 +libname: \f2individual's last name\f1 +.ti 10 +liblog: \f2name of log file\f1 +.ti 10 +libcntl: \f2control information\f1 +.ti 10 +reader: \f2reader control information\f1 +.ti 10 +liblocal: \f2control information\f1 +.PP +If this file is not found or lines of this form are not found, +then +.I library +prompts for name and ID (PAN or SS#). +.PP +This information can also be passed to +.I library +as the shell parameters: LIBID, LIBNAME, LIBLOG, LIBCNTL, and LIBLOCAL. +.PP +.I library +keeps a log of requests sent via library if a line in the .lib +file exists giving a log file name, i.e., if you have in +your .lib file a line of the form +.ce +liblog: \f2name of log file\f1 +.PP +.I library +keeps a log of requests in that file. +This file is created in a form that can be read and manipulated +by the +.I mail +command. +To read or modify the log file, type +.ce +mail -f \f2name of log file\f1 +.PP +.I library +creates the log file in your HOME directory unless the file name +given starts with a slash (/). +.I library +will automatically check option 1 requests +for duplicates in the log file. +.PP +The libcntl information is sent with the request to the program +that receives the requests for the library networks. +Control information containing the letter ``a'' +will cause an acknowledgement to be mailed back to you that +your request has been received. +Control information of the form ``m\f2number\f1''will determine the +maximum number of items retrieved by a search request. +For example, a control line of the form +.sp +.ce +libcntl: am100 +.PP +will cause requests to be acknowledged and a maximum of 100 retrieved +search items to be mailed back to you. +.PP +The reader control information is intended to let you personalize +the way +.I library +option 7 works for you. +Each letter after the colon indicates a different option turned +on or off. +Presently available are the following: +.RS +.TP 5 +b +causes library -7 to leave a +blank line between records when more than one is displayed on the screen. +.TP 5 +c +causes +.I library +to confirm that you want the entered requests transmitted. +It does this at the end of the session, before finishing. +.TP 5 +n +is an interesting features causing no introductory menu +of available announcements to be displayed. +The reader then goes straight into the first announcement to be read, +and moves directly from one announcement to the next, without +displaying the menu of those available at each stage. +.RE +.PP +The liblocal information is used to control the execution of +.I library. +Presently the only meaningful control is \f2x\fP. +This causes library(1) to assume you are an expert and the +prompts are generally much shorter. +.PP +.I library +also uses your .lib file to save various repetitious responses +for its own use. +These will prevent you from having to duplicate responses. +.PD +.SH BUGS +.I library +checks upon input whether the request is reasonable. +New styles of request numbers require program modification +before they are valid. +.PD +.SH FILES +.PD 0 +.TP 15 +$HOME/.lib +This optional file contains a PAN and name for +.I library +to use. +.TP 15 +/usr/lib/library/library.help +The help message displayed by library. +.PD +.SH "SEE ALSO" +mail(1), post(1), mailx(1) +.\" @(#)library.1 1.12 11/26/90 RnD added diff --git a/static/unix-v10/man1/lim.1 b/static/unix-v10/man1/lim.1 new file mode 100644 index 00000000..946c7a10 --- /dev/null +++ b/static/unix-v10/man1/lim.1 @@ -0,0 +1,92 @@ +.TH LIM 1 SHARE +.SH NAME +lim \- change shares for users +.SH SYNOPSIS +\fBlim\fP limit{+|\-|=}string[,string...][;...] \-|name|uid-uid|uid\fB..\fP ... +.SH DESCRIPTION +.I Lim +changes shares file records for several users, +a range of uids +or a list from standard input. +The changeable limits are designated by their names as defined +in the files +.IR , +and +.I +as follows: +.TP "\w'lastusedXXXXXX'u" +.B charge +Long term account charge. +.TP +.B flags +The only specifiable flag is:- +.IR notshared . +Only the first few letters needed to ensure a unique match are required. +.TP +.B lastused +Date account last used. +.TP +.B sgroup +Scheduling group for the account. +.TP +.B shares +Allocated shares. +.TP +.B usage +Usage for scheduling. +.PP +The next character designates that the limit is to be +incremented (\c +\fB+\fR\c +), decremented (\c +\fB\-\fR\c +), or set (\c +\fB=\fR\c +). +.PP +The third group of characters is interpreted as a number, +a date (if the string contains a `/'), +or as a string +(or as a comma-separated list) +depending on the type of limit being changed. +However, if the first character is '\fB?\fR', +then an explanation of the +options available with the given limit will be listed. +.PP +Additional limits are specified by a semi-colon separated list. +.PP +If any following argument is just a `\fB\-\fR', +then the standard input is read for a list of user names, +one per line. +If any following argument \fIcontains\fP a `\fB\-\fR' +then it is interpreted as a range of uids, +otherwise if it ends in trailing dots (eg: 100\fB..\fR) +it is interpreted as a range running from the first uid up to the +maximum number of registered users. +Otherwise the argument is interpreted as a name. +.PP +A list of valid limits is printed out if +.I lim +is invoked with invalid arguments (or no arguments). +.SH FILES +.PD 0 +.TP 16 +/etc/shares +for share details. +.TP +/etc/passwd +for user names and \s-1ID\s0s. +.PD +.SH SEE ALSO +pl(1), lnode(5), shares(5). +.SH DIAGNOSTICS +.TP +\&... could not change kernel lnode ... +The limits system call failed for a logged in user, +usually because you are attempting to change a scheduling group +to one that isn't currently active. +.SH BUGS +.I Lim +does not use +.IR getshput (3), +so be careful something else is not updating the same entry simultaneously. diff --git a/static/unix-v10/man1/limits.1 b/static/unix-v10/man1/limits.1 new file mode 100644 index 00000000..9beee8c5 --- /dev/null +++ b/static/unix-v10/man1/limits.1 @@ -0,0 +1,14 @@ +UCHAR_MAX: 000000ff=255 +USHRT_MAX: 0000ffff=65535 +UINT_MAX: ffffffff=-1 +ULONG_MAX: ffffffff=-1 +CHAR_MAX: 0000007f=127 +SCHAR_MAX: 0000007f=127 +SHRT_MAX: 00007fff=32767 +INT_MAX: 7fffffff=2147483647 +LONG_MAX: 7fffffff=2147483647 +CHAR_MIN: ffffff80=-128 +SCHAR_MIN: ffffff80=-128 +SHRT_MIN: ffff8000=-32768 +INT_MIN: 80000000=-2147483648 +LONG_MIN: 80000000=-2147483648 diff --git a/static/unix-v10/man1/linkdata.1 b/static/unix-v10/man1/linkdata.1 new file mode 100644 index 00000000..63ddb0ef --- /dev/null +++ b/static/unix-v10/man1/linkdata.1 @@ -0,0 +1,34 @@ +.TH LINKDATA 1 +.SH NAME +link \- group data files into the text segment of a .o file +.SH SYNOPSIS +.B linkdata file1 file2 ... +.br +.SH DESCRIPTION +.PP +.IR linkdata +reads the named files and generates an a.out-format file on the +standard output. The resulting file is as if it were assembled from +the following .s file. (The files can be rather long, so it's not +a good idea to make an actual assembly language file.) +.DS L +.ft C + .text + .globl datalist + .set datalist, 1f+4 # if there are no files, use ".set datalist, 1" + +# repeat the following for each file + .align 2 +1: .long 0x31 + .long 2f+4 + .long 3f+4 + .long 1f+4 # for the last file, use .long 1 instead +2: .long strlen("filename")*16+15 + .ascii "filename" + .align 2 +3: .word length(contents of file1)*16+15 + .byte [contents of file 1] + .align 2 + +.ft R +.DE diff --git a/static/unix-v10/man1/lint.1 b/static/unix-v10/man1/lint.1 new file mode 100644 index 00000000..4c9d3ee1 --- /dev/null +++ b/static/unix-v10/man1/lint.1 @@ -0,0 +1,319 @@ +.TH LINT 1 +.CT 1 prog_c +.SH NAME +lint, cyntax, cem \- C program verifiers +.SH SYNOPSIS +.B lint +[ +.B -abchnpuvx +] [ +.I option ... +] +.I file ... +.PP +.B cyntax +[ +.I option ... +] +.I file ... +.PP +.B /usr/lib/cyntax/cem +[ +.I option ... +] +.I file ... +.SH DESCRIPTION +.I Lint +checks, more thoroughly than +.IR cc (1), +the syntactic validity and semantic consistency of +one or more C program +.I files. +It is assumed that all the +.I files +are to be loaded together; they are checked for +mutual compatibility. +Function definitions for certain libraries are available to +.IR lint ; +these libraries are referred to by a +conventional name, +such as +.LR -lm , +in the style of +.IR ld (1). +.PP +Any number of the option letters in the following list +may be used. +The +.BR -D , +.BR -U , +and +.B -I +options of +.IR cc (1) +are also recognized as separate arguments. +.TP +.B p +Attempt to check portability to some other +dialects of C. +.PD 0 +.TP +.B h +Apply heuristics to +intuit bugs, improve style, and reduce waste. +.TP +.B b +Report +.I break +statements that cannot be reached. +.TP +.B v +Suppress complaints about unused arguments in functions. +.TP +.B x +Report variables referred to by extern declarations, +but never used. +.TP +.B a +Report assignments of long values to int variables. +.TP +.B c +Complain about casts which have questionable portability. +.TP +.B u +Do not complain about functions and variables used and not +defined, or defined and not used (this is suitable for running +.I lint +on a subset of files out of a larger program). +.TP +.B n +Do not check compatibility against the standard library. +.PD +.PP +Certain conventional comments in the C source +will change the behavior of +.IR lint : +.TP +.B /*NOTREACHED*/ +at appropriate points. +Stop comments about unreachable code. +.PD 0 +.TP +.BI /*VARARGS n */ +Suppress +the usual checking for variable numbers of arguments +in the following function declaration. +The data types of the first +.I n +arguments are checked; +a missing +.I n +is taken to be 0. +.TP +.BI /*PRINTFLIKE n */ +The data types of the first +.I n\^ +arguments are checked as usual. +The remaining arguments are +checked +against the +.IR n th +argument, which is interpreted as a +.IR printf (3) +format string. +.TP +.BI /*SCANFLIKE n */ +Similarly for +.IR scanf (3). +.TP +.B /*NOSTRICT*/ +Shut off strict type checking in the next expression. +.TP +.B /*ARGSUSED*/ +Turn on the +.B -v +option for the next function. +.TP +.B /*LINTLIBRARY*/ +at the beginning of a file. Shut off complaints about +unused functions in this file. +.PD +.PP +.I Cyntax +makes checks similar to those of +.I lint, +more stringent about syntax, less observant of portability issues. +It keeps type information gleaned from source files, +whose names end with +.LR .c , +in `object files' with corresponding names ending in +.LR .O . +If all goes well it will cross check among all the +.L .c +and +.L .O +input +.I files. +.PP +Options +.BR -D , +.BR -I , +.BR -U , +.BR -o , +.BR -l +are as in +.IR cc (1), +option +.B -n +is as in +.IR lint . +Options +.BR -O , +.BR -P , +.BR -g , +.BR -p , +and +.BR -s +are ignored. +Other options are: +.TP +.B -c +Suppress cross checking. +.PD 0 +.TP +.B -d +Passed to +.IR cem . +.TP +.B -h +Base object files on the basename of the source file +rather than the full pathname. +.TP +.B -G +Change default directory of include files to +.FR /usr/2include , +pass +.B -lg +to +.I cem +instead of +.BR -lc . +.TP +.B -j +Change default directory of include files to +.FR /usr/jerq/include , +pass +.B -lj +to +.I cem +instead of +.BR -lc . +.TP +.B -k +Change default directory of include files to +.FR /usr/ninclude , +pass +.B -lk +to +.I cem +instead of +.BR -lc . +.TP +.B -w +Enable pedantic warning diagnostics. +.TP +.B -m +equivalent to +.LR "-j -DMUX" . +.TP +.B -v +Report what +.I cyntax +is actually doing. +.TP +.BI -V func : n +Declare function +.I func +to have a variable number of arguments, the first +.I n +of which are to be type checked. +.PD +.PP +.I Cem +(cemantics), the cross-checker, is normally invoked only by +.IR cyntax . +It also has options, some of which +.I cyntax +can't be coerced into providing. +Besides +.B -o +and +.BR -l , +they are: +.TP +.B -m +Don't believe file modification times. +These are normally used to avert redundant type checking. +.PD0 +.TP +.B -d +``Debug'': print ascii version of +.L .O +files on standard output. +.TP +.B -p +Be pedantic about type checking. +.TP +.B -t +Unconditionally include file modification times in diagnostics. +.TP +.B -v +Use a verbose format for type names. +.PD +.SH FILES +.TF /usr/lib/lint/llib-port +.TP +.F /usr/lib/lint/lint[12] +programs +.TP +.F /usr/lib/lint/llib-lc +declarations for standard functions +.TP +.F /usr/lib/lint/llib-port +declarations for portable functions +.TP +.F /usr/include/* +.TP +.F /usr/lib/cyntax/ccom +cyntax proper +.TP +.F /usr/lib/cyntax/libc +type library +.TP +.F /usr/lib/cyntax/libj +.SH SEE ALSO +.IR cc (1), +.IR ld (1) +.br +S. C. Johnson +`Lint, a C Program Checker', in +Bell Laboratories, +.I Unix Programmer's Manual, +Holt, Rinehart and Winston, 1983, Vol. 2 +.RI ( "Seventh Edition" ) +.SH BUGS +.IR Exit (2) +and other functions which do not return +are not understood by +.IR lint ; +this causes various lies. +.br +The unnatural default setting of +.I lint +option +.B -b +is intended to hide the ugliness of +C code produced by +.IR yacc (1) +and +.IR lex (1). diff --git a/static/unix-v10/man1/lisp.1 b/static/unix-v10/man1/lisp.1 new file mode 100644 index 00000000..ca26f391 --- /dev/null +++ b/static/unix-v10/man1/lisp.1 @@ -0,0 +1,101 @@ +.TH LISP 1 "alice sola" +.SH NAME +lisp, liszt, lxref \- lisp interpreter and compiler +.SH SYNOPSIS +.B lisp +.PP +.B liszt +[ +.I option ... +] +[ +.I source +] +.PP +.B lxref +[ +.RB \- n +] +.I file ... +.SH DESCRIPTION +.I Lisp +interprets Franz Lisp, which closely resembles MIT's Maclisp. +Interpreted functions may be mixed with code compiled by +.I liszt, +and both may be debugged using the +`Joseph Lister' trace package. +.LP +There are too many functions to list here; one should refer to the +manuals listed below. +.PP +.I Liszt +compiles the lisp +.I source +file, whose name ends in +.BR .l , +into an object file, whose name ends in +.BR .o . +The following options are available. +.TP +.B \-w +suppress warning diagnostics +.TP +.B \-q +suppress compilation statistics +.TP +.BI \-o " object" +put object code in specified file +.TP +.B \-m +source is Maclisp +.TP +.B \-u +source is UCI Lisp +.TP +.B \-S +leave assembler input in file suffixed +.BR .s ; +do not finish compilation +.TP +.B \-x +place cross-reference list in file suffixed +.B .x +to be used by +.I lxref. +.PP +.I Liszt +with no arguments is the same as +.I lisp. +The compiler may be invoked from the interpreter: +.IP +( liszt [options] foo) +.LP +compiles file `foo.l'. +.PP +.I Lxref +writes to the standard output a readable form of +the named cross-reference files. +Not more than +.I n +(default 50) references to any function will be printed. +.SH FILES +.ta \w'/usr/lib/list/machacks.l 'u +/usr/lib/lisp/auxfns0.l common functions +.br +/usr/lib/lisp/auxfns1.l less common functions +.br +/usr/lib/lisp/trace.l Joseph Lister trace package +.br +/usr/lib/lisp/toplevel.l top level read-eval-print loop +.br +/usr/lib/lisp/machacks.l Maclisp compatibility package +.br +/usr/lib/list/ucifnc.l UCI Lisp compatibility package +.SH SEE ALSO +`F\s-2RANZ\s0\ L\s-2ISP\s0 Manual, Version 1' +by John K. Foderaro +.br +M\s-2ACLISP\s0 Manual +.SH "BUGS" +The error system is in a state of flux and not all error messages are +as informative as they could be. diff --git a/static/unix-v10/man1/ln.1 b/static/unix-v10/man1/ln.1 new file mode 100644 index 00000000..80c55e9e --- /dev/null +++ b/static/unix-v10/man1/ln.1 @@ -0,0 +1,34 @@ +.pa 1 +.he 'LN (I)'3/15/72'LN (I)' +.ti 0 +NAME ln -- make a link +.sp +.ti 0 +SYNOPSIS ln__ name\d1\u [ name\d2\u ] +.sp +.ti 0 +DESCRIPTION ln__ creates a link to an existing file name\d1\u. +If name\d2\u is given, the link has that name; +otherwise it is placed in the current directory +and its name is the last component +of name\d1\u. +.sp +It is forbidden to link to a directory +or to link across file systems. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO rm(I) +.sp +.ti 0 +DIAGNOSTICS "?" +.sp +.ti 0 +BUGS There is nothing particularly +wrong with ln__, but links don't work right with respect +to the backup system: one copy is backed up for each link, and +(more serious) in case of a file system reload +both copies are restored and the information that a link was involved +is lost. diff --git a/static/unix-v10/man1/load.1 b/static/unix-v10/man1/load.1 new file mode 100644 index 00000000..1c4133a2 --- /dev/null +++ b/static/unix-v10/man1/load.1 @@ -0,0 +1,52 @@ +.TH LOAD 1 +.CT 1 sa_mortals +.SH NAME +load \(mi load statistics +.SH SYNOPSIS +.B load +[ +.I interval +[ +.I count +[ +.I sysfile +[ +.I corefile +] +] +] +] +.SH DESCRIPTION +.I Load +reports the number of +processes ready to run averaged over the preceding 1, 5, and 15 minutes. +.PP +The optional +.I interval +argument causes +a report once each +.I interval +seconds. +The first report is for all time since a reboot and each +subsequent report is for the last interval only. +.PP +The optional +.I count +argument restricts the number of reports. +.PP +The optional arguments +.I sysfile +and +.I corefile +cause the named files to be consulted instead of the defaults, +.F /unix +and +.FR /dev/kmem . +.SH FILES +.F /dev/kmem +.br +.F /unix +.SH SEE ALSO +.IR vismon (9.1), +.IR ps (1), +.IR vmstat (8) diff --git a/static/unix-v10/man1/loadfont.1 b/static/unix-v10/man1/loadfont.1 new file mode 100755 index 00000000..a850c376 --- /dev/null +++ b/static/unix-v10/man1/loadfont.1 @@ -0,0 +1,212 @@ +.ds ZZ DEVELOPMENT PACKAGE +.TH LOADFONT 1 "630 MTG" +.XE "loadfont" +.SH NAME +loadfont \- font managing program +.SH SYNOPSIS +.B +loadfont [\-r name,name...] [\-p directory] [\-s] [\-c] [file...] +.SH DESCRIPTION +The +.I loadfont +program lets the user load and remove fonts from the terminal's cache. +It will download its terminal side which interacts with +the user. The command line arguments have the following meanings: +.PP +.TP 12 +\fB\-r\fR +Removes the given font from the terminal's cache. +.PP +.TP 12 +\fB\-p\fR +Sets default search path for font files. If this isn't set, +it defaults to $DMD/termfonts. All the file names in this directory +are put in the load submenu. +.TP 12 +\fB\-s\fR +Makes loadfont stay running after executing the earlier command line options. +.PP +.TP 12 +\fB\-c\fR +Causes loadfont to be cached in the 630 MTG cache system. When +this option is used, the loadfont program will remain in the +terminal after the program exits. Then, the next time loadfont +is executed, it will not have to be downloaded again. +.sp +Another effect of downloading loadfont with the \-c option is +that it can be executed in more than one window without +additional downloading. +.PP +.TP 12 +\fBfile\fR +Loads the given font file into the terminal's cache. +.PP +If a \f3file\f1 argument and/or the +\f3\-r\f1 option are given, loadfont will exit after +loading/removing the specified fonts, unless the \f3\-s\f1 is +also given to make it stay running. +.PP +The user interacts with +.I loadfont +by using a button 2 menu and, when prompted, the keyboard. +When button 2 is depressed, a menu with the following items appears. +.PP +.TP 8 +\fBLoad\fR +Load has a submenu of fonts that can be downloaded. +The fonts listed are all the files in the default search directory. +If the first item, Keyboard, is selected, the user is prompted +for the name of a font file to download. +.PP +.TP 8 +\fBRemove\fR +Remove has a submenu of all the fonts in the terminal's cache. +Selecting one will remove it from the cache and free the memory +it was using. Fonts in ROM or being used by another process +will be greyed in the menu and cannot be removed. +.PP +.TP 8 +\fBQuit\fR +Will make the program exit. +.PP +While a font is downloading, the button 2 menu will have only +one item, Terminate Download. Selecting it will stop the download +and switch the user back to the original menu. +.PP +The three fonts in ROM, resident to the 630 MTG, are called "small +font," "medium font," and "large font." Brief descriptions of these +fonts follow. +.PP +In the tables, +.I cell size +indicates the dimensions of the rectangle containing the character +image. All the characters in a particular font have the same cell size. +.I Character size +is the dimension of the largest character in the font. +.I Max chars +indicates how many characters in that font size will fit +horizontally and vertically in a full screen +window. See the section on fonts in the +\f2630 MTG Software Development Guide\f1 +for more information on font data structures. +.sp +.TS +center, box, tab(~); +lb | l. +Font Name~small font +Character Size~6 pixels wide by 9 pixels high +Cell Size~7 pixels wide by 14 pixels high +Max Chars~140 across, 69 down +_ +Font Name~medium font +Character Size~8 pixels wide by 11 pixels high +Cell Size~9 pixels wide by 14 pixels high +Max Chars~109 across, 69 down +_ +Font Name~large font +Character Size~9 pixels wide by 12 pixels high +Cell Size~11 pixels wide by 16 pixels high +Max Chars~89 across, 61 down +_ +.TE +.bp +.SH FILES +The default search path for font files is $DMD/termfonts. This +directory contains nine fonts. +.sp 2 +.TS +center, box, tab(~); +lb | l. +Font Name~noseprint +Character Size~5 pixels wide by 7 pixels high +Cell Size~6 pixels wide by 9 pixels high +Max Chars~163 across, 108 down +Comments~The characters are a single pixel thick and all +~are smaller than the characters found in the +~resident "small font". +_ +Font Name~7x14thin +Character Size~6 pixels wide by 9 pixels high +Cell Size~7 pixels wide by 14 pixels high +Max Chars~140 across, 69 down +Comments~The difference between "7x14thin" and the resident +~"small font" is in the thickness of the characters. +~The "7x14thin" consists of characters which are a +~single pixel in thickness whereas the "small font" +~consists of characters which are two pixels in thickness. +_ +.TE +.bp +.TS +center, box, tab(~); +lb | l. +Font Name~12x18norm +Character Size~10 pixels wide by 13 pixels high +Cell Size~12 pixels wide by 18 pixels high +Max Chars~81 across, 54 down +Comments~The characters are 2 pixels thick. +_ +Font Name~12x25thin +Character Size~9 pixels wide by 18 pixels high +Cell Size~12 pixels wide by 25 pixels high +Max Chars~81 across, 39 down +Comments~The characters are a single pixel thick. +_ +Font Name~12x25norm +Character Size~9 pixels wide by 18 pixels high +Cell Size~12 pixels wide by 25 pixels high +Max Chars~81 across, 39 down +Comments~The characters are 2 pixels thick. +_ +Font Name~12x25round +Character Size~9 pixels wide by 18 pixels high +Cell Size~12 pixels wide by 25 pixels high +Max Chars~81 across, 39 down +Comments~The main difference between this font and the +~font called "12x25norm" is in the STYLE of the +~characters. The characters in "12x25round" are +~rounder in appearance, whereas the characters in +~"12x25norm" are squarer in appearance. +_ +Font Name~12x25BOLD +Character Size~9 pixels wide by 18 pixels high +Cell Size~12 pixels wide by 25 pixels high +Max Chars~81 across, 39 down +Comments~The characters are 3 pixels thick. +_ +Font Name~script +Character Size~15 pixels wide (approx.) by 15 pixels high +Cell Size~16 pixels wide by 24 pixels high +Max Chars~61 across, 40 down +Comments~The characters in this font are created in +~script style. +_ +Font Name~twice_big +Character Size~18 pixels wide by 24 pixels high +Cell Size~22 pixels wide by 32 pixels high +Max Chars~44 across, 30 down +Comments~The characters are twice as tall and twice as +~wide as the resident "large font" +_ +.TE +.bp +.SH SEE ALSO +ucache(1), font(4). +.br +\f2630 MTG Software Development Guide\f1. +.SH WARNING +.P +Fonts that do not have 128 characters require the proper +parity setting when used in the default window process in the +non-layers environment. This is needed because a mod is done +on characters received from the host with the number of +characters in the font being used. +.P +This implies that parity bits are ignored for fonts with +exactly 128 characters, since c&0x7F == c%128. Fonts with less +than 128 characters need identical parity settings on the host +and in the terminal so that parity bits get stripped properly. +Characters with more than 128 characters require 8 bits with +no parity on both the host and in the terminal, because the +eighth bit is used to access characters greater than +128. diff --git a/static/unix-v10/man1/login.1 b/static/unix-v10/man1/login.1 new file mode 100644 index 00000000..d979e088 --- /dev/null +++ b/static/unix-v10/man1/login.1 @@ -0,0 +1,54 @@ +.pa 1 +.he 'LOGIN (I)'3/15/72'LOGIN (I)' +.ti 0 +NAME login -- sign onto UNIX +.sp +.ti 0 +SYNOPSIS login_____ [ username [ password ] ] +.sp +.ti 0 +DESCRIPTION The login_____ command +is used when a user initially +signs onto UNIX, or it may be used at any time to change +from one user to another. +The latter case is the one summarized above and +described here. +See login_____ (VII) for how to dial up initially. + +If login_____ is invoked without an argument, +it will ask for a user name, and, if +appropriate, a password. +Echoing is turned off (if possible) during the typing of the password, +so it will not appear on the written record of the +session. +.sp +After a successful login, +accounting files are updated and +the user is informed of the +existence of mailbox +and message-of-the-day files. + +Login is recognized by the Shell +and executed directly (without forking). +.sp +.ti 0 +FILES /tmp/utmp accounting +.br +/tmp/wtmp accounting +.br +mailbox mail +.br +/etc/motd message-of-the-day +/etc/passwd password file +.sp +.ti 0 +SEE ALSO login(VII), init(VII), getty(VII), mail(I) +.sp +.ti 0 +DIAGNOSTICS "login incorrect", +if the name or the password is bad. +"No Shell,", "cannot open password file," "no directory:" +consult a UNIX programming councilor. +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/look.1 b/static/unix-v10/man1/look.1 new file mode 100644 index 00000000..9db99ab5 --- /dev/null +++ b/static/unix-v10/man1/look.1 @@ -0,0 +1,79 @@ +.TH LOOK 1 +.CT 1 files +.SH NAME +look \(mi find lines in a sorted list +.SH SYNOPSIS +.B look +[ +.BI -dfnixt c +] +[ +.I string +] +[ +.I file +] +.SH DESCRIPTION +.I Look +consults a sorted +.I file +and prints all lines that begin with +.IR string . +It uses binary search. +.PP +The following options are recognized. +Options +.BI dfnt c +affect comparisons as in +.IR sort (1). +.TP +.B -i +Interactive. +There is no +.I string +argument; instead +.I look +takes lines from the standard input as strings to be looked up. +.TP +.B -x +Exact. +Print only lines of the file whose key matches +.I string +exactly. +.TP +.B -d +`Directory' order: +only letters, digits, +tabs and blanks participate in comparisons. +.TP +.B -f +Fold. +Upper case letters compare equal to lower case. +.TP +.B -n +Numeric comparison with initial string of digits, optional minus sign, +and optional decimal point. +.TP +.BI -t c +`Tab character' +.I c +terminates the sort key in the +.I file. +.PP +If no +.I file +is specified, +.F /usr/dict/words +is assumed, with collating sequence +.BR df . +.SH FILES +.F /usr/dict/words +.SH "SEE ALSO" +.IR sort (1), +.IR gre (1), +.IR dict (7) +.SH DIAGNOSTICS +.I Look +returns exit status 0 if +.I string +is found, 1 if not found, 2 for error. diff --git a/static/unix-v10/man1/lorder.1 b/static/unix-v10/man1/lorder.1 new file mode 100644 index 00000000..233f7d6a --- /dev/null +++ b/static/unix-v10/man1/lorder.1 @@ -0,0 +1,40 @@ +.TH LORDER 1 +.CT 1 lib_obj +.SH NAME +lorder \(mi find ordering relation for an object library +.SH SYNOPSIS +.B lorder +.I file ... +.SH DESCRIPTION +The input +is one or more object or library archive (see +.IR ar (1)) +.I files. +The standard output +is a list of pairs of object file names, +meaning that the first file of the pair refers to +external identifiers defined in the second. +The output may be processed by +.IR tsort (1) +to find an ordering of +a library suitable for one-pass sequential access by +.IR ld (1). +.SH EXAMPLES +.TP +.L +ar cr libnew.a \`lorder *.o | tsort\` +Build a new library from existing +.B .o +files. +.SH FILES +.F /tmp/*symref +.br +.F /tmp/*symdef +.SH "SEE ALSO" +.IR ar (1), +.IR tsort (1), +.IR ld (1) +.SH BUGS +The names of object files, in and out of libraries, must end with +.BR .o ; +nonsense results otherwise. diff --git a/static/unix-v10/man1/lp.1 b/static/unix-v10/man1/lp.1 new file mode 100644 index 00000000..2d81c365 --- /dev/null +++ b/static/unix-v10/man1/lp.1 @@ -0,0 +1,181 @@ +.TH LP 1 +.CT 1 writing_output comm_dev +.SH NAME +lp \- printer output +.SH SYNOPSIS +.B lp +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I Lp +is a generalized output printing service. +It can be used to queue files for printing, +check a queue, or kill jobs in a queue. +The options are: +.TF -p\ \fIproc\fP +.TP +.BI -d " dest" +Select the destination printer. +If +.I dest +is +.LR ? , +list the currently available printers. +In the absence of +.LR -d , +the destination is taken from the environment variable +.BR LPDEST , +or finally from the file +.FR /usr/spool/lp/defdevice . +Destination +.L stdout +is the standard output. +.TP +.BI -p " proc" +The given preprocessor is invoked. +The default preprocessor is +.LR generic , +which tries to do the right thing for regular text, +.IR troff (1) +output, or +.IR bitfile (9.5) +bitmaps. +If no preprocessing is desired +(e.g. an ImPress file from +.L dviimp +is to be printed) +.L noproc +may be specified. +.TP +.B -q +Print the queue for the given destination. +For some devices, include printer status. +.TP +.B -k +Kill the job(s) given as subsequent arguments instead of file names +for the given destination. +.PD +.PP +The remaining options may be used to affect the output at a given device. +These options may not be applicable to all devices. +.TF -p\ \fIproc\fP +.TP +.BI -c " n" +Print +.I n +copies. +.TP +.BI -f " font" +Set the font (default +.LR CW.11 ). +.TP +.BI -H +Suppress printing of header page. +.TP +.BI -i " n" +Select paper input tray options +.I n. +The value +.I n +may be a comma separated list. +.TP +.BI -l " n" +Set the number of lines per page to +.I n. +.TP +.B -L +Print pages in landscape mode (i.e. turned 90 degrees). +.TP +.BI -m " n" +Set magnification to +.I n. +.TP +.BI -n " n" +Print +.I n +logical pages per physical page. +.TP +.BI -o " list" +Print only pages whose page numbers appear in +the comma-separated +.I list +of numbers and ranges. +A range +.IB n - m +means pages +.I n +through +.IR m ; +a range +.BI - n +means from the beginning to page +.IR n ; +a range +.IB n - +means from page +.I n +to the end. +.TP +.B -r +Reverse the order of page printing (currently not functional). +.TP +.BI -x " n" +Set the horizontal +offset of the print image, measured in inches. +.TP +.BI -y " n" +Set the vertical +offset of the print image, measured in inches. +.SH EXAMPLES +.TP 0 +.L +eqn paper | troff -ms | lp +Typeset and print a paper that contains equations. +.TP +.L +pr -l100 file | lp -l100 -fCW.8 +Print a file in a small font at 100 lines per page. +.TP +.L +lp -dstdout -H postfile +Convert a bitmap to postscript form. +Use +.IR mpictures (6) +macros to insert the output into a +.I troff +document. +.TP +.L +lp -du -H -i2,simplex viewgraphs.dvi +will take input from the second paper tray and print single sided, +even if the printer defaults to double sided (duplex) output. +Do not print a header page. +.SH FILES +.TF /usr/spool/lp/defdevice +.TP +.F /usr/spool/lp/defdevice +default printer name +.TP +.F /usr/spool/lp/devices +printer list with interface specification +.TP +.F /usr/spool/lp/process +directory of preprocessors +.TP +.F /usr/spool/lp/prob/* +where printer jobs go when things go awry +.SH SEE ALSO +.IR pr (1), +.IR blitblt (9.1), +.IR plot (1), +.IR font (6), +.IR postio (8), +.IR postscript (8) +.SH BUGS +Not all options work with all output devices. +.br +Any user can kill any job. diff --git a/static/unix-v10/man1/lpr.1 b/static/unix-v10/man1/lpr.1 new file mode 100644 index 00000000..ac3e644e --- /dev/null +++ b/static/unix-v10/man1/lpr.1 @@ -0,0 +1,54 @@ +.TH LPR 1 alice +.CT 1 comm_dev +.SH NAME +lpr \(mi line printer spooler +.SH SYNOPSIS +.B lpr +[ +.B -m +] +[ +.I name ... +] +.PP +.B lp0 +[ +.I name ... +] +.PP +.B lp1 +[ +.I name ... +] +.SH DESCRIPTION +.I Lpr +causes the +named files +to be queued and then printed off line. +If no files are named, the standard input is read. +The option +.B -m +causes notification via +.IR mail (1) +to be sent when the job completes. +.PP +.I Lp0 +and +.I lp1 +direct output to particular printers. +.SH FILES +.TF /usr/spool/lpd/* +.TP +.F /usr/spool/lpd/* +spool area +.TP +.F /usr/lib/lpd +printer daemon +.TP +.F /usr/lib/lpfx +filter to handle banners and underlining +.SH SEE\ ALSO +.IR pr (1), +.IR thinkblt (9.1) +.SH BUGS +Queued jobs print in directory (seemingly random) order. diff --git a/static/unix-v10/man1/ls.1 b/static/unix-v10/man1/ls.1 new file mode 100644 index 00000000..eb49b736 --- /dev/null +++ b/static/unix-v10/man1/ls.1 @@ -0,0 +1,215 @@ +.TH LS 1 +.CT 1 files dirs +.SH NAME +ls, lc \(mi list contents of directory +.SH SYNOPSIS +.B ls +[ +.B -acdfilrstuFLR +] +.I name ... +.PP +.B lc +[ +.I options +] +.I name ... +.SH DESCRIPTION +For each directory argument, +.I ls +lists the contents of the directory; +for each file argument, +.I ls +repeats its name and any other information requested. +The output is sorted alphabetically by default. +When no argument is given, the current directory is listed. +When several arguments are given, +the arguments are first sorted, +but file arguments appear +before directories and their contents. +.PP +There are an unbelievable number of options: +.TP +.B -l +List in long format, giving mode (see below), number of links, owner, +group, +size in bytes, and time of last modification +for each file. +Symbolic links are identified by a link count marked +.LR L ; +the link count is that of the ultimate file. +If the file is a special file the size field will instead contain +the major and minor device numbers. +.TP +.B -d +If argument is a directory, list its name, not +its contents. +.TP +.B -t +Sort by time modified (latest first) instead of +by name, as is normal. +.TP +.B -L +Under +.B -l +for each symbolic link +give the immediate, not the ultimate, link count +and append the name pointed to. +.TP +.B -a +List all entries; usually +.F . +and +.F .. +are suppressed. +.TP +.B -c +Under +.B -t +sort by time of inode change; +under +.B -l +print time of inode change. +.TP +.B -f +Force each argument to be interpreted as a directory +and list the name found in each slot. +This option turns off +.BR -l ", " -t ", " -s , +and +.BR -r , +and +turns on +.BR -a ; +the order is the order in which entries +appear in the directory. +.TP +.B -F +cause directories to be marked with a trailing +.L / +and executable +files to be marked with a trailing +.L * +.TP +.B -i +Print i-number in first column +of the report for each file listed. +.TP +.B -r +Reverse the order of sort to get reverse alphabetic +or oldest first as appropriate. +.TP +.B -R +recursively list subdirectories encountered. +.TP +.B -s +Give size in Kbytes for each entry. +.TP +.B -u +Under +.B -t +sort by time of last access; +under +.B -l +print time of last access. +.PP +The mode printed under the +.B -l +option contains 11 characters +which are interpreted +as follows: +the first character is +.TP +.B d +if the entry is a directory; +.PD 0 +.TP +.B b +if the entry is a block-type special file; +.TP +.B c +if the entry is a character-type special file; +.TP +.B l +if the entry is a symbolic link and option +.B -L +is in effect; +.TP +.B - +if the entry is a plain file. +.PD +.PP +The next 9 characters are interpreted +as three sets of three bits each. +The first set refers to owner permissions; +the next to permissions to others in the same user-group; +and the last to all others. +Within each set the three characters indicate +permission respectively to read, to write, or to +execute the file as a program. +For a directory, `execute' permission is interpreted +to mean permission to search the directory +for a specified file. +The permissions are indicated as follows: +.TP 3 +.B r +if the file is readable; +.PD 0 +.TP 3 +.B w +if the file is writable; +.TP 3 +.B x +if the file is executable; +.TP 3 +.B - +if the indicated permission is not granted. +.PD +.PP +The group-execute permission character is given +as +.B s +if the file has set-group-ID mode; +likewise the user-execute permission character is given +as +.B s +if the file has set-user-ID mode. +.PP +The last character of the mode (normally a blank) +indicates the type of concurrency control: +.TP +.B e +if the file is set for exclusive access (1 writer or +.I n +readers); +.PD 0 +.TP +.B y +if the file is set for synchronized access (1 writer and +.I n +readers); +.PD 0 +.TP +.B a +if the file is set for append-only (all writes happen at end); +.PD 0 +.TP +.B b +if the file is blinded. +(Blind directories are unreadable.) +.PD +.PP +.I Lc +is the same as +.I ls, +but prints the list in multiple columns. +.SH FILES +.FR /etc/passwd +.br +.FR /etc/group +.SH SEE ALSO +.IR stat (2) +.SH BUGS +Option +.B -s +counts unwritten holes as if they were real data. diff --git a/static/unix-v10/man1/m.1 b/static/unix-v10/man1/m.1 new file mode 100644 index 00000000..f1df70e4 --- /dev/null +++ b/static/unix-v10/man1/m.1 @@ -0,0 +1,31 @@ +nCC -O -c alloc.c +nCC -O -c dcl.c +nCC -O -c dcl2.c +nCC -O -c dcl3.c +nCC -O -c dcl4.c +nCC -O -c del.c +nCC -O -c error.c +nCC -O -c expand.c +nCC -O -c expr.c +nCC -O -c expr2.c +nCC -O -c expr3.c +nCC -O -c find.c +nCC -O -c lalex.c +nCC -O -c lex.c +nCC -DMUNCH -O -c main.c +nCC -O -c norm.c +nCC -O -c norm2.c +nCC -O -c print.c +nCC -O -c print2.c +nCC -O -c repr.c +nCC -O -c simpl.c +nCC -O -c simpl2.c +nCC -O -c size.c +nCC -O -c table.c +nCC -O -c typ.c +nCC -O -c typ2.c +yacc gram.y + +conflicts: 13 shift/reduce, 3 reduce/reduce +nCC -DGRAM -O -c y.tab.c +nCC -o cfront -O alloc.o dcl.o dcl2.o dcl3.o dcl4.o del.o error.o expand.o expr.o expr2.o expr3.o find.o lalex.o lex.o main.o norm.o norm2.o print.o print2.o repr.o simpl.o simpl2.o size.o table.o typ.o typ2.o y.tab.o diff --git a/static/unix-v10/man1/m4.1 b/static/unix-v10/man1/m4.1 new file mode 100644 index 00000000..1e2fd5c5 --- /dev/null +++ b/static/unix-v10/man1/m4.1 @@ -0,0 +1,315 @@ +.TH M4 1 +.CT 1 prog_c +.SH NAME +m4 \(mi macro processor +.SH SYNOPSIS +.B m4 +[ +.I option ... +] +[ +.I file ... +] +.SH DESCRIPTION +.I M4\^ +is a macro processor +intended as a front end for C and other languages. +Each of the argument files is processed in order; +if there are no files, or if a file name is +.BR - , +the standard input is read. +The processed text is written on the standard output. +.PP +The options and their effects are as follows: +.TP +.B -e +Operate interactively. +Interrupts are ignored and the output is unbuffered. +Using this mode requires a special state of mind. +.TP +.B -s +Enable line sync output for the C preprocessor, +.RB ( #line " .\|.\|.\|)" +.TP +.BI -B int\^ +Change the size of the push-back and argument collection +buffers from the default of 4,096. +.TP +.BI -H int\^ +Change the size of the symbol table hash array from the +default of 199. +The size should be prime. +.TP +.BI -S int\^ +Change the size of the call stack from the default of 100 slots. +Macros take three slots, and non-macro arguments take one. +.TP +.BI -T int\^ +Change the size of the token buffer from the default of 512 bytes. +.PP +The preceding options must appear before any +file names or +.B -D +or +.B -U +options. +.TP +\f5-D\fP\f2name\^\fP[\f5=\fP\f2val\^\fP] +Defines +.I name\^ +to +.I val\^ +or to null if +.I val +is missing. +.TP +.BI -U name\^ +undefines +.IR name . +.PP +Macro calls +have the form: +.IP +.L name(arg1,arg2, .\|.\|., argn) +.PP +The +.B ( +must immediately follow the name of the macro. +If a defined macro name is not followed by a +.BR ( , +it is deemed to have no arguments. +Leading unquoted blanks, tabs, and new-lines are ignored while collecting arguments. +Potential macro names consist of alphabetic letters, +digits, and underscore +.BR _ , +where the first character is not a digit. +.PP +Left and right single quotes are used to quote strings. +The value of a quoted string is the string stripped of the quotes. +.PP +When a macro name is recognized, +its arguments are collected by searching for a matching right +parenthesis. +Macro evaluation proceeds normally during the collection of the arguments, +and any commas or right parentheses +which happen to turn up within the value of a nested +call are as effective as those in the original input text. +After argument collection, +the value of the macro is pushed back onto the input stream +and rescanned. +.PP +The value of a macro is obtained by replacing +each occurrence of +.BI $ n\^ +in the replacement text, +where +.I n\^ +is a digit, +with the +.IR n -th +argument. +Argument 0 is the name of the macro; +missing arguments are replaced by the null string; +.B $# +is replaced by the number of arguments; +.B $* +is replaced by a list of all the arguments separated by commas; +.B $@ +is like +.BR $* , +but each argument is quoted (with the current quotes). +.PP +.I M4\^ +makes available the following built-in macros. +They may be redefined, but once this is done the original meaning is lost. +Their values are null unless otherwise stated. +.TP 12 +.B define +the second argument is installed as the replacement text of the macro +whose name is the first argument. +.TP +.B undefine +Remove the definition of the macro named in the argument. +.TP +.B defn +Return the quoted definition of the argument(s); +useful for renaming macros, especially built-ins. +.TP +.B pushdef +Like +.IR define , +but save any previous definition. +.TP +.B popdef +Remove current definition of the argument(s), +exposing the previous one if any. +.TP +.B ifdef +If the first argument is defined, the value is the second argument, otherwise the third. +If there is no third argument, the value is null. +The word +.L unix\^ +is predefined on +.SM UNIX +versions of +.IR m4 . +.TP +.B shift +Return all but the first argument. +The other arguments pushed back with +commas in between and quoted to +nullify the effect of the extra scan. +.TP +.B changequote +Change quote symbols to the first and second arguments. +The symbols may be up to five characters long. +.B Changequote\^ +without arguments restores the original values +(i.e., +.LR `\|' ). +.TP +.B changecom +Change left and right comment markers from the default +.B # +and new-line. +With no arguments, the comment mechanism is effectively +disabled. +With one argument, the left marker becomes the argument and +the right marker becomes new-line. +With two arguments, both markers are affected. +Comment markers may be up to five characters long. +.TP +.B divert +.I m4\^ +Switch output to one of 10 streams, +numbered 0-9 designated by the argument. +The final output is the concatenation of the streams +in numerical order; +stream 0 is the current initially. +Output to a stream other than 0 through 9 +is discarded. +.TP +.B undivert +Cause immediate output of text from diversions named as +arguments, or all diversions if no argument. +Text may be undiverted into another diversion. +Once undiverted, the diverted text is no longer contained in that diversion. +.TP +.B divnum +Return the name of the current output stream. +.TP +.B dnl +reads and discards characters up to and including the next new-line. +.TP +.B ifelse +If the first argument is the same string as the second, +then the value is the third argument. +If not, and if there are more than four arguments, the process is repeated with arguments 4, 5, 6 and 7. +Otherwise, the value is either the fourth string, or, if that is not present, +null. +.TP +.B incr +Return the value of the argument incremented by 1. +The value of the argument is calculated +by interpreting an initial digit-string as a decimal number. +.TP +.B decr +Return the value of the argument decremented by 1. +.TP +.B eval +Evaluate the argument as an arithmetic expression, using 32-bit arithmetic. +C-like operators include +.BR +-*/% , +bitwise +.BR &|^~ ; +relationals; parentheses. +Octal and hex numbers may be specified as in C. +The second argument specifies the radix for the result; +the default is 10. +The third argument may be used to specify the minimum number +of digits in the result. +.TP +.B len +Returns the number of characters in the argument. +.TP +.B index +Return the position in the first argument where the second argument begins (zero origin), +or \-1 if the second argument does not occur. +.TP +.B substr +Return a substring of the first argument. +The second argument is a zero origin +number selecting the first character; +the third argument indicates the length of the substring. +A missing third argument is taken to be large enough to extend to +the end of the first string. +.TP +.B translit +Transliterate the characters in the first argument +from the set given by the second argument to the set given by the third, +deleting characters that lack a correspondent in the third set. +There is no character-range notation. +.TP +.B include +Return the contents of the file named in the argument. +.TP +.B sinclude +Same, but give no diagnostic if the file is inaccessible. +.TP +.B syscmd +Execute the +.SM UNIX +command given in the first argument. +No value is returned. +.TP +.B sysval +The return code from the last call to +.IR syscmd . +.TP +.B maketemp +Fill in a string of +.LR X +characters in the argument with the current process id. +.TP +.B m4exit +Exit immediately from +.IR m4 . +Argument 1, if given, is the exit code; +the default is 0. +.TP +.B m4wrap +Push the argument back at the end of the input. +Example: +.L m4wrap(`cleanup()') +.TP +.B errprint +Prints the argument +on the standard error file. +.TP +.B dumpdef +Print current names and definitions, +for the named items, or for all if no arguments are given. +.TP +.B traceon +If there are no arguments, turn on tracing for all macros +(including built-ins). +Otherwise, turn on tracing for named macros. +.TP +.B traceoff +Turn off trace globally and for any macros specified. +Macros specifically traced by +.B traceon\^ +can be untraced only by specific calls to +.BR traceoff . +.SH EXAMPLES +.EX +define(fib,`ifelse(define(`n',eval($1))n,0,1,n,1,1,dnl() +`eval(fib(n-1)+fib($1-2))')')dnl() +fib(2*3) +.EE +.ns +.IP +Recursively evaluate a Fibonacci number. +The inner +.B define +avoids some reevaluations. diff --git a/static/unix-v10/man1/m6.1 b/static/unix-v10/man1/m6.1 new file mode 100644 index 00000000..e36d1037 --- /dev/null +++ b/static/unix-v10/man1/m6.1 @@ -0,0 +1,109 @@ +.pa 1 +.he 'M6 (I)'11/15/72'M6 (I)' +.ti 0 +NAME m6 -- general purpose macro processor +.sp +.ti 0 +SYNOPSIS m6__ +[ -d__ arg1 ] [ arg2 [ arg3 ] ] +.sp +.ti 0 +DESCRIPTION m6__ +takes input from file arg2 (or standard input if arg2 is missing) +and places output on file arg3 (or standard output). +A working file of definitions, "m.def", +is initialized from file arg1 if that is supplied. +M6 differs from the standard [1] in these +respects: +.sp +#trace:, #source: and #end: +are not defined. +.sp +#meta,arg1,arg2: transfers the role of metacharacter +arg1 to character arg2. If two metacharacters become identical +thereby, the outcome of further processing is not guaranteed. +For example, to make []{} play the +roles of #:<> type +.sp +.in+5 +\\\#meta,<\\\#>,[: +.br +[meta,<:>,]: +.br +[meta,[substr,<<>>,1,1;,{] +.br +[meta,[substr,{{>>,2,1;,}] +.in-5 +.sp +#del,arg1: deletes the definition of macro arg1. +.sp +#save: and #rest: save and restore the definition table together with +the current metacharacters on file +m.def. +.sp +#def,arg1,arg2,arg3: works as in the standard with the extension +that an integer may be +supplied to arg3 to cause the new macro to perform the +action of a specified builtin before its replacement text is evaluated. +Thus all builtins +except #def: can be retrieved even after deletion. +Codes for arg3 are: +.sp +.in+5 +.nf +0 - no function +1,2,3,4,5,6 - gt,eq,ge,lt,ne,le +7,8 - seq,sne +9,10,11,12,13 - add,sub,mpy,div,exp +20 - if +21,22 - def,copy +23 - meta +24 - size +25 - substr +26,27 - go,gobk +28 - del +29 - dnl +30,31 - save,rest +.fi +.in-5 +.sp +.ti 0 +FILES m.def--working file of definitions +.br +/usr/lang/mdir/m6a--m6 processor proper (/usr/bin/m6 is only an initializer) +.br +/usr/lang/mdir/m6b--default initialization for m.def +.br +/bin/cp--used for copying initial value of m.def +.sp +.ti 0 +SEE ALSO [1] A. D. Hall, +The M6 Macroprocessor, Bell Telephone Laboratories, 1969 +.sp +.ti 0 +DIAGNOSTICS "err" +-- a bug, an unknown builtin or a bad definition table +.br +"oprd"--can't open input or initial definitions +.br +"opwr"--can't open output +.br +"ova" -- overflow of nested arguments +.br +"ovc" -- overflow of calls +.br +"ovd" -- overflow of definitions +.br +"Try again" -- no process available for copying m.def +.br +.sp +.ti 0 +BUGS Characters in internal tables are stored +one per word. +They really should be packed to improve capacity. +For want of space (and because of unpacked formats) no file arguments +have been provided to #save: or #rest:, +and no check is made on the actual opening of file m.def. +Again to save space, +garbage collection makes calls on #save: and #rest: and so overwrites +m.def. diff --git a/static/unix-v10/man1/mail.1 b/static/unix-v10/man1/mail.1 new file mode 100644 index 00000000..2fa981c0 --- /dev/null +++ b/static/unix-v10/man1/mail.1 @@ -0,0 +1,662 @@ +'\"macro stdmacro +.if n .pH g1.mail %W% of %G% +.nr X +.if \nX=0 .ds x} mail 1 "Essential Utilities" "\&" +.if \nX=1 .ds x} mail 1 "Essential Utilities" +.if \nX=2 .ds x} mail 1 "" "\&" +.if \nX=3 .ds x} mail "" "" "\&" +.TH \*(x} +.SH NAME +\f4mail\f1, \f4rmail\f1 \- read mail or send mail to users +.SH SYNOPSIS +.SS Sending mail: +.PP +\f4mail\f1 +[ +\f4\-tw\f1 +] [ +\f4\-m\f1 +.I message_type +] +\f2recipient . . .\f1 +.PP +\f4rmail\f1 +[ +\f4\-tw\f1 +] [ +\f4\-m\f1 +.I message_type +] +\f2recipient . . .\f1 +.PP +.SS Reading mail: +.PP +\f4mail\f1 +[ +\f4\-ehpPqr\f1 +] [ +\f4\-f\f1 +\f2file\f1 +] +.PP +.SS Forwarding mail: +.PP +\f4mail \-F\fP \f2recipient . . .\f1 +.PP +.SS Debugging: +.PP +\f4mail\fP [ \f4\-x\fP\f2debug_level\fP ] [ \f2other_mail_options\fP ] +\f2recipient . . .\f1 +.PP +\f4mail\f1 +\f4\-T\f1 +.I mailsurr_file +\f2recipient . . .\f1 +.SH DESCRIPTION +.PP +A +.I recipient\^ +is usually a user name recognized by +\f4login\fP(1). +When +.I recipients\^ +are named, +\f4mail\fP +assumes a message is being sent +(except in the case of the \f4\-F\fP option). +It reads from the standard input up to an end-of-file +(cntrl-d) or, +if reading from a terminal device, +until it reads a line consisting of just a period. +When either of those indicators is received, +\f4mail\fP +adds the +.I letter\^ +to the +.I mailfile +for each +.IR recipient . +.PP +A \f2letter\fP is composed of some \f2header lines\fP followed by a blank +line followed by the \f2message content\fP. +The \f2header lines\fP section of the letter consists of one or more UNIX +postmarks: +.sp .5 +.RS +\f4From\f1 \f2sender date_and_time\f1 [\f4remote from\f1 \f2remote_system_name\f1] +.RE +.sp .5 +followed by one or more standardized message header lines of the form: +.sp .5 +.RS +\f2keyword-name\f4\f4:\f1 [\f2printable text\f1] +.RE +.sp .5 +where \f2keyword-name\fP is comprised of any printable, +non-whitespace, characters other than colon (`:'). +A \f4Content-Length:\fP header line, +indicating the number of bytes in the \f2message content\fP will always be +present. +A \f4Content-Type:\fP header line that describes the type of the +\f2message content\fP (such as text, binary, multipart, etc.) will always +be present unless the letter consists of only header lines with no message +content. +Header lines may be contined on the following line if that line starts with +white space. +.SS Sending mail: +.PP +The following command-line arguments affect SENDING mail: +.PD 0 +.TP +\f4\-m\f1 +causes a \f4Message-Type:\fP line to be added to the message header with +the value of \f2message_type\fP. +.TP +\f4\-t\f1 +causes a \f4To:\f1 line to be added to the message header +for each of the intended recipients. +.TP +\f4\-w\f1 +causes a letter to be sent to a remote recipient without waiting for the +completion of the remote transfer program. +.PD +.PP +If a letter is found to be undeliverable, it is returned to the +sender with diagnostics that indicate the location and nature of the +failure. +If +\f4mail\fP +is interrupted during input, +the message is saved in the file +\f4dead.letter\f1 +to allow editing and resending. +\f4dead.letter\f1 +is always appended to, +thus preserving any previous contents. +The initial attempt to append to (or create) \f4dead.letter\fP will be in the +current directory. +If this fails, \f4dead.letter\fP will be appended to (or created in) the user's +login directory. +If the second attempt also fails, no \f4dead.letter\fP processing will be +done. +.PP +\f4rmail\fP +only permits the sending of mail; +\f4uucp\fP(1C) +uses +\f4rmail\fP +as a security precaution. +Any application programs that generate mail messages should be sure to +invoke \f4rmail\fP rather than \f4mail\fP for message transport and/or +delivery. +.PP +If the local system has the +Basic Networking Utilities installed, +mail may be sent to a recipient on a remote system. +There are numerous ways to address mail to recipients on remote systems +depending on the transport mechanisms available to the local system. +The two most prevalent addressing schemes are UUCP-style and +Domain-style. +With UUCP-style addressing, +remote recipients are specified +by prefixing the recipient name with the remote system name and +an exclamation point (such as sysa!user). +A series of system names separated by exclamation points +can be used to direct a letter through an extended +network (such as \f4sysa!sysb!sysc!user\f1). +With Domain-style addressing, +remote recipients are specified by appending an `\f4@\f1' and domain (and +possibly sub-domain) information to the recipient name +(such as \f4user@sf.att.com\f1). +(The local System Administrator should be consulted for details on which +addressing conventions are available on the local system.) +.PP +.SS Reading Mail: +.PP +The following command-line arguments affect READING mail: +.PD 0 +.TP +\f4\-e\f1 +causes mail not to be printed. +An exit value of 0 is returned if the user has mail; +otherwise, an exit value of 1 is returned. +.TP +\f4\-h\f1 +causes a window of headers to be initially displayed rather than the latest +message. The display is followed by the `\f4?\f1' prompt. +.TP +\f4\-p\f1 +causes all messages to be printed without prompting for disposition. +.TP +\f4\-P\f1 +causes all messages to be printed with \f2all\fP header lines displayed, +rather than the default selective header line display. +.TP +\f4\-q\f1 +causes +\f4mail\fP +to terminate after interrupts. +Normally an interrupt causes only the +termination of the message being printed. +.TP +\f4\-r\f1 +causes messages to be printed in first-in, first-out order. +.TP +\f\B\-f\fP\0\f2file\fP +causes +\f4mail\fP +to use +.I file\^ +(such as +\f4mbox\f1) +instead of the default +.IR mailfile . +.PD +.PP +\f4mail\fP, +unless otherwise influenced by command-line arguments, +prints a user's mail messages +in last-in, first-out order. +The default mode for printing messages is to display only +those header lines of immediate interest. +These include, but are not limited to, +the UNIX \f4From\fP and \f4>From\fP postmarks, +\f4From:\fP, +\f4Date:\fP, +\f4Subject:\fP, +and \f4Content-Length:\fP header lines, +and any recipient header lines such as +\f4To:\fP, +\f4Cc:\fP, +\f4Bcc:\fP, +etc. +After the header lines have been displayed, +\f4mail\fP will display the contents (body) of the message only if it +contains no unprintable characters. +Otherwise, \f4mail\fP will issue a warning statement about the message +having binary content and \f4not\fP display the content. +(This may be overridden via the \f4p\fP command. See below.) +.PP +For each message, +the user is prompted with a +\f4?\f1, +and a line is read from the standard input. +The following commands are available +to determine the disposition of the message: +.PD +.TP 21 +\f4#\f1 +Print the number of the current message. +.TP +\f4\-\f1 +Print previous message. +.TP +, \f4+\f1, or \f4n\f1 +Print the next message. +.TP +\f4!\f2command\^\f1 +Escape to the shell to do +.IR command . +.TP +\f4a\f1 +Print message that arrived during the \f4mail\fP session. +.TP +\f4d\f1, or \f4dp\f1 +Delete the current message and print the next message. +.TP +\f4d \f2n\fP\f1 +Delete message number \f2n\fP. Do not go on to next message. +.TP +\f4dq\f1 +Delete message and quit \f4mail\fP. +.TP +\f4h\f1 +Display a window of headers around current message. +.TP +\f4h \f2n\fP\f1 +Display a window of headers around message number \f2n\fP. +.TP +\f4h a\f1 +Display headers of all messages in the user's \f2mailfile\f1. +.TP +\f4h d\f1 +Display headers of messages scheduled for deletion. +.TP +\f4m\fP [ \f2persons\^\fP ] +Mail (and delete) the current message to the named +\f2person\f1(\f2s\f1). +.TP +.I n +Print message number \f2n\fP. +.TP +\f4p\f1 +Print current message again, +overriding any indications of binary (that is, unprintable) content. +.TP +\f4P\f1 +Override default brief mode and print current message again, +displaying all header lines. +.TP +\f4q\f1, or cntrl-\s-1D\s+1 +Put undeleted mail back in the +.I mailfile\^ +and quit \f4mail\fP. +.TP +\f4r\f1 [ \f2users\^\fP ] +Reply to the sender, and other \f2user(s)\f1, then delete the +message. +.TP +\f4s\fP [ \f2files\^\fP ] +Save message in the named +\f2file\f1(\f2s\f1)\^ +\f1(\f4mbox\f1 +is default) and delete the message. +.TP +\f4u\f1 [ \f2n\fP ] +Undelete message number \f2n\fP (default is last read). +.TP +\f4w\fP [ \f2files\^\fP ] +Save message contents, without any header lines, +in the named +.I files\^ +\f1(\f4mbox\f1 +is default) and delete the message. +.TP +\f4x\f1 +Put all mail back in the +.I mailfile\^ +unchanged and exit \f4mail\fP. +.TP +\f4y\fP [ \f2files\^\fP ] +Same as save. +.TP +\f4?\f1 +Print a command summary. +.PD +.PP +When a user logs in, the presence of mail, +if any, +is usually indicated. +Also, +notification is made if new mail arrives while using +\f4mail\fP. +.PP +The permissions of +.I mailfile\^ +may be manipulated using \f4chgrp\fP in two ways to alter the function of +\f4mail\fP. +The other +permissions of the file may be read-write (0666), read-only (0664), +or neither read nor write (0660) to allow different levels of privacy. +If changed to other than the default (mode 0660), the file will be preserved +even when empty to perpetuate the desired permissions. +(The administrator may override this file preservation using the +\f4DEL_EMPTY_MAILFILE\fP option of \f4mailcnfg\fP.) +.P +The group id of the mailfile must be \f4mail\f1 +to allow new messages to +be delivered, and the mailfile must be writable by group \f4mail\f1. +.SS Forwarding mail: +.PP +The following command-line argument affects FORWARDING of mail: +.sp .5 +.PD 0 +.TP +\f4\-F\fP\0\f2recipients\fP +Causes all incoming mail to be forwarded to +.IR recipients .\^ +The mailbox must be empty. +.PD +.PP +The \f4\-F\fP option causes the \f2mailfile\fP to contain +a first line of: +.sp .5 +.RS +\f4Forward to\f1 \f2recipient\^. . .\f1 +.RE +.sp .5 +Thereafter, all mail sent to the owner of the +.I mailfile\^ +will be forwarded to each +.IR recipient . +.PP +An \f4Auto-Forwarded-From: ...\f1 line +will be added to the forwarded message's header. +This is especially useful +in a multi-machine environment +to forward all a person's mail to a single machine, +and to keep the recipient informed if the mail +has been forwarded. +.PP +Installation and removal of forwarding is done with the +\f4\-F\f1 +invocation option. +To forward all your mail to \f4systema!user\f1 enter: +.sp .5 +.RS +\f4mail -F\0systema!user\f1 +.sp .5 +.RE +.PP +To forward to more than one recipient enter: +.sp .5 +.RS +\f4mail \-F\0"user1,user2@att.com,systemc!systemd!user3"\f1 +.sp .5 +.RE +.PP +Note that when more than one recipient is specified, the entire list +should be enclosed in double quotes so that it may all be +interpreted as the operand of the \f4\-F\f1 option. +The list can be up to 1024 bytes; either commas or white space can +be used to separate users. +.PP +If the first character of any forwarded-to recipient name is the pipe +symbol (`\(bv'), +the remainder of the line will be interpreted as a command to pipe the +current mail message to. +The command, known as a \f2Personal Surrogate\fP, +will be executed in the environment of the recipient of the +message (that is, basename of the \f2mailfile\fP). +For example, if the mailfile is \f4/var/mail/foo\f1, +\f4foo\fP will be looked up in \f4/etc/passwd\f1 +to determine the correct user\s-1ID\s+1, group\s-1ID\s+1, and \f4HOME\f1 directory. +The command's environment will be set to contain only +\f4HOME\f1, \f4LOGNAME\f1, \f4TZ\f1, \f4PATH\f1 +(= \f4/usr/bin:\f1), and \f4SHELL\f1 (= \f4/bin/sh\f1), +and the command will execute in the recipient's \f4HOME\f1 directory. +If the message recipient cannot be found in /etc/passwd, +the command will not be executed and a non-delivery notification with +appropriate diagnostics will be sent to the message's originator. +.PP +After the pipe symbol, escaped double quotes should be used +to have strings with embedded whitespace be considered as single arguments +to the command being executed. +No shell syntax or +metacharacters may be used unless the command specified is \f4/bin/sh\f1. +For example, +.sp .5 +.RS +\f4mail\0\-F\0"\(bv/bin/sh \-c \e"shell_command_line\e""\f1 +.RE +.sp .5 +will work, but is not advised since using double quotes and +backslashes within the shell_command_line is difficult to do correctly and +becomes tedious \f4very\fP quickly. +.PP +Certain %keywords are allowed within the piped-to command specification +and will be textually substituted for \f2before\fP the command line is +executed. +.sp .5 +.PD 0 +.TP +\f4%R\fP +Return path to the message originator. +.TP +\f4%c\fP +Value of the \f4Content-Type:\f1 header line if present. +.TP +\f4%S\fP +Value of the \f4Subject:\f1 header line if present. +.PD +.PP +If the command being piped to exits with any non-zero value, +\f4mail\fP will assume that message delivery failed and will generate a +non-delivery notification to the message's originator. It is allowable to +forward mail to other recipients \f4and\fP pipe it to a command, +as in +.sp .5 +.RS +\f4mail \-F\0"carol,joe,\(bvmyvacationprog %R"\f1 +.RE +.PP +Two UNIX System facilities that use the forwarding of +messages to commands are \f4notify\fP(1), +which causes asynchronous notification of new mail, +and \f4vacation\fP(1), +which provides an auto-answer capability for messages when the recipient +will be unavailable for an extended period of time. +.PP +To remove forwarding enter: +.sp .5 +.RS +\f4mail \-F\0"\^"\f1 +.RE +.PP +The pair of double quotes is mandatory to set a NULL argument for +the \-F option. +.PP +In order for forwarding to work properly the +.I mailfile\^ +should have \f4mail\fP as group ID, +and the group permission should be read-write. +.PP +\f4mail\fP will exit with a return code of \f40\fP if forwarding was +successfully installed or removed. +.SS Debugging: +.PP +The following command-line arguments cause \f4mail\fP to provide +DEBUGGING information: +.sp .5 +.PD 0 +.TP 22 +\f4\-T\fP\0\f2mailsurr_file +causes \f4mail\fP to display how it will parse and interpret +the \f4mailsurr\fP file. +.TP +\f4\-x\fP\f2debug_level\fP +causes \f4mail\fP to create a trace file containing debugging information. +.PD +.PP +The \f4\-T\fP option requires an argument that will be taken as the +pathname of a test \f4mailsurr\f1 file. +If NULL (as in \f4\-T ""\f1), +the system \f4mailsurr\f1 file will be used. +To use, type '\f4mail\fP \f4\-T\fP \f2test_file\0recipient\fP' and some trivial +message (like "testing"), +followed by a line with either just a dot (`.') or a cntrl-D. +The result of using the \f4\-T\f1 option will be displayed on standard output and +show the inputs and resulting transformations as \f4mailsurr\fP is +processed by the \f4mail\fP command for the indicated recipient. +Mail messages will never actually be sent or delivered when +the \f4\-T\f1 option is used. +.PP +The \f4\-x\f1 option causes \f4mail\fP to create a file named +\f4/tmp/MLDBG\f2process_id\f1 that contains debugging information +relating to how \f4mail\fP processed the current message. +The absolute value of \f2debug_level\f1 controls the verboseness +of the debug information. +Zero implies no debugging. +If \f2debug_level\f1 is greater than zero, +the debug file will be retained \f4only\f1 if \f4mail\fP encountered some +problem while processing the message. +If \f2debug_level\fP is less than zero the debug file will always be retained. +The \f2debug_level\f1 specified via \f4\-x\f1 overrides any specification +of \f4DEBUG\f1 in \f4/etc/mail/mailcnfg\f1. +The information provided by the \f4\-x\f1 option is esoteric and is +probably only useful to System Administrators. +The output produced by the \f4\-x\f1 option is a superset +of that provided by the \f4\-T\f1 option. +.SS Delivery Notification +Several forms of notification are available for mail by +including one of the following lines in the message header. +.PP +\f4Transport-Options:\f1 [ \f4/\f2options\f1 ] +.sp .2 +\f4Default-Options:\f1 [ \f4/\f2options\f1 ] +.sp .2 +\f4>To:\f1 \f2recipient\f1 [ \f4/\f2options\f1 ] +.PP +Where the ``/\f2options\f1'' may be one or more of the following: +.TP 12 +\f4/delivery\f1 +Inform the sender that the message was successfully delivered to the +\f2recipient\f1's mailbox. +.TP +\f4/nodelivery\f1 +Do not inform the sender of successful deliveries. +.TP +\f4/ignore\f1 +Do not inform the sender of \f4un\f1successful deliveries. +.TP +\f4/return\f1 +Inform the sender if mail delivery fails. +Return the failed message to the sender. +.TP +\f4/report\f1 +Same as \f4/return\f1 except that +the original message is not returned. +.PP +The default is \f4/nodelivery/return\f1. +If contradictory options are used, the first will +be recognized and later, conflicting, terms will be ignored. +.SH FILES +.PD 0 +.TP 20 +\f4dead.letter\f1 +unmailable text +.TP +\f4/etc/passwd\f1 +to identify sender and locate recipients +.TP +\f4/etc/mail/mailsurr\f1 +routing / name translation information +.TP +\f4/etc/mail/mailcnfg\f1 +initialization information +.TP +.SM +\f4$HOME\*S/mbox\f1 +saved mail +.TP +.SM +\f4$MAIL\*S\f1 +variable containing path name of +.I mailfile\^ +.TP +\f4/tmp/ma\f1\(** +temporary file +.TP +\f4/tmp/MLDBG\f1\(** +debug trace file +.TP +\f4/var/mail/\f1\(**\f4.lock\f1 +lock for mail directory +.TP +\f4/var/mail/:saved\f1 +directory for holding temp files to prevent loss of data in the event of a +system crash. +.TP +\f4/var/mail/\f1\f2user\f1 +incoming mail for \f2user\fP; +that is, the +.I mailfile\^ +.PD +.SH SEE ALSO +\f4chmod\fP(1), +\f4login\fP(1), +\f4mailx\fP(1), +\f4notify\fP(1), +\f4write\fP(1), +\f4vacation\fP(1) +.sp .2 +\f4mail_pipe\fP(1M), +\f4mailsurr\fP(4), +\f4mailcnfg\fP(4) in the \f2System Administrator's Reference Manual\f1. +.br +.IR "User\'s Guide" . +.SH NOTES +The "Forward to recipient" feature may result in a loop. +Local loops (messages sent to \f4usera\f1, which are forwarded to +\f4userb\f1, which are forwarded to \f4usera\f1) will be detected +immediately. Remote loops (mail sent to \f4sys1!usera\fP1 which is forwarded +to \f4sys2!userb\f1, which is forwarded to \f4sys1!usera\f1) will also be +detected, but only after the message has exceeded the built-in hop count +limit of 20. +Both cases of forwarding loops will result in a non-delivery +notification being sent to the message originator. +.PP +As a security precaution, the equivalent of a \f4chmod s+g\f1 is performed on +the \f2mailfile\fP whenever forwarding is activated via the \f4\-F\fP +option, +and a \f4chmod s\(mig\fP is done when forwarding is removed via the +\f4\-F\fP option. +If the set\s-1GID\s+1 mode bit is not set when \f4mail\fP +attempts to forward an incoming message to a command, +the operation will fail and a non-delivery report with appropriate +diagnostics will be sent to the message's originator. +.PP +The interpretation and resulting action taken because of the +header lines described in the Delivery Notifications section +above will only occur if this version of \f4mail\fP is installed +on the system where the delivery (or failure) happens. +Earlier versions of \f4mail\fP may not support any types +of delivery notification. +.PP +Conditions sometimes result +in a failure to remove a lock file. +.PP +After an interrupt, the next message may not be printed; +printing may be forced by typing a +\f4p\f1. +.Ee diff --git a/static/unix-v10/man1/mailalias.1 b/static/unix-v10/man1/mailalias.1 new file mode 100644 index 00000000..b39e0bc9 --- /dev/null +++ b/static/unix-v10/man1/mailalias.1 @@ -0,0 +1,93 @@ +'\"macro stdmacro +.if n .pH g1.mailalias %W% of %G% +.nr X +.if \nX=0 .ds x} mailalias 1 "" "\&" +.if \nX=1 .ds x} mailalias 1 "" +.if \nX=2 .ds x} mailalias 1 "" "\&" +.if \nX=3 .ds x} mailalias "" "" "\&" +.TH \*(x} +.SH NAME +\f4mailalias\f1 \- translate mail alias names +.SH SYNOPSIS +\f4mailalias\f1 [ \f4\-s\f1 ] [ \f4\-v\f1 ] +.I name +\&... +.SH DESCRIPTION +\f4mailalias\fP +is called by +\f4mail\fP. +It places on the standard output a list of mail addresses corresponding to +.IR name . +The mail addresses are found by performing the following steps: +.TP 4 +1. +Look for the file \f4/var/mail/\f2name\f1. +If found, print +.I name +and exit. +.TP 4 +2. +Look for a match in the user's local alias file +\f4$HOME/lib/names\f1. +If a line is found beginning with the word +.IR name , +print the rest of the line on standard output and exit. +.TP 4 +3. +Look for a match in the system-wide alias files, +which are listed in the master path file +\f4/etc/mail/namefiles\f1. +If a line is found beginning with the word +.IR name , +print the rest of the line on standard output and exit. +.P +If an alias file is a directory name \f2dir\fP, then search the file +\f2dir\fP/\f2name\fP. +By default, the file \f4/etc/mail/namefiles\fP lists +the directory \f4/etc/mail/lists\fP +and +the file \f4/etc/mail/names\f1. +.TP 4 +4. +Otherwise print +.I name +and exit. +.PP +The alias files may contain comments (lines beginning with +\f4#\f1) +and information lines of the form: +.IP +.I "name\0list-of-addresses" +.PP +Tokens on these lines are separated by white-space. +Lines may be continued by placing a backslash (\e) at the end of the line. +.PP +If the +\f4-s\f1 +option is not specified and more than one name is being translated, each line +of output will be prefixed with the name being translated. +.PP +The +\f4-v\f1 +option causes debugging information to be written to standard output. +.SH FILES +.PD 0 +.TP 30n +\f4$HOME/lib/names\f1 +private aliases +.TP +\f4/etc/mail/namefiles\f1 +list of files to search +.TP +\f4/etc/mail/names\f1 +standard file to search +.PD +.SH "SEE ALSO" +\f4uucp\fP(1), +\f4mail\fP(1). +.br +\f4smtp\fP(1M), +\f4smtpd\fP(1M), +\f4smtpqer\fP(1M), +\f4smtpsched\fP(1M), +\f4tosmtp\fP(1M) in the \f2System Administrator's Reference Manual\f1. diff --git a/static/unix-v10/man1/mailx.1 b/static/unix-v10/man1/mailx.1 new file mode 100644 index 00000000..296a1e8d --- /dev/null +++ b/static/unix-v10/man1/mailx.1 @@ -0,0 +1,1249 @@ +'\"macro stdmacro +.if n .pH g1.mailx %W% of %G% +.nr X +.if \nX=0 .ds x} mailx 1 "Essential Utilities" "\&" +.if \nX=1 .ds x} mailx 1 "Essential Utilities" +.if \nX=2 .ds x} mailx 1 "" "\&" +.if \nX=3 .ds x} mailx "" "" "\&" +.TH \*(x} +.\" mailx command (in COMMAND section) +.de Cm +.PD +.\"sp +.ne 3 +.TP +\\f4\\$1\\f1\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\"br +.. +.\" lines two through n of mailx command (.Cm) +.de C +.PD 0 +.ne 2 +.TP +\\f4\\$1\\f1\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\"br +.. +.\" mailx tilde escape (in TILDE ESCAPE section) +.de Ti +.\"sp +.ne 2 +.TP +\\f4~\\^\\$1\\f1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\"br +.. +.\" mailx environment variable that takes an arg (in ENVIRONMENT VARIABLE section) +.de Va +.\"sp +.ne 2 +.TP +\\f4\\$1\\f1=\\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9 +.\"br +.. +.\" mailx environment variable that does not take an arg (in ENVIRONMENT VARIABLE section) +.de V +.\"sp +.ne 2 +.TP +\\f4\\$1\\f1 +.\"br +.. +.\" mailx environment variable in running text +.de Ev +\f4\\$1\f1\\$2 +.. +.ds Ma \\f4mailx\\f1 +.ds EV "\s-1ENVIRONMENT VARIABLES\s+1 +.ds CM "\s-1COMMANDS\s+1 +.ds TX "\s-1TILDE ESCAPES\s+1 +.ds WA "\s-1WARNINGS\s+1 +.ds al \\f2alias\\f1 +.ds nu \\f2number\\f1 +.ds ms \\f2message\f1 +.ds sh \\f2shell-command\\f1 +.ds mC \\f2mail-command\\f1 +.ds dl \\f4dead.letter\\f1 +.ds mr \\f4.mailrc\\f1 +.ds mb \\f4mbox\\f1 +.ds mx \\f4mailbox\\f1 +.ds ml \\f2msglist\\f1 +.ds om [\\f2msglist\\f1] +.ds hf \\f2header-field\\f1 +.ds fn \\f2filename\\f1 +.ds st \\f2string\\f1 +.ds dr \\f2directory\\f1 +.ds nm \\f2name\\f1 +.SH NAME +\f4mailx\f1 \- interactive message processing system +.SH SYNOPSIS +\f4mailx\f1 +[ +.I options +] [ +.IR name \|.\|.\|.\| +] +.SH DESCRIPTION +The command +\f4mailx\fP provides a comfortable, flexible environment for sending and +receiving messages electronically. +When reading mail, +\*(Ma provides commands to facilitate saving, deleting, and responding to +messages. +When sending mail, +\*(Ma allows editing, reviewing and other modification of the message +as it is entered. +.PP +Many of the remote features of \f4mailx\fP +work only if the Basic Networking Utilities are installed on your system. +.PP +Incoming mail is stored in a standard file for each user, +called the \*(mx for that user. +When \*(Ma is called to read messages, +the \*(mx is the default place to find them. +As messages are read, +they are marked to be moved to a secondary file for storage, +unless specific action is taken, +so that the messages need not be seen again. +This secondary file is called the \*(mb +and is normally located in the user's +\f4HOME\f1 +directory +[see +.Ev MBOX +(\*(EV) for a description of this file]. +Messages can be saved in other secondary files named by the user. +Messages remain in a secondary file until forcibly removed. +.PP +The user can access a secondary file by using the +\f4\-f\f1 option of the \*(Ma command. +Messages in the secondary file can then be read or otherwise +processed using the same \*(CM as in the primary \*(mx. +This gives rise within these pages to the notion of a current \*(mx. +.PP +On the command line, +.I options +start with a dash (\-) and any other arguments are taken to be +destinations (recipients). +If no recipients are specified, +\*(Ma attempts to read messages from the \*(mx. +Command-line options are: +.PP +.RS +.TP 14 +\f4\-d\f1 +Turn on debugging output. +.TP +\f4\-e\f1 +Test for presence of mail. +\f4mailx\fP prints nothing and exits with a successful return code if there is +mail to read. +.TP +\f4\-f\f1 [\*(fn] +Read messages from \*(fn instead of \*(mx. +If no \*(fn is specified, +the \*(mb is used. +.TP +\f4\-F\f1 +Record the message in a file named after the first recipient. +Overrides the +.Ev record +variable, if set (see \*(EV). +.TP +\f4\-h\f1 \*(nu +The number of network ``hops'' made so far. +This is provided for network +software to avoid infinite delivery loops. +This option and its argument is passed to the delivery program. +.TP +\f4\-H\f1 +Print header summary only. +.TP +\f4\-i\f1 +Ignore interrupts. +See also +.Ev ignore +(\*(EV). +.TP +\f4\-I\f1 +Include the newsgroup and article-id header lines when printing mail +messages. +This option requires the \f4\-f\f1 option to be specified. +.TP +\f4\-n\f1 +Do not initialize from the system default +.I mailx.rc +file. +.TP +\f4\-N\f1 +Do not print initial header summary. +.TP +\f4\-r\f2 address\f1 +Use +.I address +as the return address when invoking the delivery program. +All tilde commands are disabled. +This option and its argument is passed to the delivery program. +.TP +\f4\-s\f2 subject\f1 +Set the Subject header field to +.IR subject . +.TP +\f4\-T\f2 file\f1 +Message-id and article-id header lines are recorded in \f2file\f1 after the +message is read. +This option will also set the \f4\-I\f1 option. +.TP +\f4\-u\f2 user\f1 +Read +.IR user 's +\*(mx. +This is only effective if +.IR user 's +\*(mx is not read protected. +.TP +\f4\-U\f1 +Convert \f4uucp\fP style addresses to internet standards. +Overrides the +.Ev conv +environment variable. +.TP +\f4\-V\f1 +Print the \*(Ma version number and exit. +.RE +.PP +When reading mail, +\*(Ma is in +\f2command mode\f1. +A header summary of the first several messages is displayed, +followed by a prompt indicating \*(Ma can accept regular commands +(see \*(CM below). +When sending mail, +\*(Ma is in +\f2input mode\f1. +If no subject is specified on the command line, +a prompt for the subject is printed. +(A subject longer than 1024 characters causes \*(Ma to print the +message \f2mail: ERROR signal 10\fP; the mail will not be delivered.) +As the message is typed, +\*(Ma reads the message and store it in a temporary +file. +Commands may be entered by beginning a line with the tilde (~) escape +character followed by a single command letter and optional arguments. +See \*(TX for a summary of these commands. +.PP +At any time, +the behavior of \*(Ma is governed by a set of +\f2environment variables\f1. +These are flags and valued parameters which are set and cleared via the +\f4se\f1t +and +\f4uns\f1et +commands. +See \*(EV below for a summary of these parameters. +.PP +Recipients listed on the command line may be of three types: +login names, +shell commands, +or +alias groups. +Login names may be any network address, +including mixed network addressing. +If mail is found to be undeliverable, an attempt is +made to return it to the sender's \f2mailbox\f1. +If the recipient name begins with a pipe symbol ( | ), +the rest of the name is taken to be a shell command to pipe the +message through. +This provides an automatic interface with any program that reads the standard +input, such as +\f4lp\fP(1) +for recording outgoing mail on paper. +Alias groups are set by the +\f4a\f1lias +command (see \*(CM below) +and are lists of recipients of any type. +.PP +Regular commands are of the form +.PP +.RS +[ +.I command +] [ +.I msglist +] [ +.I arguments +] +.RE +.PP +If no command is specified in \f2command mode\f1, +\f4p\f1rint +is assumed. +In \f2input mode\f1, +commands are recognized by the escape character, +and lines not treated as commands are taken as input for the message. +.PP +Each message is assigned a sequential number, +and there is at any time the notion of a current message, +marked by a right angle bracket (>) in the header summary. +Many commands take an optional list of messages +(\*(ml) to operate on. +The default for \f2msglist\f1 is the current message. +A \*(ml is a list of message identifiers separated by spaces, +which may include: +.PP +.RS +.TP 8 +\f4n\f1 +Message number +\f4n\f1. +.TP +\f4\&.\f1 +The current message. +.TP +\f4^\f1 +The first undeleted message. +.TP +\f4$\f1 +The last message. +.TP +\f4*\f1 +All messages. +.TP +\f4n\-m\f1 +An inclusive range of message numbers. +.TP +\f4user\f1 +All messages from +\f4user\f1. +.TP +\f4/string\f1 +All messages with +\f4string\f1 +in the subject line (case ignored). +.TP +\f4:\f2c\f1 +All messages of type +.IR c , +where +.I c +is one of: +.RS 13 +.TP +\f4d\f1 +deleted messages +.TP +\f4n\f1 +new messages +.TP +\f4o\f1 +old messages +.TP +\f4r\f1 +read messages +.TP +\f4u\f1 +unread messages +.RE 0 +.RS 13 +Note that the context of the command determines whether this type of +message specification makes sense. +.RE +.PP +Other arguments are usually arbitrary strings whose usage +depends on the command involved. +File names, +where expected, +are expanded via the normal shell conventions [see +\f4sh\fP(1)]. +Special characters are recognized by certain commands and are +documented with the commands below. +.PP +At start-up time, +\*(Ma tries to execute commands from the optional system-wide file +(\f4/etc/mail/mailx.rc\f1) to initialize +certain parameters, +then from a private start-up file +\f1(\f4$HOME/.mailrc\f1) +for personalized variables. +With the exceptions noted below, +regular commands are legal inside start-up files. +The most common use of a start-up file is +to set up initial display options and alias lists. +The following commands are not legal in the start-up file: +\f4!\f1, +\f4C\f1opy, +\f4e\f1dit, +\f4fo\f1llowup, +\f4F\f1ollowup, +\f4ho\f1ld, +\f4m\f1ail, +\f4pre\f1serve, +\f4r\f1eply, +\f4R\f1eply, +\f4sh\f1ell, +and +\f4v\f1isual. +An error in the start-up file causes the remaining lines in the file to +be ignored. +The \*(mr file is optional, and must be constructed locally. +.SS \*(CM +The following is a complete list of \*(Ma commands: +.PP +.Cm ! \*(sh +Escape to the shell. +See +.Ev SHELL +(\*(EV). +.Cm # "" \f2comment\f1 +Null command (comment). +This may be useful in \*(mr files. +.Cm = +Print the current message number. +.Cm ? +Prints a summary of commands. +.Cm a lias \*(al \*(nm ... +.C g roup \*(al \*(nm ... +Declare an alias for the given names. +The names are substituted +when +\*(al is used as a recipient. +Useful in the \*(mr file. +.Cm alt ernates \*(nm ... +Declares a list of alternate names for your login. +When responding to a message, +these names are removed from the list of recipients for the response. +With no arguments, +\f4alt\f1ernates +prints the current list of alternate names. +See also +.Ev allnet +(\*(EV). +.Cm cd "" [\*(dr] +.C ch dir [\*(dr] +Change directory. +If \*(dr is not specified, +\f4$HOME\f1 +is used. +.Cm c opy [\*(fn] +.C c opy \*(om \*(fn +Copy messages to the file without marking the messages as saved. +Otherwise equivalent to the +\f4s\f1ave +command. +.Cm C opy \*(om +Save the specified messages in a file whose name is derived from the +author of the +message to be saved, without marking the messages as saved. +Otherwise equivalent to the +\f4S\f1ave +command. +.Cm d elete \*(om +Delete messages from the \*(mx. +If +.Ev autoprint +is set, +the next message after the last one deleted is printed +(see \*(EV). +.Cm di scard [\*(hf ...] +.C ig nore [\*(hf ...] +Suppresses printing of the specified header fields when displaying messages +on the screen. +Examples of header fields to ignore are +\f4status\f1 +and +\f4cc\f1. +The fields are included when the message is saved. +The +\f4P\f1rint +and +\f4T\f1ype +commands override this command. +If no header is specified, the current list of header fields being ignored +will be printed. +See also the \f4undi\f1scard and \f4unig\f1nore commands. +.Cm dp "" \*(om +.C dt "" \*(om +Delete the specified messages from the \*(mx and print the next message +after the last one deleted. +Roughly equivalent to a +\f4d\f1elete +command followed by a +\f4p\f1rint +command. +.Cm ec ho \*(st ... +Echo the given strings [like +\f4echo\fP(1)]. +.Cm e dit \*(om +Edit the given messages. +The messages are placed in a temporary file and the +.Ev EDITOR +variable +is used to get the name of the editor +(see \*(EV). +Default editor is +\f4ed\fP(1). +.Cm ex it +.C x it +Exit from \*(Ma, +without changing the \*(mx. +No messages are saved in the \*(mb (see also +\f4q\f1uit). +.Cm fi le [\*(fn] +.C fold er [\*(fn] +Quit from the current file of messages and read in the specified file. +Several special characters are recognized when used as file names, +with the following substitutions: +.RS 10 +.TP 10 +\f4%\f1 +the current \*(mx. +.TP +\f4%\f2user\f1 +the \*(mx for +.IR user . +.TP +\f4#\f1 +the previous file. +.TP +\f4&\f1 +the current \*(mb. +.RE +.RS 5 +Default file is the current \*(mx. +.RE +.Cm folders +Print the names of the files in the +directory set by the +.Ev folder +variable +(see \*(EV). +.Cm fo llowup [\*(ms] +Respond to a message, +recording the response in a file whose name is derived from the +author of the message. +Overrides the +.Ev record +variable, if set. +See also the +\f4F\f1ollowup, +\f4S\f1ave, +and +\f4C\f1opy +commands and +.Ev outfolder +(\*(EV). +.Cm F ollowup \*(om +Respond to the first message in the \*(ml, +sending the message to the author of each message in the \*(ml. +The subject line is taken from the first message +and the response is recorded in a file whose name is derived +from the author of the first message. +See also the +\f4fo\f1llowup, +\f4S\f1ave, +and +\f4C\f1opy +commands +and +.Ev outfolder +(\*(EV). +.Cm f rom \*(om +Prints the header summary for the specified messages. +.Cm g roup \*(al \*(nm ... +.C a lias \*(al \*(nm ... +Declare an alias for the given names. +The names are substituted +when +\*(al is used as a recipient. +Useful in the \*(mr file. +.Cm h eaders [\*(ms] +Prints the page of headers which includes the message specified. +The +.Ev screen +variable sets the number of headers per page +(see \*(EV). +See also the +\f4z\f1 +command. +.Cm hel p +Prints a summary of commands. +.Cm ho ld \*(om +.C pre serve \*(om +Holds the specified messages in the \*(mx. +.Cm i f \f2s\f1 | \f2r\f1 +.C "" \*(mCs +.C el se +.C "" \*(mCs +.C en dif +Conditional execution, where +.I s +executes following \*(mCs, up to an +\f4el\f1se +or +\f4en\f1dif, +if the program is in +.I send +mode, and +.I r +causes the \*(mCs to be executed only in +.I receive +mode. +Useful in the \*(mr file. +.Cm ig nore [\*(hf ...] +.C di scard [\*(hf ...] +Suppresses printing of the specified header fields when displaying messages +on the screen. +Examples of header fields to ignore are +\f4status\f1 +and +\f4cc\f1. +All fields are included when the message is saved. +The +\f4P\f1rint +and +\f4T\f1ype +commands override this command. +If no header is specified, the current list of header fields being ignored +will be printed. +See also the \f4undi\f1scard and \f4unig\f1nore commands. +.Cm l ist +Prints all commands available. +No explanation is given. +.Cm m ail \*(nm ... +Mail a message to the specified users. +.Cm M ail \*(nm +Mail a message to the specified user and record a copy of it +in a file named after that user. +.Cm mb ox \*(om +Arrange for the given messages to end up in the standard \*(mb save file +when \*(Ma terminates normally. +See +.Ev MBOX +(\*(EV) for a description of this file. +See also the +\f4ex\f1it +and +\f4q\f1uit +commands. +.Cm n ext [\*(ms] +Go to next message matching \*(ms. +A \*(ml may be specified, +but in this case the first valid message in the list is the only one used. +This is useful for jumping to the next message from a specific user, +since the name would be taken as a command in the absence of a real command. +See the discussion of \*(mls above for a description of +possible message specifications. +.Cm pi pe \*(om [\*(sh] +.C | "" \*(om [\*(sh] +Pipe the message through the given \*(sh. +The message is treated as if it were read. +If no arguments are given, +the current message is piped through the command specified by the +value of the +.Ev cmd +variable. +If the +.Ev page +variable is set, +a form feed character is inserted after each message +(see \*(EV). +.Cm pre serve \*(om +.C ho ld \*(om +Preserve the specified messages in the \*(mx. +.Cm P rint \*(om +.C T ype \*(om +Print the specified messages on the screen, +including all header fields. +Overrides suppression of fields by the +\f4ig\f1nore +command. +.Cm p rint \*(om +.C t ype \*(om +Print the specified messages. +If +.Ev crt +is set, +the messages longer than the number of lines specified by the +.Ev crt +variable are paged through the command specified by the +.Ev PAGER +variable. +The default command is +\f4pg\fP(1) +(see \*(EV). +.Cm q uit +Exit from \*(Ma, +storing messages that were read in \*(mb and unread messages in the \*(mx. +Messages that have been explicitly saved in a file are deleted. +.Cm R eply \*(om +.C R espond \*(om +Send a response to the author of each message in the \*(ml. +The subject line is taken from the first message. +If +.Ev record +is set to a file name, +the response is saved at the end of that file (see \*(EV). +.Cm r eply [\*(ms] +.C r espond [\*(ms] +Reply to the specified message, +including all other recipients of the message. +If +.Ev record +is set to a file name, +the response is saved at the end of that file (see \*(EV). +.Cm S ave \*(om +Save the specified messages in a file whose name is derived from +the author of the first message. +The name of the file is taken to be the author's name with all +network addressing stripped off. +See also the +\f4C\f1opy, +\f4fo\f1llowup, +and +\f4F\f1ollowup +commands and +.Ev outfolder +(\*(EV). +.Cm s ave [\*(fn] +.C s ave \*(om \*(fn +Save the specified messages in the given file. +The file is created if it does not exist. +THe file defaults to \*(mb. +The message is deleted from the \*(mx when +\*(Ma terminates unless +.Ev keepsave +is set +(see also \*(EV and the +\f4ex\f1it +and +\f4q\f1uit +commands). +.Cm se t +.C se t \*(nm +.C se t \*(nm=\*(st +.C se t \*(nm=\*(nu +Define a variable called \*(nm. +The variable may be given a null, string, or numeric value. +\f4Se\f1t +by itself prints all defined variables and their values. +See \*(EV for detailed descriptions of the \*(Ma variables. +.Cm sh ell +Invoke an interactive shell [see also +.Ev SHELL +(\*(EV)]. +.Cm si ze \*(om +Print the size in characters of the specified messages. +.Cm so urce \*(fn +Read commands from the given file and return to command mode. +.Cm to p \*(om +Print the top few lines of the specified messages. +If the +.Ev toplines +variable is set, +it is taken as the number of lines to print +(see \*(EV). +The default is 5. +.Cm tou ch \*(om +Touch the specified messages. +If any message in \*(ml is not specifically saved in a file, +it is placed in the \*(mb, +or the file specified in the +.Ev MBOX +environment variable, upon normal termination. +See +\f4ex\f1it +and +\f4q\f1uit. +.Cm T ype \*(om +.C P rint \*(om +Print the specified messages on the screen, +including all header fields. +Overrides suppression of fields by the +\f4ig\f1nore +command. +.Cm t ype \*(om +.C p rint \*(om +Print the specified messages. +If +.Ev crt +is set, +the messages longer than the number of lines specified by the +.Ev crt +variable are paged through the command specified by the +.Ev PAGER +variable. +The default command is +\f4pg\fP(1) +(see \*(EV). +.Cm u ndelete \*(om +Restore the specified deleted messages. +Will only restore messages deleted in the current mail session. +If +.Ev autoprint +is set, the last message of those restored is printed +(see \*(EV). +.Cm undi scard \*(hf ... +.C unig nore \*(hf ... +Remove the specified header fields from the list being ignored. +.Cm uns et \*(nm ... +Causes the specified variables to be erased. +If the variable was imported from the execution environment (i.e., a +shell variable) then it cannot be erased. +.Cm ve rsion +Prints the current version. +.Cm v isual \*(om +Edit the given messages with a screen editor. +The messages are placed in a temporary file and the +.Ev VISUAL +variable +is used to get the name of the editor +(see \*(EV). +.Cm w rite \*(om \*(fn +Write the given messages on the specified file, +minus the header and trailing blank line. +Otherwise equivalent to the +\f4s\f1ave +command. +.Cm x it +.C ex it +Exit from \*(Ma, +without changing the \*(mx. +No messages are saved in the \*(mb (see also +\f4q\f1uit). +.Cm z [+ | \-] +Scroll the header display forward or backward one screen\-full. +The number of headers displayed is set by the +.Ev screen +variable +(see \*(EV). +.SS \*(TX +The following commands may be entered only from +\f2input mode\f1, +by beginning a line with the tilde escape character (~). +See +.Ev escape +(\*(EV) +for changing this special character. +.PP +.Ti ! \*(sh +Escape to the shell. +.Ti . +Simulate end of file (terminate message input). +.Ti : \*(mC +.PD 0 +.Ti _\ \*(mC +.PD +Perform the command-level request. +Valid only when sending a message while reading mail. +.Ti ? +Print a summary of tilde escapes. +.Ti A +Insert the autograph string +.Ev Sign +into the message +(see \*(EV). +.Ti a +Insert the autograph string +.Ev sign +into the message +(see \*(EV). +.Ti b \*(nms ... +Add the \*(nms to the blind carbon copy (Bcc) list. +.Ti c \*(nms ... +Add the \*(nms to the carbon copy (Cc) list. +.Ti d +Read in the \*(dl file. +See +.Ev DEAD +(\*(EV) for a description of this file. +.Ti e +Invoke the editor on the partial message. +See also +.Ev EDITOR +(\*(EV). +.Ti f \*(om +Forward the specified messages. +The messages are inserted into the message +without alteration. +.Ti h +Prompt for Subject line and To, Cc, and Bcc lists. +If the field is displayed with an initial value, +it may be edited as if you had just typed it. +.Ti i \*(st +Insert the value of the named variable into the text of the message. +For example, +\f4~A\f1 +is equivalent to +\f1'\f4~i\f1\\f4Sign.'\f1 +Environment variables set and exported in the shell are also +accessible by ~i. +.Ti m \*(om +Insert the specified messages into the letter, +shifting the new text to the right one tab stop. +Valid only when sending a message while reading mail. +.Ti p +Print the message being entered. +.Ti q +Quit from input mode by simulating an interrupt. +If the body of the message is not null, +the partial message is saved in \*(dl. +See +.Ev DEAD +(\*(EV) for a description of this file. +.Ti r \*(fn +.PD 0 +.Ti <\ \*(fn +.Ti <\ !\*(sh +.PD +Read in the specified file. +If the argument begins with an exclamation point (!), +the rest of the string is taken as an arbitrary shell command +and is executed, +with the standard output inserted into the message. +.Ti s \*(st ... +Set the subject line to \*(st. +.Ti t \*(nms ... +Add the given \*(nms to the To list. +.Ti v +Invoke a preferred screen editor on the partial message. +See also +.Ev VISUAL +(\*(EV). +.Ti w \*(fn +Write the message into the given file, +without the header. +.Ti x +Exit as with +\f4~q\f1 +except the message is not saved in \*(dl. +.Ti | \*(sh +Pipe the body of the message through the given \*(sh. +If the \*(sh returns a successful exit status, +the output of the command replaces the message. +.SS \*(EV +The following are environment variables taken from the execution environment and +are not alterable within \*(Ma. +.Va \s-1HOME\s+1 \*(dr +The user's base of operations. +.Va \s-1MAILRC\s+1 \*(fn +The name of the start-up file. +Default is +\f4$HOME/.mailrc\f1. +.PP +The following variables are internal \*(Ma variables. +They may be imported from the execution environment or +set via the +\f4se\f1t +command at any time. +The +\f4uns\f1et +command may be used to erase variables. +.PP +.V allnet +All network names whose last component (login name) match are treated as +identical. +This causes the \*(ml message specifications to behave similarly. +Default is +\f4noallnet\f1. +See also the +\f4alt\f1ernates +command and the +.Ev metoo +variable. +.V append +Upon termination, append messages to the end of the \*(mb file instead of prepending them. +Default is +\f4noappend.\f1 +.V askcc +Prompt for the Cc list after the Subject is entered. +Default is +\f4noaskcc\f1. +.V askbcc +Prompt for the Bcc list after the Subject is entered. +Default is +\f4noaskbcc\f1. +.V asksub +Prompt for subject if it is not specified on the command line +with the +\f4\-s\f1 +option. +Enabled by default. +.V autoprint +Enable automatic printing of messages after +\f4d\f1elete +and +\f4u\f1ndelete +commands. +Default is +\f4noautoprint\f1. +.V bang +Enable the special-casing of exclamation points (!) in shell escape +command lines +as in +\f4vi\fP(1). +Default is +\f4nobang\f1. +.Va cmd \*(sh +Set the default command for the +\f4pi\f1pe +command. +No default value. +.Va conv \f2conversion\f1 +Convert uucp addresses to the specified +address style. +The only valid conversion now is +\f4internet\f1, +which uses domain-style addressing. +Conversion is disabled by default. +See also the +\f4\-U\f1 +command-line option. +.Va crt \*(nu +Pipe messages having more than \f2number\f1 lines +through the command specified by the value of the +.Ev PAGER +variable +.RI +[\f4pg\f1(1) by default]. +Disabled by default. +.Va DEAD \*(fn +The name of the file in which to save partial letters +in case of untimely interrupt. +Default is +\f4$HOME/dead.letter\f1. +.V debug +Enable verbose diagnostics for debugging. +Messages are not delivered. +Default is +\f4nodebug\f1. +.V dot +Take a period on a line by itself during input from a terminal as end-of-file. +Default is +\f4nodot\f1. +.Va EDITOR \*(sh +The command to run when the +\f4e\f1dit +or +\f4~e\f1 +command is used. +Default is +\f4ed\fP(1). +.Va escape \f2c\f1 +Substitute +.I c +for the ~ escape character. +Takes effect with next message sent. +.Va folder \*(dr +The directory for saving standard mail files. +User-specified file names beginning with a plus (+) +are expanded by preceding the file name with +this directory name to obtain the real file name. +If \*(dr does not start with a slash (/), +\f4$HOME\f1 +is prepended to it. +In order to use the plus (+) construct on a +\*(Ma command line, +.Ev folder +must be an exported +\f4sh\fP +environment variable. +There is no default for the +.Ev folder +variable. +See also +.Ev outfolder +below. +.V header +Enable printing of the header summary when entering \*(Ma. +Enabled by default. +.V hold +Preserve all messages that are read in the \*(mx instead of putting them +in the standard \*(mb save file. +Default is +\f4nohold\f1. +.V ignore +Ignore interrupts while entering messages. +Handy for noisy dial-up lines. +Default is +\f4noignore\f1. +.V ignoreeof +Ignore end-of-file during message input. +Input must be terminated by a period (.) on a line by itself +or by the +\f4~.\f1 +command. +Default is +\f4noignoreeof\f1. +See also +.Ev dot +above. +.V keep +When the \*(mx is empty, +truncate it to zero length instead of removing it. +Disabled by default. +.V keepsave +Keep messages that have been saved in other files in the \*(mx +instead of deleting them. +Default is +\f4nokeepsave\f1. +.Va \s-1MBOX\s+1 \*(fn +The name of the file to save messages which have been read. +The +\f4x\f1it +command overrides this function, +as does saving the message explicitly in another file. +Default is +\f4$HOME/mbox\f1. +.V metoo +If your login appears as a recipient, +do not delete it from the list. +Default is +\f4nometoo\f1. +.Va \s-1LISTER\s+1 \*(sh +The command (and options) to use when listing the contents of the +.Ev folder +directory. +The default is +\f4ls\fP(1). +.V onehop +When responding to a message that was originally sent to several +recipients, +the other recipient addresses are normally forced to be relative to the +originating author's machine for the response. +This flag disables alteration of the recipients' addresses, +improving efficiency in a network where all machines can send directly +to all other machines (i.e., one hop away). +.V outfolder +Causes the files used to record outgoing messages to be located +in the directory specified by the +.Ev folder +variable unless the +path name is absolute. +Default is +\f4nooutfolder\f1. +See +.Ev folder +above and the +\f4S\f1ave, +\f4C\f1opy, +\f4fo\f1llowup, +and +\f4F\f1ollowup +commands. +.V page +Used with the +\f4pi\f1pe +command to insert a form feed after each message sent through the pipe. +Default is +\f4nopage\f1. +.Va \s-1PAGER\s+1 \*(sh +The command to use as a filter for paginating output. +This can also be used to specify the options to be used. +Default is +\f4pg\fP(1). +.Va prompt \*(st +Set the \f2command mode\f1 prompt to \*(st. +Default is +\f1``\f4?\ \f1''. +.V quiet +Refrain from printing the opening message and version when entering \*(Ma. +Default is +\f4noquiet\f1. +.Va record \*(fn +Record all outgoing mail in \*(fn. +Disabled by default. +See also +.Ev outfolder +above. +If you have the +.Ev record +and +.Ev outfolder +variables set but the +.Ev folder +variable not set, messages are saved in +\f4+\f1\*(fn instead of \*(fn. +.V save +Enable saving of messages in \*(dl on interrupt or delivery error. +See +.Ev DEAD +for a description of this file. +Enabled by default. +.Va screen \*(nu +Sets the number of lines in a screen\-full of headers for the +\f4h\f1eaders +command. +It must be a positive number. +.Va sendmail \*(sh +Alternate command for delivering messages. +Default is +\f4/usr/bin/rmail\f1. +.V sendwait +Wait for background mailer to finish before returning. +Default is +\f4nosendwait\f1. +.Va SHELL \*(sh +The name of a preferred command interpreter. +Default is +\f4sh\fP(1). +.V showto +When displaying the header summary and the message is from you, +print the recipient's name instead of the author's name. +.Va sign \*(st +The variable inserted into the text of a message when the +\f4~a\f1 +(autograph) command is given. +No default +[see also +\f4~i\f1 +(\*(TX)]. +.Va Sign \*(st +The variable inserted into the text of a message when the +\f4~A\f1 +command is given. +No default +[see also +\f4~i\f1 +(\*(TX)]. +.Va toplines \*(nu +The number of lines of header to print with the +\f4to\f1p +command. +Default is 5. +.Va \s-1VISUAL\s+1 \*(sh +The name of a preferred screen editor. +Default is +\f4vi\fP(1). +.SH FILES +.TS +l l. +\f4$HOME/.mailrc\f1 personal start-up file +\f4$HOME/mbox\f1 secondary storage file +\f4/var/mail/*\f1 post office directory +\f4/usr/share/lib/mailx/mailx.help*\f1 help message files +\f4/etc/mail/mailx.rc\f1 optional global start-up file +\f4/tmp/R[emqsx]*\f1 temporary files +.TE +.SH SEE ALSO +\f4ls\fP(1), +\f4mail\fP(1), +\f4pg\fP(1). +.SH NOTES +The \f4\-h\f1 and \f4\-r\f1 options can be used only +if \*(Ma is using a delivery program other than +\f4/usr/bin/rmail\f1. +.PP +Where \*(sh +is shown as valid, +arguments are not always allowed. +Experimentation is recommended. +.PP +Internal variables imported from the execution environment cannot be +\f4uns\f1et. +.PP +The full internet addressing is not fully supported by \*(Ma. +The new standards need some time to settle down. +.PP +Attempts to send a message having a line consisting only of a ``.'' +are treated as the end of the message by \f4mail\fP(1) (the standard +mail delivery program). +.\" @(#)mailx.1 6.2 of 9/2/83 +.Ee diff --git a/static/unix-v10/man1/make.1 b/static/unix-v10/man1/make.1 new file mode 100644 index 00000000..66b14bda --- /dev/null +++ b/static/unix-v10/man1/make.1 @@ -0,0 +1,425 @@ +.TH MAKE 1 +.CT 1 prog_c writing_troff prog_other +.SH NAME +make \(mi maintain collections of programs +.SH SYNOPSIS +.B make +[ +.B -f +.I makefile +] +[ +.I option ... +] +[ +.I name ... +] +.SH DESCRIPTION +.I Make +executes recipes in +.I makefile +to update the target +.IR names +(usually programs). +If no target is specified, the targets of the first rule in +.I makefile +are updated. +If no +.B -f +option is present, +.L makefile +and +.L Makefile +are tried in order. +If +.I makefile +is +.LR - , +the standard input is taken. +More than one +.B -f +option may appear. +.PP +.I Make +updates a target if it depends on prerequisite files +that have been modified since the target was last modified, +or if the target does not exist. +The prerequisites are updated before the target. +.PP +The makefile +comprises a sequence of rules and macro definitions. +The first line of a rule is a +blank-separated list of targets, then a single or double colon, +then a list of prerequisite files terminated by semicolon or newline. +Text following a semicolon, and all following lines +that begin with a tab, are shell commands: +the recipe for updating the target. +.PP +If a name appears as target in more than one single-colon rule, it depends +on all of the prerequisites of those rules, but only +one recipe may be specified among the rules. +A target in a double-colon rule is updated by the following +recipe only if it is out of date with respect to the +prerequisites of that rule. +.PP +Two special forms of name are recognized. +A name like +.IR a ( b ) +means the file named +.I b +stored in the archive named +.I a. +A name like +.IR a (( b )) +means the file stored in archive +.I a +and containing the entry point +.I b. +.PP +Sharp and newline surround comments. +.PP +In this makefile +.L pgm +depends on two +files +.L a.o +and +.LR b.o , +and they in turn depend on +.L .c +files and a common file +.LR ab.h : +.PP +.EX +pgm: a.o b.o + cc a.o b.o -lplot -o pgm +.EE +.PP +.EX +a.o: ab.h a.c + cc -c a.c +.EE +.PP +.EX +b.o: ab.h b.c + cc -c b.c +.EE +.PP +Makefile lines of the form +.IP +.IB "string1 " = " string2" +.LP +are macro definitions. +Subsequent appearances of +.BI $( string1 ) +are replaced by +.IR string2 . +If +.I string1 +is a single character, the parentheses are optional; +.B $$ +is replaced by +.BR $ . +Each entry in the environment (see +.IR sh (1)) +of the +.I make +command is taken as a macro definition, +as are command arguments with embedded equal signs. +.PP +Lines of the form +.IB "string1 " := " string2" +occurring in a recipe are assignments: macro definitions +that are made in the course of executing the recipe. +.PP +A target containing a single +.B % +introduces a pattern rule, +which controls the making of names that do not occur +explicitly as targets. +The +.B % +matches an arbitrary string called the stem: +.IB A % B +matches any string that begins with +.I A +and ends with +.I B. +A +.B % +in a prerequisite name stands for the stem; +and the special macro +.B $% +stands for the stem in the recipe. +A name that has no explicit recipe is +matched against the target of each pattern rule. +The first pattern rule for which the prerequisites exist +specifies +further dependencies. +.PP +The following pattern rule maintains an object library where all the C source files +share a common include file +.LR defs.h . +.PP +.EX +arch.a(%.o) : %.c defs.h + cc -c $%.c + ar r arch.a $%.o + rm $%.o +.EE +.PP +A set of default pattern rules is built in, and effectively +follows the user's list of rules. +Assuming these rules, +which tell, among other things, how to make +.B .o +files from +.B .c +files, the first example becomes: +.PP +.EX +pgm: a.o b.o + cc a.o b.o -lplot -o pgm +.EE +.PP +.EX +a.o b.o: ab.h +.EE +.PP +Here, greatly simplified, is a sample of the built-in rules: +.PP +.EX + CC = cc + %.o: %.c + $(CC) $(CFLAGS) -c $%.c + %.o: %.f + f77 $(FFLAGS) -c $%.f + % : %.c + $(CC) $(CFLAGS) -o $% $%.c +.EE +.PP +The first rule +says that a name ending in +.B .o +could be made +if a matching name ending in +.B .c +were present. +The second states a similar rule for files ending in +.BR .f . +The third says that an arbitrary name can be made +by compiling a file with that name suffixed by +.BR .c . +.PP +Macros make the builtin pattern rules flexible: +.B CC +names the particular C compiler, +.B CFLAGS +gives +.IR cc (1) +options, +.B FFLAGS +for +.IR f77 (1), +.B LFLAGS +for +.IR lex (1), +.B YFLAGS +for +.IR yacc (1), +and +.B PFLAGS +for +.IR pascal (A). +.PP +An older, now disparaged, means of specifying default rules +is based only on suffixes. +Prerequisites are inferred according to selected suffixes +listed as the `prerequisites' for the special name +.BR .SUFFIXES ; +multiple lists accumulate; +an empty list clears what came before. +.PP +The rule to create a file with suffix +.I s2 +that depends on a similarly named file with suffix +.I s1 +is specified as an entry +for the `target' +.IR s1s2 . +Order is significant; the first possible name for which both +a file and a rule exist +is inferred. +An old style rule for making +optimized +.B .o +files from +.B .c +files is +.PP +.EX +\&.SUFFIXES: .c .o +\&.c.o: ; cc -c -O -o $@ $*.c +.EE +.PP +The following two macros are defined for use in any rule: +.TP +.B $($@) +full name of target +.PD0 +.TP +.B $($/) +target name beginning at the last slash, if any +.PD +.LP +A number of other special macros are defined +automatically in rules invoked by one of the implicit mechanisms: +.TP +.B $* +target name with suffix deleted +.PD0 +.TP +.B $@ +full target name +.TP +.B $< +list of prerequisites in an implicit rule +.TP +.B $? +list of prerequisites that are out of date +.TP +.B $^ +list of all prerequisites +.PD +.PP +The following are included for consistency with System V: +.TP +.B $(@D) +directory part of +.B $@ +(up to last slash) +.PD0 +.TP +.B $(@F) +file name part of +.B $@ +(after last slash) +.TP +.B $(*D) +directory part of +.B $* +(up to last slash) +.TP +.B $(*F) +file name part of +.B $* +(after last slash) +.TP +.B $(. +.PP +Interrupt and quit cause the target to be deleted +unless the target depends on the special name +.BR .PRECIOUS . +.PP +.I Make +includes a rudimentary parallel processing ability. +If the separation string is +.B :& +or +.B ::& , +.I make +can run the command sequences to create the prerequisites +simultaneously. +If two names are separated by an ampersand on the right side +of a colon, those two may be created in parallel. +.PP +Other options: +.TP +.B -i +Equivalent to the special entry +.L .IGNORE: . +.TP +.B -k +When a command returns nonzero status, +abandon work on the current entry, but +continue on branches that do not depend on the current entry. +.TP +.B -n +Trace and print, but do not execute the commands +needed to update the targets. +.TP +.B -t +Touch, i.e. update the modified date of targets, without +executing any commands. +.TP +.B -r +Turn off built-in rules. +.TP +.B -s +Equivalent to the special entry +.BR .SILENT: . +.TP +.B -e +Environment definitions override conflicting definitions in arguments +or in makefiles. +Ordinary precedence is argument over makefile +over environment. +.TP +.B -o +Assume old style default suffix list: +.L +\&.SUFFIXES: .out .o .c .e .r .f .y .l .s .p +.TP +.BI -P n +Permit +.I n +command sequences to be done in parallel with +.BR & . +.TP +.B -z +Run commands by passing them to the shell; +normally simple commands are run directly by +.IR exec (2). +.SH FILES +.F makefile +.br +.F Makefile +.SH "SEE ALSO" +.IR sh (1), +.I touch +in +.IR chdate (1), +.IR ar (1), +.IR mk (1) +.SH BUGS +Comments can't appear on recipe lines. +.br +Archive entries are not handled reliably. diff --git a/static/unix-v10/man1/makeml.1 b/static/unix-v10/man1/makeml.1 new file mode 100644 index 00000000..c66b9efa --- /dev/null +++ b/static/unix-v10/man1/makeml.1 @@ -0,0 +1,138 @@ +.TH MAKEML 1 +.SH NAME +makeml \- build the Standard ML of New Jersey system +.SH SYNOPSIS +.B makeml +options +.br +.SH DESCRIPTION +\fIMakeml\fP is a tool for building the Standard ML of New Jersey system (sml) +from source and `.mo' files. +For the standard installation the only options required are the machine type and +operating system. +There are also options to build a version with the compiler object code in the +heap instead of the text segment and to build the batch compiler. +For example +.RS +makeml \-vax \-bsd \-noshare +.RE +builds the vax version of the interactive system to run on bsd systems with +the compiler object code in the heap. +.SH OPTIONS +The following basic options are the only ones needed for normal use. +.TP +.BI \-sun3 +.br +.ns +.TP +.BI \-m68 +Build the sun-3 version of the system. +An operating system option must be specified (-sunos or -mach). +.TP +.BI \-sun4 +.br +.ns +.TP +.BI \-sparc +Build the sun-4 version of the system. +An operating system option must be specified (-sunos or -mach). +.TP +.BI \-next +Build the NeXT version of the system (implies -m68). +.TP +.BI \-encore +Build the Encore Multimax (ns32032 processor) version of the system. +This implies the \fB-bsd\fP option. +.TP +.BI \-vax +Build the vax version of the system. +For the vax an operating system option must be specified. +.TP +.BI \-bsd +Build a version that runs under bsd unix. For the Sun-3 or Sun-4, +you must specify either -sunos or -mach, not -bsd. +.TP +.BI \-sunos +Build a version that runs under SunOS. +.TP +.BI \-mach +Build a version that runs under Mach. +.TP +.BI \-ultrix +Build a version that runs under Ultrix. +.TP +.BI \-v9 +Build a version that runs under v9 Unix. +.TP +.BI \-batch +Build the batch compiler (with default name `smlc') instead of an +interactive system. +.TP +.BI \-noshare +Do not link the `.mo' files into an `a.out' format object file and include it in the +runtime executable. +.TP +.BI \-i +Make the `sml' image start out using the interpreter for faster compilation +and slower execution (for interactive system only; can switch +back to native code once in +`sml' by `System.Control.interp := false'). +.TP +.BI \-ionly +Build an image (with default name `smli') that has only the interpreter. +This gives fast compilation and saves space by eliminating the code +generator from the executable, but results in slower execution. +.TP +.BI \-o " image" +Use image as the name of the system image. +The default image name is `sml' for interactive systems, `smli' for the +interpreter only system and `smlc' for the batch compiler. +.PP +The following options may be used to tune garbage collection and paging performance. +.TP +.BI \-h " heapsize" +Set the initial heap size to \fIheapsize\fP kilo-bytes. +.TP +.BI \-m " softlimit" +Set the soft limit on the heap size to \fIsoftlimit\fP kilo-bytes. +.TP +.BI \-r " ratio" +Set the ratio of the heap size to live data to \fIratio\fP. +This must be at least 3. +.PP +The following options are for building and testing new versions of the system; they +are not necessary for normal installation. +.TP +.BI \-run +Build the run-time kernel (`runtime/run'), but don't build a system. +.TP +.BI \-noclean +Don't remove the existing `.o' files in the runtime directory. +.TP +.BI \-norun +Don't re-compile the runtime kernel. +This implies the \fB-noclean\fP option. +.TP +.BI \-target " machine" +Build a batch cross compiler for \fImachine\fP. +For example, to build a \fBvax\fP to \fBsparc\fP cross compiler +.ti +0.5i +makeml \-vax \-bsd \-target sparc +.br +This option implies the \fB-batch\fP option. +.TP +.BI \-mo " path" +Use \fIpath\fP as the directory containing the `.mo' files. +.TP +.BI \-runtime " path" +Use \fIpath\fP as the source directory for the runtime code. +.TP +.BI \-D def +When compiling the runtime code add ``\fB-D\fP\fIdef\fP'' as a command line option. +.SH "SEE ALSO" +linkdata(1) +.SH AUTHOR +John Reppy +.SH BUGS +This will not work with the sun cross-compilers (really a problem with the +runtime makefile). diff --git a/static/unix-v10/man1/man.1 b/static/unix-v10/man1/man.1 new file mode 100644 index 00000000..dec4ecce --- /dev/null +++ b/static/unix-v10/man1/man.1 @@ -0,0 +1,34 @@ +.pa 1 +.he 'MAN (I)'3/15/72'MAN (I)' +.ti 0 +NAME man -- run off section of UNIX manual +.sp +.ti 0 +SYNOPSIS man___ title [ section ] +.sp +.ti 0 +DESCRIPTION man___ +is a shell command file that will locate +and run off a particular section of this manual. +Title is the the desired +part of the manual. +Section is the section number of the manual. +(In Arabic, not Roman numerals.) +If section is missing, 1_ is assumed. +For example, + + man man + +would reproduce this page. +.sp +.ti 0 +FILES /sys/man/man?/* +.sp +.ti 0 +SEE ALSO sh(I), roff(I) +.sp +.ti 0 +DIAGNOSTICS "File not found", "Usage .." +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/maple.1 b/static/unix-v10/man1/maple.1 new file mode 100644 index 00000000..2a8dba35 --- /dev/null +++ b/static/unix-v10/man1/maple.1 @@ -0,0 +1,149 @@ +.TH MAPLE 1 "02 June 1987" "University of Waterloo" +.ds ]W "Symbolic Comp. Group +.SH NAME +maple \- interactive symbolic algebraic program +.SH SYNOPSIS +.B maple +[ +.B \-b +libname +] [ +.B \-q +] [ +.B \-s +] +\" If a constant width font is used, set cW to 1. +\" Other set cW to 0 and use .cs to set constant spacing for examples +.ie \w'M'>\w'.' .nr cW 0 +.el .nr cW 1 +\" +.SH DESCRIPTION +Initiate a session with the +.I maple +symbolic algebraic program. +Expressions are read from standard input and the results are produced +in the standard output file as soon as each input expression has been +read. +Maple has the ability to algebraically manipulate unbounded integers, +exact rational numbers, real numbers with arbitrary precision, symbolic +formulae, polynomials, sets, lists, and equations. +It can solve systems of equations, differentiate formulae, and integrate +formulae. +In the following example from a Maple session, Maple's output +is shown to the right of the input expressions. +.sp +.ps 9 +.vs 10 +.nf +.if !\n(cW .cs R 18 +.in +2 +p:=x^2\-x\-2; + 2 + p := x \- x \- 2 + +q:=(x+1)^2; + 2 + q := (x + 1) + +s:=p/q; + 2 + x \- x \- 2 + s := \-\-\-\-\-\-\-\-\-\-\-\- + 2 + (x + 1) + +diff(s,x); # differentiate with respect to x + + 2 + 2 x \- 1 x \- x \- 2 + \-\-\-\-\-\-\-\-\-\- \- 2 \-\-\-\-\-\-\-\-\-\-\-\- + 2 3 + (x + 1) (x + 1) + +normal(s); + x \- 2 + \-\-\-\-\-\-\- + x + 1 + +Digits := 47; + Digits := 47 + +x := 3^50; + x := 717897987691852588770249 + +s; + 717897987691852588770247 + \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- + 717897987691852588770250 + +evalf(s); + .99999999999999999999999582113329270438496099068 + +quit; + +.in -2 +.if !\n(cW .cs R +.fi +.ps 10 +.vs 12 + +If there is a system-wide maple initialization file with the name +.I init +under the src subdirectory of the Maple library, then this file +is read before the session starts. +In addition, if there is a maple initialization file named +.I .mapleinit +in the user's home directory, this file is read next. +If the \fI\-s\fR (suppress initialization) +option is specified, Maple will forego reading +any initialization file when initiating a session. + + +If the +.I \-b +(library) option is used, +then +.I pathname +should be the pathname of a directory which contains the Maple library. +This is used to initialize the value of the Maple variable `libname'. +By default, `libname' is initialized with the pathname /u/maple/lib. +Some sites may install a maple shell script which uses the \fI\-b\fR +option to redefine the library pathname to be whatever is appropriate +for those sites, e.g., +.nf + maple \-b /usr/public/waterloo/maple/lib $* +.fi + +The \fI\-q\fR (quiet) option will suppress the printing of Maple's +startup logo, various informational messages (words used messages +and garbage collection messages), and the signoff message. +Maple is better suited for use as a filter when these messages are +suppressed. +.SH "SEE ALSO" +.I "Maple: A Sample Interactive Session" +issued by the Symbolic Computation Group as +Research Report CS-85-01 available from the Department of Computer +Science, University of Waterloo, +.br +.I "Maple User's Guide" +by B.W. Char et al, Watcom Publications Limited, Waterloo, Ontario (1985). +.br +.IR mint (1) +.SH FILES +\&.mapleinit +.br +/usr/maple/lib \- Maple library (Pathname subject to change at +each installation.) +.SH AUTHOR +Symbolic Computation Group, University of Waterloo +.SH "FOR HELP" +At Waterloo, there is the newsgroup uw.maple which contains broadcasts +and discussions which would be of interest to general Maple users. +You should subscribe to this newsgroup if you intend to use Maple in +more than just a casual manner. +Users are encouraged to post their questions regarding Maple to this +newsgroup if they feel that their enquiries are of a general nature. +Replies will be posted to the newsgroup for all to see. +If you have a question that you think is of a very specific nature and +not of interest to others, you may send a mail message to +maple_help@watmum. diff --git a/static/unix-v10/man1/match.1 b/static/unix-v10/man1/match.1 new file mode 100644 index 00000000..058a529d --- /dev/null +++ b/static/unix-v10/man1/match.1 @@ -0,0 +1,63 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH MATCH 1 +.SH NAME +match \- compare style tables from two or more texts +.SH SYNOPSIS +.B match +[ +.B \-flags +][ +.B \-ver +] +[style-file1 [style-file2 ...] +.SH DESCRIPTION +.I Match +collates selected variables from tables produced by the +.IR style (1) +command and prints values from the different files +one below the other for easy comparison. +The +.I style-files +must contain tables produced by +.IR style . +.PP +.I Match +can also run on one file +to produce an abbreviated version of the +.I style +table. +.PP +When comparing texts, it is advisable to use +texts of similar length. +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH USES +This program is useful for visually inspecting similarities +and differences among stylistic features of different documents +or drafts and their revisions. +.SH SEE ALSO +style(1), +prose(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/matlab.1 b/static/unix-v10/man1/matlab.1 new file mode 100644 index 00000000..69866780 --- /dev/null +++ b/static/unix-v10/man1/matlab.1 @@ -0,0 +1,113 @@ +.TH MATLAB 1 +.CT 1 numbers +.SH NAME +matlab \(mi interactive matrix desk calculator +.SH SYNOPSIS +.B /usr/lbin/matlab +.SH DESCRIPTION +.I Matlab +manipulates complex matrices interactively. +Special cases include +real matrices and scalars. +Operations include pseudoinversion (which +is inversion for square nonsingular matrices), eigendecomposition, +various other factorizations, solution of linear equations, matrix +products (including inner and outer products), Kronecker products, +log, exponential and trigonometric functions of matrices, and rank and +condition estimation. +.PP +Variables are alphanumeric strings of at most +4 characters. +Case is ignored. +Expressions and assignment statements are written +as in Fortran. +Multiple statements can be put on one line, +separated by either comma or semicolon; the result of a statement +is written on the standard output unless a semicolon follows the statement. +Extensions to Fortran notation include: +.PP +.I Matrix construction +from elements. +Elements in a row are separated by commas; columns are +separated by semicolons; matrices are surrounded by +.L < > +brackets. +.PP +.I Transpose +is indicated by postfix prime +.LR ' . +.PP +.I Consecutive integers +are denoted by colons in the style 1:4 or 1:2:8 (meaning 1,3,5,7). +.L A(2:5) +is a subarray; +.L A(:,j) +is a column. +.PP +.I Identity +matrix is denoted +.LR eye ; +its dimensions are dictated by context. +.PP +.I Reverse division +is denoted by \e . +For example, +.L x = A \e b +is roughly the same as +.LR "x = inv(A) * b" , +except that Gaussian elimination, if applicable, is used to compute +.IR x . +.PP +Some +.I matlab +commands: +.TP +.B help +.PD0 +.TP +.BI help " word" +List commands and functions, or specific information about a +.IR word : +.IP +.ft 5 +.nf +ABS ANS ATAN BASE CHAR CHOL CHOP CLEA COND CONJ COS +DET DIAG DIAR DISP EDIT EIG ELSE END EPS EXEC EXIT +EXP EYE FILE FLOP FLPS FOR FUN HESS HILB IF IMAG +INV KRON LINE LOAD LOG LONG LU MACR MAGI NORM ONES +ORTH PINV PLOT POLY PRIN PROD QR RAND RANK RCON RAT +REAL RETU RREF ROOT ROUN SAVE SCHU SHOR SEMI SIN SIZE +SQRT STOP SUM SVD TRIL TRIU USER WHAT WHIL WHO WHY +.fi +.TP +.BI save(' file ') +.TP +.BI save(' file \fR[\fB, var \fR]...\fB') +Save all current variables, +or just the designated variables in +.I file. +.TP +.BI load(' file ') +Restore saved variables. +.TP +.BI exec(' file ') +Execute the commands in +.I file +before reading more commands from the standard input. +.PD +.PP +.I Matlab +can be called as a subroutine. +For details, see the reference or +type +.LR "help user" . +.SH FILES +.F /usr/lib/mathelp.dac +.br +.F /usr/lib/mathelp.idx +.SH "SEE ALSO" +Cleve Moler, +.I MATLAB User's Guide, +Technical Report CS81\-1 (Revised), Dept. +of Computer Science, University of New Mexico, 1982. +(Available in troff form with the Matlab source.) diff --git a/static/unix-v10/man1/mc68ar.1 b/static/unix-v10/man1/mc68ar.1 new file mode 100755 index 00000000..374c5e43 --- /dev/null +++ b/static/unix-v10/man1/mc68ar.1 @@ -0,0 +1,166 @@ +.TH MC68AR 1 "630 MTG" +.SH NAME +mc68ar \- archive and library maintainer for portable archives +.SH SYNOPSIS +.B mc68ar +key [ posname ] afile name ... +.SH DESCRIPTION +.I Mc68ar\^ +maintains groups of files +combined into a single archive file. +Its main use +is to create and update library files as used by the link editor. +It can be used, though, for any similar purpose. +.PP +When +.I mc68ar\^ +creates an archive, it creates headers in a format that is portable across +all machines. The portable archive's format and structure are described in +detail in +.IR ar (4). +The archive symbol table [described in +.IR ar (4)] +is used by the link editor +[\f2mc68ld(1)\f1] +to effect multiple passes over libraries of +object files in an efficient manner. +Whenever the +.IR mc68ar (1) +command is used to create or update the contents of an archive, the +symbol table is rebuilt. The symbol table can be forced to be rebuilt +by the +.BR s +option described below. +.PP +.I Key\^ +is one character from the set +.BR drqtpmx , +optionally concatenated with +one or more of +.BR vuaibcls . +.I Afile\^ +is the archive file. +The +.I names\^ +are constituent files in the archive file. +The meanings of the +.I key\^ +characters are: +.TP +.B d +Deletes the named files from the archive file. +.TP +.B r +Replaces the named files in the archive file. +If the optional character +.B u +is used with +.BR r , +then only those files with +modified dates later than +the archive files are replaced. +If an optional positioning character from the set +.B abi +is used, then the +.I posname\^ +argument must be present +and specifies that new files are to be placed +after +.RB ( a ) +or before +.RB ( b +or +.BR i ) +.IR posname . +Otherwise +new files are placed at the end. +.TP +.B q +Quickly appends the named files to the end of the archive file. +Optional positioning characters are invalid. +The command does not check whether the added members +are already in the archive. +Useful only to avoid quadratic behavior when creating a large +archive piece-by-piece. +.TP +.B t +Prints a table of contents of the archive file. +If no names are given, all files in the archive are tabled. +If names are given, only those files are tabled. +.TP +.B p +Prints the contents of named files in the archive. +.TP +.B m +Moves the named files to the end of the archive. +If a positioning character is present, +then the +.I posname\^ +argument must be present and, +as in +.BR r , +specifies where the files are to be moved. +.TP +.B x +Extracts the named files. +If no names are given, all files in the archive are +extracted. +In neither case does +.B x +alter the archive file. +.bp +.TP +.B v +Verbose. +Under the verbose option, +.I mc68ar\^ +gives a file-by-file +description of the making of a +new archive file from the old archive and the constituent files. +When used with +.BR t , +it gives a long listing of all information about the files. +When used with +.BR x , +it precedes each file with a name. +.TP +.B c +Create. +Normally, +.I mc68ar\^ +will create +.I afile\^ +when it needs to. +The create option suppresses the +normal message that is produced when +.I afile\^ +is created. +.TP +.B l +Local. +Normally, +.I mc68ar\^ +places its temporary files in the directory +.BR /tmp . +This option causes them to be placed in the local directory. +.TP +.B s +Symbol table creation. +Forces the regeneration of the archive symbol table even if +.IR mc68ar (1) +is not invoked with a command which will modify the archive contents. +This command is useful to restore the archive symbol table after the +.IR mc68strip (1) +command has been used on the archive. +.SH FILES +/tmp/ar\(** temporaries +.SH SEE ALSO +mc68ld(1), +mc68lorder(1), +mc68strip(1). +.br +a.out(4), ar(4) in the \f2UNIX System V Programmer's Reference +Manual\f1. +.SH BUGS +If the same file is mentioned twice in an argument list, +it may be put in the archive twice. diff --git a/static/unix-v10/man1/mc68as.1 b/static/unix-v10/man1/mc68as.1 new file mode 100755 index 00000000..31b323da --- /dev/null +++ b/static/unix-v10/man1/mc68as.1 @@ -0,0 +1,120 @@ +.TH MC68AS 1 "630 MTG" +.SH NAME +mc68as \- \*N MC68000 assembler +.SH SYNOPSIS +.BR mc68as +.RB "[" \-o " objfile]" +.if 'mc68'x86' .RB \-x +.if 'mc68'3b' .RB "[" \-Q "]" +.RB "[" \-n "]" +.RB "[" \-m "]" +.RB "[" \-R "]" +.RB "[" \-V "]" +file-name +.SH DESCRIPTION +The +.I mc68as +command +assembles the named file. +.if 'mc68'b16' \{\ +The output file is executable if no errors +occurred during the assembly, transfer vectors were not used, +and there are no unresolved external references.\} +The following flags +may be specified in any order: +.TP \w'\fB\-o\fP\ \fIobjfile\fP\ \ 'u +.BI \-o " objfile" +Puts the output of the assembly in +.IR objfile . +By default, the output file name is formed by +removing the +.B .s +suffix, if there is one, from the input file name +and appending a +.B .o +suffix. +.if 'mc68'x86' \{\ +.TP +.B \-x +This +flag is +.I required +for all x86 files. +\} +.if 'mc68'3b' \{ +.TP +.B \-Q +Warn the user if a transfer vector operand is used +in any context other than a "call" instruction. +\} +.TP +.B \-n +Turns off long/short address optimization. +By default, address optimization takes place. +.TP +.B \-m +Runs the +.I m4 +macro pre-processor +on the input to the assembler. +.TP +.B \-R +Removes (unlinks) the input file after assembly +is completed. +.TP +.B \-V +Writes the version number of the assembler being run +on the standard error output. +.SH FILES +.RI /tmp/mc68a[A-L]AAa XXXXXX +temporary files +.SH "SEE ALSO" +mc68ld(1), +mc68nm(1), +mc68strip(1). +.br +a.out(4) in the \f2UNIX System V Programmer's Reference +Manual\f1. +.br +m4(1) in the +\f2UNIX System V User's Reference Manual\f1. +.br +\f2UNIX Assembler User's Guide for the Motorola 68000\f1 in the +\f2630 MTG Software Development Guide\f1. +.SH WARNING +.if 'mc68'3b' \{ +.PP +If the input file does not contain a +.B .file +assembler directive and the +.B \-m +flag was not specified, +the file name given by the assembler when an +error occurs is one of the temporary files +.RB ( /usr/tmp/mc68as \s-1XXXXXX\s+1) +\} +.PP +If the +.B \-m +.RI ( m4 +macro pre-processor invocation) option is used, +keywords for +.I m4 +.RI "[see " m4 (1)] +cannot be used as symbols (variables, functions, labels) +in the input file since +.I m4 +cannot determine which are assembler symbols and +which are real +.I m4 +macros. +.SH BUGS +The +.B even +assembler directive is not guaranteed to work +in the +.B .text +section when optimization is performed. +.PP +Arithmetic expressions may only have +one forward referenced symbol per expression. diff --git a/static/unix-v10/man1/mc68conv.1 b/static/unix-v10/man1/mc68conv.1 new file mode 100755 index 00000000..4cc4e674 --- /dev/null +++ b/static/unix-v10/man1/mc68conv.1 @@ -0,0 +1,109 @@ +.SA 1 +.ds ZZ DEVELOPMENT PACKAGE +.TH MC68CONV 1 "630 MTG" +.SH NAME +mc68conv \- \*N MC68000 object file converter +.SH SYNOPSIS +.B mc68conv +.RB [ \- ] +.RB [ \-a ] +.RB [ \-o ] +.RB [ \-p ] +.RB [ \-s ] +.B -t +target files +.SH DESCRIPTION +The +.I mc68conv +command +converts \*N object files from their current format to the format +of the +.I target +machine. +Mc68conv can read an archive file in any of three formats: +the +.SM UNIX +pre-5.0 format, the 5.0 random access format, and the +6.0 portable +.SM ASCII +format. +It produces a file in the format specified +.RB ( -a , +.BR -o , +or +.BR -p ). +The converted file is written to +file\c +.I .v\c +\&. +.PP +Command line options are: +.PP +.TP 12 +.BR \- +indicates +.I files +should be read from +.I stdin\c +\&. +.PP +.TP 12 +.B \-a +If the input file is an archive, produces the ouput file in the +6.0 portable ASCII archive format. +.PP +.TP 12 +.B \-o +If the input file is an archive, produces +the output file in the UNIX pre-5.0 format. +.PP +.TP 12 +.BR \-p +If the input file is an archive, produces the ouput file in the +UNIX 5.0 random access archive format. +This is the default. +.PP +.TP 12 +.BR \-s +Functions exactly as 3bswab, i.e. "preswab" +all characters in the object file. This is useful only for AT&T +3B20 Computer object files which are to be "swab-dumped" from a DEC machine +to a 3B20 Computer. +.PP +.TP 12 +.BR \-t " target" +Converts the object file to the byte ordering of the +machine (\f2target\f1) to which the object file is being shipped. This +may be another host or a target machine. Legal values for +.I target +are: pdp, vax, ibm, i80, x86, b16, n3b, m32, and mc68. +.PP +Mc68conv can be used to convert all object files in common object file +format. It can be used on either +the source ("sending") or target ("receiving") machine. +.PP +Mc68conv is meant to ease the problems created +by a multi-host cross-compilation development environment. Mc68conv is best +used within a procedure for shipping object files from one machine to +another. +.SH "EXAMPLE" +.nf +# ship object files from pdp11 to ibm +$echo \(**.out | mc68conv -t ibm -$OFC\/foo.o +$uucp \(**.v my370!~\/rje\/ +.fi +.SH "DIAGNOSTICS" +All diagnostics are +intended to be self-explanatory. Fatal diagnostics on the command +lines cause termination. Fatal diagnostics on an input file cause the +program to continue to the next input file. +.bp +.SH "WARNINGS" +.PP +Mc68conv will not convert archives from one format to another if +both the source and target machines have the same byte ordering. +The +.SM UNIX +tool +.IR convert (1) +should be used for this purpose. diff --git a/static/unix-v10/man1/mc68cpp.1 b/static/unix-v10/man1/mc68cpp.1 new file mode 100755 index 00000000..43a1d523 --- /dev/null +++ b/static/unix-v10/man1/mc68cpp.1 @@ -0,0 +1,314 @@ +.ds ZZ DEVELOPMENT PACKAGE +.TH MC68CPP 1 "630 MTG" +.SH NAME +mc68cpp \- the C language preprocessor +.SH SYNOPSIS +.B $DMD/lib/mc68cpp [ +option ... +.B ] +.B [ +ifile +.B [ +ofile +.B ] ] +.SH DESCRIPTION +.PP +.I Mc68cpp\^ +is the C language preprocessor which is invoked as the +first pass of any C compilation using the +.IR dmdcc (1) +command. Thus, the output of +.I mc68cpp\^ +is designed to be in a form acceptable as input +to the next pass of the C compiler. +As the C language evolves, +.I mc68cpp\^ +and the rest of the C compilation package will be +modified to follow these changes. +Therefore, the use of +.I mc68cpp\^ +other than in this framework is not suggested. +The preferred way to invoke +.I mc68cpp\^ +is through the +.IR dmdcc (1) +command, since the functionality of +.I mc68cpp\^ +may some day be moved elsewhere. See +.IR m4 (1) +for a general macro processor. +.PP +.I Mc68cpp\^ +optionally accepts two file names as arguments. +.I Ifile\^ +and +.I ofile\^ +are respectively the input and output +for the preprocessor. They default to standard input +and standard output if not supplied. +.PP +The following \fIoptions\fP to +.I mc68cpp\^ +are recognized: +.TP +.B \-P +Preprocesses the input without producing the line control +information used by the next pass of the C compiler. +.TP +.B \-C +By default, +.I mc68cpp\^ +strips C-style comments. If the +.B \-C +option is specified, all comments (except those found on +.I mc68cpp +directive lines) +are passed along. +.TP +.BI \-U name\^ +Removes any initial definition of +.IR name , +where +.I name\^ +is a reserved symbol +that is predefined by the particular preprocessor. +The current list of these possibly reserved symbols includes: +.PD 0 +.ne 3v +.RS 10 +.TP 19 +operating system: +ibm, gcos, os, tss, unix +.TP +hardware: +interdata, pdp11, u370, u3b, u3b5, vax, mc68000, mc68k16, mc68k32 +.TP +\s-1UNIX\s+1 variant: +.SM RES\*S, +.SM RT +.RE +.PD +.TP +.BI \-D name\^ +.PD 0 +.TP +.BI \-D name=def\^ +Defines +.I name\^ +as if by a +.B #define +directive. If no +.I =def\^ +is given, +.I name\^ +is defined as 1. +.bp +.PD +.TP +.BI \-I dir\^ +Changes the algorithm for searching for +.B #include +files +whose names do not begin with \f3/\fP +to look in +.I dir\^ +before looking in the directories on the standard list. +Thus, +.B #include +files whose names are enclosed in \f3"\|"\fP +will be searched for +first in the directory of the +.I ifile\^ +argument, +then in directories named in +.B \-I +options, +and last in directories on a standard list. +For +.B #include +files whose names are enclosed in +.BR <> , +the directory of the +.I ifile\^ +argument is not searched. +.PP +Two special names are understood by +.IR mc68cpp . +The name +.B _\^\^_\s-1LINE\s+1_\^\^_ +is defined as the current line number (as a decimal integer) as known by +.IR mc68cpp , +and +.B _\^\^_\s-1FILE\s+1_\^\^_ +is defined as the current file name (as a C string) as known by +.I mc68cpp.\^ +They can be used anywhere (including in macros) just as any +other defined name. +.PP +All +.I mc68cpp\^ +directives start with lines whose first character is +.BR # . +The directives are: +.TP +.BI #define " name" " " token-string +Replaces subsequent instances of +.I name\^ +with +.IR token-string . +.TP +\fB#define\fI name\fB(\fI arg\fB, ...,\fI arg\fB )\fI token-string\fR +Notice that there can be no space between +.I name +and the +.BR ( . +Replaces subsequent instances of +.I name +followed by a +.BR ( , +a list of comma separated tokens, and a +.B ) +by +.I token-string +where each occurrence of an +.I arg +in the +.I token-string +is replaced by the corresponding token in the comma separated list. +.TP +.BI #undef " name" +Causes the definition of +.I name +(if any) to be forgotten from now on. +.TP +\fB#include\fI "filename" +.PD 0 +.TP +.BI #include " " < filename > +Include at this point the contents of +.I filename +(which will then be run through +.IR mc68cpp ). +When the +.BI < filename > +notation is used, +.I filename +is only searched for in the standard places. +See the +.B \-I +option above for more detail. +.PD +.TP +\fB#line\fI integer-constant "filename" +Causes +.I mc68cpp +to generate line control information for the next pass of the +C compiler. +.I Integer-constant +is the line number of the next line +and +.I filename +is the file where it comes from. +If \fI"filename"\fR is not given, the current file name is unchanged. +.TP +.B #endif +.br +Ends a section of lines begun by a test directive +.RB ( #if , +.BR #ifdef , +or +.BR #ifndef ). +Each test directive must have a matching +.BR #endif . +.bp +.TP +.BI #ifdef " name" +The lines following will appear in the output if, and only if, +.I name +has been the subject of a previous +.B #define +without being the subject of an intervening +.BR #undef . +.TP +.BI #ifndef " name" +The lines following will not appear in the output if, and only if, +.I name +has been the subject of a previous +.B #define +without being the subject of an intervening +.BR #undef . +.SK +.TP +.BI #if " constant-expression" +Lines following will appear in the output if, and only if, the +.I constant-expression +evaluates to non-zero. +All binary non-assignment C operators, the +.B ?: +operator, the unary +.BR \(mi , +.BR ! , +and +.B ~ +operators are all legal in +.IR constant-expression . +The precedence of the operators is the same as defined by the C language. +There is also a unary operator +.BR defined , +which can be used in +.I constant-expression +in these two forms: +.BI defined " " ( " name " ) +or +.BI defined " name" . +This allows the utility of +.BR #ifdef " and " #ifndef +in a +.B #if +directive. +Only these operators, integer constants, and names which +are known by +.I mc68cpp +should be used in +.IR constant-expression . +In particular, the +.B sizeof +operator is not available. +.TP +.B #else +Reverses the notion of the test directive which +matches this directive. So if lines previous to +this directive are ignored, the following lines +will appear in the output, +and vice versa. +.PP +The test directives and the possible +.B #else +directives can be nested. +.SH FILES +.TP 1.5i +/usr/include +standard directory for +.B #include +files +.SH SEE ALSO +.PP +dmdcc(1). +.br +m4(1) in the +\f2UNIX System V User's Reference Manual\f1. +.SH DIAGNOSTICS +.PP +The error messages produced by +.I mc68cpp\^ +are intended to be self-explanatory. The line number and filename +where the error occurred are printed along with the diagnostic. +.SH WARNING +When newline characters were found in argument lists for macros +to be expanded, previous versions of +.I mc68cpp\^ +put out the newlines as they were found and expanded. +The current version of +.I mc68cpp\^ +replaces these newlines with blanks to alleviate problems that the +previous versions had when this occurred. diff --git a/static/unix-v10/man1/mc68cprs.1 b/static/unix-v10/man1/mc68cprs.1 new file mode 100755 index 00000000..f26c0178 --- /dev/null +++ b/static/unix-v10/man1/mc68cprs.1 @@ -0,0 +1,42 @@ +.TH MC68CPRS 1 "630 MTG" +.SH NAME +mc68cprs \- compress a MC68000 object file +.SH SYNOPSIS +.B mc68cprs +.RB [ \-pv ] +infile outfile +.SH DESCRIPTION +The +.I mc68cprs +command +reduces the size of a Motorola 68000 object file, +.IR infile , +by removing duplicate structure and union descriptors. +The reduced file, +.IR outfile , +is produced as output. +.PP +The options are: +.PP +.TP 6 +.B \-p +Prints statistical messages including: +.sp +.RS 12 +total number of tags +.br +total duplicate tags +.br +total reduction of +.IR infile . +.RE +.PP +.TP 6 +.B \-v +Prints verbose error messages if error condition occurs. +.SH EXAMPLE +.ft CW + mc68cprs dmda.out sm3b +.ft R +.SH SEE ALSO +mc68strip(1). diff --git a/static/unix-v10/man1/mc68dis.1 b/static/unix-v10/man1/mc68dis.1 new file mode 100755 index 00000000..d44c9134 --- /dev/null +++ b/static/unix-v10/man1/mc68dis.1 @@ -0,0 +1,162 @@ +.TH MC68DIS 1 "630 MTG" +.SH NAME +mc68dis \- MC68000 disassembler +.SH SYNOPSIS +.B mc68dis +.RB [ \-o ] +.RB [ \-V ] +.RB [ \-L ] +.RB [ \-d " sec]" +.RB [ \-da " sec ]" +.RB [ \-F " function]" +.RB [ \-t " sec]" +.br +.RB [ \-l " string]" +files +.SH DESCRIPTION +The +.I mc68dis +command +produces an assembly language listing +of each of its +object +.IR file +arguments. +The listing includes +assembly +statements +and a hexadecimal or octal representation of the binary that +produced those statements. +.PP +The following \fIoptions\fP are +interpreted by the disassembler and may be specified in any order. +.PP +.TP 12 +.B \-o +Prints numbers in octal. +Default is hexadecimal. +.PP +.TP 12 +.B \-V +Version number of the disassembler is written to standard error. +.PP +.TP 12 +.B \-L +Invokes a look-up of C source labels in the symbol table for +subsequent printing. +.PP +.TP 12 +.BR \-d " sec" +Disassembles the +named section as data, +printing the offset of +the data from the +beginning of the section. +.PP +.TP 12 +.BR \-da " sec" +Disassembles the +named section as data, +printing the actual +address of the data. +.PP +.TP 12 +.BR \-F " function" +Disassembles the +named function +in each object file +that is specified +on the command line. +.PP +.TP 12 +.BR \-t " sec" +Disassembles the +named section as text. +.PP +.TP 12 +.BR \-l " string" +Disassembles the +library file specified +as +.IR string . +For example, +one would issue the +command +.B "mc68dis \-l x \-l z" +to disassemble +.B libx.a +and +.B libz.a\c +\&. +All libraries are +assumed to be in +.BR $DMD/lib . +.DT +.br +.PP +If the +.BR \-d , +.B \-da +or +.BR \-t +options are specified, +only those named +sections from each +user supplied file name +are disassembled. +Otherwise, all sections +containing text will +be disassembled. +.PP +If the +.BR \-F +option is specified, +only those named +functions from each +user supplied file name +are disassembled. +.B \-F +only works with object files that have been compiled with the +.B "dmdcc -g" +option. +.bp +.PP +On output, a number enclosed in brackets +at the beginning of a line, +such as +.BR [5] , +represents a C break-pointable line number that +starts with the following instruction. +These line numbers are present only when the +object file has been compiled with the +.B "dmdcc -g" +option. +An expression such as +.B <40> +in the operand field, +following a relative displacement +for control transfer instructions, +is the computed address +within the section to which +control is transferred. +Similarly, an expression such as +\f3<40>+%d0\f1, +following a program counter index plus displacement +operand, indicates that the effective address +of the operand in the current section is 40 plus the content of %d0. +A C function name +will appear in the first column, +followed by +.BR (\|) , +if the function was compiled with +.BR -g . +.SH "SEE ALSO" +dmdcc(1), +mc68as(1), +mc68ld(1). +.SH "DIAGNOSTICS" +The self-explanatory diagnostics +indicate errors in +the command line or problems +encountered with the +specified files. diff --git a/static/unix-v10/man1/mc68dump.1 b/static/unix-v10/man1/mc68dump.1 new file mode 100755 index 00000000..6552bbe6 --- /dev/null +++ b/static/unix-v10/man1/mc68dump.1 @@ -0,0 +1,164 @@ +.TH MC68DUMP 1 "630 MTG" +.tr ~ +.SH NAME +mc68dump \- dump parts of an MC68000 object file +.SH SYNOPSIS +.B mc68dump +.RB [ \-acfghlorst ] +.RB [ \-z " name]" +files +.SH DESCRIPTION +The +.I mc68dump +command +dumps selected parts of each +of its object \fIfile\fP arguments. +.PP +This command +accepts both object files and archives of object files. +It +processes each file argument according to one or more of the following +options: +.TP \w'\fB\-d~number~~'u +.B \-a +Dumps the archive header of each member of each archive file +argument. +.TP +.B \-g +Dumps the global symbols in the symbol table of a 6.0 archive. +.TP +.B \-f +Dumps each file header. +.TP +.B \-o +Dumps each optional header. +.TP +.B \-h +Dumps section headers. +.TP +.B \-s +Dumps section contents. +.TP +.B \-r +Dumps relocation information. +.TP +.B \-l +Dumps line number information. +.TP +.B \-t +Dumps symbol table entries. +.TP +.BR \-z ~name +Dumps line number entries for the named function. +.TP +.BR \-c +Dumps the string table. +.PP +The following \fImodifiers\fP are used in conjunction with the options +listed above to modify their capabilities. +.TP \w'\fB\-d~number~~'u +.BR \-d ~number +Dumps the section number or range of sections starting at \fInumber\fP +and ending either at the last section number or \fInumber\fP specified by +.BR +d . +.TP +.BR +d ~number +Dumps sections in the range either beginning with +first section or beginning +with section specified by \fB\-d\fP. +.TP +.BR \-n ~name +Dumps information pertaining only to the named entity. +This +.I modifier +applies to +.BR \-h , +.BR \-s , +.BR \-r , +.BR \-l , +and +.BR \-t . +.TP +.B \-p +Suppresses printing of the headers. +.TP +.BR \-t ~index +Dumps only the indexed symbol table entry. +The +\f3-t\f1, +used in conjunction with +.BR +t , +specifies a range of symbol +table entries. +.TP +.BR +t ~index +Dumps the symbol table entries in the range ending with the indexed entry. +The range begins at the first symbol table entry or at the entry +specified by the +.B \-t +option. +.TP +.B \-u +Underlines the name of the file for emphasis. +.TP +.B \-v +Dumps information in symbolic representation rather than numeric +(e.g., +.SM C_STATIC +instead of +.BR \s-10X02\s+1 ). +This \fImodifier\fP can be used with all the above options +except +.B \-s +and +.B \-o +options +of +.IR mc68dump. +.TP +.BR \-z ~name,number +Dumps line number entry or range of line numbers starting at +.I number +for the named function. +.TP +.BR \+z ~number +Dumps line numbers starting at either function +.IR name " or " number +specified +by +.BR \-z, +up to +.I number +specified by +.BR +z . +.PP +.PP +Blanks separating an \fIoption\fP and its \fImodifier\fP are optional. +The comma separating the name from the number modifying the +.B \-z +option may +be replaced by a blank. +.PP +The +.B -z +and +.B -n +options that take a +.I name +modifier will only work with object files that have been compiled +with the +.B "dmdcc \-g" +option. +.PP +The +.I mc68dump +command +attempts to format the information it dumps in a meaningful way, +printing certain information in character, +hex, octal or decimal representation as appropriate. +.SH "SEE ALSO" +dmdcc(1). +.br +a.out(4), ar(4) in the \f2UNIX System V Programer's +Reference Manual\f1. +.tr ~~ diff --git a/static/unix-v10/man1/mc68ld.1 b/static/unix-v10/man1/mc68ld.1 new file mode 100755 index 00000000..5d64faf2 --- /dev/null +++ b/static/unix-v10/man1/mc68ld.1 @@ -0,0 +1,341 @@ +.\" @(#) ld.1: 2.3 11/17/83 +.ds ZZ DEVELOPMENT PACKAGE +.TH MC68LD 1 "630 MTG" +.SH NAME +mc68ld \- link editor for MC68000 object files +.SH SYNOPSIS +\f3mc68ld [\f1 options \f3]\f1 file-names +.SH DESCRIPTION +The +.I mc68ld +command +combines several +object files into one, +performs relocation, +resolves external symbols, +and supports symbol table information +for symbolic debugging. +In the simplest case, the names of several object +programs are given, and +.I mc68ld +combines them, producing +an object module that can either be executed or +used as input for a subsequent +.I mc68ld +run. +The output of +.I mc68ld +is left in +.BR mc68a.out . +This file is executable +if no errors occurred during the load. +If any input file, +.IR file-name , +is not an object file, +.I mc68ld +assumes it is either a text file containing link editor directives +or an archive library. +(See +the \f2Link Editor\f1 in the \f2UNIX System V Support Tools +Guide\f1 for a discussion of input directives.) +.PP +If any argument is a library, it is searched exactly once +at the point it is encountered in the argument list. +Only those routines defining an unresolved external +reference are loaded. +The order of library members is unimportant because +\fImc68ld\fR passes through each library's (archive) symbol +table as many times as necessary until no new +external symbols are resolved and no new references are generated. +.PP +The following options are recognized by +.IR mc68ld . +.TP \w'\fB\-u\fP\ symname\ \ 'u +.if !'mc68'' \{\ +.B \-a +Produces an absolute file; gives warnings for undefined references. +Relocation information is stripped from the output object file +unless the +.B \-r +option is given. The +.B \-r +option is needed only when an absolute file should retain its +relocation information (the normal case for the 630 MTG +downloaded programs). +If neither +.BR \-a " nor " \-r +is given, +.B \-a +is assumed. +\} +.TP +.BR \-e " epsym" +Sets the default entry point address for the output file to be that of +the symbol +.IR epsym . +.if \nF \{\ +This option forces the +.B \-X +option to be set. \} +.TP +.BR \-f " fill" +Sets the default fill pattern for ``holes'' within +an output section as well as initialized bss sections. +The argument \fIfill\fP is a two-byte constant. +.if 'mc68'b16' \{\ +.TP +.B \-i +This option specifies that separate ``I'' and ``D'' space are to be +generated. +.B \-i +has no effect if +.B \-tv +is given. +This allows 64K of instructions and 64K of data. +'br \} +.if 'mc68'x86' \{\ +.TP +.B \-i +This option specifies that separate ``I'' and ``D'' space is to be +generated. +The option +.B \-i +has no effect if +.B \-tv +is given. +This allows up to 1 MB of text and 1 MB of data. +'br \} +.ie \nD \{\ +.TP +.BR \-l "x" +Searchs a library +.BI lib x .a, +where \fIx\fR is up to seven characters. +A library is searched when its name is encountered, +so the placement of a \fB\-l\fR +is significant. +By default, libraries are located in +.ie 'mc68'' +.BR /lib. +.el $DMD/lib. +'br \} +.el \{\ +.TP +.BI \-l x +Searches a library +.BI lib x .a, +where \fIx\fR is up to seven characters. +A library is searched when its name is encountered, +so the placement of a \fB\-l\fR +is significant. +By default, libraries are located in +.ie 'mc68'' /lib and /usr/lib. +.el $DMD/lib . +'br \} +.TP +.B \-m +Produces a map or listing of the input/output sections +on the standard output. +.TP +.BR \-o " outfile" +Produces an output object file by the name +.IR outfile . +The name of the default object file is +.BR mc68a.out . +.TP +.B \-r +Retains relocation entries in +the output object file. +Relocation entries must be saved if the +output file is to become an input file in a +subsequent +.I mc68ld +run. +.ie 'mc68'' The +.el \{\ +Unless +.B \-a +is also given, the +\} +link editor will not complain about +unresolved references. +.TP +.B \-s +Strips line number entries and +symbol table information +from the output object file. +.if \nG \{\ +.TP +.B \-t +Turns off the warning about multiply defined symbols that are +not the same size. +'br \} +.if \nC \{\ +.TP +.B \-tv +Transfer vector object files are expected. +When libraries are searched with this option, +component object modules with the wrong magic +number are ignored (as are transfer vector modules +when +.B \-tv +is not given). +The default is +.I no +transfer vectors. +'br \} +.TP +.BR \-u " symname" +Enters \fIsymname\fP as an undefined symbol +in the symbol table. +This is useful +for loading entirely from a library, since initially the symbol +table is empty and an unresolved reference is needed +to force the loading of the first routine. +.\" .if \nG \{\ +.\" .TP +.\" .B \-x +.\" Do not preserve local (non-.globl) symbols in the output symbol +.\" table; enter external and static symbols only. This option saves +.\" some space in the output file. +.\" 'br \} +.if \nH \{\ +.TP +.B \-z +Do not bind anything to address zero. This option will catch null +pointers. +.TP +.B \-F +Allows the object module to be paged. +'br \} +.TP +.BR \-L " dir" +Changes the algorithm of searching for +.BI lib x .a +to look in +.IR dir +before looking in $DMD/lib. +This option is effective only if it precedes the +.B \-l +option on the command line. +.if \nG \{\ +.TP +.B \-M +Outputs a message for each multiply defined external definition. +'br \} +.TP +.B \-N +Puts the data section immediately following the text in the output file. +.TP +.B \-V +Outputs a message giving information about the version of mc68ld +being used. +.TP +.BR \-VS " num" +Uses +\f2num\f1 +as a decimal version stamp +identifying the +.BR mc68a.out +file that is produced. The version +stamp is stored in the optional header. +.if \nF \{\ +.TP +.B \-X +Generates a standard UNIX file header within the ``optional header'' +field in the output file. +'br \} +.DT +.br +.DT +.SH FILES +.PD 0 +.TP 25 +.ie 'mc68'' /lib/lib\fI?\fR.a +.el $DMD/lib/lib\fI?\fR.a +libraries +.if 'mc68'' \{\ +.TP 25 +/usr/lib/lib?.a +libraries +\} +.TP 25 +mc68a.out +output file +.PD +.SH "SEE ALSO" +dmdcc(1), mc68as(1). +.br +a.out(4), ar(4) in the \f2UNIX System V Programmer's +Reference Manual\f1. +.bp +.SH WARNINGS +Through its options and input directives, the Motorola 68000 link editor gives +users great flexibility; +however, those who use the input directives must assume +some added responsibilities. +Input directives and options should insure the following properties +for programs: +.if 'mc68'b16' \{\ +.IP \- 5 +C programs must have data +.RB ( .data "), bss (" .bss ), +and stack space in one 64K byte region. +Stack space +.I must +be provided. +'br \} +.IP \- 5 +C defines a zero pointer as null. +A pointer to which zero has been assigned must +not point to any object. +To satisfy this, users must not place any object +at virtual address zero in the data space. +.tr ~ +.IP \- 5 +When the link editor is called through +.IR dmdcc (1), +a startup routine is linked with the user's program. This +routine usually calls exit(~) [see +.IR exit (3R)] +after execution of the main program. If the user +calls the link editor directly, then the user must insure that +the program always calls exit(~) rather than falling through the +end of the entry routine. +.if 'mc68'b16' \{\ +.IP \- 5 +Without a transfer vector, all text (code) +must reside within a single 64K-byte area. +Transfer vector function linkage removes this +restriction. +.PP +By default, the link editor takes care of these +things. +Specifying regions or defining sections with names other +than +.BR .bss ", " .data ", " .text ", or" +.B .tv +can decrease the link editor's ability to do these +automatically. +In general, users should not specify regions when the +program uses a transfer vector. +'br \} +.if \nC \{\ +.SH BUGS +.I mc68ld +can not currently create transfer vector symbols. +Thus no symbols created through assignment in an +input directive will be given an entry in the transfer vector. +In particular, this means the entry point of a program +can not be redefined by assignment to +.BR main . +Unsuspecting users who create such a symbol and expect it +to be in the transfer vector receive an obscure error +message about an invalid transfer vector relocation reference. +'br \} +.PP +The +\f3\-VS\f1 \f2num\f1 +option has an effect only when the +.B "\-X" +option is also selected. diff --git a/static/unix-v10/man1/mc68lorder.1 b/static/unix-v10/man1/mc68lorder.1 new file mode 100755 index 00000000..6eb484ff --- /dev/null +++ b/static/unix-v10/man1/mc68lorder.1 @@ -0,0 +1,63 @@ +.ds ZZ DEVELOPMENT PACKAGE +.TH MC68LORDER 1 "630 MTG" +.SH NAME +mc68lorder \- find ordering relation for an object library +.SH SYNOPSIS +.B mc68lorder +file ... +.SH DESCRIPTION +The input +is one or more object or library archive +.I files\^ +[see +.IR mc68ar (1)]. +The standard output +is a list of pairs of object file names, +meaning that the first file of the pair refers to +external identifiers defined in the second file. +The output may be processed by +.IR tsort (1) +to find an ordering of +a library suitable for one-pass access by +.IR mc68ld (1). +Note that the link editor +.IR mc68ld (1) +is capable of multiple passes over an archive in the portable archive format +[see +.IR ar (4)] +and does not require that +.IR mc68lorder (1) +be used when building an archive. The usage of +the +.IR mc68lorder (1) +command may, however, allow for a slightly more efficient access of +the archive during the link edit process. +.PP +The following example builds a new library +from existing +.B \&.o +files. +.PP +.RS +.ft CM +mc68ar cr library `mc68lorder \(**.o | tsort` +.ft 1 +.RE +.SH FILES +\(**symref, \(**symdef temporary files +.SH "SEE ALSO" +mc68ar(1), +mc68ld(1). +.br +ar(4) in the \f2UNIX System V Programmer's Reference +Manual\f1. +.br +tsort(1) in the +\f2\s-1UNIX\s+1 System V User Reference Manual\f1. +.SH BUGS +Object files whose names do not end with +.BR .o , +even when +contained in library archives, are overlooked. +The global symbols and references are attributed to +some other file. diff --git a/static/unix-v10/man1/mc68nm.1 b/static/unix-v10/man1/mc68nm.1 new file mode 100755 index 00000000..02c2f36c --- /dev/null +++ b/static/unix-v10/man1/mc68nm.1 @@ -0,0 +1,172 @@ +.TH MC68NM 1 "630 MTG" +.SH NAME +mc68nm \- print name list of a MC68000 object file +.SH SYNOPSIS +\f3mc68nm [\f1 options \f3]\f1 file-names +.SH DESCRIPTION +The +.I mc68nm\^ +command +displays the symbol table of each +Motorola 68000 object file +.IR file-name . +.I File-name\^ +may be a relocatable or absolute Motorola 68000 object file; +or it may be an archive of relocatable or absolute Motorola 68000 object files. +For each symbol, the following information is printed. +For the \f3TYPE\f1, \f3SIZE\f1, or \f3LINE\f1 information, +the object file must be compiled with the +\f3-g\f1 option of the \f2dmdcc\f1(1) command. +.PP +.TP 9 +.B Name +The name of the symbol. +.TP 9 +.B Value +Its value expressed as an offset or an address +depending on its storage class. +.TP 9 +.B Class +Its storage class. +.TP 9 +.B Type +Its type and derived type. +If the symbol is an instance of a structure or of a union, then the structure +or union tag is given following the type (e.g. struct-tag). +If the symbol is an array, then the array dimensions are given +following the type (eg., +.BR char[ n ][ m ] ). +.TP 9 +.B Size +Its size in bytes, if available. +.TP 9 +.B Line +The source line number at which it is defined, if available. +.TP 9 +.B Section +For storage classes static and external, +the object file section containing the symbol (e.g., text, data or bss). +.DT +.br +.PP +The output of +.I mc68nm +may be controlled using the following options: +.\" .if !'mc68'' \{\ +.\" .PP +.\" .TP 9 +.\" .B \-a +.\" Produce full output. Redundant symbols (.text, .data, and .bss), +.\" normally suppressed, are printed. +.\" \} +.PP +.TP 9 +.B \-d +Prints the value and size of a symbol in decimal (the default). +.PP +.TP 9 +.B \-o +Prints the value and size of a symbol in octal instead of decimal. +.PP +.TP 9 +.B \-x +Prints the value and size of a symbol in hexadecimal instead of decimal. +.PP +.TP 9 +.B \-h +Does not display the output header data. +.PP +.TP 9 +.B \-v +Sorts external symbols by value before they are printed. +.PP +.TP 9 +.B \-n +Sorts external symbols by name before they are printed. +.PP +.TP 9 +.B \-e +Prints only external and static symbols. +.PP +.TP 9 +.B \-f +.\" .ie 'mc68'' \{\ +Produces full output. Prints redundant symbols (.text, .data and .bss), +that are normally suppressed. +.\" \} +.\" .el \{\ +.\" ``Fancy'' output is produced; that is, the symbol table information +.\" is post-processed to reflect the block structure of the source code. +.\" \} +.bp +.TP 9 +.B \-u +Prints undefined symbols only. +.PP +.TP 9 +.B \-V +Prints the version of the mc68nm command executing on the standard error output. +.PP +.TP 9 +.B \-T +By default, +.I mc68nm\^ +prints the entire name of the symbols listed. +Since object files can have symbol names with an arbitrary number of +characters, a name that is longer than the width of the column set aside +for names will overflow its column, forcing every column after the name +to be misaligned. The +.B \-T +option causes +.I mc68nm\^ +to truncate every name which would otherwise overflow its column and +place an asterisk as the last character in the displayed name to mark +it as truncated. +.DT +.br +.PP +Options may be used in any order, either singly or in combination, +and may appear anywhere in the command line. +Therefore, both +.B "mc68nm name \-e \-v" +and +.B "mc68nm \-ve name" +print the static and external symbols in +.IR name , +with external symbols sorted by value. +.SH "FILES" +/usr/tmp/nm?????? +.SH "SEE ALSO" +dmdcc(1), +mc68as(1), +mc68ld(1). +.br +a.out(4), ar(4) in the \f2UNIX System V Programmer's Reference +Manual\f1. +.SH "DIAGNOSTICS" +.TP 9 +``mc68nm: name: cannot open'' +if +.I name +cannot be read. +.PP +.TP 9 +``mc68nm: name: bad magic'' +if +.I name +is not an appropriate Motorola 68000 object file. +.PP +.TP 9 +``mc68nm: name: no symbols'' +if the symbols have been stripped from +.IR name . +.SH "WARNINGS" +When all the symbols are printed, they must be printed in the order they +appear in the symbol table in order to preserve scoping information. +Therefore, the +.B \-v +and +.B \-n +options should be used only in conjunction with the +.B \-e +option. diff --git a/static/unix-v10/man1/mc68size.1 b/static/unix-v10/man1/mc68size.1 new file mode 100755 index 00000000..0707b768 --- /dev/null +++ b/static/unix-v10/man1/mc68size.1 @@ -0,0 +1,53 @@ +.ds ZZ DEVELOPMENT PACKAGE +.TH MC68SIZE 1 "630 MTG" +.SH NAME +mc68size \- print section sizes of MC68000 object files +.SH SYNOPSIS +.BR mc68size +.RB [ -o ] +.RB [ -x ] +.RB [ -V ] +files +.SH DESCRIPTION +The +.I mc68size +command +produces section size information for each section in the +Motorola 68000 object files. +The size of the text, data, and bss (uninitialized data) +sections are printed along with the total size of the object +file. If an archive file is input to the mc68size command the +information for all archive members is displayed. +.PP +Numbers are printed in decimal unless either the +.B \-o +or the +.B \-x +option is used, in which case they are printed in +octal, or in hexadecimal, respectively. +.PP +The +.B \-V +flag will supply the version information on the +.I mc68size +command. +.SH "SEE ALSO" +dmdcc(1), +mc68as(1), +mc68ld(1). +.br +a.out(4), ar(4) in the \f2UNIX System V Programmer's Reference +Manual\f1. +.SH "DIAGNOSTICS" +"mc68size: name: cannot open" +.br + if +.I name +cannot be read. +.PP + +"mc68size: name: bad magic" +.br + if +.I name +is not a Motorola 68000 object file. diff --git a/static/unix-v10/man1/mc68strip.1 b/static/unix-v10/man1/mc68strip.1 new file mode 100755 index 00000000..7d02e453 --- /dev/null +++ b/static/unix-v10/man1/mc68strip.1 @@ -0,0 +1,145 @@ +.TH MC68STRIP 1 "630 MTG" +.SH NAME +mc68strip \- strip symbolic information from MC68000 object file +.SH SYNOPSIS +.B mc68strip +.RB [ \-l ] +.RB [ \-m ] +.RB [ \-x ] +.RB [ \-r ] +.RB [ \-s ] +.if 'mc68'3b' \{\ +.RB [ \-f ] +.\} +.RB [ \-V ] +file-names +.SH DESCRIPTION +The +.I mc68strip +command +strips the symbol table and line number information from +Motorola 68000 object files, +including archives. +Once this has been done, no symbolic debugging access +is available for that file; therefore, this command is +normally run only on production modules that have +been debugged and tested. +.PP +The amount of information stripped from the symbol table +can be controlled by using the following options: +.PP +.TP 9 +.BR \-l +Strips line number information only; +does not strip any symbol table information. +.PP +.TP 9 +.BR \-m +Strips symbol table information only; +does not strip any relocation information. +Used for 630 MTG applications which need relocation information for downloads, +but do not neccesarily need symbol table information. +This option does not work on archives. +.PP +.TP 9 +.B \-x +Does not strip static or external symbol information. +.PP +.TP 9 +.B \-r +Resets the relocation indices into the symbol table. +.if 'mc68'3b' \{\ +.PP +.TP 9 +.B \-f +Removes the relocation information from an executable object file +for all sections not of type COPY. Reset +relocation indices into the symbol table for all retained relocation +information. +.\} +.PP +.TP 9 +.B \-s +Resets the line number indices into the symbol table (does not remove). +Resets the relocation indices into the symbol table. +.PP +.TP 9 +.B \-V +Prints the version of the mc68strip command executing on the standard error output. +.DT +.br +.PP +If there are any relocation entries in the object file and any symbol +table information is to be stripped, +.I mc68strip +will complain and terminate without stripping +.I file-name +unless the +\f3\-r\f1 or \f3\-m\f1 +flags are used. +.PP +If the +.IR mc68strip +command is executed on a common archive file [see +.IR ar (4)] +the archive symbol table will be removed. The archive +symbol table must be restored by executing the +.IR mc68ar (1) +command with the +.B s +option before the archive can be +link edited by the +.IR mc68ld (1) +command. +.IR Mc68strip (1) +will instruct the user with appropriate warning messages when this +situation arises. +.PP +The purpose of this command is to reduce the file storage +overhead taken by the object file. +.SH "FILES" +/usr/tmp/mc68str?????? +.SH "SEE ALSO" +dmdcc(1), +mc68ar(1), +mc68as(1), +mc68ld(1). +.br +a.out(4), ar(4) in the \f2UNIX System V Programmer's +Reference Manual\f1. +.SH "DIAGNOSTICS" +.TP 9 +mc68strip: name: cannot open +.br + if +.I name +cannot be read. +.PP +.TP 9 +mc68strip: name: bad magic +.br + if +.I name +is not a Motorola 68000 object file. +.PP +.TP 9 +mc68strip: name: relocation entries present; cannot strip +.br + if +.I name +contains relocation entries and the +\f3\-r\f1 or \f3\-m\f1 +flag is not used, +the symbol table information cannot be stripped. +.PP +.TP 9 +mc68strip: name: other options set with "m" option +.br + if +other flags are used with the -m option which is mutually exclusive. +.PP +.TP 9 +mc68strip: "m" option not allowed on archive files +.br + if +file name is an archive file. diff --git a/static/unix-v10/man1/memo.1 b/static/unix-v10/man1/memo.1 new file mode 100644 index 00000000..e2103d66 --- /dev/null +++ b/static/unix-v10/man1/memo.1 @@ -0,0 +1,38 @@ +.TH MEMO 1 "local" +.SH NAME +memo \- produce macros for MM interactively +.SH SYNOPSIS +.B memo +.I filename \ +[ +.I argument\ +] +.SH DESCRIPTION +.I Memo +is designed as a computer +aid to help new or infrequent users of the PWB/MM Memorandum +Macros. +It asks questions interactively to produce a +file which contains the necessary introductory and concluding +macros for PWB/MM. +In order to enter the text of the memo, you must enter +the editor. +For help to any question enter a +.I +\? +A detailed explanation of the proper +answer will be printed. +.P +The following are optional arguments to be used when filename already exists to avoid lengthy printout: +.TP 7 +.B a +Enter editor to add/modify text. +.TP 7 +.B b +Be prompted for concluding macros. +.TP 7 +! +Overwrite filename and begin introductory macros. +.PD +.SH "SEE ALSO" +.IR nroff (1) diff --git a/static/unix-v10/man1/merge.1 b/static/unix-v10/man1/merge.1 new file mode 100644 index 00000000..39c8f7fb --- /dev/null +++ b/static/unix-v10/man1/merge.1 @@ -0,0 +1,50 @@ +.th MERGE I 11/7/73 +.sh NAME +merge \*- merge several files +.sh SYNOPSIS +.bd merge +[ +.bd \*-anr +] [ \fB\*-\fIn\fR ] [ \fB+\fIn\fR ] [ name ... ] +.sh DESCRIPTION +.it Merge +merges several files together +and writes the result on +the standard output. +If a file +is designated by +an unadorned `\*-', +the standard input is understood. +.s3 +The merge is line-by-line in increasing ASCII collating sequence, +except that upper-case letters are considered +the same as the corresponding lower-case letters. +.s3 +.it Merge +understands several flag arguments. +.s3 +.lp +4 4 +\fB\*-a\fR Use strict ASCII collating sequence. +.s3 +.lp +4 4 +\fB\*-n\fR An initial numeric string, possibly preceded by '\*-', +is sorted by numerical value. +.s3 +.lp +4 4 +\fB\*-r\fR Data is in reverse order. +.s3 +.lp +4 4 +\fB\*-\fIn\fR The first \fIn\fR fields in each line +are ignored. A field is defined as a string of non-space, non-tab +characters separated by tabs and spaces from its neighbors. +.s3 +.lp +4 4 +\fB+\fIn\fR The first \fIn\fR characters are ignored. +Fields (with \fB\*-\fIn\fR) +are skipped before characters. +.i0 +.sh "SEE ALSO" +sort(I) +.sh BUGS +Only 8 files can be handled; +any further files are ignored. diff --git a/static/unix-v10/man1/mesg.1 b/static/unix-v10/man1/mesg.1 new file mode 100644 index 00000000..880ab13d --- /dev/null +++ b/static/unix-v10/man1/mesg.1 @@ -0,0 +1,27 @@ +.pa 1 +.he 'MESG (I)'3/15/72'MESG (I)' +.ti 0 +NAME mesg -- permit or deny messages +.sp +.ti 0 +SYNOPSIS mesg____ [ n_ ][ y_ ] +.sp +.ti 0 +DESCRIPTION mesg____ n_ +forbids messages via write_____ by revoking non-user +write permission on the user's typewriter. +mesg____ y_ reinstates permission. +mesg____ with no argument reverses the current permission. +In all cases the previous state is reported. +.sp +.ti 0 +FILES /dev/tty? +.sp +.ti 0 +SEE ALSO write(I) +.sp +.ti 0 +DIAGNOSTICS "?" if the standard input file is not a typewriter +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/mint.1 b/static/unix-v10/man1/mint.1 new file mode 100644 index 00000000..9f9bd7a3 --- /dev/null +++ b/static/unix-v10/man1/mint.1 @@ -0,0 +1,420 @@ +.TH MINT 1 "02 June 1987" "University of Waterloo" +.ds ]W "Symbolic Comp. Group +.SH NAME +mint \- produce usage report from a maple program +.SH SYNOPSIS +.B mint +[ +.B \-i +info_level +] +[ +.B \-l +] +[ +.B \-d +library_database +] +[ +.B \-a +database_file +] +[ +.B \-q +] +[ file ] +.SH DESCRIPTION +\fIMint\fP produces a report about possible errors in a Maple source file +and also reports about how variables are used in the file. +If \fIfile\fP is not given, then the standard input file is used to +read Maple source statements. +Unlike \fImaple\fP, \fImint\fP is not terminated when it reads a +quit statement. +It is terminated when it reaches the end of file. +When started, \fImint\fP normally produces a mint leaf logo. +This can be suppressed by the use of the \fB\-q\fP (quiet) option. + +The amount of information to be produced by \fImint\fP is specified by the +\fIinfo_level\fP argument. +The values allowed for this argument are: +.nf + + 0 \- Display no information. + 1 \- Display only severe errors + 2 \- Display severe and serious errors + 3 \- Display warnings as well as severe and serious errors + 4 \- \kxGive a full report on variable usage as well as + \h'|\nxu'displaying errors and warnings + +.fi +A report for each procedure in the file is displayed +separately followed by a global report for statements not contained +within any procedure. +If the severity of errors found within a procedure is less than +what \fIinfo_level\fP specifies, then no report is produced for +that procedure. +In all cases, the most severe error found in the file will be used +to set the exit status for \fImint\fP. +Thus, by using an \fIinfo_level\fP of 0, \fImint\fP can be used to +determine the severity of errors in a file without actually producing +any output at all. +If no value is given for \fIinfo_level\fP on the command line, a default +value of 2 (severe and serious errors) is used. + +The types of errors and warnings found are classified as severe, +serious, and warning. A severe error is an undisputable error. +A serious error +is almost certainly an error. However, persons defining procedures +for addition to the Maple library may choose to ignore these ``errors''. +Warnings are possible errors. +They point to constructs that may be correct in some contexts, but +probable errors in other contexts. +The types of errors and warnings produced are: +.in +0.8i +.ti -0.8i + +\fBSEVERE\fP + +.ti -0.4i +Syntax errors +.br +A caret symbol will point to the token +that is being read when the error occurred. + +.ti -0.4i +Duplicated parameter +.br +A name appears more than once in a parameter list for a +procedure. + +.ti -0.4i +Duplicated local +.br +A name is declared more than once in the list of local +variables for a procedure. + +.ti -0.4i +Local variable and parameter conflict +.br +A name is used both as a parameter and a local +variable within a procedure. In further analysis, +the name is treated as a parameter. + +.ti -0.4i +Local variable and system-defined name conflict +.br +The name of a local variable is also used by Maple as a +system-defined name. + +.ti -0.4i +Parameter and system-defined name conflict +.br +The name of a parameter is also used by Maple as a +system-defined name. + +.ti -0.4i +Duplicated loop name +.br +A loop nested within another loop uses as its loop +control variable the same name that the outer loop uses. + +.ti -0.4i +Break or next statement outside of a loop +.br +A break or a next statement occurs outside of any loop. +(Break or next may still be used as names within an +expression outside of a loop.) + +.ti -0.4i +RETURN or ERROR function call outside of a procedure +.br +A function call to RETURN or ERROR occurs outside of +a procedure body. (RETURN or ERROR may still be used +as names if they are not invoked as functions.) + +.ti -0.4i +Unreachable code +.br +There are statements which follow directly after a goto type +of statement. These statements are unreachable and will never +be executed. A goto statement is a next statement, a break +statement, a quit, stop, or done statement, a RETURN() call, +an ERROR() call. +An if statement all branches of which end in a goto statement +is also considered a goto statement. + +.ti -0.8i +\fBSERIOUS\fP + +.ti -0.4i +Overly long name +.br +A name whose length is too long is used. The length of +the name is truncated to the maximum allowed. + +.ti -0.4i +Unused local variable +.br +A local variable is declared for a procedure but never +used within the procedure body. + +.ti -0.4i +Local variable assigned a value but not used otherwise +.br +A local variable is assigned a value within a procedure but +is not otherwise used. + +.ti -0.4i +Local variable never assigned a value but used as a value +.br +A local variable was never assigned a value in a procedure but +within the procedure its value is used in an expression. +Such an expression would contain a pointer to a non-existent +local variable if the expression were returned or assigned to +a global variable. + +.ti -0.4i +System-defined name is overwritten +.br +A name which is treated as a system-defined name by Maple +is assigned a value. +The class of system-defined names includes names which are +special names for the Maple kernel, e.g., true and Digits, +names of built-in functions, e.g., anames and lprint, +names of functions which are automatically readlib-defined, e.g., +cat or help. +Also included are names that are special to routines for evalf, +diff, expand, etc. +Examples of these are Pi and sinh. +These special names generally should not be assigned a value in order +for some library routines to work properly. +Included in the report is an indication of which parts of Maple use +the system-defined names. + +.ti -0.4i +Dubious global name in a procedure +.br +A global name is used within a procedure. A global name is +a name which is not a parameter, a local name, a system-defined name, or +a catenated name. +A quoted name used as an argument to the routines lprint, print, and +ERROR is probably used just for output and is not considered a name. +Global names used as procedure +names in a function call are not considered errors. +Also excluded are names of files in the Maple library, e.g., +`convert/ratpoly`. +All remaining names are considered as global names. +By convention, global names used in a package of routines should +begin with the `_` (underscore) character. +Those that do not are considered dubious and are reported here. + +.ti -0.4i +Library file name overwritten +.br +The name of a library file, e.g., `convert/ratpoly`, is assigned +a value. It is usual for the name of a library file to also be +the name of a library function. Hence, the library function +`convert/ratpoly` is no longer accessible. +(The \fB\-l\fP (library file) option will downgrade these messages +from a serious error to a report.) + +.ti -0.4i +Unused parameter in a procedure +.br +A name specified in the parameter list of a procedure is +never used in the procedure. This is considered a serious +error if `args' is never used in the procedure either. +If args is used in the procedure, then it's possible that +the parameter may be accessed through a construct using `arg' +and this error is downgraded to a warning. + +.ti -0.4i +Wrong argument count in a procedure call +.br +The number of arguments passed in a procedure call doesn't match the +number of formal arguments in the definition of a procedure of the +same name recorded in the library database file. +A library database file (cf. \fBDATABASE FILES\fP) contains information +about the minimum number of arguments expected for a procedure, the +maximum number of arguments, whether `nargs' is used in the procedure +body, and the name of the file in which the procedure is defined. +If the number of actual arguments passed is either less than the +minimum arguments expected or more than the maximum number expected +\fIand\fP `nargs' is not used in the procedure body, then a warning is +generated. +This warning is suppressed if one of the arguments passed is `args'. +It is a common practice for a procedure to take its argument list, +contained in the expression sequence `args', and pass that on to +other procedures. +What appears to \fImint\fP as one argument is in reality a sequence +of arguments. +.ti -0.8i + +\fBWARNING\fP + +.ti -0.4i +Equation used as a statement +.br +This may be intentional. On the other hand, it's common +for many Fortran and C programmers to mistype '=' for +the assignment operator which is ':=' in Maple. + +.ti -0.4i +Unused parameter in a procedure +.br +See similar entry under serious errors. + +.ti -0.4i +Global name used +.br +A global name which may or may not start with '_' is used within +this procedure. + +.ti -0.4i +Catenated name used +.br +A name is formed through the catenation operator. + +.in -0.8i +\fBOTHER REPORTS\fP +.sp +If \fIinfo_level\fP is 4, then a usage report is given for each procedure +as well as global statements within the file. +Each usage report shows how parameters, local variables, global variables, +system-defined names and catenated names are used. +As well can easily be done, the following information about how a +variable is used may be provided: +.nf + + 1. Used as a value + 2. Used as a table or list element + 3. Used as a call-by-value parameter + 4. Used as a call-by-name parameter (a quoted parameter) + 5. Called as a function + 6. Assigned a procedure + 7. Assigned a list + 8. Assigned a set + 9. Assigned a range + 10. Assigned a value as a table or list element + 11. \kxAssigned a function value + \h'|\nxu'(assigned a value to remember as a function value) + +.fi + +In addition, a list of all the error messages generated is given. + +.SH COMMAND OPTIONS +The \fB\-i\fP (info level) and \fB\-q\fP (quiet) options are explained +above. +The \fB\-l\fP (library file) option will suppress the catenated name +warning and the global name warning if only one of each is used +outside of any procedure. +Typically, a Maple library source file will contain one of each for +use in loading the library file. +This option will also suppress error messages about library file names +being overwritten since one of the purposes of a library file is to +assign a procedure to a library file name. +Moreover, warnings about the assignment of values to the system-defined +names Digits and printlevel are suppressed since this often happens +in a library file. + +.SH INITIALIZATION FILE +If there is a file named .mintrc in your home directory, \fImint\fP +will read this file for command line options. +This file may contain several lines containing command line options or +arguments as you would type them on a command line. +Since \fImint\fP reads this file and then scans the actual command line, +arguments on the actual command line can override arguments in the +initialization file. +A good use of the initialization file may be to enter the name of the +Maple library procedure database file when using the \fB\-d\fP option, +obviating the need to type this each time \fImint\fP is used. + +.SH PROCEDURE DATABASE FILES +A procedure database file contains information about the definition of +procedures which is useful in ensuring that these procedures are +used correctly. +Each line in a database file contains the following: + +.nf + +.fi + +where is a legal Maple name without any embedded blanks, + is the minimum number of arguments expected for +, is the maximum number of arguments, +is 1 if `nargs' is used in the procedure body for and +0 otherwise, is the name of the file in which +is defined. +The entries on each line are in free format but must be separated +from one another by at least one space character. +The values for and should be numbers in +the range 0 to 999. +If is 999 for an entry, that denotes that the procedure +has no upper limit on the number of arguments. +There may be multiple entries for a particular procedure. +Later entries supercede earlier ones. + +A procedure database file for the entire Maple library is generated +or updated periodically. +This file is +/usr/maple/data/mint.db and contains close to 1200 entries and +it takes \fImint\fP about 7 seconds to read this file. + +A private database file can be generated through the use of +the \fB\-a\fP command line option for \fImint\fP. +A file name must follow \fB\-a\fP on the command line and is taken +to be a procedure database file. +As \fImint\fP scans procedure definitions in the input file, it +will append procedure database entries into the database file. +For information gathered automatically by \fImint\fP about a +procedure, and will both be the number of +formal arguments used in the procedure definition. +You can edit the database file to adjust these values. +Remember that use of `nargs' in a procedure body sets the +field to 1 in the database entry and that this will turn off +argument count checking for that procedure. + +.SH EXAMPLES + +.ft CW +.nf +mint -d /usr/maple/data/mint.db -a my.db -i 4 rat_poisson +mint -d /usr/maple/data/mint.db -d my.db rat_trap +mint -i 1 -q warfarin +.fi +.ft P + +The first example gives a full report (info_level = 4) for the +Maple source file rat_poisson. +It reads the Maple library database file and uses this to check that +procedures defined in the Maple library are called with the correct +number of arguments. +Information about procedures defined in rat_poisson is \fIappended\fP +to my.db. + +In the second example, both the Maple library database file and +the private database file my.db are used to check number of arguments +used in procedure calls in the file rat_trap. +Entries in my.db supercede entries in the library database file +if the name of a library procedure has been redefined in my.db. + +In the third example, no argument count checking is done. +Since the info_level is set to 1, only severe errors are +reported. +Since the \fB\-q\fP (quiet) option is used, the printing +of the \fImint\fP leaf logo is suppressed in the output. + +.SH FILES USED +\&.mintrc \- Mint initialization file +/usr/maple/data/mint.db \- \kxMaple library procedure database +\h'|\nxu'(The location of the database may be different for each site) +.SH SEE ALSO +maple + +.SH STATUS +\fIMint\fP will return an exit status of 1, 2, or 3 if the +worst error it detects is a warning, serious error, or severe +error, respectively. An exit status of 0 is returned if no +errors or warnings are found. + diff --git a/static/unix-v10/man1/mk.1 b/static/unix-v10/man1/mk.1 new file mode 100644 index 00000000..9d0018c5 --- /dev/null +++ b/static/unix-v10/man1/mk.1 @@ -0,0 +1,617 @@ +.TH MK 1 +.CT 1 prog_c writing_troff prog_other +.SH NAME +mk, mkconv, membername \- maintain (make) related files +.SH SYNOPSIS +.B mk +[ +.B -f +.I mkfile +] ... +[ +.I option ... +] +[ +.I name ... +] +.PP +.B mkconv +.I makefile +.PP +.B membername +.I aggregate ... +.SH DESCRIPTION +.I Mk +is most often used to keep object files current with the +source they depend on. +.PP +.I Mk +reads +.I mkfile +and builds and executes dependency dags (directed acyclic graphs) for the target +.IR names . +If no target is specified, the targets of the first non-metarule in +the first +.I mkfile +are used. +If no +.B -f +option is present, +.L mkfile +is tried. +Other options are: +.TP \w'\fL-d[egp]\ 'u +.B -a +Assume all targets to be out of date. +Thus, everything gets made. +.PD 0 +.TP +.BR -d [ egp ] +Produce debugging output +.RB ( p +is for parsing, +.B g +for graph building, +.B e +for execution). +.TP +.B -e +Explain why each target is made. +.TP +.B -i +Force any missing intermediate targets to be made. +.TP +.B -k +Do as much work as possible in the face of errors. +.TP +.B -m +Generate an equivalent makefile on standard output. +Recipes are not handled well. +.TP +.B -n +Print, but do not execute, the commands +needed to update the targets. +.TP +.B -t +Touch (update the modified date of) non-virtual targets, without +executing any recipes. +.TP +.B -u +Produce a table of clock seconds spent with +.I n +recipes running. +.TP +.BI -w name1,name2,... +Set the initial date stamp for each name +to the current time. +The names may also be separated by blanks or newlines. +(Use with +.B -n +to find what else would need to change if the named files +were modified.) +.PD +.PP +.I Mkconv +attempts to convert a +.IR make (1) +.I makefile +to a +.IR mkfile +on standard output. +The conversion is not likely to be faithful. +.PP +The shell script +.I membername +extracts member names +(see `Aggregates' below) +from its arguments. +.SS Definitions +A +.I mkfile +consists of +.I assignments +(described under `Environment') and +.IR rules . +A rule contains +.I targets +and a +.I tail. +A target is a literal string, or +.I label, +and is normally a file name. +The tail contains zero or more +.I prerequisites +and an optional +.I recipe, +which is a shell script. +.PP +A +.I metarule +has a target of the form +.IB A % B +where +.I A +and +.I B +are (possibly empty) strings. +A metarule applies to any label that matches the target with +.B % +replaced by an arbitrary string, called the +.IR stem . +In interpreting a metarule, +the stem is substituted for all occurrences of +.B % +in the prerequisite names. +A metarule may be marked as using regular expressions (described under `Syntax'). +In this case, +.B % +has no special meaning; +the target is interpreted according to +.IR regexp (3). +The dependencies may refer to subexpressions in the normal way, using +.BI \e n. +The +.I dependency dag +for a target consists of +.I nodes +connected by directed +.IR arcs . +A node consists of a label +and a set of arcs leading to prerequisite nodes. +The root +node is labeled with an original target +.I name. +.SS Building the Dependency Dag +.PP +Read the +.I mkfiles +in command line order and distribute rule tails over targets +to get single-target rules. +.PP +For a node +.IR n , +for every rule +.I r +that matches +.IR n 's +label generate an arc to a prerequisite node. +The node +.I n +is then marked as done. +The process is then repeated for each of the prerequisite nodes. +The process stops if +.I n +is already done, +or if +.I n +has no prerequisites, +or if any rule would be used more than +.B $NREP +times on the current path in the dag. +A probable node is one where the label exists as a file +or is a target of a non-metarule. +.PP +After the graph is built, it is checked for cycles, +and subdags containing no probable nodes are deleted. +Also, for any node with arcs generated by a non-metarule with a recipe, +arcs generated by a metarule with a recipe +are deleted. +Disconnected subdags are deleted. +.SS Execution +Labels have an associated date stamp. +A label is +.I ready +if it has no prerequisites, or +all its prerequisites are made. +A ready label is +.I trivially uptodate +if it is not a target and has a nonzero date stamp, or +it has a nonzero date stamp, +and all its prerequisites are made and predate the ready label. +A ready label is marked +.I made +(and given a date stamp) +if it is trivially uptodate or by executing the recipe +associated with the arcs leading from the node associated with the ready label. +The +.B P +attribute can be used to generalize +.IR mk 's +notion of determining if prerequisites predate a label. +Rather than comparing date stamps, it executes a specified program +and uses the exit status. +.PP +Date stamps are calculated differently for virtual labels, +for labels that correspond to extant files, +and for other labels. +If a label is +.I virtual +(target of a rule with the +.B V +attribute), +its date stamp is initially zero and upon being made is set to +the most recent date stamp of its prerequisites. +Otherwise, if a label is nonexistent +(does not exist as a file), +its date stamp is set to the most recent date stamp of its prerequisites, +or zero if it has no prerequisites. +Otherwise, the label is the name of a file and +the label's date stamp is always that file's modification date. +.PP +Nonexistent labels which have prerequisites +and are prerequisite to other label(s) are treated specially unless the +.B -i +flag is used. +Such a label +.I l +is given the date stamp of its most recent prerequisite +and if this causes all the labels which have +.I l +as a prerequisite to be trivially uptodate, +.I l +is considered to be trivially uptodate. +Otherwise, +.I l +is made in the normal fashion. +.PP +Two recipes are called identical if they arose by distribution +from a single rule as described above. +Identical recipes may be executed only when all +their prerequisite nodes are ready, and then just one instance of +the identical recipes is executed to make all their target nodes. +.PP +Files may be made in any order that respects +the preceding restrictions. +.PP +A recipe is executed by supplying the recipe as standard input to +the command +.B + /bin/sh -e +.br +The environment is augmented by the following variables: +.TP 14 +.B $alltarget +all the targets of this rule. +.TP +.B $newprereq +the prerequisites that caused this rule to execute. +.TP +.B $nproc +the process slot for this recipe. +It satisfies +.RB 0\(<= $nproc < $NPROC , +where +.B $NPROC +is the maximum number of recipes that may be executing +simultaneously. +.TP +.B $pid +the process id for the +.I mk +forking the recipe. +.TP +.B $prereq +all the prerequisites for this rule. +.TP +.B $stem +if this is a metarule, +.B $stem +is the string that matched +.BR % . +Otherwise, it is empty. +For regular expression metarules, the variables +.LR stem0 ", ...," +.L stem9 +are set to the corresponding subexpressions. +.TP +.B $target +the targets for this rule that need to be remade. +.PP +Unless the rule has the +.B Q +attribute, +the recipe is printed prior to execution +with recognizable shell variables expanded. +To see the commands print as they execute, +include a +.L set -x +in your rule. +Commands returning nonzero status (see +.IR intro (1)) +cause +.I mk +to terminate. +.SS Aggregates +Names of the form +.IR a ( b ) +refer to member +.I b +of the aggregate +.IR a . +Currently, the only aggregates supported are +.IR ar (1) +archives. +.SS Environment +Rules may make use of shell (or environment) variables. +A legal shell variable reference of the form +.B $OBJ +or +.B ${name} +is expanded as in +.IR sh (1). +A reference of the form +.BI ${name: A % B = C\fB%\fID\fB}\fR, +where +.I A, B, C, D +are (possibly empty) strings, +has the value formed by expanding +.B $name +and substituting +.I C +for +.I A +and +.I D +for +.I B +in each word in +.B $name +that matches pattern +.IB A % B . +.PP +Variables can be set by +assignments of the form +.I + var\fB=\fR[\fIattr\fB=\fR]\fItokens\fR +.br +where +.I tokens +and the optional attributes +are defined under `Syntax' below. +The environment is exported to recipe executions. +Variable values are taken from (in increasing order of precedence) +the default values below, the environment, the mkfiles, +and any command line assignment. +A variable assignment argument overrides the first (but not any subsequent) +assignment to that variable. +.br +.ne 1i +.EX +.ta \n(.lu/3u +\n(.lu/3u +.nf +AS=as FFLAGS= NPROC=1 +CC=cc LEX=lex NREP=1 +CFLAGS= LFLAGS= YACC=yacc +FC=f77 LDFLAGS= YFLAGS= +BUILTINS=' +.ta 8n +%.o: %.c + $CC $CFLAGS -c $stem.c +%.o: %.s + $AS -o $stem.o $stem.s +%.o: %.f + $FC $FFLAGS -c $stem.f +%.o: %.y + $YACC $YFLAGS $stem.y && + $CC $CFLAGS -c y.tab.c && mv y.tab.o $stem.o; rm y.tab.c +%.o: %.l + $LEX $LFLAGS -t $stem.l > $stem.c && + $CC $CFLAGS -c $stem.c && rm $stem.c' +ENVIRON= +.EE +.PP +The builtin rules are obtained from the variable +.B BUILTINS +after all input has been processed. +The +.B ENVIRON +variable is split into parts at control-A characters, +the control-A characters are deleted, and the parts are +placed in the environment. +The variable +.B MKFLAGS +contains all the option arguments (arguments starting with +.L - +or containing +.LR = ) +and +.B MKARGS +contains all the targets in the call to +.IR mk . +.SS Syntax +Leading white space (blank or tab) is ignored. +Input after an unquoted +.B # +(a comment) is ignored as are blank lines. +Lines can be spread over several physical lines by +placing a +.B \e +before newlines to be elided. +Non-recipe lines are processed by substituting for +.BI ` cmd ` +and then substituting for variable references. +Finally, the filename metacharacters +.B []*? +are expanded. +.tr #" +Quoting by +.BR \&'' , +.BR ## , +and +.B \e +is supported. +The semantics for substitution and quoting are given in +.IR sh (1). +.PP +The contents of files may be included by lines beginning with +.B < +followed by a filename. +.PP +.tr ## +Assignments and rule header lines are distinguished by +the first unquoted occurrence of +.B : +(rule header) +or +.B = +(assignment). +.PP +A rule definition consists of a header line followed by a recipe. +The recipe consists of all lines following the header line +that start with white space. +The recipe may be empty. +The first character on every line of the recipe is elided. +The header line consists of at least one target followed by the rule separator +and a possibly empty list of prerequisites. +The rule separator is either a single +.LR : +or is a +.L : +immediately followed by attributes and another +.LR : . +If any prerequisite is more recent than any of the targets, +the recipe is executed. +This meaning is modified by the following attributes +.TP +.B < +The standard output of the recipe is read by +.I mk +as an additional mkfile. +Assignments take effect immediately. +Rule definitions are used when a new dependency dag is constructed. +.PD 0 +.TP +.B D +If the recipe exits with an error status, the target is deleted. +.TP +.B N +If there is no recipe, the target has its time updated. +.TP +.B P +The characters after the +.B P +until the terminating +.B : +are taken as a program name. +It will be invoked as +.B "sh -c prog 'arg1' 'arg2'" +and should return 0 exit status +if and only if arg1 is not out of date with respect to arg2. +Date stamps are still propagated in the normal way. +.TP +.B Q +The recipe is not printed prior to execution. +.TP +.B R +The rule is a metarule using regular expressions. +.TP +.B U +The targets are considered to have been updated +even if the recipe did not do so. +.TP +.B V +The targets of this rule are marked as virtual. +They are distinct from files of the same name. +.PD +.PP +Similarly, assignments may have attributes terminated by +.BR = . +The only assignment attribute is +.TP 3 +.B U +Do not export this variable to recipe executions. +.SH EXAMPLES +A simple mkfile to compile a program. +.IP +.EX +prog: a.o b.o c.o + $CC $CFLAGS -o $target $prereq +.EE +.PP +Override flag settings in the mkfile. +.IP +.EX +$ mk target CFLAGS='-O -s' +.EE +.PP +To get the prerequisites for an aggregate. +.IP +.EX +$ membername 'libc.a(read.o)' 'libc.a(write.o)' +read.o write.o +.EE +.PP +Maintain a library. +.IP +.EX +libc.a(%.o):N: %.o +libc.a: libc.a(abs.o) libc.a(access.o) libc.a(alarm.o) ... + names=`membername $newprereq` + ar r libc.a $names && rm $names +.EE +.PP +Backquotes used to derive a list from a master list. +.IP +.EX +NAMES=alloc arc bquote builtins expand main match mk var word +OBJ=`echo $NAMES|sed -e 's/[^ ][^ ]*/&.o/g'` +.EE +.PP +Regular expression metarules. +The single quotes are needed to protect the +.BR \e s. +.IP +.EX +\&'([^/]*)/(.*)\e.o':R: '\e1/\e2.c' + cd $stem1; $CC $CFLAGS -c $stem2.c +.EE +.PP +A correct way to deal with +.IR yacc (1) +grammars. +The file +.B lex.c +includes the file +.B x.tab.h +rather than +.B y.tab.h +in order to reflect changes in content, not just modification time. +.IP +.EX +YFLAGS=-d +lex.o: x.tab.h +x.tab.h: y.tab.h + cmp -s x.tab.h y.tab.h || cp y.tab.h x.tab.h +y.tab.c y.tab.h: gram.y + $YACC $YFLAGS gram.y +.EE +.PP +The above example could also use the +.B P +attribute for the +.B x.tab.h +rule: +.IP +.EX +x.tab.h:Pcmp -s: y.tab.h + cp y.tab.h x.tab.h +.EE +.SH SEE ALSO +.IR make (1), +.IR chdate (1), +.IR sh (1), +.IR regexp (3) +.br +A. Hume, +.RI ` Mk : +a Successor to +.IR Make ', +this manual, Volume 2 +.SH BUGS +Identical recipes for regular expression metarules only have one target. +.br +Seemingly appropriate input like +.B CFLAGS=-DHZ=60 +is parsed as an erroneous attribute; correct it by inserting +a space after the first +.LR = . diff --git a/static/unix-v10/man1/mkdir.1 b/static/unix-v10/man1/mkdir.1 new file mode 100644 index 00000000..7c159819 --- /dev/null +++ b/static/unix-v10/man1/mkdir.1 @@ -0,0 +1,25 @@ +.pa 1 +.he 'MKDIR (I)'3/15/72'MKDIR (I)' +.ti 0 +NAME mkdir -- make a directory +.sp +.ti 0 +SYNOPSIS mkdir_____ dirname ... +.sp +.ti 0 +DESCRIPTION mkdir_____ creates specified directories +in mode 17. +.sp +The standard entries "." and ".." are made automatically. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO rmdir(I) +.sp +.ti 0 +DIAGNOSTICS "dirname ?" +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/mkdist.1 b/static/unix-v10/man1/mkdist.1 new file mode 100644 index 00000000..4273ce25 --- /dev/null +++ b/static/unix-v10/man1/mkdist.1 @@ -0,0 +1,66 @@ +.TH MKDIST 1 +.SH NAME +mkdist, insdist \(em make and install distribution packages +.SH SYNOPSIS +.ft CW +/usr/lib/dist/mkdist [-v] [-D \fIold\fP=\fInew\fP] [-[Xx] \fIcommand\fP] \fIfiles ...\fP +.sp +/usr/lib/dist/insdist [-v] [-D \fIold\fP=\fInew\fP] [-R \fIrootdir\fP] +.SH DESCRIPTION +.I Mkdist +packages the named files into a distribution package on the standard output. +A distribution package is an ordinary +.IR tar (1) +file, containing the files of the package as well as installation information +for use by +.IR insdist . +.PP +The +.B -D +option to both +.I mkdist +and +.I insdist +allows prefix substitution to be performed on pathnames going into the +distribution. (\c +.I Mkdist +arranges for all file names in the distribution to be absolute path names, +by prepending the current directory to any relative pathname arguments.) +At most one +.B -D +option will be applied to any name in the distribution, so there are no +substitution loops. If multiple +.B -D +options might match a given file name, the leftmost one from the command +line is chosen. +The +.B -R +option (\c +.I insdist +only) additionally specifies that all files are to be unpacked relative +to the given root directory. +.PP +The +.B -X +and +.B -x +options to +.I mkdist +allow a command to be given that will be executed +when the distribution is unpacked by +.I insdist . +These options are identical, except that pathname prefix substitution from +.B -D +options will be applied to a command specified in a +.B -X +option. +.PP +The +.B -v +option turns on verbose output describing what's going on. +.SH "SEE ALSO" +.IR tar (1) +.SH BUGS +The +.B -v +option should show more. diff --git a/static/unix-v10/man1/mkstand.1 b/static/unix-v10/man1/mkstand.1 new file mode 100644 index 00000000..ccc3a918 --- /dev/null +++ b/static/unix-v10/man1/mkstand.1 @@ -0,0 +1,202 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH MKSTAND 1 +.SH NAME +mkstand \- compile style standards for prose program +.SH SYNOPSIS +.B mkstand +[ +.B \-flags +][ +.B \-ver +][ +.B \-mm +| +.B \-ms +][ +.B \-li +| +.B \+li +][ +.B \-o +outfile ] file1 file2 ... +.SH DESCRIPTION +.I Mkstand +enables users to compile their own set of +.IR style (1) +standards for use by +.IR prose (1). +.I Prose +describes stylistic features of a text +and compares them to specified standards. +If a user or group, for example a writing group, +has many documents of a certain type +that they consider good, +those documents can be used as the basis for their own standards. +.I Mkstand +creates the standards, +which reflect the stylistic features +of the input documents. +Then the user can use +.I prose +to evaluate documents according to those standards. +.PP +.I Mkstand +runs +.I style +on a set of documents and computes the means +and standard deviations of certain +.I style +statistics. +Then it puts these into +.I outfile +.RI ( stand.out +is the default) in a format that +.I prose +can read. +Then if +.I prose +is run with the command: +.PP +.RS 5 +.BI "prose \-x " "outfile textfile" +.RE +.PP +it compares +.I textfile +with the standards in +.IR outfile . +The command: +.PP +.RS 5 +.BI "wwbstand \-x " "outfile" +.RE +.PP +will display the standards in a comprehensible form. +.PP +.I Mkstand +tries to produce valid standards by enforcing these requirements: +.RS 5 +.TP +1. +Input files must be at least 90 sentences or 1900 words long. +.TP +2. +If an input file has +.I style +scores that are more than 2 standard deviations from the mean, +scores for that file are excluded from the computation of the standards. +.RE +.PP +Although +.I mkstand +will compile standards for any number of documents (up to 75), +standards will be most reliable if at least 20 documents are used. +.PP +Because +.I mkstand +runs +.IR deroff (1) +on input files before computing scores, +formatting header files should be included as part of the input. +.PP +Four options affect +.IR deroff : +.RS 5 +.TP +.B \-mm +eliminate +.IR mm (1) +macros, and associated text that is not part of sentences +(e.g. headings), +from the analysis. +This is the default. +.TP +.B \-ms +eliminate +.IR ms (1) +macros, and associated text that is not part of sentences, +from the analysis. +The +.B \-ms +flag overrides the default, +.BR \-mm . +.TP +.B \-li +eliminate list items, +as defined by +.I mm +macros, from the analysis. +This is the default. +.TP +.B \+li +Include list items in the input text, +in the analysis. +This flag should be used if the texts contain lists of sentences, +but not if the texts contain many lists of non-sentences. +.RE +.PP +Other options are: +.RS 5 +.TP 11 +.BI \-o " outfile" +put standards in +.I outfile +instead of the default +.IR stand.out . +.RE +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.PP +.I Mkstand +saves the +.I style +scores it used in computing the standards in a file named +.IR styl.scores . +Users should examine the scores in this file +for any scores that seem unusual or invalid. +If any are found, +.I mkstand +should be rerun without the unusual document. +.SH FILES +.TP 21 +/tmp/$$stat.out +temporary file containing +.I style +tables of input files +.TP +stand.out +default output file containing standards +.TP +styl.scores +output file containing +.I style +scores used in compiling standards +.SH SEE ALSO +prose(1), +style(1), +deroff(1), +wwbstand(1), +wwb(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/mkstr.1 b/static/unix-v10/man1/mkstr.1 new file mode 100644 index 00000000..2906eb97 --- /dev/null +++ b/static/unix-v10/man1/mkstr.1 @@ -0,0 +1,88 @@ +.TH MKSTR 1 2/24/79 +.UC +.SH NAME +mkstr \- create an error message file by massaging C source +.SH SYNOPSIS +.B mkstr +[ +.B \- +] +messagefile prefix file ... +.SH DESCRIPTION +.I Mkstr +is used to create files of error messages. +Its use can make programs with large numbers of error diagnostics much +smaller, and reduce system overhead in running the program as the +error messages do not have to be constantly swapped in and out. +.PP +.I Mkstr +will process each of the specified +.I files, +placing a massaged version of the input file in a file whose name +consists of the specified +.I prefix +and the original name. +A typical usage of +.I mkstr +would be +.DT +.PP + mkstr pistrings xx *.c +.PP +This command would cause all the error messages from the C source +files in the current directory to be placed in the file +.I pistrings +and processed copies of the source for these files to be placed in +files whose names are prefixed with +.I xx. +.PP +To process the error messages in the source to the message file +.I mkstr +keys on the string +\%`error("' +in the input stream. +Each time it occurs, the C string starting at the `"' is placed +in the message file followed by a null character and a new-line character; +the null character terminates the message so it can be easily used +when retrieved, the new-line character makes it possible to sensibly +.I cat +the error message file to see its contents. +The massaged copy of the input file then contains a +.I lseek +pointer into the file which can be used to retrieve the message, i.e.: +.IP +.DT +.nf +\fBchar\fR efilname[] = "/usr/lib/pi_strings"; +\fBint\fR efil = -1; +.sp +error(a1, a2, a3, a4) +{ + \fBchar\fR buf[256]; + + \fBif\fR (efil < 0) { + efil = open(efilname, 0); + \fBif\fR (efil < 0) { +oops: + perror(efilname); + exit(1); + } + } + \fBif\fR (lseek(efil, (long) a1, 0) |\|| read(efil, buf, 256) <= 0) + \fBgoto\fR oops; + printf(buf, a2, a3, a4); +} +.fi +.PP +The optional +.B \- +causes the error messages to be placed at the end of the specified +message file for recompiling part of a large +.IR mkstr \|ed +program. +.SH SEE\ ALSO +lseek(2), xstr(1) +.SH AUTHORS +William Joy and Charles Haley +...SH BUGS +...All the arguments except the name of the file to be processed could be made unnecessary. diff --git a/static/unix-v10/man1/mkunique.1 b/static/unix-v10/man1/mkunique.1 new file mode 100644 index 00000000..6ad049ee --- /dev/null +++ b/static/unix-v10/man1/mkunique.1 @@ -0,0 +1,30 @@ +.TH MKUNIQUE 1 +.CT 1 shell +.SH NAME +mkunique \- create files with unique names +.SH SYNOPSIS +.B mkunique +[ +.I template ... +] +.SH DESCRIPTION +.I Mkunique +uses the library function +.IR mkunique (3) +to create +files with unique names, +one per specified template. +If no template is supplied, +.I mkunique +creates a single file with template +.LR qXXXXXX . +The resulting file names are echoed on the standard output, +one per line. +.LP +This command may be used to create names for scratch files in +publically shareable multilevel secure `blind' directories, +without violating security policy. +.SH SEE ALSO +.IR mkunique (3), +.IR mktemp (3), +.IR bl (4) diff --git a/static/unix-v10/man1/mm.1 b/static/unix-v10/man1/mm.1 new file mode 100644 index 00000000..7931c0ed --- /dev/null +++ b/static/unix-v10/man1/mm.1 @@ -0,0 +1,274 @@ +.TH MM 1 +.SH NAME +mm \- print out documents formatted with the \s-1MM\s+1 macros +.SH SYNOPSIS +.B mm +[ options ] [ files ] +.SH DESCRIPTION +.I Mm\^ +can be used to type out documents using +.IR nroff (1) +and the +.SM MM +text-formatting macro package. +It has options to specify +preprocessing by +.IR tbl (1) +and/or +.IR neqn (1) +and postprocessing by various terminal-oriented output filters. +The proper pipelines and the +required arguments and flags for +.IR nroff (1) +and +.SM MM +are generated, depending on the options selected. +.PP +.I Options\^ +for +.I mm\^ +are given below. +Any other arguments or flags (e.g., +.BR \-rC3 ) +are passed +to +.IR nroff (1) +or to +.SM MM\*S, +as appropriate. +Such options can occur in any order, +but they must appear before the +.I files\^ +arguments. +If no arguments are given, +.I mm\^ +prints a list of its options. +.PP +.PD 0 +.TP 9 +.BI \-T term +Specifies the type of output terminal; +for a list of recognized values for +.IR term , +type +.BR "help term2" . +If this option is +.I not\^ +used, +.I mm\^ +will use the value of the shell variable +.SM +.B $TERM +from the environment (see +.IR profile (5) +and +.IR environ (7)) +as the value of +.IR term , +if +.SM +.B $TERM +is set; +otherwise, +.I mm\^ +will use +.B 450 +as the value of +.IR term . +If several terminal types are specified, +the last one takes precedence. +.TP +.B \-12 +Indicates that the document is to be produced in 12-pitch. +May be used when +.SM +.B $TERM +is set to one of +.BR 300 , +.BR 300s , +.BR 450 , +and +.BR 1620 . +(The pitch switch on the +.SM DASI +300 and 300s terminals must be manually +set to +.B 12 +if this option is used.) +.TP +.B \-c +Causes +.I mm\^ +to invoke +.IR col (1); +note that +.IR col (1) +is invoked automatically by +.I mm\^ +unless +.I term\^ +is one of +.BR 300 , +.BR 300s , +.BR 450 , +.BR 37 , +.BR 4000A , +.BR 382 , +.BR 4014 , +.BR tek , +.BR 1620 , +and +.BR X . +.TP +.B \-e +Causes +.I mm\^ +to invoke +.IR neqn (1); +also causes +.I neqn +to read the +.B /usr/pub/eqnchar +file (see +.IR eqnchar (7)). +.TP +.B \-t +Causes +.I mm\^ +to invoke +.IR tbl (1). +.TP +.B \-E +Invokes the +.B \-e +option of +.IR nroff (1). +.TP +.B \-y +Causes +.I mm\^ +to use the non-compacted version of the macros (see +.IR mm (7)). +.PD +.PP +As an example (assuming that the shell variable +.SM +.B $TERM +is set in the environment to +.BR 450 ), +the two command lines below are equivalent: +.RS +.PP +mm \|\-t \|\-rC3 \|\-12 \|ghh\(** +.br +tbl \|ghh\(** \|\(bv \|nroff \|\-cm \|\-T450\-12 \|\-h \|\-rC3 +.RE +.PP +.I Mm\^ +reads the standard input +when +.B \- +is specified +instead of any file names. +(Mentioning other files together with +.B \- +leads to disaster.)\ +This option allows +.I mm\^ +to be used as a filter, e.g.: +.RS +.PP +cat \|dws \|\(bv \|mm \|\- +.RE +.SH HINTS +.PD 0 +.TP +1. +.I Mm\^ +invokes +.IR nroff (1) +with the +.B \-h +flag. +With this flag, +.IR nroff (1) +assumes that the terminal has tabs set +every 8 character positions. +.TP +2. +Use the +.BI \-o list\^ +option of +.IR nroff (1) +to specify ranges of pages to be output. +Note, however, that +.IR mm , +if invoked with +one or more of the +.BR \-e , +.BR \-t , +and +.B \- +options, +.I together\^ +with the +.BI \-o list\^ +option of +.IR nroff (1) +may cause a harmless ``broken pipe'' diagnostic +if the last page of the document is not specified in +.IR list . +.TP +3. +If you use the +.B \-s +option of +.IR nroff (1) +(to stop between pages of output), +use line-feed (rather than return or new-line) +to restart the output. +The +.B \-s +option of +.IR nroff (1) +does not work with the +.B \-c +option of +.IR mm , +or if +.I mm\^ +automatically invokes +.IR col (1) +(see +.B \-c +option above). +.TP +4. +If you lie to +.I mm\^ +about the kind of terminal its output will be printed on, +you'll get (often subtle) garbage; +however, if you are redirecting output into a file, use the +.B \-T37 +option, and then use the appropriate terminal filter when you actually print that file. +.PD +.br +.ne 4 +.SH SEE ALSO +.tr ~ +.PD 0 +col(1), env(1), eqn(1), greek(1), mmt(1), nroff(1), tbl(1), +profile(5), mm(7), term(7). +.PP +.I "\s-1MM\s+1\-Memorandum Macros\^" +by D.~W. Smith and J.~R. Mashey. +.PP +.I "Typing Documents with \s-1MM\s+1\|" +by D.~W. Smith and E.~M. Piskorik. +.PD +.SH DIAGNOSTICS +.tr ~~ +``mm: \|no input file''\| if +none of the arguments is a readable file and +.I mm\^ +is not used as a filter. diff --git a/static/unix-v10/man1/mmt.1 b/static/unix-v10/man1/mmt.1 new file mode 100644 index 00000000..a5663650 --- /dev/null +++ b/static/unix-v10/man1/mmt.1 @@ -0,0 +1,165 @@ +.TH MMT 1 +.SH NAME +mmt, mvt \- typeset documents, view graphs, and slides +.SH SYNOPSIS +.B mmt +[ options ] [ files ] +.PP +.B mvt +[ options ] [ files ] +.SH DESCRIPTION +These two commands are very similar to +.IR mm (1), +except that they both typeset their input via +.IR troff (1), +as opposed to formatting it via +.IR nroff (1); +.I mmt\^ +uses +the +.SM MM +macro package, +while +.I mvt\^ +uses the +Macro Package for +View Graphs and Slides. +These two commands have options to specify +preprocessing by +.IR tbl (1) +and/or +.IR eqn (1). +The proper pipelines and the +required arguments and flags for +.IR troff (1) +and +for +the macro packages +are generated, depending on the options selected. +.PP +.I Options\^ +are given below. +Any other arguments or flags (e.g., +.BR \-rC3 ) +are passed +to +.IR troff (1) +or to +the macro package, +as appropriate. +Such options can occur in any order, +but they must appear before the +.I files\^ +arguments. +If no arguments are given, +these commands +print a list of their options. +.PP +.PD 0 +.TP 10 +.B \-e +Causes +these commands +to invoke +.IR eqn (1); +also causes +.I eqn +to read the +.B /usr/pub/eqnchar +file (see +.IR eqnchar (7)). +.TP +.B \-t +Causes +these commands +to invoke +.IR tbl (1). +.TP +.B \-Tst +Directs the output to the +.SM MH STARE +facility. +.TP +.B \-Tvp +Directs the output to a Versatec printer via the +.IR vpr (1) +spooler; +this option is not available at all +.SM UNIX +sites. +.TP +.B \-T4014 +Directs the output to a Tektronix 4014 terminal via the +.IR tc (1) +filter. +.TP +.B \-Ttek +Same as +.BR \-T4014 . +.TP +.B \-a +Invokes the +.B \-a +option of +.IR troff (1). +.TP +.B \-y +Causes +.I mmt\^ +to use the non-compacted version of the macros (see +.IR mm (7)). +No effect for +.IR mvt . +.PD +.PP +These commands read the standard input +when +.B \- +is specified +instead of any file names. +.PP +.I Mvt\^ +is just a link to +.I mmt\^. +.SH HINT +Use the +.BI \-o list\^ +option of +.IR troff (1) +to specify ranges of pages to be output. +Note, however, that these commands, if invoked with +one or more of the +.BR \-e , +.BR \-t , +and +.B \- +options, +.I together\^ +with the +.BI \-o list\^ +option of +.IR troff (1) +may cause a harmless ``broken pipe'' diagnostic +if the last page of the document is not specified in +.IR list . +.SH SEE ALSO +.tr ~ +.PD 0 +env(1), eqn(1), mm(1), tbl(1), tc(1), troff(1), profile(5), +environ(7), mm(7), mv(7). +.PP +.I "\s-1MM\s+1\-Memorandum Macros\^" +by D.~W. Smith and J.~R. Mashey. +.PP +.I "Typing Documents with \s-1MM\s+1\^" +by D.~W. Smith and E.~M. Piskorik. +.PP +.I "A Macro Package for View Graphs and Slides\^" +by T.~A. Dolotta and D.~W. Smith (in preparation). +.PD +.SH DIAGNOSTICS +.tr ~~ +``m[mv]t: \|no input file''\| if +none of the arguments is a readable file and +the command +is not used as a filter. diff --git a/static/unix-v10/man1/monk.1 b/static/unix-v10/man1/monk.1 new file mode 100644 index 00000000..bc7adb64 --- /dev/null +++ b/static/unix-v10/man1/monk.1 @@ -0,0 +1,341 @@ +.TH MONK 1 +. \".TH MONK 1 EXPTOOLS +.CT 1 writing_other +.SH NAME +monk, monksample, monkspell, monkmerge \- typeset documents and letters +.SH SYNOPSIS +.B monk +[ +.I options +|\ +.I files +] +.PP +.B monksample +[ +.I sample +] +.PP +.B monkspell +[ +.I options +] +... +[ +.I files +] +... +.PP +.B monkmerge +[ +.I files +] +.SH DESCRIPTION +.I Monk +formats the text in the named +.I files +for +phototypesetting, using other +.IR troff (1) +preprocessors as necessary. +.I Options\^ +are given below. +Any other arguments or flags (e.g., +.BR -o1-2 ) +are passed +to +.I troff. +Options can occur in any order and can be intermixed with files. +.PP +.PD 0 +.TP +.BI -A commands +Invoke the +.I commands +after all preprocessors and before +.IR troff . +.TP +.BI -B commands +Invoke the +.I commands +after +.I monk +and before any other preprocessor. +.PD +.TP +.B -E +Invoke the +.B -e +option of +.IR troff . +.TP +.BR -N +Use the uncompressed monk databases. +This facilitates debugging monk database entries. +.TP +.BI -R file +Use +.I file +as the index file for +.IR prefer (1). +.TP +.BI -S dest +Send output to device +.IR dest . +Supported forms are: +.RS +.TF -Sapsend +.TP +.BR -Sapsend +Linotronic L200P; see +.IR apsend (1). +.TP +.BR -Sd202 +Mergenthaler Linotron 202; see +.IR d202 (A). +. \".TP +. \".BR -Si300 +. \"\s-1EXPTOOLS\s+1 spooler; see +. \".IR i300 (1). +.TP +.BR -Slp +Postscript line printer; see +.IR lp (1) +(default). +. \".TP +. \".BR -Slpr +. \"Allentown spooler; see +. \".IR lpr (1) +.TP +.BR -Sproof +Teletype 5620 or 630 terminal; see +.IR proof (9.1). +. \".TP +. \".BR -Sprt +. \"Unison spooler; see +. \".IR prt (1). +.TP +.BR -Sthink +HP ThinkJet; see +.IR thinkblt (9.1). +.TP +.BR -S- +Standard output. +.PD +.RE +.TP 0 +.BI -T device +Prepare output for device specified as in +.B -T +option of +.IR troff (1). +.TP +.B -x +Shows the preprocessors that are being invoked. +.PD +.PP +The following options are not normally needed because monk automatically +determines which preprocessors are required. +However, if the commands in +.B -A +or +.B -B +options require a preprocessor, their use can be forced by +the following options. +.PP +.PD 0 +.TP +.B -c +.I col +postprocessor; see +.IR column (1). +(Automatically invoked for many printing terminals.) +.TP +.B -cn +.IR cite (A) +. \".TP +. \".B -cw +. \".IR cw (1) +.TP +.B -e +.IR eqn (1) +.TP +.B -g +.IR grap (1) +.TP +.B -i +.IR ideal (1) +.TP +.B -ipa +.IR ipa (A) +.TP +.B -p +.IR pic (1) +.TP +.B -r +.IR prefer (1) +.TP +.B -t +.IR tbl (1) +.TP +.B -tp +.IR tped ; +see +.IR ped (9.1) +.PD +.PP +.I Monksample +produces on the standard output a skeleton document that you can +redirect into a file and edit. +If no argument is given, +.I monksample +prints a list of the available +.I samples. +They are: +.TF centerpb +.TP +.B acm +Association for Computing Machinery galley sheets. +.TP +.B centerpb +Center Phone Book. +.TP +.B cspress +Computer Science Press galley sheets. +.TP +.B form1 +AT&T Bell Laboratories merit review form 1. +.TP +.B im +AT&T Bell Laboratories internal memorandum. +.TP +.B kluwer +Kluwer Academic Publishers book format. +.TP +.B letter +Letters with optional AT&T letterhead. +.TP +.B memo +Internal AT&T correspondence. +.TP +.B model +IEEE/ACM model sheets. +.TP +.B research +AT&T Bell Laboratories bi-annual research report. +.TP +.B rp +AT&T Bell Laboratories release paper. +.TP +.B song +Song sheets for singing at nursing homes. +.TP +.B tc +AT&T Bell Laboratories technical correspondence. +.TP +.B tm +AT&T Bell Laboratories technical memorandum. +.PD +.PP +.I Monkspell +looks up words from the named +.I files +(standard input default) +in a public spelling list and in a private list. +Possible misspellings\(emwords +that occur in neither and are not plausibly derivable +from the former\(emare placed on the standard output. +It ignores constructs of +.IR monk (1), +.IR troff (1) +and its standard preprocessors. +It runs +.IR demonk (1) +with all specified options and passes its output to +.IR spell (1). +The following options, in addition to all options for +.IR deroff (1), +are available: +.TP +.BI -d dir +Use non-standard +.I monk +database directory +.I +dir. +.TP +.B -i +Ignore +.I monk +.L |\^insert +and +.L |\^source +commands as well as +.I troff +.L .so +and +.L .nx +requests. +.PP +.I Monkmerge +reads each file and copies it to standard output, +replacing +.I monk +.B insert +commands with the file contents. +It ignores +.I monk +.B source +commands, which include a file without processing the +.I monk +commands within. +If no input file is given, +.I monkmerge +reads from standard input. +.SH EXAMPLES +.TP +.L +monk paper +Format the file using the default typesetter fonts and output device. +.TP +.L +monk -Sproof paper +Format a file and proof it on a 5620 terminal. +.SH FILES +.TF $MHOME/sample +.TP +.F $MHOME/cite +forward and backward reference preprocessor +.TP +.F $MHOME/db +monk databases +.TP +.F $MHOME/monk +monk compiler +.TP +.F $MHOME/tmac.p +macros for +.IR pic (1) +preprocessor +.TP +.F $MHOME/sample +directory for existing samples +.SH "SEE ALSO" +.IR prefer (1), +.IR troff (1), +.IR deroff (1), +.IR tex (1), +.IR lp (1), +.IR apsend (1), +.IR d202 (A), +.IR thinkblt (9.1), +.IR proof (9.1) +.br +Murrel, S. L., +Kowalski, T. J., +`Typing Documents on the UNIX System: Using Monk 0.6', +this manual, Volume 2 +. \".SH AUTHOR +. \"Sharon Peeters and T. J. Kowalski +. \".SH PROVIDER +. \"Alan Hastings diff --git a/static/unix-v10/man1/movie.1 b/static/unix-v10/man1/movie.1 new file mode 100644 index 00000000..0cc8e53a --- /dev/null +++ b/static/unix-v10/man1/movie.1 @@ -0,0 +1,165 @@ +.TH MOVIE 1 +.CT 1 files prog_other +.SH NAME +movie, stills \- algorithm animation +.SH SYNOPSIS +.B movie +[ +.B -t +.I termprog +] +[ +.BI -m memory +] +[ +.I file +] +.br +.B stills +[ +.I files ... +] +.SH DESCRIPTION +.PP +.I Movie +converts a script in a movie language +into an internal representation, then displays it in a window on a +Teletype 5620, AT&T630, or X11 system (depending on which version has been compiled). +If the filename is of the form +\f2file\f(CW.s\f1, +.I movie +creates the intermediate form in +\f2file\f(CW.i\f1, +which will be used in subsequent calls if it is more recent than +\f2file\f(CW.s\f1. +The options are: +.TP +.BI -t " termprog +Load +.I termprog +instead of the default terminal program. +.br +.ns +.TP +.B -m\f2mem\fP +Use +.I mem +bytes of terminal memory instead of the default. +.PP +In the terminal, button 1 stops and starts the movie; +button 2 adjusts view sizes and selects clicks; +button 3 sets various parameters. +.PP +.SS Movie language +.br +.B text +.I options x y string. +Text is centered and medium size by default; options: one of +.B "center +.B ljust +.B rjust +.B above +.BR below , +and one of +.BR "small +.B medium +.B big +.BR bigbig . +A leading quote is stripped from +.IR string , +as is a trailinbg quote if a leading one is present. +.br +.BI line +.I "options x1 y1 x2 y2. +Lines are solid by default; options: one of +.B "fat +.B fatfat +.B dotted +.B dashed +and one of +.B "-> +.B <- +.BR <-> . +.br +.BI box +.I "options xmin ymin xmax ymax. +A box may +.BR fill ed. +.br +.BI circle +.I "options x1 y1 radius. +Radius is measured in the +.I x +dimension. +A circle may be +.BR fill ed. +.br +Any text or geometrical object may be labeled with a name and colon. +A subsequent appearance of a label in the same view erases the previous +object with that label. +.BI erase +.I label +erases the object explicitly. +.B clear +erases all objects currently in the current view. +.br +.BI click +.I "optional name +leaves a mark in the intermediate with this name; +clicks are used to control stepping in a movie or to define frames +for a set of stills. +.br +A movie may consist of multiple independent views, +each presented as a rectangular sub-window. +.BI view +.I name +associates +subsequent objects with this view, +until changed again. +Labels and coordinates are local to views. +If no view statements appear, there is a single implicit view +.BR def.view . +.br +Comments follow #; blank lines are ignored. +.PP +.I Stills +converts selected frames of a movie into +commands for +.IR pic (1). +Commands for +.I stills +begin with +.B .begin stills +and end with +.B .end +.BR stills . +.SH FILES +All files are in +.BR /usr/lib/movie . +.TF stills.awk +.TP +.F develop +Shell script to control conversion from script language to internal form. +.TP +.F fdevelop +C program that does the work. +.TP +.F stills.awk +Awk program to process stills language into +.IR pic (1). +.TP +.F anim +Host end of the animation system. +.TP +.F animterm +terminal end. +.TP +.F newer +Test whether one file is newer than another. +.SH "SEE ALSO" +J. L. Bentley and B. W. Kernighan, +.IR "A System for Algorithm Animation" , +CSTR 132, January, 1987. +.SH BUGS +The 630 can only handle 65000 bytes of memory. +.br diff --git a/static/unix-v10/man1/mp.1 b/static/unix-v10/man1/mp.1 new file mode 100644 index 00000000..62174fef --- /dev/null +++ b/static/unix-v10/man1/mp.1 @@ -0,0 +1,304 @@ +.TH MP 1 +.CT 1 writing_other +.SH NAME +mp, MetaPost \- system for drawing pictures +.SH SYNOPSIS +.B mp +[ +.B -I +] +[ +.B -T +] +[ +.I first-line +] +.SH DESCRIPTION +.I Mp +interprets the MetaPost language and produces +.I PostScript +pictures. The MetaPost language is similar to Knuth's Metafont +with additional features for including +.IR tex (1) +or +.IR troff (1) +commands and accessing features of PostScript not found in Metafont. +The +.B -T +flag selects +.I troff +instead of +.IR tex . +.PP +An argument given on the command line +behaves as the first input line. +That can be either a (possibly truncated) file name +or a sequence MetaPost commands starting with +.L \e +and including an +.L input +command. Thus +.L mp figs +processes the file +.LR figs.mp . +The basename of +.L figs +becomes the +.IR jobname , +and is used in forming output file names. If no file is named, the +jobname becomes +.LR mpout . +The default +.L .mp +extension can be overridden by specifying an extension explicitly. +.PP +There is normally one output file for each picture generated, +and the output files are named +.IR jobname.nnn , +where +.I nnn +is a number passed to the +.L beginfig +macro. The output file name is +.IB jobname .ps +if this number is negative. +.PP +The output files can be used as figures in a TeX document by including +.IP +.BI "\especial{psfile=" jobname.nnn } +.LP +in the TeX document. Alternatively, one can +.L \einput epsf.tex +and then use the macro +.BI "\eepsfbox{" jobname.nnn } +to produce a box of the appropriate size containing the figure. +.TP +.BI btex " TeX commands " etex +This causes +.I mp +to generate a MetaPost picture expression that corresponds to the +TeX commands. If the TeX commands generate +more than one line of text, it must be in a +.L \evbox +or a minipage environment. +.TP +.BI verbatimtex " TeX commands " etex +This is ignored by +.I mp +except that the TeX commands are passed on to TeX. When using LaTeX +instead of TeX the input file must start with a +.L verbatimtex +block that gives the +.L \edocumentstyle +and +.L "\ebegin{document}" +commands. +.PP +Since most TeX fonts have to be downloaded as bitmaps, the +.L btex +feature works best when the output of +.L mp +is to be included in a TeX document so that +.IR dvips (1) +can download the fonts. For self-contained PostScript output that can be +used directly or included in a +.I troff +document, start your MetaPost input file with the command +.L "prologues:=1" +and stick to standard PostScript fonts. TeX and MetaPost use the names in the +third column of the file +.LR /usr/lib/mp/trfonts.map . +.PP +MetaPost output can be included in a +.I troff +document via the +.IR mpictures (6) +macro package. In this case +.I mp +should be invoked with the +.B -T +flag so that the commands between +.L btex +and +.L etex +or between +.L verbatimtex +and +.L etex +are interpreted as +.I troff +instead of TeX. (This automatically sets +.L prologues:=1 +). +.PP +Here is a list of the environment variables affect the behavior of +.IR mp : +.TF MPXCOMMAND +.TP +.B MPINPUTS +Search path for +.L \einput +files. +It should be colon-separated, +and start with dot. +Default: +.L .:/usr/lib/mp +.TP +.B MFINPUTS +Auxiliary search path for +.L \einput +files with +.L .mf +extensions. +Default: +.L .:/usr/lib/mf +.TP +.B TEXFONTS +Search path for font metric files. +Default: +.L .:/usr/lib/tex/fonts/tfm +.TP +.B MPXCOMMAND +The name of a shell script that converts embedded typesetting commands +to a form that +.I mp +understands. +Defaults: +.L /usr/lib/mp/bin/makempx +for +.I tex +and +.L /usr/lib/mp/bin/troffmpx +for +.I troff +.TP +.B TEX +The version of TeX to use when processing +.L btex +and +.L verbatimtex +commands. Default: +.L tex +.TP +.B TROFF +The +.I troff +pipeline for +.L btex +and +.L verbatimtex +commands. Default: +.B eqn -d\e$\e$ | troff -Tpost +.TP +.B MPMEMS +Search path for +.L .mem +files. Default: +.L .:/usr/lib/mp +.TP +.B MPPOOL +Search path for strings. +Default: +.L .:/usr/lib/mp +.TP +.B MPEDITOR +A command for invoking an editor with +.L %s +in place of the file name and +.L %d +in place of the line number. +Default: +.L /bin/ed %s +.TP +.B TEXVFONTS +Search path for virtual fonts. +Default: +.L /usr/lib/tex/fonts/psvf +.PD +.PP +A +.L .mem +file is a binary file that permits fast loading of fonts and macro packages. +.I Mp +reads the default +.F plain.mem +unless another +.L .mem +file is specified at the start of the first line with an +.L & +just before it. There is also an +.F mfplain.mem +that simulates plain Metafont so that +.I mp +can read +.L .mf +fonts. (Plain Metafont is described in +.I The +.IR METAFONTbook ). +.PP +Experts can create +.L .mem +files be invoking +.I mp +with the +.B -I +switch and giving macro definitions followed by a +.L dump +command. +.PP +The MetaPost language is similar to Metafont, but the manual +.I A User's Manual for MetaPost +assumes no knowledge of Metafont. MetaPost does not have bitmap +output commands or Metafont's online display mechanism. Use +.IR dvips (1) +and +.IR psi (9.1) +to see the results before printing. +.SH FILES +.TF /usr/lib/tex/macros/doc/mpintro.tex +.TP +.F /usr/lib/mp/* +macros, +.L .mem +files, and tables for handling included +.I tex +and +.I troff +.TP +.F /usr/lib/mp/bin +Directory for programs that handle included +.I tex +and +.IR troff . +.F /usr/lib/mp/trfonts.map +table of corresponding font names for +.IR troff , +PostScript, and TeX +.TP +.F /usr/lib/tex/macros/epsf.tex +The TeX input file where the +.L \eepsfbox +macro is defined +.TP +.F /usr/lib/tex/macros/doc/mpintro.tex +TeX input for a document that describes the MetaPost language +.TP +.F /usr/lib/mp/examples.mp +The source file for the figures used in +.F mpintro.tex +.TP +.F /n/bowell/usr/src/cmd/tex/mp/doc/* +More information on using MetaPost with +.IR troff . +.SH "SEE ALSO" +.IR tex (1), +.IR lp (1), +.IR psi (9.1), +.br +Donald E. Knuth, +.I The METAFONTbook, +Addison Wesley, 1986, +.br +John D. Hobby, +.I A User's Manual for MetaPost +AT&T Bell Labs Computing Science Technical Report 162, 1991. diff --git a/static/unix-v10/man1/mt.1 b/static/unix-v10/man1/mt.1 new file mode 100644 index 00000000..e01ec0c5 --- /dev/null +++ b/static/unix-v10/man1/mt.1 @@ -0,0 +1,124 @@ +.pa 1 +.he 'MT (I)'6/12/72'MT (I)' +.ti 0 +NAME mt -- manipulate magtape +.sp +.ti 0 +SYNOPSIS mt__ [ key ] [ name ... ] +.sp +.ti 0 +DESCRIPTION mt__ +saves and restores selected portions of the file system +hierarchy on magtape. +Its actions are controlled by the key___ argument. +The key is a string of characters containing +at most one function letter and possibly +one or more function modifiers. +Other arguments to the command are file or directory +names specifying which files are to be dumped, restored, +or tabled. + +The function portion of +the key is specified by one of the following letters: + +.in +6 +.ti -3 +r The indicated files and directories, together with +all subdirectories, are dumped +onto the tape. +The old contents of the tape are lost. + +.ti -3 +x extracts the named files from the tape to the file system. +The owner, mode, and date-modified are restored to what they +were when the file was dumped. +If no file argument is given, the entire contents of the +tape are extracted. + +.ti -3 +t lists the names of all files stored on the tape which +are the same as or are hierarchically below +the file arguments. If no file argument is given, +the entire contents of the tape are tabled. + +.ti -3 +l is the same as t_ except that an expanded listing +is produced giving all the available information about the +listed files. + +.in -6 +The following characters may be used in addition to the letter +which selects the function desired. + +.in +6 +.ti -3 +0, ..., 7 This modifier selects the drive on which the tape is mounted. +"0" is the default. + +.ti -3 +v Normally mt__ does its work silently. The v_ (verbose) +option causes it to type the name of each file it treats +preceded by a letter to indicate what is happening. + +.in +2 + a file is being added + x file is being extracted + +.in -2 +The v_ option can be used with r_ and x_ only. + +.ti -3 +f causes +new entries copied on tape to be 'fake' in that +only the entries, not the data associated +with the entries are updated. +Such fake entries cannot be extracted. +Usable only with r_. + +.ti -3 +w causes mt__ to pause before treating each file, type +the indicative letter and the file name (as with v_) +and await the user's response. Response +"y" means "yes", so the file is treated. Null response +means "no", and the file does not take part +in whatever is being done. Response "x" means "exit"; +the mt__ command terminates immediately. In the x_ function, +files previously asked about +have been extracted already. +With r_, no change has been made to the tape. + +.ti -3 +m make (create) directories during an x_ if necessary. +.in -6 +.sp +.ti 0 +FILES /dev/mt? +.sp +.ti 0 +SEE ALSO tap(I), tap(V) +.sp +.ti 0 +DIAGNOSTICS Tape open error +.br +Tape read error +.br +Tape write error +.br +Directory checksum +.br +Directory overflow +.br +Seek error +.br +Tape overflow +.br +Phase error (a file has changed after it was selected for +dumping but before it was dumped) +.br +.sp +.ti 0 +BUGS If, during an "x", +the files are specified in a different order +than they are on the tape, +seek errors will result because the tape +cannot be rewound. diff --git a/static/unix-v10/man1/mv.1 b/static/unix-v10/man1/mv.1 new file mode 100644 index 00000000..7966ab0a --- /dev/null +++ b/static/unix-v10/man1/mv.1 @@ -0,0 +1,28 @@ +.pa 1 +.he 'MV (I)'2/9/73'MV (I)' +.ti 0 +NAME mv -- move or rename a file +.sp +.ti 0 +SYNOPSIS mv__ name\d1\u name\d2\u +.sp +.ti 0 +DESCRIPTION mv__ +changes the name of name\d1\u to +name\d2\u. +If name\d2\u is a directory, name\d1\u is moved to +that directory with its original file-name. +Directories may only be moved within the same parent +directory (just renamed). +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO -- +.sp +.ti 0 +DIAGNOSTICS yes +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/newcrypt.1 b/static/unix-v10/man1/newcrypt.1 new file mode 100644 index 00000000..4fe22985 --- /dev/null +++ b/static/unix-v10/man1/newcrypt.1 @@ -0,0 +1,65 @@ +.TH ENCRYPT 1 +.SH NAME +encrypt, decrypt \- encrypt or decrypt a message or file +.SH SYNOPSIS +.B encrypt +[ +.B \-p +] +[ password ] +.br +.B decrypt +[ +.B \-p +] +[ password ] +.SH DESCRIPTION +.I Encrypt +( +.I decrypt +) +reads from the standard input and writes +on the standard output. +The +.I password +is a key, up to 127 characters in length, which selects a particular transformation. +If no +.I password +is given, +.I encrypt +demands a key from the terminal (without echoing what the user types). +If the wrong key is given to decrypt, it will usually exit without +writing on standard output. +.PP +If the +.B \-p +option is specified, the ciphertext will be encoded into printing +characters only; suitable for sending through mail. +In this mode, +.B decrypt +ignores any lines that do not have a special prefix (added by +.B encrypt +), +so messages received in the mail can be read without having to edit +out headers. +.PP +Encryption takes place in three layers. The first addresses traffic +analysis threats by hiding the size of the message and insuring that +if the same message is send repeatedly with the same +.I password +the ciphertext will be entirely different each time. +The second layer is the proposed Data Encryption Standard (DES) used +in Cipher Block Chaining (CBC) mode. Finally, a key-dependent character +transposition is applied to the ciphertext which impedes the +assembly of corresponding pairs of DES blocks under a known-plaintext attack. +.PP +The user is encouraged to use a lengthy password. A short sequence of +words chosen at random from a dictionary and committed to memory is +a good plan. +.SH FILES +/dev/tty for typed key +.SH AUTHOR +D.P.Mitchell +.SH BUGS +This encryption program is not provably secure, and the author gives no +guarantee that it cannot be broken. diff --git a/static/unix-v10/man1/newcsh.1 b/static/unix-v10/man1/newcsh.1 new file mode 100644 index 00000000..56f29c23 --- /dev/null +++ b/static/unix-v10/man1/newcsh.1 @@ -0,0 +1,366 @@ +.TH NEWCSH 1 +.UC 4 +.bd S 3 +.SH NAME +newcsh \- description of new csh features (over oldcsh) +.SH SYNOPSIS +.B csh +\fIcsh-options\fR +.SH SUMMARY +This is a summary of features new in +.IR csh (1) +in this version of the system; an older version of +.I csh +is available as +.I oldcsh. +This newer +.I csh +has some new process control primitives and a few other new features. +Users of +.I csh +must (and automatically) use the new terminal driver (summarized in +.IR newtty(4) +and completely described with the old in +.IR tty (4)) +which allows generation of some new +interrupt signals from the keyboard which tell jobs to stop, +and arbitrates access to the terminal; +on CRT's the command ``stty crt'' is +normally placed in the +.I .login +file to be executed at login, +to set other useful modes of this terminal driver. +.PP +.B "Jobs." +.PP +The most important new feature in this shell is the control of +.I jobs. +A job is associated with each pipeline, where a pipeline is either +a simple command like ``date'', or a pipeline like ``who | wc''. +The shell keeps a table of current jobs, and assigns them small +integer numbers. +When you start a job in the background, the shell prints a line +which looks like: +.PP +\ \ \ \ [1] 1234 +.PP +this indicating that the job which was started asynchronously with ``&'' +is job number 1 and has one (top-level) process, whose process id is 1234. +The set of current jobs is listed by the +.I jobs +command. +.PP +If you are running a job and wish to do something else you may hit the +key ^Z (control-Z) which sends a +.I stop +signal to the current job. The shell will then normally indicate that +the job has been ``Stopped'', and print another prompt. +You can then +put the job in the background with the command ``bg'', or run +some other commands and then return the job to the foreground with +``fg''. +A ^Z takes effect immediately and is like an interrupt in that +pending output and unread input are discarded when it is typed. +There is another special key ^Y which does not generate a stop signal +until a program attempts to +.IR read (2) +it. +This can usefully be typed ahead when you have prepared some commands +for a job which you wish to stop after it has read them. +.PP +A job being run in the background will stop if it tries to read +from the terminal. Background jobs are normally allowed to produce output, +but this can be disabled by doing ``stty tostop''. If you set this +tty option, then background jobs will stop when they try to produce +output like they do when they try to read input. +.PP +There are several ways to refer to jobs in the shell. The character +``%'' introduces a job name. If you wish to refer to job number 1, you can +name it as ``%1''. Just naming a job brings it to the foreground; thus +``%1'' is a synonym for ``fg %1'', bringing job 1 back into the foreground. +Similarly saying ``%1 &'' resumes job 1 in the background. +Jobs can also be named by prefixes of the string typed in to start them, +if these prefixes are unambiguous, thus ``%ex'' would normally restart +a suspended +.IR ex (1) +job, if there were only one suspended job whose name began with +the string ``ex''. It is also possible to say ``%?string'' +which specifies a job whose text contains +.I string, +if there is only one such job. +.PP +The shell also maintains a notion of the current and previous jobs. +In output pertaining to jobs, the current job is marked with a ``+'' +and the previous job with a ``\-''. The abbreviation ``%+'' refers +to the current job and ``%\-'' refers to the previous job. For close +analogy with the +.I history +mechanism, +``%%'' is also a synonym for the current job. +.PP +.B "Status reporting." +.PP +This shell learns immediately whenever a process changes state. +It normally informs you whenever a job becomes blocked so that +no further progress is possible, but only just before it prints +a prompt. This is done so that it does not otherwise disturb your work. +If, however, you set the shell variable +.I notify, +the shell will notify you immediately of changes of status in background +jobs. +There is also a shell command +.I notify +which marks a single process so that its status changes will be immediately +reported. By default +.I notify +marks the current process; +simply say ``notify'' after starting a background job to mark it. +.PP +When you try to leave the shell while jobs are stopped, you will +be warned that ``You have stopped jobs.'' You may use the ``jobs'' +command to see what they are. If you do this or immediately try to +exit again, the shell will not warn you a second time, and the suspended +jobs will be unmercifully terminated. +.PP +.B "New builtin commands." +.HP 5 +.B bg +.br +.ns +.HP 5 +\fBbg\ %\fRjob\ ... +.br +Puts the current or specified jobs into the background, continuing them +if they were stopped. +.HP 5 +.B fg +.br +.ns +.HP 5 +\fBfg\ %\fRjob\ ... +.br +Brings the current or specified jobs into the foreground, continuing them if +they were stopped. +.HP 5 +.B jobs +.br +.ns +.HP 5 +.B "jobs \-l" +.br +Lists the active jobs; given the +.B \-l +options lists process id's in addition to the normal information. +.HP 5 +\fBkill %\fRjob +.br +.ns +.HP 5 +\fBkill\ \-\fRsig\ \fB%\fRjob\ ... +.br +.ns +.HP 5 +\fBkill\fR\ pid +.br +.ns +.HP 5 +\fBkill\ \-\fRsig\ pid\ ... +.br +.ns +.HP 5 +\fBkill\ \-l\fR +.br +Sends either the TERM (terminate) signal or the +specified signal to the specified jobs or processes. +Signals are either given by number or by names (as given in +.I /usr/include/signal.h, +stripped of the prefix ``SIG''). +The signal names are listed by ``kill \-l''. +There is no default, saying just `kill' does not +send a signal to the current job. +If the signal being sent is TERM (terminate) or HUP (hangup), +then the job or process will be sent a CONT (continue) signal as well. +.HP 5 +.B notify +.br +.ns +.HP 5 +\fBnotify\ %\fRjob\ ... +.br +Causes the shell to notify the user asynchronously when the status of the +current or specified jobs changes; normally notification is presented +before a prompt. All jobs are marked ``notify'' if the shell variable +``notify'' is set. +.HP 5 +\fBstop\ %\fRjob\ ... +.br +Stops the specified job which is executing in the background. +.HP 5 +\fB%\fRjob +.br +Brings the specified job into the foreground. +.HP 5 +\fB%\fRjob \fB&\fR +.br +Continues the specified job in the background. +.br +.ne 5 +.PP +.B "Process limitations." +.PP +The shell provides access to an experimental facility for limiting +the consumption by a single process of system resources. +The following commands control this facility: +.HP 5 +\fBlimit\fR \fIresource\fR \fImaximum-use\fR +.HP 5 +\fBlimit\fR \fIresource\fR +.br +.ns +.HP +\fBlimit\fR +.br +Limits the consumption by the current process and each process +it creates to not individually exceed \fImaximum-use\fR on the +specified \fIresource\fR. If no \fImaximum-use\fR is given, then +the current limit is printed; if no \fIresource\fR is given, then +all limitations are given. +.IP +Resources controllable currently include \fIcputime\fR (the maximum +number of cpu-seconds to be used by each process), \fIfilesize\fR +(the largest single file which can be created), \fIdatasize\fR +(the maximum growth of the data+stack region via +.IR sbrk (2) +beyond the end of the program text), \fIstacksize\fR (the maximum +size of the automatically-extended stack region), and \fIcoredumpsize\fR +(the size of the largest core dump that will be created). +.IP +The \fImaximum-use\fR may be given as a (floating point or integer) +number followed by a scale factor. For all limits other than \fIcputime\fR +the default scale is ``k'' or ``kilobytes'' (1024 bytes); +a scale factor of ``m'' or ``megabytes'' may also be used. +For cputime the default scaling is ``seconds'', while ``m'' for minutes +or ``h'' for hours, or a time of the form ``mm:ss'' giving minutes +and seconds may be used. +.IP +For both \fIresource\fR names and scale factors, unambiguous prefixes +of the names suffice. +.HP 5 +\fBunlimit\fR \fIresource\fR +.br +.ns +.HP 5 +\fBunlimit\fR +.br +Removes the limitation on \fIresource\fR. If no \fIresource\fR +is specified, then all \fIresource\fR limitations are removed. +.ne 5 +.PP +.B "Directory stack." +.PP +This shell now keeps track of the current directory (which is kept +in the variable +.I cwd) +and also maintains a stack of directories, which is printed by the +command +.I dirs. +You can change to a new directory and push down the old directory +stack by using the command +.I pushd +which is otherwise like the +.I chdir +command, changing to its argument. +You can pop the directory stack by saying +.I popd. +Saying +.I pushd +with no arguments exchanges the top two elements of the directory stack. +The elements of the directory stack are numbered from 1 starting at the top. +Saying +.I pushd +with a argument ``+\fIn\fR'' rotates the directory stack to make that entry +in the stack be at the top and changes to it. +Giving +.I popd +a ``+\fIn\fR'' argument eliminates that argument from the directory stack. +.PP +.B "Miscellaneous." +.PP +This shell imports the environment variable USER into the variable +.I user, +TERM into +.I term, +and +HOME into +.I home, +and exports these back into the environment whenever the normal +shell variables are reset. +The environment variable PATH is likewise handled; it is not +necessary to worry about its setting other than in the file +.I \&.cshrc +as inferior +.I csh +processes will import the definition of +.I path +from the environment, and re-export it if you then change it. +(It could be set once in the +.I \&.login +except that commands over the Berknet would not +see the definition.) +.PP +There are new commands +.I eval, +which is like the eval of the Bourne shell +.IR sh (1), +and useful with +.IR tset (1), +and +.I suspend +which stops a shell (as though a ^Z had stopped it; since +shells normally ignore ^Z signals, this command is necessary.) +.PP +There is a new variable +.I cdpath; +if set, then each directory in +.I cdpath +will be searched for a directory named in a +.I chdir +command if there is no such subdirectory of the current directory. +.PP +An +.I unsetenv +command removing environment variables has been added. +.PP +There is a new ``:'' modifier ``:e'', which yields the extension +portion of a filename. Thus if ``$a'' is ``file.c'', ``$a:e'' is ``c''. +.PP +There are two new operators in shell expressions ``!~'' and ``=~'' which +are like the string operations ``!='' and ``=='' except that the right +hand side is a +.I pattern +(containing, e.g. ``*''s, ``?''s and instances of ``[...]'') +against which the left hand operand is matched. This reduces the +need for use of the +.I switch +statement in shell scripts when all that is really needed is pattern matching. +.PP +The form ``$<'' is new, and is replaced by a line from the standard +input, with no further interpretation thereafter. It may therefore +be used to read from the keyboard in a shell script. +.SH "SEE ALSO" +csh(1), killpg(2), sigsys(2), signal(2), jobs(3), sigset(3), tty(4) +.SH BUGS +Command sequences of the form ``a ; b ; c'' are not handled gracefully +when stopping is attempted. If you suspend ``b'', the shell will then +immediately execute ``c''. This is especially noticeable if this +expansion results from an +.I alias. +It suffices to place the sequence of commands in ()'s to force it to +a subshell, i.e. ``( a ; b ; c )'', but see the next bug. +.PP +Shell builtin functions are not stoppable/restartable. +.PP +Control over output is primitive; +perhaps this will inspire someone to work on a good virtual +terminal interface. In a virtual terminal interface much more +interesting things could be done with output control. diff --git a/static/unix-v10/man1/newgrp.1 b/static/unix-v10/man1/newgrp.1 new file mode 100644 index 00000000..e77a2030 --- /dev/null +++ b/static/unix-v10/man1/newgrp.1 @@ -0,0 +1,42 @@ +.TH NEWGRP 1 +.CT 1 proc_man secur +.SH NAME +newgrp \(mi change to a new group +.SH SYNOPSIS +.B newgrp +.I group +[ +.I command +[ +.I arg ... +] ] +.SH DESCRIPTION +.I Newgrp +runs a +.I command +with the (real and effective) groupid temporarily set to +.I group. +If no command is given, the user's shell (see +.IR passwd (5)) +is executed. +.PP +A password is demanded if the group has +a password and the user does not. +.SH EXAMPLES +.TP +.L +exec newgrp bin +Restart the shell with a different groupid. +.SH FILES +.F /etc/group +.br +.F /etc/passwd +.SH "SEE ALSO" +.IR login (8), +.IR getuid (2) +.SH BUGS +On other systems, +.I newgrp +is built into the shell. +Here it will spawn a new shell unless invoked with +.BR exec . diff --git a/static/unix-v10/man1/newscheck.1 b/static/unix-v10/man1/newscheck.1 new file mode 100644 index 00000000..fbae397a --- /dev/null +++ b/static/unix-v10/man1/newscheck.1 @@ -0,0 +1,34 @@ +.TH NEWSCHECK 1 +.SH NAME +newscheck \- check to see if user has news +.SH SYNOPSIS +newscheck [yne] [readnews options] +.SH DESCRIPTION +.I newscheck +reports to the user whether or not he has news. +.TP 10 +.B y +Reports "There is news" if the user has news to read. +.TP 10 +.B n +Reports "No news" if their isn't any news to read. +.TP 10 +.B e +Executes +.I readnews(1) +if there is news. +.PP +If there are no options, +.B y +is the default. +.SH FILES +.PD 0 +.TP 25 +/usr/lib/news/active +Active newsgroups +.TP 25 +~/.newsrc +Options and list of previously read articles +.SH SEE ALSO +readnews(1), +inews(1) diff --git a/static/unix-v10/man1/nice.1 b/static/unix-v10/man1/nice.1 new file mode 100644 index 00000000..eda8f19b --- /dev/null +++ b/static/unix-v10/man1/nice.1 @@ -0,0 +1,14 @@ +.th NICE I 11/1/73 +.sh NAME +nice \*- run a command at low priority +.sh SYNOPSIS +.bd nice +command [ arguments ] +.sh DESCRIPTION +.it Nice +executes +.it command +at low priority. +.sh "SEE ALSO" +nohup(I), nice(II) +.sh BUGS diff --git a/static/unix-v10/man1/nm.1 b/static/unix-v10/man1/nm.1 new file mode 100644 index 00000000..6a4bc5be --- /dev/null +++ b/static/unix-v10/man1/nm.1 @@ -0,0 +1,33 @@ +.pa 1 +.he 'NM (I)'3/15/72'NM (I)' +.ti 0 +NAME nm -- print name list +.sp +.ti 0 +SYNOPSIS nm__ [ name ] +.sp +.ti 0 +DESCRIPTION nm__ +prints the symbol table from the output file of an +assembler or loader run. +Each symbol name is preceded by its value (blanks if undefined) +and one of the letters "U" (undefined) "A" (absolute) "T" +(text segment symbol), +"D" (data segment symbol), or "B" +(bss segment symbol). +Global symbols have their first character underlined. +The output is sorted alphabetically. +.sp +If no file is given, the symbols in a.out_____ are listed. +.sp +.ti 0 +FILES a.out +.sp +.ti 0 +SEE ALSO as(I), ld(I) +.sp +.ti 0 +DIAGNOSTICS "?" +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/nm80.1 b/static/unix-v10/man1/nm80.1 new file mode 100644 index 00000000..ba9a0422 --- /dev/null +++ b/static/unix-v10/man1/nm80.1 @@ -0,0 +1,85 @@ +.th NM80 1 03/01/77 +.sh NAME +nm80 \*- print name list +.sh SYNOPSIS +.bd nm80 +[ +.bd \-cnrupgfabdth +] +[ name ] +.sh DESCRIPTION +.it Nm80 +prints the symbol table from the output file of an +assembler or loader run. +Each symbol name is preceded by its value (blanks if undefined) +and one of the letters: +.s1 +\fBU\fR (undefined) +.br +\fBA\fR (absolute) +.br +\fBT\fR (text segment symbol) +.br +\fBD\fR (data segment symbol) +.br +\fBB\fR (bss segment symbol) +.br +\fBF\fR (file name) +.br +\fBC\fR (common symbol) +.s3 +If the symbol is local (non-external) +the type letter is in lower case. +The output is sorted alphabetically. +.s3 +If no file is given, the symbols in +.bd 80.out +are listed. +Absolute symbols have their values printed in octal. +Non-absolute symbols are assumed to be addresses +and are printed in a "low byte:high byte" format. +.s3 +Options are: +.s3 +.lp +4 4 +\fB\-a\fR list only absolute symbols +.s3 +.lp +4 4 +\fB\-b\fR list only bss symbols +.s3 +.lp +4 4 +\fB\-c\fR list only C-style external symbols, that is +those beginning with underscore `\*_'. +.s3 +.lp +4 4 +\fB\-d\fR list only data symbols +those beginning with underscore `\*_'. +.s3 +.lp +4 4 +\fB\-f\fR print only the file names. +.s3 +.lp +4 4 +\fB\-g\fR print only global (external) symbols +.s3 +.lp +4 4 +\fB\-n\fR sort by value instead of by name +.s3 +.lp +4 4 +\fB\-p\fR don't sort; print in symbol-table order +.s3 +.lp +4 4 +\fB\-r\fR sort in reverse order +.s3 +.lp +4 4 +\fB\-t\fR list only text symbols +those beginning with underscore `\*_'. +.s3 +.lp +4 4 +\fB\-u\fR print only undefined symbols. +.s3 +.lp +4 4 +\fB\-h\fR print output in hex. +.i0 +.sh FILES +80.out +.sh BUGS diff --git a/static/unix-v10/man1/nohup.1 b/static/unix-v10/man1/nohup.1 new file mode 100644 index 00000000..090375d1 --- /dev/null +++ b/static/unix-v10/man1/nohup.1 @@ -0,0 +1,15 @@ +.th NOHUP I 11/1/73 +.sh NAME +nohup \*- run a command immune to hangups +.sh SYNOPSIS +.bd nohup +command [ arguments ] +.sh DESCRIPTION +.it Nohup +executes +.it command +with hangups, +quits and interrupts all ignored. +.sh "SEE ALSO" +nice(I), signal(II) +.sh BUGS diff --git a/static/unix-v10/man1/notary.1 b/static/unix-v10/man1/notary.1 new file mode 100644 index 00000000..6524f30c --- /dev/null +++ b/static/unix-v10/man1/notary.1 @@ -0,0 +1,94 @@ +.TH NOTARY 1 +.CT 1 comm_term sa_mortals secur +.SH NAME +sign, enroll, verify, key, notaryd \(mi sign and verify certificates +.SH SYNOPSIS +.B "notary sign +.PP +.B "notary enroll +[ +.B -n +] +.I name +.PP +.B "notary verify +.I name +.I xsum +.I text +.PP +.B lmask +.B xn +.B /usr/notary/notaryd +[ +.B -m +.I mtpt +] +[ +.B -d +.I dir +] +.PP +.B "notary key +.SH DESCRIPTION +.I Notary +provides a document-authentication service. +Any user may `sign' a document by presenting it and +a secret key to the notary. +The notary returns a certificate (a cryptographic checksum made +with the secret key). +For the certificate to be useful, the key must +be enrolled with the notary under some public name. +Given the certificate and the public name, any user may +ask the notary to authenticate the document by verifying that +it is indeed as certified. +.PP +.I Sign +writes on the standard output a certificate for its standard input. +The secret key +is demanded from the terminal. +.PP +.I Enroll +prompts the terminal for a secret key to associate with the +public +.IR name . +Unless this is a new enrollment for +.I name, +indicated by option +.BR -n , +the previous value of the key is demanded from the terminal. +If a trivial new key is presented, the +.I name +is erased from the database. +.PP +.I Verify +tells whether +.I xsum +is the checksum of +.IR text, +figured with the enrolled key for the public +.IR name . +.PP +.I Notaryd +is the notary daemon, which mounts itself on +.I mtpt +(default +.FR /cs/notary ) +and keeps its log files and database in directory +.I dir +(default +.FR /usr/notary ). +The database is encrypted, so that although +.I notaryd +is normally started by +.IR rc (8), +it cannot serve other requests until it has been primed by a +.L "notary key +request, which obtains the notary's master key from +the terminal. +.SH FILES +.nf +.F /cs/notary +.F /usr/notary/* +.fi +.SH "SEE ALSO +.IR notary (3) diff --git a/static/unix-v10/man1/notify.1 b/static/unix-v10/man1/notify.1 new file mode 100644 index 00000000..60d4194a --- /dev/null +++ b/static/unix-v10/man1/notify.1 @@ -0,0 +1,114 @@ +'\"macro stdmacro +.if n .pH g1.notify %W% of %G% +.nr X +.if \nX=0 .ds x} notify 1 "Essential Utilities" "\&" +.if \nX=1 .ds x} notify 1 "Essential Utilities" +.if \nX=2 .ds x} notify 1 "" "\&" +.if \nX=3 .ds x} notify "" "" "\&" +.TH \*(x} +.SH NAME +\f4notify\f1 \- notify user of the arrival of new mail +.SH SYNOPSIS +\f4notify\fP \f4\-y\fP [ \f4\-m\fP \f2mailfile\fP ] +.br +\f4notify\fP [ \f4\-n\fP ] +.SH DESCRIPTION +.PP +When a new mail message arrives, +the \f4mail\fP command first checks if the recipient's mailbox indicates +that the message is to be forwarded elsewhere (to some other recipient or +as the input to some command). +\f4notify\fP is used to set up forwarding on the user's mailbox so that the new +message is saved into an alternative mailbox and, +if the user is currently logged in, +he or she is notified immediately of the arrival of new mail. +.PP +Command-line options are: +.sp .5 +.PD 0 +.TP 12 +\f4\-m\f2\0mailfile\f1 +File to save mail messages into while automatic notification is activated. +If not specified, it defaults to \f2$HOME/.mailfile\fP. +.TP +\f4\-n\f1 +Remove mail notification facility +.TP +\f4\-y\f1 +Install mail notification facility +.PD +.PP +If invoked with no arguments, +\f4notify\fP reports whether automatic mail notification is activated or not. +.PP +The notification is done by looking in \f4/etc/utmp\f1 to +determine if the recipient is currently logged in, +and if so, on which terminal device. +Then the terminal device is opened for writing and the user is notified about +the new message. +The notification will indicate who the message is from. +If the message contains a \f4Subject:\fP header line it will be included. +(For security, all unprintable characters within the header will be converted +to an exclamation point.) +.PP +If the user is logged in multiple times he or she will get multiple +notifications, one per terminal. +To disable notifications to a particular login session, +the \f4mesg\fP(1) command can be used to disable writing +to that terminal. +.PP +If there are multiple machines connected together via RFS or NFS, +\f4notify\f1 will look up the \f4/etc/utmp\fP files on the other systems as +well. +To do this, the file \f4/etc/mail/notify.sys\f1 will be +consulted, which will contain two columns, the first being the name of a +system and the second being a path to find the root filesystem for that +machine. +.PP +If \f4notify\fP has troubles delivering the mail to the specified mailfile, +\f4notify\fP +will look up the directory of the mailfile in \f4/etc/mail/notify.fsys\fP. +If the file's directory is found in the first column of the file, the mail will be +forwarded to the system listed in the second column instead of being returned +to the sender. +.SH FILES +.PD 0 +.TP 18 +\f4/tmp/notif\f1\(** +temporary file +.TP 18 +\f4/var/mail/\f1\(** +users' standard mailboxes +.TP 18 +\f4/usr/lib/mail/notify2\f1 +program that performs the notification +.TP 18 +\f4/etc/mail/notify.fsys\f1 +list of file systems and home systems +.TP 18 +\f4/etc/mail/notify.sys\f1 +list of machines and paths to their root filesystems +.TP 18 +\f4/etc/utmp\f1 +list of users who are logged in +.PD +.SH SEE ALSO +\f4mail\fP(1), \f4mesg\fP(1). +.br +.IR "User\'s Guide" . +.br +.ne 8 +.SH NOTES +Because \f4notify\fP uses the ``\f4Forward to \(bv\f2command\f1'' facility of +\f4mail\fP to implement notifications, +\f4/var/mail/\f2username\f1 should not be specified as the place +to put newly arrived messages via the \f4\-m\fP invocation option. +The \f4mail\fP command uses +\f4/var/mail/\f2username\f1 to hold either mail messages, +\f4or\fP indications of mail forwarding, +but not both simultaneously. +.PP +If the user is using \f4layers\fP(1), +the notification will \f4only\fP appear in the \f4login\fP window. +.\"@(#)notify.1 1.2 +.Ee diff --git a/static/unix-v10/man1/nroff.1 b/static/unix-v10/man1/nroff.1 new file mode 100644 index 00000000..1a770595 --- /dev/null +++ b/static/unix-v10/man1/nroff.1 @@ -0,0 +1,191 @@ +.pa 1 +.he 'NROFF (I)'1/15/73'NROFF (I)' +.ti 0 +NAME nroff -- format text +.sp +.ti 0 +.nf +SYNOPSIS nroff_____ [+_N] [-s__] [-h__] [-q__] [-i__] files +.fi +.sp +.ti 0 +DESCRIPTION nroff_____ +formats text according to control lines embedded +in the text files. +The non-file option arguments are interpreted as follows: + +.in +6 +.ti -3 ++N Output will commence at the first page whose page +number is N (independent of whether or not the +page number is being printed). + +.ti -3 +-s Stop between pages. Printing will halt prior to +each page (including the first) to permit paper +loading and changing. Printing is restarted by +typing either a "newline" or "delete" character. + +.ti -3 +-h High-speed output. During output, strings of +space characters are replaced where possible with +tab characters to speed up output. Futhermore, if +the output is directed into a file or a pipe, +this mode effectively reduces the total number of +characters in the file or pipe; this is especially +important in multi-column output where the +temporary file(s) or pipe(s) would otherwise contain +a large number of space characters. + +.ti -3 +-q The prompt names for insertions are not printed +and the bell character is sent instead; in +addition, the insertion is not echoed. This mode +permits insertions during the actual output printing + +.ti -3 +-i Index mode. NROFF creates a file called "index" +containing every word output together with the +line and page number. The format is word, tab, +page, tab, line, newline, etc. Invoking this mode +slows down the execution of NROFF considerably. +.sp +.in -6 +Nroff is more completely described +in [1]. +A condensed Request Summary is included here. +.sp +.ti 0 +FILES /etc/suftab suffix hyphenation tables +.br +/tmp/rtm? temporary +.br +.sp +.ti 0 +SEE ALSO [1] NROFF User's Manual (available as MM-73-1271-2). +.sp +.ti 0 +DIAGNOSTICS none +.sp +.ti 0 +BUGS - +.in 0 +.bp +.cc % +%nf +%ce +REQUEST REFERENCE AND INDEX + +Request Initial If no Cause +Form____ Value_____ Argument________ Break_____ Explanation___________ + +I. Page____ Control_______ + +.pl +_N N=66 N=66 no P_age L_ength. +.bp +_N N=1 - yes B_egin P_age. +.pn +_N N=1 ignored no P_age N_umber. +.po +_N N=0 N=prev no P_age O_ffset. +.ne N - N=1 no NE__ed N lines. + +II. Text____ Filling_______, Adjusting_________, and___ Centering_________ + +.br - - yes BR__eak. +.fi fill - yes FI__ll output lines. +.nf fill - yes N_oF_ill. +.ad c adj,norm adjust no AD__just mode on. +.na adjust - no N_oA_djust. +.ce N off N=1 yes CE__nter N input text lines. + +III. Line____ Spacing_______ and___ Blank_____ Lines_____ + +.ls +_N N=1 N=prev no L_ine S_pacing. +.sp N - N=1 yes SP__ace N lines +.lv N - N=1 no OR- +.sv N - N=1 no S_aV_e N lines. +.os - - no O_utput S_aved lines. +.ns space - no N_o-S_pace mode on. +.rs - - no R_estore S_pacing. +.xh off - no EX_tra-H_alf-line mode on. + +IV. Line____ Length______ and___ Indenting_________ + +.ll +_N N=65 N=prev no L_ine L_ength. +.in +_N N=0 N=prev yes IN__dent. +.ti +_N - N=1 yes T_emporary I_ndent. + +V. Macros______, Diversion_________, and___ Line____ Traps_____ + +.de xx - ignored no DE__fine or redefine a macro. +.rm xx - - no R_eM_ove macro name. +.di xx - end no DI__vert output to macro "xx". +.wh -_N xx - no WH__en; set a line trap. +.ch -_N -_M - no OR- +.ch xx -_M - no OR- +.ch -_N y - no OR- +.ch xx y - no CH__ange trap line. + +VI. Number______ Registers_________ + +.nr a +_N -_M - no OR- +.nr ab +_N -_M - no N_umber R_egister. +.nc c \\n \\n no N_umber C_haracter. +.ar arabic - no Arabic numbers. +.ro arabic - no Roman numbers. +.RO arabic - no ROMAN numbers. + +VII. Input_____ and___ Output______ Conventions___________ and___ Character_________ Translations____________ + +.ta N,M,... none no PseudoTA__bs setting. +.tc c space space no T_ab replacement C_haracter. +.lc c . . no L_eader replacement C_haracter. +.ul N - N=1 no UN__derline input text lines. +.cc c . . no Basic C_ontrol C_haracter. +.c2 c ' ' no Nobreak control character. +.li N - N=1 no Accept input lines LI__terally. +.tr abcd.... - no TR__anslate on output. + +VIII. Hyphenation___________. + +.nh on - no N_o H_yphen. +.hy on - no HY__phenate. +.hc c none none no H_yphenation indicator C_haracter. + +IX. Three_____ Part____ Titles______. + +.tl 'left'center'right' no T_itL_e. +.lt N N=65 N=prev no L_ength of T_itle. + +X. Output______ Line____ Numbering_________. + +.nm +_N M S I off no N_umber M_ode on or off, set parameters. +.np M S I reset no N_umber P_arameters set or reset. + +XI. Conditional___________ Input_____ Line____ Acceptance__________ + +.if c anything - no OR- +.if !c anything - no OR- +.if N anything - no OR- +.if !N anything - no IF__ true accept line of "anything". + +XII. Environment___________ Switching_________. + +.ev N N=0 N=prev no E_nV_ironment switched. + +XIII. Insertions__________ from____ the___ Standard________ Input_____ Stream______ + +.rd prompt bell no R_eaD_ insert. +.ex - - no EX__it. + +XIV. Input_____ File____ Switching _________ + +.so filename - no Switch SO__urce file (push down). +.nx filename - no N_eX_t file. +.sp +XV. Miscellaneous_____________ + +.ig - - no IG__nore. +.fl - - no FL__ush output buffer. +.ab - - no AB__ort. +%cc . +.fi +.in 16 diff --git a/static/unix-v10/man1/occ.1 b/static/unix-v10/man1/occ.1 new file mode 100644 index 00000000..7190fbe2 --- /dev/null +++ b/static/unix-v10/man1/occ.1 @@ -0,0 +1,79 @@ +.TH OCC 1 "8 Juillet 88" +.SH NAME +occ \- Esterel and Lustre C code producer +.SH SYNOPSIS +.B occ +[ option ] ... [ file ]... +.SH DESCRIPTION +The \fIocc\fR code producer takes as input one or more \fIoc\fR files +and produces standard executable C code. +If there is no input files, the standard input is used. +Typical use is: +.DS +occ < game1.oc +.DE +or +.DS +occ game1.oc +.DE +.LP +The following options are interpreted by \fIocc\fP. +.IP \fB-version\fR 10 +Gives the version name and terminates ignoring all others arguments. +.IP \fB-array\fR 10 +Arrays of automata are available using the \fB -array\fR option. +.IP \fB-nopack\fR 10 +With this option, there is no packaging of input, output and sensor interface +procedures. This option is available for compatibility with old +\fIocc\fR versions. +.IP \fB-s\fR 10 +Silent mode. No output file is generated. +.IP \fB-v\fR 10 +Verbose option: gives names of the input module. +.IP \fB-stat\fR 10 +Prints statistic informations into the standard error stream: +global time and size of the process. +.IP \fB-size\fR 10 +Prints size informations into the standard error stream: +how many actions and how many bytes are produced. +.IP \fB-memstat\fR 10 +Memory state after compiling. +.IP "\fB\-B\fP \fIname\fP" 10 +\fIname\fP denotes the output file default base name. +The suffix .c is added automatically (and possibly a working +directory name --see the following option). +If this option is omitted the output code is printed in file: +occ_out.c. +For instance, +.DS +occ -B game1 game1.oc +.DE +.IP "\fB\-D\fP \fIdirectory\fP" 10 +Specify a directory where the output file will be placed. +The default is the current directory. +.SH FILES +The caller of the command +must have read/write permission for the directories containing +the working files, and execute permission for the occ file. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: A Ressouche, +INRIA, +.sp 0 +Sophia-Antipolis, 06600 Valbonne, FRANCE +.sp 0 +Revision Number: +$Revision: 1.5 $ +\&. +.SH SEE ALSO +Esterel v3 Programming Language Manual +.sp 0 +Esterel v3 System Manuals. +.sp 0 +strlic (1), iclc(1), lcoc (1). +.sp 0 +.SH BUGS + + diff --git a/static/unix-v10/man1/ocdebug.1 b/static/unix-v10/man1/ocdebug.1 new file mode 100644 index 00000000..149a572b --- /dev/null +++ b/static/unix-v10/man1/ocdebug.1 @@ -0,0 +1,80 @@ +.TH OCDEBUG 1 "8 Juillet 88" +.SH NAME +ocdebug \- Esterel and Lustre Debug code producer +.SH SYNOPSIS +.B ocdebug +[ option ] ... [ file ]... +.SH DESCRIPTION +The \fIocdebug\fR code producer takes as input one or more \fIoc\fR files +and produces a human-readable file. +If there is no input files, the standard input is used. +Typical use is: +.DS +ocdebug < game1.oc +.DE +or +.DS +ocdebug game1.oc +.DE +.LP +The following options are interpreted by \fIocdebug\fP. +.IP \fB-version\fR 10 +Gives the version name and terminates ignoring all others arguments. +.IP \fB-names\fR 10 +With this option, \fIocdebug\fR prints the signal name between brackets +for each present signal test and between braces for each output action +performed in the automaton. +.IP \fB-halts\fR 10 +With this option, \fIocdebug\fR prints the haltset of each state after the +keyword: \fBhaltset\fR +.IP \fB-emitted\fR 10 +With this option, the list of output or local signals emitted in each +transition is printed out after the keyword: \fBemitted\fR. +.IP \fB-s\fR 10 +Silent mode. No output file is generated. +.IP \fB-v\fR 10 +Verbose option: gives names of the input module. +.IP \fB-stat\fR 10 +Prints statistic informations into the standard error stream: +global time and size of the process. +.IP \fB-memstat\fR 10 +Memory state after compiling. +.IP "\fB\-B\fP \fIname\fP" 10 +\fIname\fP denotes the output file default base name. +The suffix .debug is added automatically (and possibly a working +directory name --see the following option). +If this option is omitted the output code is printed in file: +ocdebug_out.debug. +For instance, +.DS +ocdebug -B game1 game1.oc +.DE +.IP "\fB\-D\fP \fIdirectory\fP" 10 +Specify a directory where the output file will be placed. +The default is the current directory. +.SH FILES +The caller of the command +must have read/write permission for the directories containing +the working files, and execute permission for the occ file. +.SH IDENTIFICATION +.de VL +\\$2 +.. +Author: A Ressouche, +INRIA, +.sp 0 +Sophia-Antipolis, 06600 Valbonne, FRANCE +.sp 0 +Revision Number: +$Revision: 1.4 $ +\&. +.SH SEE ALSO +Esterel v3 Programming Language Manual +.sp 0 +Esterel v3 System Manuals. +.sp 0 +strlic (1), iclc(1), lcoc (1). +.sp 0 +.SH BUGS + + diff --git a/static/unix-v10/man1/ocr.1 b/static/unix-v10/man1/ocr.1 new file mode 100644 index 00000000..184a240a --- /dev/null +++ b/static/unix-v10/man1/ocr.1 @@ -0,0 +1,176 @@ +.TH OCR 1 cetus,hydra,coma +.CT 1 graphics +.SH NAME +ocr \- optical character recognition +.SH SYNOPSIS +.B ocr +[ +.I option ... +] +[ +.I file +] +.SH DESCRIPTION +.I Ocr +reads a black-and-white image of a page from +.IR file , +and writes ASCII to the standard output. +If no +.I file +is specified, it reads from the standard input. +.PP +The input is a +.IR picfile (5) +image of one column of machine-printed text, normally +scanned in by +.IR cscan (1). +Fonts, sizes, and line-spacings may vary within the column, +but each line should have a constant text size and baseline. +Lines should be parallel and roughly horizontal. +.PP +In the output, white space approximates the original page layout. +Words that +.IR spell (1) +are preferred, and hyphenations across lines are recombined. +.PP +The options are: +.nr xx \w'\fL-pn,m\ \ ' +.TP \n(xxu +.BI -a s +The alphabet is the union of symbol sets selected by characters in string +.IR s , +from among: +.RS +.PD +.nr yy \w'\fLA\ \ ' +.TP \n(yyu +.B A +ABCDEFGHIJKLMNOPQRSTUVWXYZ +.PD0 +.TP +.B a +abcdefghijklmnopqrstuvwxyz +.PD0 +.TP +.B 0 +0123456789 +.PD0 +.TP +.B . +.ie t \&.\^,\|-\^:\^;\|*\^'\|\^"\|?\^!\|/\|&\|$\^(\^)\^[\|\^]\|#\|@\|% \0\0\0\0\0\0\0\0\0\0\0 \kz(basic punctuation) +.el \&.\^,\|-\^:\^;\|*\^'\|\^"\|?\^!\|/\|&\|$\^(\^)\^[\|\^]\|#\|@\|% \0\0\0\0\0\0\0 \kz(basic punctuation) +.ig +should include ` /(em + ??? +shouldn't include []#@% ??? +.. +.PD0 +.TP +.B ^ +^\|\f(CW~\fR\^`\|\^\\\||\|\^{\|}\|_ \h'|\nzu'(extended punct'n) +.ig +should include []#@% ??? +shouldn't include ` ??? +.. +.PD0 +.TP +.B + ++\^\-\^*\|/\|<\^>\^=\^.\^E\|e\|[\|] \h'|\nzu'(numerical punct'n) +.PD0 +.TP +.B s +.ie t \(sc\^\(dg\^\(dd\^\(ct\|\(bu\|\(co\|\(rg\|\(de\^\(fm\^\(en\|\^\(mi\|\(em \h'|\nzu'(selected non-ASCII) +.el \\(sc\\(dg\\(dd\\(ct\\(bu\\(co ... \h'|\nzu'(selected non-ASCII) +.PD0 +.TP +.B l +.ie t \(fi\|\(fl\|f\h'-.1m'f\|f\h'-.1m'\(fi\|f\h'-.1m'\(fl\|\N'114'\|\N'115'\|\N'105'\|\N'106' \h'|\nzu'(ligatures and digraphs) +.el fi fl ff ffi ffl ae oe ... \h'|\nzu'(ligatures, digraphs) +.PD0 +.TP +.B g +.ie t \(*a\(*b\(*g\(*d\(*e\(*z\(*y\(*h\(*i\(*k\(*l\(*m\(*n\(*c\(*o\(*p\(*r\(*s\(*t\(*u\(*f\(*x\(*q\(*w \h'|\nzu'(Greek lower case) +.el \\(*a\\(*b\\(*g\\(*d\\(*e\\(*z ... \h'|\nzu'(Greek lower case) +.PD0 +.TP +.B G +.ie t AB\(*G\(*DEZH\(*HIK\(*LMN\(*CO\(*PP\(*STY\(*FX\(*Q\(*W \h'|\nzu'(Greek upper case) +.el AB\\(*G\\(*DEZ ... \h'|\nzu'(Greek upper case) +.PD +.PP +The default is +.BR -aAa0.+^ , +the full printable-ASCII set, which may be abbreviated as +.BR -ap . +Thus, +.B -apslgG +selects all of the above. +.RE +.PD +.TP \n(xxu +.B -c +Find columns in complex nested layouts using greedy white covers algorithm. +.TP +.BI -m l[,r] +Trim the left and right margins of the image by +.I l +and +.I r +inches, respectively, before looking for columns. +If +.I r +is omitted, it is assumed to equal +.IR l. +.TP +.BI -n n +Find the +.I n +largest columns by analysis of a single vertical projection. +Each column should be compactly-printed +and separated from the others by at least 2 ems of horizontal white space. +.TP +.BI -p n,m +Point sizes lie in the range [ +.I n, m +]; other sizes are discarded. +The default is +.BR -p6,24 . +.TP +.B -s +Defeat spelling check (but continue to favor numeric strings and good punctuation). +.TP +.B -t +Write +.IR troff (1) +format. +Each column is shown on a separate page, lines at their original height, +words at their original horizontal location, and +characters roughly original size in Times roman. +Hyphenated words are not recombined. +.TP +.B -u +Unspellable words are prefixed with `?' or, if +.B -t +is specified, printed boldface. +.TP +.BI -w w +Find the largest column of width +.I w +inches, within a single vertical projection. +.SS Fonts +Trained on over 100 Latin-alphabet book fonts in various italic, bold, etc styles. +Only one font of Greek, without diacriticals. +Also Swedish and Tibetan, on request. +.SH SEE ALSO +.IR bcp (1), +.IR cscan (1), +.IR font (6), +.IR picfile (5), +.IR spell (1), +.IR troff (1) +.SH BUGS +For best results, use images of high-contrast, cleanly-printed original +documents digitized at a resolution of 400 pixels/inch or higher. +It may help to restrict the alphabet and sizes to what's there. +.ig +8.7 CPU minutes on pipe to read this page, September 1989. +.. diff --git a/static/unix-v10/man1/od.1 b/static/unix-v10/man1/od.1 new file mode 100644 index 00000000..114143ee --- /dev/null +++ b/static/unix-v10/man1/od.1 @@ -0,0 +1,74 @@ +.pa 1 +.he 'OD (I)'1/15/73'OD (I)' +.ti 0 +NAME od -- octal dump +.sp +.ti 0 +SYNOPSIS od__ [ -abcdho_______ ] [ file ] [ [+_]offset[._][b_] ] +.sp +.ti 0 +DESCRIPTION od__ +dumps +file____ +in +one or more formats +as +selected by the first argument. +(If the first argument is missing, -o__ is default.) +The meanings of the format argument characters +are: + +.in +5 +.ti -2 +a_ interprets words as PDP-11 instructions and +dis-assembles the operation code. +Unknown operation codes print as ???. + +.ti -2 +b_ interprets bytes in octal. + +.ti -2 +c_ interprets bytes in ascii. +Unknown ascii characters are printed as \\?. + +.ti -2 +d_ interprets words in decimal. + +.ti -2 +h_ interprets words in hex. + +.ti -2 +o_ interprets words in octal. + +.in -5 +The file argument specifies which file is to be dumped. +If no file argument is specified, +the standard input is used. +Thus od can be used as a filter. + +The offset argument specifies the offset +in the file where dumping is to commence. +This argument is normally interpreted +as octal bytes. +If '.' is appended, the offset is interpreted in +decimal. +If 'b' is appended, the offset is interpreted in blocks. +(A block is 512 bytes.) +If the file argument is omitted, +the offset argument must be preceded by '+'. + +Dumping continues until an end-of-file +condition or until +halted by sending an interrupt signal. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO db(I) +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/olint.1 b/static/unix-v10/man1/olint.1 new file mode 100644 index 00000000..9911eee4 --- /dev/null +++ b/static/unix-v10/man1/olint.1 @@ -0,0 +1,147 @@ +.TH LINT 1 +.UC 4 +.SH NAME +lint \- a C program verifier +.SH SYNOPSIS +.B lint +[ +.B \-abchnpuvx +] +file ... +.SH DESCRIPTION +.I Lint +attempts to detect features of the C program +.I files +which are +likely to be bugs, or non-portable, or wasteful. +It also checks the type usage of the program more strictly +than the compilers. +Among the things which are currently found are +unreachable statements, +loops not entered at the top, +automatic variables declared and not used, +and logical expressions whose value is constant. +Moreover, the usage of functions is checked to find +functions which return values in some places and not in others, +functions called with varying numbers of arguments, +and functions whose values are not used. +.PP +By default, it is assumed that all the +.I files +are to be loaded together; they are checked for +mutual compatibility. +Function definitions for certain libraries are available to +.IR lint ; +these libraries are referred to by a +conventional name, +such as `\-lm', in the style of +.IR ld (1). +.PP +Any number of the options in the following list +may be used. +The +.SM +.BR \-D "\*S," +.SM +.BR \-U "\*S," +and +.SM +.B \-I +options of +.IR cc (1) +are also recognized as separate arguments. +.TP +.B p +Attempt to check portability to the +.I IBM +and +.I GCOS +dialects of C. +.TP +.B h +Apply a number of heuristic tests to attempt to +intuit bugs, improve style, and reduce waste. +.TP +.B b +Report +.I break +statements that cannot be reached. +(This is not the default because, unfortunately, +most +.I lex +and many +.I yacc +outputs produce dozens of such comments.) +.TP +.B v +Suppress complaints about unused arguments in functions. +.TP +.B x +Report variables referred to by extern declarations, +but never used. +.TP +.B a +Report assignments of long values to int variables. +.TP +.B c +Complain about casts which have questionable portability. +.TP +.B u +Do not complain about functions and variables used and not +defined, or defined and not used (this is suitable for running +.I lint +on a subset of files out of a larger program). +.TP +.B n +Do not check compatibility against the standard library. +.PP +.IR Exit (2) +and other functions which do not return +are not understood; this causes various lies. +.PP +Certain conventional comments in the C source +will change the behavior of +.IR lint : +.TP +/*NOTREACHED*/ +at appropriate points +stops comments about unreachable code. +.TP +.RI /*VARARGS n */ +suppresses +the usual checking for variable numbers of arguments +in the following function declaration. +The data types of the first +.I n +arguments are checked; +a missing +.I n +is taken to be 0. +.TP +/*NOSTRICT*/ +shuts off strict type checking in the next expression. +.TP +/*ARGSUSED*/ +turns on the +.B \-v +option for the next function. +.TP +/*LINTLIBRARY*/ +at the beginning of a file shuts off complaints about +unused functions in this file. +.SH FILES +.ta \w'/usr/lib/llib-port 'u +/usr/lib/lint/lint[12] programs +.br +/usr/lib/lint/llib-lc declarations for standard functions +.br +/usr/lib/lint/llib-port declarations for portable functions +.SH SEE ALSO +cc(1) +.br +S. C. Johnson, +.I Lint, a C Program Checker +.SH BUGS +There are some things you just +.B can't +get lint to shut up about. diff --git a/static/unix-v10/man1/opr.1 b/static/unix-v10/man1/opr.1 new file mode 100644 index 00000000..0c015ccf --- /dev/null +++ b/static/unix-v10/man1/opr.1 @@ -0,0 +1,48 @@ +.pa 1 +.he 'OPR (I)'1/15/73'OPR (I)' +.ti 0 +NAME opr -- off line print +.sp +.ti 0 +SYNOPSIS opr___ [--__] [-_] [+_] [+-__]file918 ... +.sp +.ti 0 +DESCRIPTION opr___ +will arrange to have the +201 data phone daemon submit a job to the +Honeywell 6070 to print the file arguments. +Normally, +the output appears at the GCOS central site. +If the first argument is --__, the output +is remoted to station R1. +(Station R1 has a 1403 printer.) + +Normally, each file is printed in the state it is found +when the data phone daemon reads it. +If a particular file argument is preceded by +_, +or a preceding argument of +_ has been encountered, +then opr___ will make a copy for the daemon to print. +If the file argument is preceded by -_, +or a preceding argument of -_ has been encountered, +then opr will unlink (remove) the file. + +If there are no +arguments except for the optional --__, +then the standard input is read and off-line printed. +Thus opr___ may be used as a filter. +.sp +.ti 0 +FILES /usr/dpd/* spool area +.br +/etc/passwd personal ident cards +.br +/etc/dpd daemon +.sp +.ti 0 +SEE ALSO dpd(I), passwd(V) +.sp +.ti 0 +DIAGNOSTICS -- +.sp +.ti 0 +BUGS -- diff --git a/static/unix-v10/man1/ops5.1 b/static/unix-v10/man1/ops5.1 new file mode 100644 index 00000000..c7b58b27 --- /dev/null +++ b/static/unix-v10/man1/ops5.1 @@ -0,0 +1,185 @@ +.TH OPS5 1 +.SH NAME +ops5 \- a rule-based production-system environment +.SH SYNOPSIS +.B ops5 +.SH DESCRIPTION +Ops5 is a rule-based language built on Lisp. +A program consists of a collection of +if\(enthen rules and a global `working memory'. +Each rule has a conditional expression, the +.SM `LHS' +and a +sequence of actions, the +.SM `RHS'. +A +.SM LHS +consists of one or more patterns and is +`satisfied' when every pattern +matches an element in working memory. +.PP +The rule interpreter executes a `recognize-act' cycle: +.IP 1. +Match: Evaluate the +.SM LHS\*Ss +of the rules to determine which are satisfied. +.IP 2. +Conflict Resolution: Select one rule from among the ones with satisfied +.SM LHS\*Ss. +If no +.SM LHS\*Ss +is satisfied halt execution. +.IP 3. +Act: Perform the operations specified in the +.SM RHS +of the selected rule. +.PP +The top level commands +in order of usefulness are: +.TP 12 +.B watch +report on firings and working memory changes +.EX +(watch) ;Report current watch level +(watch 0) ;No report +(watch 1) ;Report rule names and working memory time tags +(watch 2) ;Report rule names, working memory time tags + ;and changes to working memory +.EE +.TP +.B load +load working memory and rule declarations +.EX +(load 'billing.l) ;Load file `billing.l' +.EE +.TP +.B run +start the rule interpreter +.EX +(run) ;Run until no rules are satisfied or halt executed +(run 1) ;Run one rule firing +.EE +.TP +.B exit +exit +.I ops5 +.EX +(exit) +.EE +.B +.TP +.B back +back up the rule interpreter +.EX +(back 32) ;Back up 32 rule firings +.EE +.TP +.B wm +display working memory +.EX +(wm 32) ;Display working memory element 32 +.EE +.TP +.B ppwm +display parts of working memory +.EX +(ppwm customer ^record bad) ;Display all customer working memory + ;elements with `bad' records +.EE +.TP +.B pm +display production or rule memory +.EX +(pm good-customer) ;Display rule `good-customer' +.EE +.TP +.B cs +print the conflict set +.EX +(cs) +.EE +.TP +.B matches +print matches for condition elements of a rule +.EX +(matches bad-customer) ;Display matches for rule `bad-customer' +.EE +.TP +.B pbreak +set a break point after a production firing +.EX +(pbreak bad-but-long-term-customer) ;Set break point after rule + ;`bad-but-long-term-customer' +.EE +.TP +.B make +make working memory elements +.EX +;Make a customer working memory element +(make customer ^name Terry ^record bad ^years 22) +.EE +.TP +.B remove +remove working memory elements +.EX +(remove *) ;Remove all working memory elements +(remove 17) ;Remove working memory element 17 +.EE +.TP +.B excise +remove rules +.EX +;Remove `good-customer' and `bad-customer' rules +(excise good-customer bad-customer) +.EE +.TP +.B openfile +open a file +.EX +;Open `ruletrace.ops' as output +;and associate it with traceoutput port +(openfile traceoutput |ruletrace.ops| out) +;Open `answers' as input and associate it with stdin port +(openfile stdin |answers| in) +.EE +.TP +.B closefile +close a file +.EX +(closefile traceoutput stdin) ;Close traceoutput and stdin ports +.EE +.TP +.B default +change default input and output files +.EX +(default nil trace) ;Change trace port back to default +(default traceoutput write) ;Change write port to traceoutput +(default stdin accept) ;Change accept port to stdin +.EE +.TP +.B strategy +select rule interpreter strategy. +.EX +(strategy) ;Report current strategy +(strategy mea) ;Selects mea strategy +(strategy lex) ;Selects lex strategy (default on startup) +.EE +.SH FILES +.TF /usr/lib/lisp +.TP +.F /usr/lib/lisp +lisp library +.SH "SEE ALSO" +Forgy, C. L., +.IR "OPS5 User's Manual" , +Department of Computer Science, +Carnegie-Mellon University, +July, 1981 +.br +lisp (1) +.SH DIAGNOSTICS +When +.I ops5 +stops executing for any reason, you are placed in the +.I lisp +top-level routine. diff --git a/static/unix-v10/man1/org.1 b/static/unix-v10/man1/org.1 new file mode 100644 index 00000000..6cb7d250 --- /dev/null +++ b/static/unix-v10/man1/org.1 @@ -0,0 +1,60 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH ORG 1 +.SH NAME +org \- show the organization of a document +.SH SYNOPSIS +.B org +[ +.B \-flags +][ +.B \-ver +] +[file ...] +.SH DESCRIPTION +.I Org +copies the input text to the output, +and formats it, +preserving headings and paragraph boundaries, +but only including the first and last sentence of each paragraph. +The input text must contain standard +.I mm(1) +macros. +.PP +The output can be used to study the general organization of the paper, +and is sometimes a good abstract. +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH SEE ALSO +mm(1). +.SH BUGS +The input text must contain standard +.I mm +macros. +.PP +.I Org +will not recognize common abbreviations at the end of +a sentence as the sentence end. +Consequently, more than two sentences may be printed for a paragraph. +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/osh.1 b/static/unix-v10/man1/osh.1 new file mode 100644 index 00000000..3202dfb1 --- /dev/null +++ b/static/unix-v10/man1/osh.1 @@ -0,0 +1,1151 @@ +.if t .ds ' \h@.05m@\s+4\v@.333m@\'\v@-.333m@\s-4\h@.05m@ +.if n .ds ' ' +.if t .ds ` \h@.05m@\s+4\v@.333m@\`\v@-.333m@\s-4\h@.05m@ +.if n .ds ` ` +.ds OK [\| +.ds CK \|] +.TH SH 1 +.SH NAME +sh \- shell, the standard command programming language +.SH SYNOPSIS +.B sh +[ +.B \-ceiknrstuvx +] [ args ] +.SH DESCRIPTION +.I Sh\^ +is a command programming language +that executes commands read from a terminal +or a file. +See +.I Invocation\^ +below +for the meaning of arguments to the shell. +.SS Commands. +A +.I simple-command\^ +is a sequence of non-blank +.I words\^ +separated by +.I blanks\^ +(a +.I blank\^ +is a +tab +or a +space). +The first word specifies the name of the command to +be executed. +Except as specified below, +the remaining words are passed as arguments +to the invoked command. +The command name is passed as argument 0 +(see +.IR exec (2)). +The +.I value\^ +of a simple-command is its exit status +if it terminates normally, or (octal) 200+\f2status\^\fP if +it terminates abnormally (see +.IR signal (2) +for a list of +status values). +.PP +A +.I pipeline\^ +is a sequence of one or more +.I commands\^ +separated by +.BR \(bv . +The standard output of each command but the last +is connected by a +.IR pipe (2) +to the standard input of the next command. +Each command is run as a separate process; +the shell waits for the last command to terminate. +.PP +A +.I list\^ +is a sequence of one or more +pipelines +separated by +.BR ; , +.BR & , +.BR && , +or +.BR \(bv\|\(bv , +and optionally terminated by +.B ; +or +.BR & . +Of these four symbols, +.B ; +and +.B & +have equal precedence, +which is lower than that of +.B && +and +.BR \(bv\|\(bv . +The symbols +.B && +and +.B \(bv\|\(bv +also have equal precedence. +A semicolon +.RB ( ; ) +causes sequential execution of the preceding pipeline; an ampersand +.RB ( & ) +causes asynchronous execution of the preceding pipeline (i.e., the shell does +.I not\^ +wait for that pipeline to finish). +The symbol +.B && +.RB (\| \(bv\|\(bv \^) +causes the +.I list\^ +following it to be executed only if the preceding +pipeline +returns a zero (non-zero) exit status. +An arbitrary number of new-lines may appear in a +.IR list , +instead of semicolons, +to delimit commands. +.PP +A +.I command\^ +is either a simple-command +or one of the following. +Unless otherwise stated, +the value returned by a command is that of the +last simple-command executed in the command. +.PP +.PD 0 +.TP +\f3for\fP \f2name\^\fP \*(OK \f3in\fP \f2word\^\fP .\|.\|. \*(CK \f3do\fP \f2list\^\fP \f3done\fP +Each time a +.B for +command is executed, +.I name\^ +is set to the next +.I word\^ +taken from the +.B in +.I word\^ +list. +If +.BI in " word\^" +\&.\|.\|. +is omitted, then +the +.B for +command executes the \f3do\fP \f2list\^\fP once for each positional parameter +that is set +(see +.I "Parameter Substitution\^" +below). +Execution ends when there are no more words in the list. +.TP +\f3case\fP \f2word\^\fP \f3in\fP \*(OK \f2pattern\^\fP \*(OK \(bv \ +\f2pattern\^\fP \*(CK .\|.\|. \f3)\fP \f2list\^\fP \f3;;\fP \*(CK .\|.\|. \f3esac\fP +A +.B case +command executes the +.I list\^ +associated with the first +.I pattern\^ +that matches +.IR word . +The form of the patterns is +the same as that used for +file-name generation (see +.I "File Name Generation\^" +below). +.TP +\f3if\fP \f2list\^\fP \f3then\fP \f2list\^\fP \*(OK \ +\f3elif\fP \f2list\^\fP \f3then\fP \f2list\^\fP \*(CK .\|.\|. \ +\*(OK \f3else\fP \f2list\^\fP \*(CK \f3f\&i\fP +The +.I list\^ +following \f3if\fP is executed and, +if it +returns a zero exit status, the +.I list\^ +following +the first +.B then +is executed. +Otherwise, the +.I list\^ +following \f3elif\fP +is executed and, if its value is zero, +the +.I list\^ +following +the next +.B then +is executed. +Failing that, the +.B else +.I list\^ +is executed. +If no +.B else +.I list\^ +or +.B then +.I list\^ +is executed, then the +.B if +command returns a zero exit status. +.TP +\f3while\fP \f2list\^\fP \f3do\fP \f2list\^\fP \f3done\fP +A +.B while +command repeatedly executes the +.B while +.I list\^ +and, if the exit status of the last command in the list is zero, executes +the +.B do +.IR list ; +otherwise the loop terminates. +If no commands in the +.B do +.I list\^ +are executed, then the +.B while +command returns a zero exit status; +.B until +may be used in place of +.B while +to negate +the loop termination test. +.TP +\f3(\fP\f2list\^\fP\f3)\fP +.br +Execute +.I list\^ +in a sub-shell. +.TP +\f3{\fP\f2list\^\fP\f3;}\fP +.br +.I list\^ +is simply executed. +.PD +.PP +The following words +are only recognized as the first word of a command +and when not quoted: +.if t .RS +.PP +.B +.if n if then else elif fi case esac for while until do done { } +.if t if then else elif f\&i case esac for while until do done { } +.if t .RE +.SS Comments. +A word beginning with +.B # +causes that word and all the following characters up to a new-line +to be ignored. +.SS Command Substitution. +The standard output from a command enclosed in +a pair of grave accents (\^\f3\*`\^\*`\fP\^) may be used as part or all +of a word; +trailing new-lines are removed. +.SS Parameter Substitution. +The character +.B $ +is used to introduce substitutable +.IR parameters . +Positional parameters may be assigned values by +.BR set . +Variables may be set by writing: +.RS +.PP +.IB name = value\^ +\*(OK +.IB name = value\^ +\*(CK .\|.\|. +.RE +.PP +Pattern-matching is not performed on +.IR value . +.PP +.PD 0 +.TP +\f3${\fP\f2parameter\^\fP\f3}\fP +A +.I parameter\^ +is a sequence of letters, digits, or underscores (a +.IR name ), +a digit, +or any of the characters +.BR \(** , +.BR @ , +.BR # , +.BR ? , +.BR \- , +.BR $ , +and +.BR !\\^ . +The value, if any, of the parameter is substituted. +The braces are required only when +.I parameter\^ +is followed by a letter, digit, or underscore +that is not to be interpreted as part of its name. +A +.I name\^ +must begin with a letter or underscore. +If +.I parameter\^ +is a digit then it is a positional parameter. +If +.I parameter\^ +is +.B \(** +or +.BR @ , +then all the positional +parameters, starting with +.BR $1 , +are substituted +(separated by spaces). +Parameter +.B $0 +is set from argument zero when the shell +is invoked. +.TP +\f3${\fP\f2parameter\^\fP\f3:\-\fP\f2word\^\fP\f3}\fP +If +.I parameter\^ +is set and is non-null then substitute its value; +otherwise substitute +.IR word . +.TP +\f3${\fP\f2parameter\^\fP\f3:=\fP\f2word\^\fP\f3}\fP +If +.I parameter\^ +is not set or is null +then set it to +.IR word ; +the value of the parameter is then substituted. +Positional parameters may not be assigned to +in this way. +.TP +\f3${\fP\f2parameter\^\fP\f3:?\fP\f2word\^\fP\f3}\fP +If +.I parameter\^ +is set and is non-null then substitute its value; +otherwise, print +.I word\^ +and exit from the shell. +If +.I word\^ +is omitted, then the message +``parameter null or not set'' +is printed. +.TP +\f3${\fP\f2parameter\^\fP\f3:+\fP\f2word\^\fP\f3}\fP +If +.I parameter\^ +is set and is non-null then substitute +.IR word ; +otherwise substitute nothing. +.PD +.PP +In the above, +.I word\^ +is not evaluated unless it is +to be used as the substituted string, +so that, in the following example, +.B pwd +is executed only if +.B d +is not set or is null: +.RS +.PP +echo \|${d:\-\^\*`\^pwd\^\*`\^} +.RE +.PP +If the colon +.RB ( : ) +is omitted from the above expressions, then the +shell only checks whether +.I parameter\^ +is set or not. +.PP +The following +parameters +are automatically set by the shell: +.RS +.PD 0 +.TP +.B # +The number of positional parameters in decimal. +.TP +.B \- +Flags supplied to the shell on invocation or by +the +.B set +command. +.TP +.B ? +The decimal value returned by the last synchronously executed command. +.TP +.B $ +The process number of this shell. +.TP +.B ! +The process number of the last background command invoked. +.PD +.RE +.PP +The following +parameters +are used by the shell: +.RS +.PD 0 +.TP +.B +.SM HOME +The default argument (home directory) for the +.I cd\^ +command. +.TP +.B +.SM PATH +The search path for commands (see +.I Execution\^ +below). +.TP +.B +.SM MAIL +If this variable is set to the name of +a mail file, then the shell informs the user of +the arrival of mail in the specified file. +.TP +.SM +.B PS1 +Primary prompt string, by default +.RB `` "$ \|" ''. +.TP +.SM +.B PS2 +Secondary prompt string, by default +.RB `` "> \|" ''. +.TP +.SM +.B IFS +Internal field separators, +normally +.BR space , +.BR tab , +and +.BR new-line . +.PD +.RE +.PP +The shell gives default values to +\f3\s-1PATH\s+1\fP, \f3\s-1PS1\s+1\fP, \f3\s-1PS2\s+1\fP, and \f3\s-1IFS\s+1\fP, +while +.SM +.B HOME +and +.SM +.B MAIL +are +not set at all by the shell (although +.SM +.B HOME +.I is\^ +set by +.IR login (1)). +.SS Blank Interpretation. +After parameter and command substitution, +the results of substitution are scanned for internal field separator +characters (those found in +.BR \s-1IFS\s+1 ) +and split into distinct arguments where such characters are found. +Explicit null arguments (\^\f3"\^"\fP or \f3\*'\^\*'\fP\^) are retained. +Implicit null arguments +(those resulting from +.I parameters\^ +that have no values) are removed. +.SS File Name Generation. +Following substitution, each command +.I word\^ +is scanned for +the characters +.BR \(** , +.BR ? , +and +.BR \*(OK . +If one of these characters appears +then the word is regarded as a +.IR pattern . +The word is replaced with alphabetically sorted file names that match the pattern. +If no file name is found that matches the pattern, then +the word is left unchanged. +The character +.B . +at the start of a file name +or immediately following a +.BR / , +as well as the character +.B / +itself, +must be matched explicitly. +.PP +.PD 0 +.RS +.TP +.B \(** +Matches any string, including the null string. +.TP +.B ? +Matches any single character. +.TP +.BR \*(OK .\|.\|.\^ \*(CK +Matches any one of the enclosed characters. +A pair of characters separated by +.B \- +matches any +character lexically between the pair, inclusive. +If the first character following the opening +\`\`\*(OK\'\' +is a +.B "``!''" +then any character not enclosed is matched. +.PD +.RE +.SS Quoting. +The following characters have a special meaning to the shell +and cause termination of a word unless quoted: +.RS +.PP +\f3; & ( ) \(bv < > new-line space tab\fP +.RE +.PP +A character may be +.I quoted\^ +(i.e., made to stand for itself) +by preceding +it with a +.BR \e . +The pair +.B \enew-line +is ignored. +All characters enclosed between a pair of single quote marks (\^\f3\*'\^\*'\fP\^), +except a single quote, +are quoted. +Inside double quote marks +(\f3"\^"\fP), +parameter and command substitution occurs and +.B \e +quotes the characters +.BR \e , +.BR \*` , +\f3"\fP, +and +.BR $ . +.B +"$\(**" +is equivalent to +\f3"$1 \|$2\fP \|.\|.\|.\f3"\fP, +whereas +.B +"$@" +is equivalent to +.B +"$1"\| +.B +"$2"\| +\&.\|.\|.\|. +.SS Prompting. +When used interactively, +the shell prompts with the value of +.SM +.B PS1 +before reading a command. +If at any time a new-line is typed and further input is needed +to complete a command, then the secondary prompt +(i.e., the value of +.BR \s-1PS2\s+1 ) +is issued. +.SS Input/Output. +Before a command is executed, its input and output +may be redirected using a special notation interpreted by the shell. +The following may appear anywhere in a simple-command +or may precede or follow a +.I command\^ +and are +.I not\^ +passed on to the invoked command; +substitution occurs before +.I word\^ +or +.I digit\^ +is used: +.PP +.PD 0 +.TP 14 +.B word +Use file +.I word\^ +as standard output (file descriptor 1). +If the file does not exist then it is created; +otherwise, it is truncated to zero length. +.TP +.B >\h@-.3m@>word +Use file +.I word\^ +as standard output. +If the file exists then output is appended to it (by first seeking to the end-of-file); +otherwise, the file is created. +.TP +\f3<\h@-.3m@<\fP\*(OK\f3\-\fP\*(CK\f3word\fP +The shell input is read up to a line that is the same as +.IR word , +or to an end-of-file. +The resulting document becomes +the standard input. +If any character of +.I word\^ +is quoted, then no interpretation +is placed upon the characters of the document; +otherwise, parameter and command substitution occurs, +(unescaped) +.B \enew-line +is ignored, +and +.B \e +must be used to quote the characters +.BR \e , +.BR $ , +.BR \*` , +and the first character of +.IR word . +If +.B \- +is appended to +.BR <\h@-.3m@< , +then all leading tabs are stripped from +.I word\^ +and from the document. +.TP +.B <&digit +The standard input is duplicated from file descriptor +.I digit\^ +(see +.IR dup (2)). +Similarly for the standard output using +.BR > . +.TP +.B <&\- +The standard input is closed. +Similarly for the standard output using +.BR > . +.PD +.PP +If one of the above is preceded by a digit, +then the +file descriptor created is that specified +by the digit +(instead of the default 0 or 1). +For example: +.RS +.PP +\&.\|.\|. \|2>&1 +.RE +.PP +creates file descriptor 2 that is a duplicate +of file descriptor 1. +.PP +If a command is followed by +.B & +then the default standard input +for the command +is the empty file +.BR /dev/null . +Otherwise, the environment for the execution of a command contains the +file descriptors of the invoking shell as modified by +input/output specifications. +.SS Environment. +The +.I environment\^ +(see +.IR environ (7)) +is a list of name-value pairs that is passed to +an executed program in the same way as a normal argument list. +The shell interacts with the environment in several ways. +On invocation, the shell scans the environment +and creates a +parameter +for each name found, +giving it the corresponding value. +Executed commands inherit the same environment. +If the user modifies the values of these +parameters +or creates new ones, +none of these affects the environment +unless the +.B export +command is used to bind the shell's +parameter +to the environment. +The environment seen by any executed command is thus composed +of any unmodified name-value pairs originally inherited by the shell, +plus any modifications or additions, +all of which must be noted in +.B export +commands. +.PP +The environment for any +.I simple-command\^ +may be augmented by prefixing it with one or more assignments to +parameters. +Thus: +.RS +.PP +\s-1TERM\s+1=450 \|cmd \|args and +.br +(export \|\s-1TERM\s+1; \|\s-1TERM\s+1=450; \|cmd \|args) +.RE +.PP +are equivalent (as far as the above execution of +.I cmd\^ +is concerned). +.PP +If the +.B \-k +flag is set, +.I all\^ +keyword arguments are placed in the environment, +even if they occur after the command name. +The following +first prints +.B "a=b c" +and then +.BR c: +.PP +.RS +.nf +echo \|a=b \|c +set \|\-k +echo \|a=b \|c +.fi +.RE +.SS Signals. +The \s-1INTERRUPT\s+1 and \s-1QUIT\s+1 signals for an invoked +command are ignored if the command is followed by +.BR & ; +otherwise signals have the values +inherited by the shell from its parent, +with the exception of signal 11 +(but see also +the +.B trap +command below). +.SS Execution. +Each time a command is executed, the above substitutions +are carried out. +Except for the +.I "Special Commands\^" +listed below, a new +process is created and +an attempt is made to execute the command via +.IR exec (2). +.PP +The shell parameter +.B +.SM PATH +defines the search path for +the directory containing the command. +Alternative directory names are separated by +a colon +.RB ( : ). +The default path is +.B :/bin:/usr/bin +(specifying the current directory, +.BR /bin , +and +.BR /usr/bin , +in that order). +Note that the current directory is specified by a null path name, +which can appear immediately after the equal sign +or between the colon delimiters anywhere else in the path list. +If the command name contains a \f3/\fP then the search path +is not used. +Otherwise, each directory in the path is +searched for an executable file. +If the file has execute permission but is not an +.B a.out +file, +it is assumed to be a file containing shell commands. +A sub-shell (i.e., a separate process) is spawned to read it. +A parenthesized command is also executed in +a sub-shell. +.SS Special Commands. +The following commands are executed in the shell process +and, except as specified, +no input/output redirection is permitted for such commands: +.PP +.PD 0 +.TP +.B : +No effect; the command does nothing. +A zero exit code is returned. +.br +.TP +.BI ".\| " file\^ +Read and execute commands from +.I file\^ +and return. +The search path +specified by +.B +.SM PATH +is used to find the directory containing +.IR file . +.TP +\f3break\fP \*(OK \f2n\^\fP \*(CK +Exit from the enclosing \f3for\fP or +.B while +loop, if any. +If +.I n\^ +is specified then break +.I n\^ +levels. +.TP +\f3continue\fP \*(OK \f2n\^\fP \*(CK +Resume the next iteration of the enclosing +\f3for\fP or +.B while +loop. +If +.I n\^ +is specified then resume at the +.IR n -th +enclosing loop. +.TP +\f3cd\fP \*(OK \f2arg\^\fP \*(CK +Change the current directory to +.IR arg . +The shell +parameter +.B +.SM HOME +is the default +.IR arg . +.br +.ne 2.1v +.TP +\f3eval\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +The arguments are read as input +to the shell +and the resulting command(s) executed. +.TP +\f3exec\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +The command specified by +the arguments is executed in place of this shell +without creating a new process. +Input/output arguments may appear and, if no other +arguments are given, cause the shell +input/output to be modified. +.TP +\f3exit\fP \*(OK \f2n\^\fP \*(CK +Causes a shell to exit +with the exit status specified by +.IR n . +If +.I n\^ +is omitted then the exit status is that of the last command executed +(an end-of-file will also cause the shell to exit.) +.TP +\f3export\fP \*(OK \f2name\^\fP .\|.\|. \*(CK +The given +.IR name s +are marked +for automatic export to the +.I environment\^ +of subsequently-executed commands. +If no arguments are given, then a list of all +names that are exported in this shell is printed. +.TP +\f3newgrp\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK +Equivalent to +.BI "exec newgrp" " arg\^" +\&.\|.\|.\|. +.TP +\f3read\fP \*(OK \f2name\^\fP .\|.\|. \*(CK +One line is read from the standard input and +the first +word is assigned to the first +.IR name , +the second word +to the second +.IR name , +etc., with leftover words assigned to the last +.IR name . +The return code is 0 unless an end-of-file is encountered. +.TP +\f3readonly\fP \*(OK \f2name\^\fP .\|.\|. \*(CK +The given +.IR name s +are marked +.I readonly\^ +and +the values of the these +.IR name s +may not be changed +by subsequent assignment. +If no arguments are given, then a list +of all +.I readonly\^ +names is printed. +.TP +\f3set\fP \*(OK \f3\-ekntuvx\fP \*(OK \f2arg\^\fP .\|.\|. \*(CK \*(CK +.RS +.TP +.B \-e +If the shell is non-interactive then exit immediately if a command +exits with a non-zero exit status. +.TP +.B \-k +All keyword arguments are placed in the environment for a command, +not just those that precede the command name. +.TP +.B \-n +Read commands but do not execute them. +.TP +.B \-t +Exit after reading and executing one command. +.TP +.B \-u +Treat unset variables as an error when substituting. +.TP +.B \-v +Print shell input lines as they are read. +.TP +.B \-x +Print commands and their arguments as they are executed. +.TP +.B \-\- +Do not change any of the flags; useful in setting $1 to -. +.PP +Using +.B \+ +rather than +.B \- +causes these flags to be turned off. +These flags can also be used upon invocation of the shell. +The current set of flags may be found in +.BR $\- . +The remaining arguments are positional +parameters and are assigned, in order, to +.BR $1 , +.BR $2 , +\&.\|.\|.\|. +If no arguments are given then the values +of all names are printed. +.RE +.TP +\f3shift\fP +.br +The positional parameters from +.B $2 +\&.\|.\|. +are renamed +.B $1 +\&.\|.\|.\|. +.TP +\f3test\fP +.br +Evaluate conditional expressions. See +.IR test (1) +for usage and description. +.TP +\f3times\fP +.br +Print the accumulated user and system times for processes +run from the shell. +.TP +\f3trap\fP \*(OK \f2arg\^\fP \*(CK \*(OK \f2n\^\fP \*(CK .\|.\|. +.I arg\^ +is a command to be read and executed when the shell +receives signal(s) +.IR n . +(Note that +.I arg\^ +is scanned once when +the trap is set and once when the trap +is taken.) +Trap commands are executed in order of signal number. +Any attempt to set a trap on a signal that +was ignored on entry to the current shell +is ineffective. +An attempt to trap on signal 11 (memory fault) produces an error. +If +.I arg\^ +is absent then all trap(s) +.I n\^ +are reset +to their original values. +If +.I arg\^ +is the null +string then this signal is ignored by the shell and by the commands +it invokes. +If +.I n\^ +is 0 then the command +.I arg\^ +is executed +on exit from the shell. +The +.B trap +command +with no arguments prints a list +of commands associated with each signal number. +.TP +\f3umask\fP \*(OK \f2nnn\^\fP \*(CK +The user file-creation mask is set to +.I nnn\^ +(see +.IR umask (2)). +If +.I nnn\^ +is omitted, the current value of the mask is printed. +.TP +\f3wait\fP +Wait for all child processes to terminate +report the termination status. +If +.I n\^ +is not given then all currently active child processes are waited for. +The return code from this command is always zero. +.PD +.PP +.SS Invocation. +If the shell is invoked through +.IR exec (2) +and the first character of argument zero +is +.BR \- , +commands are initially read from +.B /etc/profile +and then from +.BR \s-1$HOME\s+1/.profile , +if such files exist. +Thereafter, commands are read as described below, which +is also the case when the shell is invoked as +.BR /bin/sh . +The flags below are interpreted by the shell on invocation only; Note +that unless the +.B \-c +or +.B \-s +flag is specified, the first argument is assumed to be the +name of a file containing commands, and the remaining +arguments are passed as positional parameters +to that command file: +.PP +.PD 0 +.TP 10 +.BI \-c "\| string\^" +If the +.B \-c +flag is present then +commands are read from +.IR string . +.TP +.B \-s +If the +.B \-s +flag is present or if no +arguments remain +then commands are read from the standard input. +Any remaining arguments specify the positional parameters. +Shell output is written to +file descriptor 2. +.TP +.B \-i +If the +.B \-i +flag is present or +if the shell input and output are attached to a terminal, +then this shell is +.IR interactive . +In this case \s-1TERMINATE\s+1 is ignored (so that \f3kill 0\fP +does not kill an interactive shell) and \s-1INTERRUPT\s+1 is caught and ignored +(so that +.B wait +is interruptible). +In all cases, \s-1QUIT\s+1 is ignored by the shell. +.PD +.PP +The remaining flags and arguments are described under the +.B set +command above. +.PP +.SH EXIT STATUS +Errors detected by the shell, such as syntax errors, +cause the shell +to return a non-zero exit status. +If the shell is being used non-interactively +then execution of the shell file is abandoned. +Otherwise, the shell returns the exit status of +the last command executed (see also the +.B exit +command above). +.SH FILES +/etc/profile +.br +\s-1$HOME\s+1/\f3.\fPprofile +.br +/tmp/sh\(** +.br +/dev/null +.SH SEE ALSO +cd(1), +env(1), +login(1), +newgrp(1), +rsh(1), +test(1), +umask(1), +dup(2), +exec(2), +fork(2), +pipe(2), +signal(2), +ulimit(2), +umask(2), +wait(2), +a.out(5), +profile(5), +environ(7). +.SH BUGS +The command +.B readonly +(without arguments) produces the same output as the command +.BR export . +.br +If +.B <\h@-.3m@< +is used to provide standard input to an +asynchronous process invoked by +.BR & , +the shell gets mixed up about naming +the input document; +a garbage file +.B /tmp/sh\(** +is created and the shell complains about not being able +to find that file by another name. diff --git a/static/unix-v10/man1/ov.1 b/static/unix-v10/man1/ov.1 new file mode 100644 index 00000000..c3a4bcd3 --- /dev/null +++ b/static/unix-v10/man1/ov.1 @@ -0,0 +1,30 @@ +.pa 1 +.he 'OV (I)'6/12/72'OV (I)' +.ti 0 +NAME ov -- overlay pages +.sp +.ti 0 +SYNOPSIS ov__ [ file ] +.sp +.ti 0 +DESCRIPTION ov__ +is a postprocessor for producing double column formatted +text when using nroff(I). +ov__ +literally overlays successive pairs of 66-line pages. + +If the file argument is missing, +the standard input is used. +Thus ov__ may be used as a filter. +.sp +.ti 0 +FILES none +.sp +.ti 0 +SEE ALSO nroff(I), pr(I) +.sp +.ti 0 +DIAGNOSTICS none +.sp +.ti 0 +BUGS Other page lengths should be permitted. diff --git a/static/unix-v10/man1/p.1 b/static/unix-v10/man1/p.1 new file mode 100644 index 00000000..7ba07596 --- /dev/null +++ b/static/unix-v10/man1/p.1 @@ -0,0 +1,52 @@ +.TH P 1 +.CT 1 comm_term +.SH NAME +p, pg, more \(mi paginate +.SH SYNOPSIS +.B p +[ +.BI - number +] +[ +.I file ... +] +.SH DESCRIPTION +.I P +copies its standard input, or the named files if given, +to its standard output, +stopping at the end of every 22nd line, and between files, +to wait for a newline from the user. +The page size may be set by +saying (for example) +.IP +.L p -60 +.PP +While waiting for a newline, +.I p +interprets some commands: +.TP +.B - +Reprint last page. +.L -- +reprints the second last page, etc. +.TP +.B ! +Pass the rest of the line to the shell as a command. +.TP +.B q +Quit. +.PP +.I Pg +and +.I more +are synonyms for +.I p. +.SH BUGS +Because of limited storage, +.I p +can't back up too far. +.br +.I Pg +and +.I more +exist only to placate old programs that call paginators. diff --git a/static/unix-v10/man1/pack.1 b/static/unix-v10/man1/pack.1 new file mode 100644 index 00000000..830e917c --- /dev/null +++ b/static/unix-v10/man1/pack.1 @@ -0,0 +1,136 @@ +.TH PACK 1 +.CT 1 files +.SH NAME +pack, unpack, pcat, compress, uncompress, zcat \(mi compress and expand files +.SH SYNOPSIS +.B pack +[ +.B - +] +.I file ... +.PP +.B unpack +.I file ... +.PP +.B pcat +[ +.I file ... +] +.PP +.B compress +[ +.I option ... +] +[ +.I file ... +] +.PP +.B uncompress +[ +.I option ... +] +[ +.I file ... +] +.PP +.B zcat +[ +.B -V +] +[ +.I file ... +] +.SH DESCRIPTION +.I Pack +attempts to compress the +.I files +and places the results in +corresponding files named +.IB file .z +with the same access modes, dates, and owner as the originals. +Successfully packed files are removed. +.PP +.I Unpack +reverses the process. +.PP +.I Pcat +unpacks files to the standard output. +.PP +The +.B .z +suffix may be omitted from the name of the +input file for +.I unpack +or +.I pcat. +.PP +.I Pack +encodes individual characters in a Huffman code. +Option +.B - +causes statistics of the encoding to be printed. +The option toggles on and off at each appearance among the +list of +.I files. +.PP +.I Compress, uncompress, +and +.I zcat +work like +.I pack, unpack, +and +.I pcat, +putting each compressed +.I file +into +.IB file .Z . +The options are +.TP +.B -f +(force) +Compress even when it doesn't save space. +.TP +.B -c +Write to the standard output; change no files. +.I Zcat +is identical to +.I uncompress +.B -c. +.TP +.BI -b bits +.I Compress +uses a modified Lempel-Ziv encoding. +Common substrings in the file are replaced by +variable-length codes up to size +.I bits +(default 16). +Smaller limits devour less address space. +.TP +.B -v +Print percent reduction for each file. +.TP +.B -V +Print program version number. +.PP +.I Compress-uncompress +pack better and are faster overall; +.I pack-unpack +work on smaller machines and are much more widely available. +.SH "SEE ALSO" +T. A. Welch, +`A Technique for High Performance Data Compression,' +.I "IEEE Computer," +17 (1984) 8-19. +.SH DIAGNOSTICS +The exit code of +.I pack, unpack, +or +.I pcat +is the number of files it failed to process. +.PP +The exit code of +.I compress, uncompress, +or +.I zcat +is 0 normally, 1 for error, 2 for ineffective compression +(i.e. expansion). diff --git a/static/unix-v10/man1/paper.1 b/static/unix-v10/man1/paper.1 new file mode 100644 index 00000000..ab19376a --- /dev/null +++ b/static/unix-v10/man1/paper.1 @@ -0,0 +1,16 @@ +.TH PAPER 1 +.SH NAME +paper \- list input on HP2621P printer +.SH SYNOPSIS +.B paper +[ +.I file +] +... +.SH DESCRIPTION +.I paper +prints the argument files (or the standard input +if there are no arguments) on the user's terminal +which is assumed to be a HP2621P. +A handshaking protocol is used to prevent overrunning +the terminal's buffer and dropping characters. diff --git a/static/unix-v10/man1/paranoia.1 b/static/unix-v10/man1/paranoia.1 new file mode 100644 index 00000000..21ad8a30 --- /dev/null +++ b/static/unix-v10/man1/paranoia.1 @@ -0,0 +1,196 @@ +Lest this program stop prematurely, i.e. before displaying + + `END OF TEST', + +try to persuade the computer NOT to terminate execution when an +error like Over/Underflow or Division by Zero occurs, but rather +to persevere with a surrogate value after, perhaps, displaying some +warning. If persuasion avails naught, don't despair but run this +program anyway to see how many milestones it passes, and then +amend it to make further progress. + +Answer questions with Y, y, N or n (unless otherwise indicated). + + +Diagnosis resumes after milestone Number 0 Page: 1 + +Users are invited to help debug and augment this program so it will +cope with unanticipated and newly uncovered arithmetic pathologies. + +Please send suggestions and interesting results to + Richard Karpinski + Computer Center U-76 + University of California + San Francisco, CA 94143-0704, USA + +In doing so, please include the following information: + Precision: double; + Version: 10 February 1989; + Computer: + + Compiler: + + Optimization level: + + Other relevant compiler options: + +Diagnosis resumes after milestone Number 1 Page: 2 + +Running this program should reveal these characteristics: + Radix = 1, 2, 4, 8, 10, 16, 100, 256 ... + Precision = number of significant digits carried. + U2 = Radix/Radix^Precision = One Ulp + (OneUlpnit in the Last Place) of 1.000xxx . + U1 = 1/Radix^Precision = One Ulp of numbers a little less than 1.0 . + Adequacy of guard digits for Mult., Div. and Subt. + Whether arithmetic is chopped, correctly rounded, or something else + for Mult., Div., Add/Subt. and Sqrt. + Whether a Sticky Bit used correctly for rounding. + UnderflowThreshold = an underflow threshold. + E0 and PseudoZero tell whether underflow is abrupt, gradual, or fuzzy. + V = an overflow threshold, roughly. + V0 tells, roughly, whether Infinity is represented. + Comparisions are checked for consistency with subtraction + and for contamination with pseudo-zeros. + Sqrt is tested. Y^X is not tested. + Extra-precise subexpressions are revealed but NOT YET tested. + Decimal-Binary conversion is NOT YET tested for accuracy. + +Diagnosis resumes after milestone Number 2 Page: 3 + +The program attempts to discriminate among + FLAWs, like lack of a sticky bit, + Serious DEFECTs, like lack of a guard digit, and + FAILUREs, like 2+2 == 5 . +Failures may confound subsequent diagnoses. + +The diagnostic capabilities of this program go beyond an earlier +program called `MACHAR', which can be found at the end of the +book `Software Manual for the Elementary Functions' (1980) by +W. J. Cody and W. Waite. Although both programs try to discover +the Radix, Precision and range (over/underflow thresholds) +of the arithmetic, this program tries to cope with a wider variety +of pathologies, and to say how well the arithmetic is implemented. + +The program is based upon a conventional radix representation for +floating-point numbers, but also allows logarithmic encoding +as used by certain early WANG machines. + +BASIC version of this program (C) 1983 by Prof. W. M. Kahan; +see source comments for more history. + +Diagnosis resumes after milestone Number 3 Page: 4 + +Program is now RUNNING tests on small integers: +-1, 0, 1/2, 1, 2, 3, 4, 5, 9, 27, 32 & 240 are O.K. + +Searching for Radix and Precision. +Radix = 2.000000 . +Closest relative separation found is U1 = 1.3877788e-17 . + +Recalculating radix and precision + confirms closest relative separation U1 . +Radix confirmed. +The number of significant digits of the Radix is 56.000000 . + +Diagnosis resumes after milestone Number 30 Page: 5 + +Subtraction appears to be normalized, as it should be. +Checking for guard digit in *, /, and -. + *, /, and - appear to have guard digits, as they should. + +Diagnosis resumes after milestone Number 40 Page: 6 + +Checking rounding on multiply, divide and add/subtract. +Multiplication appears to round correctly. +Division appears to round correctly. +Addition/Subtraction appears to round correctly. +Checking for sticky bit. +Sticky bit used incorrectly or not at all. + +Does Multiplication commute? Testing on 20 random pairs. + No failures found in 20 integer pairs. + +Running test of square root(x). +Testing if sqrt(X * X) == X for 20 Integers X. +Test for sqrt monotonicity. +sqrt has passed a test for Monotonicity. +Testing whether sqrt is rounded or chopped. +Square root is neither chopped nor correctly rounded. +Observed errors run from 0.0000000e+00 to 5.0000000e-01 ulps. + +Diagnosis resumes after milestone Number 90 Page: 7 + +Testing powers Z^i for small Integers Z and i. +... no discrepancis found. + +Seeking Underflow thresholds UfThold and E0. +Smallest strictly positive number found is E0 = 2.93874e-39 . +Since comparison denies Z = 0, evaluating (Z + Z) / Z should be safe. +What the machine gets for (Z + Z) / Z is 2.00000000000000000e+00 . +This is O.K., provided Over/Underflow has NOT just been signaled. + +Diagnosis resumes after milestone Number 120 Page: 8 + + +FLAW: X = 4.04076183095161330e-39 + is not equal to Z = 2.93873587705571880e-39 . +yet X - Z yields 0.00000000000000000e+00 . + Should this NOT signal Underflow, this is a SERIOUS DEFECT +that causes confusion when innocent statements like + if (X == Z) ... else ... (f(X) - f(Z)) / (X - Z) ... +encounter Division by Zero although actually +X / Z = 1 + 0.375 . +The Underflow threshold is 2.93873587705571880e-39, below which +calculation may suffer larger Relative error than merely roundoff. +SERIOUS DEFECT: Range is too narrow; U1^4 Underflows. +Since underflow occurs below the threshold +UfThold = (2.00000000000000000e+00) ^ (-1.28000000000000000e+02) +only underflow should afflict the expression + (2.00000000000000000e+00) ^ (-1.28000000000000000e+02); +actually calculating yields: 0.00000000000000000e+00 . +This computed value is O.K. + +Testing X^((X + 1) / (X - 1)) vs. exp(2) = 7.38905609893065010e+00 as X -> 1. +Accuracy seems adequate. +Testing powers Z^Q at four nearly extreme values. + ... no discrepancies found. + + +Diagnosis resumes after milestone Number 160 Page: 9 + +Searching for Overflow threshold: +This may generate an error. + +* * * FLOATING-POINT ERROR * * * +Can `Z = -Y' overflow? +Trying it on Y = -8.50705917302346160e+37 . +Seems O.K. +Overflow threshold is V = 1.70141183460469230e+38 . +There is no saturation value because the system traps on overflow. +No Overflow should be signaled for V * 1 = 1.70141183460469230e+38 + nor for V / 1 = 1.70141183460469230e+38 . +Any overflow signal separating this * from the one +above is a DEFECT. + + +Diagnosis resumes after milestone Number 190 Page: 10 + + +What message and/or values does Division by Zero produce? + Trying to compute 1 / 0 produces ... +* * * FLOATING-POINT ERROR * * * + + Trying to compute 0 / 0 produces ... +* * * FLOATING-POINT ERROR * * * + +Diagnosis resumes after milestone Number 220 Page: 11 + + +The number of SERIOUS DEFECTs discovered = 1. +The number of FLAWs discovered = 1. + +The arithmetic diagnosed has unacceptable Serious Defects. + +A total of 3 floating point exceptions were registered. +END OF TEST. diff --git a/static/unix-v10/man1/pascal.1 b/static/unix-v10/man1/pascal.1 new file mode 100644 index 00000000..8886a2ec --- /dev/null +++ b/static/unix-v10/man1/pascal.1 @@ -0,0 +1,170 @@ +.TH PASCAL 1 +.CT 1 prog_other +.SH NAME +pascal \(mi language interpreter +.SH SYNOPSIS +.B pascal +[ +.B -cx +] +[ +.BI - options +] +[ +.B -i +.I name ... +] +[ +.IB name .p +] +[ +.I obj +[ +.I argument ... +] +] +.PP +.B pmerge +.IB name .p +.I \&... +.SH DESCRIPTION +.I Pascal +translates Pascal source programs +to interpretable form, executes them, +or both. +Under option +.B -c +the programs are translated +but not executed. +The translated code appears in file +.FR obj . +Under option +.B -x +.I pascal +interprets the previously translated code in file +.I obj +(default +.FR obj ). +.I Arguments +are made available through the built-ins +.L argc +and +.LR argv . +.PP +Options +.B -c +and +.B -x +must come first. +.PP +Option +.B -i +causes the named procedures and include files to be listed. +.PP +Other options are combined in a separate string: +.TP +.B b +Buffer the runtime +file +.LR output . +.PD0 +.TP +.B l +Make a program listing during translation. +.TP +.B n +List each included +file on a new page with a banner line. +.TP +.B p +Suppress the post-mortem control flow backtrace +if an error occurs; +override execution limit of 500,000 statements. +.TP +.B s +Accept standard Pascal only; +non-standard constructs cause warning diagnostics. +.TP +.B t +Suppress runtime tests of subrange variables and treat +assert statements as comments. +.TP +.B u +Card image mode; +only the first 72 characters of input lines are used. +.TP +.B w +Suppress warning diagnostics. +.TP +.B z +Cause the interpreter to gather profiling data for +later analysis by +.IR pxp (A). +.PD +.PP +.I Pmerge +combines the named source files into a single source file on the +standard output. +.SH FILES +.TF /usr/lib/pascal/* +.TP +.F *.p +source +.TP +.F *.i +include files +.TP +.F /usr/lib/pascal/* +.TP +.F obj +.TP +.F /tmp/pix* +obj for compile-and-go +.TP +.F pmon.out +profile data file +.SH "SEE ALSO" +.IR pc (1), +.IR pxp (A) +.br +W. N. Joy, Susan L. Graham, C. B. Haley, +`Berkeley Pascal User's Manual', in +.I +Unix Programmer's Manual, Seventh Edition, Virtual VAX-11 Version, +1980, Vol 2C +(Berkeley). +There +.I pascal +is called +.I pi, px, +and +.IR pix. +.SH DIAGNOSTICS +The first character of an +error message indicates its class: +.TP +.L E +Fatal error; no code will be generated. +.PD0 +.TP +.L e +Non-fatal error. +.TP +.L w +Warning \- a potential problem. +.TP +.L s +Warning \- nonstandard Pascal construct. +.SH BUGS +The keyword +.L packed +is recognized but has no effect. +.br +Diagnostics for an included file may appear in the listing +of the next one. +.br +A dummy +.I obj +must be given if both source and +.I arguments +are present. diff --git a/static/unix-v10/man1/passwd.1 b/static/unix-v10/man1/passwd.1 new file mode 100644 index 00000000..c8943a24 --- /dev/null +++ b/static/unix-v10/man1/passwd.1 @@ -0,0 +1,128 @@ +.TH PASSWD 1 +.CT 1 comm_term sa_mortals secur +.SH NAME +passwd, pwx \(mi change login password +.SH SYNOPSIS +.B passwd +[ +.B -an +] +[ +.I name +] +.PP +.B priv pwx +[ [ +.B -qcd +] +.I name +] ] +.SH DESCRIPTION +.I Passwd +changes a password +associated with the user +.IR name +(your own name by default). +.PP +The program prompts for the old password and then for the new one. +The caller must supply both. +The new password must be typed twice, to forestall mistakes. +.PP +New passwords must be at least four characters long if they use +a sufficiently rich alphabet and at least six characters long +if monocase. +These rules are relaxed if you are insistent enough. +.PP +Only the owner of the name or the super-user may change a password; +the owner must prove he knows the old password. +.PP +If the +.B -a +option is given, +.I passwd +prompts for new values of certain fields of the +password file entry. +.PP +The super-user may use the +.B -n +option to install new users. +The prompts are self-explanatory, +and most of the defaults obvious. +A null response to the +.L UID: +prompt +assigns a numeric userid one greater than the +largest one previously in +.FR /etc/passwd . +A null response to +.L Directory: +assigns a home directory in +.FR /usr . +If the first character of the response to this +prompt is an asterisk, the remaining characters +are taken as the name of the new user's home +directory, and a symbolic link to this directory +is placed in +.FR /usr . +.PP +A new user's home directory starts with a file named +.FR .profile , +which is a copy of +.F /etc/stdprofile +with +.B \eN +replaced by the user's name, and +.B \eD +replaced by the name of the user's home directory. +.PP +.I Pwx +modifies the password entry for +the named user in the secret password file, +.IR pwfile (5). +With no option +.I pwx +changes the classical password for the named user, +or the invoker by default. +The options are +.TP +.B -c +Change other information. +A special editing password for a fictitious user, +`pwedit', is demanded. +Then +.I pwx +prompts for treatment of the user password, +SNK key, maximum privilege, and clearance (maximum ceiling). +.TP +.B -d +Delete an entry. +The editing password is demanded. +.TP +.B -q +Demand the user password. +If a correct password is entered, return status 0; +otherwise nonzero. +.PP +Options +.B -c +and +.B -d +require +.B T_SETPRIV +privilege. +.SH FILES +.F /etc/passwd +.br +.F /etc/stdprofile +.br +.F /etc/pwfile +.SH "SEE ALSO" +.IR crypt (3), +.IR passwd (5), +.IR pwfile (5), +.IR pwserv (8) +.br +Robert Morris and Ken Thompson, +`UNIX password security,' +.I AT&T Bell Laboratories Technical Journal +63 (1984) 1649-1672 diff --git a/static/unix-v10/man1/patch.1 b/static/unix-v10/man1/patch.1 new file mode 100644 index 00000000..736e0324 --- /dev/null +++ b/static/unix-v10/man1/patch.1 @@ -0,0 +1,320 @@ +''' $Header: patch.man,v 1.3 85/03/26 15:11:06 lwall Exp $ +''' +''' $Log: patch.man,v $ +''' Revision 1.3 85/03/26 15:11:06 lwall +''' Frozen. +''' +''' Revision 1.2.1.4 85/03/12 16:14:27 lwall +''' Documented -p. +''' +''' Revision 1.2.1.3 85/03/12 16:09:41 lwall +''' Documented -D. +''' +''' Revision 1.2.1.2 84/12/05 11:06:55 lwall +''' Added -l switch, and noted bistability bug. +''' +''' Revision 1.2.1.1 84/12/04 17:23:39 lwall +''' Branch for sdcrdcf changes. +''' +''' Revision 1.2 84/12/04 17:22:02 lwall +''' Baseline version. +''' +.de Sh +.br +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp +.if t .sp .5v +.if n .sp +.. +''' +''' Set up \*(-- to give an unbreakable dash; +''' string Tr holds user defined translation string. +''' Bell System Logo is used as a dummy character. +''' +.ie n \{\ +.tr \(bs-\*(Tr +.ds -- \(bs- +.if (\n(.H=4u)&(1m=24u) .ds -- \(bs\h'-12u'\(bs\h'-12u'-\" diablo 10 pitch +.if (\n(.H=4u)&(1m=20u) .ds -- \(bs\h'-12u'\(bs\h'-8u'-\" diablo 12 pitch +.ds L" "" +.ds R" "" +.ds L' ' +.ds R' ' +'br\} +.el\{\ +.ds -- \(em\| +.tr \*(Tr +.ds L" `` +.ds R" '' +.ds L' ` +.ds R' ' +'br\} +.TH PATCH 1 "May 10, 1986" "Systems Development Corp" +.SH NAME +patch \- a program for applying a diff file to an original +.SH SYNOPSIS +.B patch +[options] orig diff [+ [options] orig] +.SH DESCRIPTION +.I Patch +will take a patch file containing any of the three forms of difference +listing produced by the +.I diff +program and apply those differences to an original file, producing a patched +version. +By default, the patched version is put in place of the original, with +the original file backed up to the same name with the +extension \*(L".orig\*(R", or as specified by the +.B -b +switch. +You may also specify where you want the output to go with a +.B -o +switch. +If +.I diff +is omitted, or is a hyphen, the patch will be read from standard input. +.PP +Upon startup, patch will attempt to determine the type of the diff file, +unless over-ruled by a +.BR -c , +.BR -e , +or +.B -n +switch. +Context diffs and normal diffs are applied by the +.I patch +program itself, while ed diffs are simply fed to the +.I ed +editor via a pipe. +.PP +.I Patch +will try to skip any leading garbage, apply the diff, +and then skip any trailing garbage. +Thus you could feed an article or message containing a context or normal +diff to +.IR patch , +and it should work. +If the entire diff is indented by a consistent amount, +this will be taken into account. +.PP +With context diffs, and to a lesser extent with normal diffs, +.I patch +can detect when the line numbers mentioned in the patch are incorrect, +and will attempt to find the correct place to apply each hunk of the patch. +As a first guess, it takes the line number mentioned for the hunk, plus or +minus any offset used in applying the previous hunk. +If that is not the correct place, +.I patch +will scan both forwards and backwards for a set of lines matching the context +given in the hunk. +All lines of the context must match. +If +.I patch +cannot find a place to install that hunk of the patch, it will put the +hunk out to a reject file, which normally is the name of the output file +plus \*(L".rej\*(R". +(Note that the rejected hunk will come out in context diff form whether the +input patch was a context diff or a normal diff. +If the input was a normal diff, many of the contexts will simply be null.) +.PP +If no original file is specified on the command line, +.I patch +will try to figure out from the leading garbage what the name of the file +to edit is. +In the header of a context diff, the filename is found from lines beginning +with \*(L"***\*(R" or \*(L"---\*(R", with the shortest name of an existing +file winning. +Only context diffs have lines like that, but if there is an \*(L"Index:\*(R" +line in the leading garbage, +.I patch +will try to use the filename from that line. +The context diff header takes precedence over an Index line. +If no filename can be intuited from the leading garbage, you will be asked +for the name of the file to patch. +.PP +(If the original file cannot be found, but a suitable SCCS or RCS file is +handy, +.I patch +will attempt to get or check out the file.) +.PP +Additionally, if the leading garbage contains a \*(L"Prereq: \*(R" line, +.I patch +will take the first word from the prerequisites line (normally a version +number) and check the input file to see if that word can be found. +If not, +.I patch +will ask for confirmation before proceeding. +.PP +The upshot of all this is that you should be able to say, while in a news +interface, the following: +.Sp + | patch -d /usr/src/local/blurfl +.Sp +and patch a file in the blurfl directory directly from the article containing +the patch. +.PP +If the patch file contains more than one patch, +.I patch +will try to apply each of them as if they came from separate patch files. +This means, among other things, that it is assumed that separate patches +will apply to separate files, and that the garbage before each patch will +be examined for interesting things such as filenames and revision level, as +mentioned previously. +You can give switches (and another original file name) for the second and +subsequent patches by separating the corresponding argument lists +by a \*(L'+\*(R'. +The argument list for a second or subsequent patch may not specify a new +patch file, however. +.PP +.I Patch +recognizes the following switches: +.TP 5 +.B \-b +causes the next argument to be interpreted as the backup extension, to be +used in place of \*(L".orig\*(R". +.TP 5 +.B \-c +forces +.I patch +to interpret the patch file as a context diff. +.TP 5 +.B \-d +causes +.I patch +to interpret the next argument as a directory, and cd to it before doing +anything else. +.TP 5 +.B \-D +causes +.I patch +to use the "#ifdef...#endif" construct to mark changes. +The argument following will be used as the differentiating symbol. +Note that, unlike the C compiler, there must be a space between the +.B \-D +and the argument. +.TP 5 +.B \-e +forces +.I patch +to interpret the patch file as an ed script. +.TP 5 +.B \-l +causes the pattern matching to be done loosely, in case the tabs and +spaces have been munged in you input file. +Any sequence of whitespace in the pattern line will match any sequence +in the input file. +Normal characters must still match exactly. +Each line of the context must still match a line in the input file. +.TP 5 +.B \-n +forces +.I patch +to interpret the patch file as a normal diff. +.TP 5 +.B \-N +forces patch to not try and reverse the diffs if it thinks that they may have +been swapped. See the +.B \-R +option below. +.TP 5 +.B \-o +causes the next argument to be interpreted as the output file name. +.TP 5 +.B \-p +causes leading pathnames to be kept. +If the diff is of the file \*(lqb/a.c\*(rq, patch will look for \*(lqa.c\*(rq +in the \*(lqb\*(rq directory, instead of the current directory. +This probably won't work if the diff has rooted pathnames. +.TP 5 +.B \-r +causes the next argument to be interpreted as the reject file name. +.TP 5 +.B \-R +tells +.I patch +that this patch was created with the old and new files swapped. +(Yes, I'm afraid that does happen occasionally, human nature being what it +is.) +.I Patch +will attempt to swap each hunk around before applying it. +Rejects will come out in the swapped format. +The +.B \-R +switch will not work with ed diff scripts because there is too little +information to reconstruct the reverse operation. +.Sp +If the first hunk of a patch fails, +.I patch +will reverse the hunk to see if it can be applied that way unless the +.B \-N +option is supplied. +If it can, the +.B \-R +switch will be set automatically. +If it can't, the patch will continue to be applied normally. +(Note: this method cannot detect a reversed patch if it is a normal diff +and if the first command is an append (i.e. it should have been a delete) +since appends always succeed. +Luckily, most patches add lines rather than delete them, so most reversed +normal diffs will begin with a delete, which will fail, triggering the +heuristic.) +.TP 5 +.B \-s +makes +.I patch +do its work silently, unless an error occurs. +.TP 5 +.B \-x +sets internal debugging flags, and is of interest only to +.I patch +patchers. +.SH ENVIRONMENT +No environment variables are used by +.IR patch . +.SH FILES +/tmp/patch* +.SH SEE ALSO +diff(1) +.SH DIAGNOSTICS +Too many to list here, but generally indicative that +.I patch +couldn't parse your patch file. +.PP +The message \*(L"Hmm...\*(R" indicates that there is unprocessed text in +the patch file and that +.I patch +is attempting to intuit whether there is a patch in that text and, if so, +what kind of patch it is. +.SH CAVEATS +.I Patch +cannot tell if the line numbers are off in an ed script, and can only detect +bad line numbers in a normal diff when it finds a \*(L"change\*(R" command. +Until a suitable interactive interface is added, you should probably do +a context diff in these cases to see if the changes made sense. +Of course, compiling without errors is a pretty good indication that it +worked, but not always. +.PP +.I Patch +usually produces the correct results, even when it has to do a lot of +guessing. +However, the results are guaranteed to be correct only when the patch is +applied to exactly the same version of the file that the patch was +generated from. +.SH BUGS +Could be smarter about partial matches, excessively \&deviant offsets and +swapped code, but that would take an extra pass. +.PP +If code has been duplicated (for instance with #ifdef OLDCODE ... #else ... +#endif), +.I patch +is incapable of patching both versions, and, if it works at all, will likely +patch the wrong one, and tell you it succeeded to boot. +.PP +If you apply a patch you've already applied, +.I patch +will think it is a reversed patch, and un-apply the patch. +This could be construed as a feature. diff --git a/static/unix-v10/man1/pax.1 b/static/unix-v10/man1/pax.1 new file mode 100644 index 00000000..606de37b --- /dev/null +++ b/static/unix-v10/man1/pax.1 @@ -0,0 +1,657 @@ +.\" +.\" G. S. Fowler +.\" AT&T Bell Laboratories +.\" +.\" @(#)pax.1 (ulysses!gsf) 01/11/90 +.\" +.TH PAX 1 +.SH NAME +pax \- portable archive interchange +.SH SYNOPSIS +.B pax +[ +.B \-rmnov +] [ +.B \-f +.I archive +] [ +.B \-s +.RI / old / new /[gp] +] [ +.I "pattern ..." +] +.LP +.B pax +.B \-w +[ +.B mv +] [ +.B \-b +.I blocking +] [ +.B \-f +.I archive +] [ +.B \-s +.RI / old / new /[gp] +] [ +.B \-x +.I format +] [ +.I "pathname ..." +] +.LP +.B pax +.B \-rw +[ +.B mov +] [ +.B \-s +.RI / old / new /[gp] +] [ +.I "pathname ..." +] +.I directory +.SH DESCRIPTION +.I pax +reads and writes archive files in various formats. +There are four operation modes controlled by combinations of the +.B \-r +and +.B \-w +options. +.PP +.B "pax \-w" +writes the files and directories named by the +.I pathname +arguments to the standard output together with +pathname and status information. +A directory +.I pathname +argument refers to the files and (recursively) subdirectories +of that directory. +If no +.I pathname +arguments are given then the standard input is read to get +a list of pathnames to copy, one pathname per line. +In this case only those pathnames appearing on the standard input are copied. +.PP +.B "pax \-r" +reads files from the standard input that is assumed +to be the result of a previous +.B "pax \-w" +command. +Only files with names that match any of the +.I pattern +arguments are selected. +A +.I pattern +is given in the name-generating notation of +.IR sh (1), +except that the +.B / +character is also matched. +The default if no +.I pattern +is given is +.BR * , +which selects all files. +The selected files are conditionally created and copied relative +to the current directory tree, subject to the options described below. +By default the owner and group of selected files will be that of the +current user, and the permissions and modify times will be the same +as those in the archive. +If the +.B \-r +option is omitted then a table of contents of the selected files is +listed on the standard output. +.PP +.B "pax \-rw" +reads the files and directories named in the +.I pathname +arguments and copies them to the destination +.IR directory . +A directory +.I pathname +argument refers to the files and (recursively) subdirectories +of that directory. +If no +.I pathname +arguments are given then the standard input is read to get +a list of pathnames to copy, one pathname per line. +In this case only those pathnames appearing on the standard input are copied. +.I directory +must exist before the copy. +.PP +The standard archive formats are automatically detected on input. +The default output archive format is implementation defined, +but may be overridden by the +.B \-x +option described below. +.I pax +archives may be concatenated to combine multiple volumes on a single +tape or file. +This is accomplished by forcing any format prescribed pad data to be null bytes. +Hard links are not maintained between volumes, and +delta and base archives cannot be multi-volume. +.PP +A single archive may span many files/devices. +The second and subsequent file names are prompted for on the terminal input. +The response may be: +.TP +.BI ! command +Execute +.I command +via +.IR system (3) +and prompt again for file name. +.TP +.B EOF +Exit without further processing. +.TP +.B CR +An empty input line retains the previous file name. +.TP +.I pathname +The file name for the next archive part. +.SS "Basic Options" +These options support basic archive operations. +.TP +.BI b " blocking" +Set the output blocking size. +If no suffix (or a +.B c +suffix) is specified then +.I blocking +is in 1 character units. +A +.B b +suffix multiplies +.I blocking +by 512 (1 block), a +.B k +suffix multiplies +.I blocking +by 1024 (1 kilobyte) and an +.B m +suffix multiplies +.I blocking +by 1048576 (1 megabyte). +.I blocking +is automatically determined on input and is ignored for +.BR \-rw . +The default +.I blocking +is +.B 10k +for block and character special archive files and +implementation defined otherwise. +The minimum +.I blocking +is +.BR 1c . +.TP +.BI f " archive" +.I archive +is the pathname of the input or output archive, overriding the default +standard input for +.B \-r +and +.B \-rw +or standard output for +.BR \-w . +.TP +.B m +File modification times are not retained. +.TP +.B n +For +.B \-r +the pattern arguments are treated as ordinary file names. +Only the first occurrence of each of these files in the +input archive is read. +.I pax +exits with zero exit status after all files in the list have been read. +If one or more files in the list is not found, +.I pax +writes a message to standard error for each of these files +and exits with a non-zero exit status. +The file names are compared before any of the +.B \-i, +.B \-s, +or +.B \-y +options are applied. +.TP +.B o +Restore file ownership as specified in the archive. +The current user must have appropriate privileges. +.TP +\fBs\fP /\fIold\fP/\fInew\fP/[\fIglpu\fP] +File names and symbolic link text are mapped according +to the +.IR ed (1) +style substitution expression. +Any non-null character may be used as a delimiter +.RB ( / +shown here). +Multiple +.B \-s +expressions may be specified; the expressions are applied from left to right, +terminating with the first successful substitution. +A trailing +.B l +converts the matched string to lower case. +A trailing +.B p +causes successful mappings to be listed on the standard error. +A trailing +.B u +converts the matched string to upper case. +File names that substitute to the null string are ignored on +both input and output. +The +.B \-P +option inhibits symbolic link text substitution. +.TP +.B v +Produces a verbose table of contents listing on the standard output when both +.B \-r +and +.B \-w +are omitted. +Otherwise the file names are listed on the standard error +as they are encountered. +.TP +.BI x " format" +Specifies the output archive +.IR format . +If specified with +.B \-rw +then the standard input is treated as an archive that is converted to a +.I format +archive on the standard output. +The input format, which must be one of the following, +is automatically determined. +The default output format, named by +.BR \- , +is +.BR cpio . +The formats are: +.RS +.PD 0 +.TP +.B asc +The +.B s5r4 +extended +.IR cpio (5) +character format. +.TP +.B ansi +ANSI standard label tape format. +Only regular files with simple pathnames are archived. +Valid only for blocked devices. +.TP +.B asc +The +.B s5r4 +extended +.IR cpio (5) +character format. +.TP +.B aschk +The +.B s5r4 +extended +.IR cpio (5) +character format with header checksum. +This format is misnamed +.B crc +in the +.B s5r4 +documentation. +.TP +.B binary +The +.IR cpio (5) +binary format with symbolic links. +This format is obsolete and should not be used on output. +.TP +.B cpio +The +.IR cpio (5) +character format with symbolic links. +This is the default output format. +.TP +.B ibmar +EBCDIC standard label tape format. +Only regular files with simple pathnames are archived. +Valid only for tape devices. +.TP +.B posix +The IEEE 1003.1b-1990 interchange format, partially compatible with +the X3.27 standard labeled tape format. +.TP +.B portarch +The svr2 portable object library format. +Valid only on input. +.TP +.B randarch +The BSD ranlib object library format. +Valid only on input. +.TP +.B tar +The +.IR tar (5) +format with symbolic links. +.TP +.B ustar +The POSIX IEEE Std 1003.1-1988 tar format. +.TP +.B vmsbackup +ANSI standard label VMS backup savset tape format. +Valid only for input tape devices. +.PD +.RE +.SS "Compatibility Options" +These options provide functional compatibility with the old +.IR cpio (1) +and +.IR tar (1) +commands. +.TP +.B a +For +.B \-w +append files to the end of the archive. +.TP +.B c +Complement the match sense of the +.I pattern +arguments. +.TP +.B d +Intermediate directories not explicitly listed in the archive +are not created. +.TP +.B i +Interactively +.I rename +files. +A file is skipped if a null line is entered and +.I pax +exits if +.B EOF +is encountered. +.TP +.B l +For +.BR \-rw , +files are linked rather than copied when possible. +.TP +.B p +Preserve the access times of input files after they have been copied. +.TP +.BI t " device" +.I device +is an identifier that names the input or output archive device, +overriding the default standard input for +.B \-r +or standard output for +.BR \-w . +Tape devices may be specified as +.IR drive [ density\|rewind ] +where +.I drive +is a drive number in the range [0\-7], +.I density +is one of +.BR l , +.B m +and +.B h +for +.B low +(800 bpi), +.B medium +(1600 bpi \- default) +and +.B high +(6250 bpi) +tape densities and +.I rewind +is +.B n +to inhibit rewinding of the tape device when it is closed. +Other forms for +.I device +are implementation defined. +.TP +.B u +Copy each file only if it is newer than a pre-existing file with the same name. +This option implies +.BR \-a . +.TP +.B y +Interactively prompt for the disposition of each file. +.B EOF +or an input line starting with +.B q +causes +.I pax +to exit. +Otherwise an input line starting with anything other than +.B y +causes the file to be ignored. +.SS "Extended Options" +These options provide fine archive control, including delta archive operations. +.TP +.BI e " filter" +Run the +.I filter +command on each file to be output. +The current name of the file to be output is appended to the filter command +string before the command is executed by the shell. +.TP +.B h +Inhibit archive heading and summmary information messages to stderr. +.TP +.B k +For +.B \-r +continue processing the archive after encountering an error by attempting +to locate the next valid entry. +This is useful for archives stored on unreliable media. +.TP +.BI z " base" +Specifies the delta base archive +.I base +that is assumed to be the result of a previous +.B "pax \-w" +command. +For +.B \-w +the input files are compared with the files in +.I base +and file delta information is placed in the output archive +using the delta algorithm. +For +.B \-r +the delta information in the input archive is used to update the +output files with respect to the files in +.IR base . +For +.B \-rw +the delta information in the archive on the standard input is used +to generate an archive on the standard output whose entries are updated +with respect to the files in +.IR base . +If +.I base +is +.B \- +or an empty file then the input files are simply compressed. +.B "\-z -" +must also be specified to produce a compressed archive for +.BR \-rw . +.TP +.BI B " count" +Sets the maximum archive part output character count. +.I pax +prompts for the next archive part file name. +Valid only with +.BR \-w . +.TP +.B C +Archive entries smaller than +.BI \-B " maxblocks" +must be contained within a single part. +Valid only with +.BR \-B . +.TP +.B L +Copy a logical view of the input files. +Symbolic links are followed, causing the pointed to files to be copied +rather than the symbolic link information. +This is the default. +.TP +.BI M " message" +Set the +.I "end of medium" +prompt to +.IR message . +This message is used to prompt interactively for the next tape +reel or cartridge in cases where the tape runs out before +all files have been copied. +.I message +may contain one +.IR printf (3) +style integer format specification that is replaced with the +next part number. +.TP +.B P +Copy a physical view of the input files. +Causes symbolic link information to be copied as opposed to the +default (logical view) action of following symbolic links +and copying the pointed to files. +.TP +\fBR\fP \fIoption\fP[\fIvalue\fP][,\fIoption\fP[\fIvalue\fP]...] +Set record oriented format options. +Multiple options may be concatenated using +.BR , . +Some options may be fixed for some formats. +The options are: +.RS +.PD 0 +.TP +.B c +Record data is subject to character set conversions. +.TP +.BI f format +Set the output record format to +.IR format . +The supported record formats are: +.RS +.TP +.B D +Variable length with 4 byte record header. +The record size default is 512. +.TP +.B F +Fixed length with no record header. +The record size default is 128. +.TP +.B S +Spanned variable length with 4 byte record header. +The record size default is 0 (no limit). +.TP +.B U +Variable length with no record header. +The output block size matches the size of each output record. +The record size default is 512. +.TP +.B V +Spanned variable length with binary 4 byte record header. +The record size default is 0 (no limit). +The +.B D +format is preferred. +.PD +.RE +.TP +.BI m pattern +Only those files with input record format matching +.I pattern +are processed. +.TP +.B p +Partial output blocks are padded to the full blocksize. +.TP +.BI s size +Set the output record size to +.IR size . +.I size +should divide the output blocking. +.TP +.BI v label +Set the output volume label to +.IR label . +Some formats may truncate and/or case-convert +.IR label . +.PD +.RE +.TP +.B S +Similar to +.B \-l +except that symbolic links are created. +.TP +.BI U " id" +Set file ownership to the default of the user named +.IR id . +Valid only for the super-user. +.TP +.B V +Output a `.' as each file is encountered. +This overrides the +.B \-v +option. +.TP +.B X +Do not cross mount points when searching for files to output. +.SH DIAGNOSTICS +The number of files, blocks, and optionally the number of volumes and +media parts are listed on the standard error. +For +.B \-v +the input archive formats are also listed on the standard error. +.SH EXAMPLES +.TP +.B "pax \-w \-t 1m ." +Copies the contents of the current directory to tape drive 1, medium density. +.TP +.PD 0 +.BI mkdir " newdir" +.TP +.BI cd " olddir" +.TP +.BI "pax \-rw ." " newdir" +.PD +Copies the +.I olddir +directory hierarchy to +.IR newdir . +.SH "SEE ALSO" +ar(1), cpio(1), find(1), ksh(1), tar(1), tw(1), libdelta(3), cpio(5), tar(5) +.SH BUGS +Special privileges may be required to copy special files. +.br +Each archive format has a hard upper limit on member pathname sizes. +.br +Device, user-id and group-id numbers larger than 65535 cause additional +header records to be output. +These records are ignored by old versions of +.IR cpio (1) +and +.IR tar (1). diff --git a/static/unix-v10/man1/pc.1 b/static/unix-v10/man1/pc.1 new file mode 100644 index 00000000..26b50792 --- /dev/null +++ b/static/unix-v10/man1/pc.1 @@ -0,0 +1,176 @@ +.TH PC 1 +.CT 1 prog_other +.SH NAME +pc \- pascal language compiler +.SH SYNOPSIS +.B pc +[ +.I option +] +[ +.B \-i +.I name ... +] +.I name ... +.SH DESCRIPTION +.I Pc +compiles the Pascal source file +.IB name .p +into an executable file called, by default, +.IR a.out . +.PP +Multiple +.B .p +files are compiled into object files suffixed +.B .o +in place of +.BR .p . +Object files may be combined by +.IR ld (1) +into an executable +.I a.out +file. +Exactly one object file must supply a +.B program +statement. +The other files contain +declarations which logically nest within the program. +Objects shared between separately compiled files +must be declared in +.BR include d +header files, whose names must end with +.BR .h . +An +.B external +directive, similar to +.BR forward , +declares +.BR function s +and +.BR procedure s +in +.B .h +files. +.PP +These options have the same meaning as in +.IR cc (1): +.BR "-c -g -w -p -O -S -o" . +The following options are peculiar to +.IR pc . +.TP +.B -C +Compile code to perform runtime checks, +verify +.B assert +statements, +and initialize variables to zero as in +.IR pascal (1). +.PD 0 +.TP +.B -b +Block buffer the file +.I output. +.TP +.B -i +Produce a listing for +the specified procedures, functions and +.B include +files. +.TP +.B -l +Make a program listing during translation. +.TP +.B -s +Accept standard Pascal only; +non-standard constructs cause warning diagnostics. +.TP +.B -z +Allow execution profiling with +.IR pxp (A) +by generating statement counters, and arranging for the +creation of the profile data file +.I pmon.out +when the resulting object is executed. +.PD +.PP +Other arguments +are taken +to be loader option arguments, +perhaps libraries of +.IR pc -compatible +routines; see +.IR ld (1). +Certain options can also be controlled in comments within the program +as described in the +.I "Berkeley Pascal User's Manual." +.SH FILES +.TF /usr/lib/pc2.0strings +.TP +.B file.p +pascal source files +.TP +.B /usr/lib/pc0 +compiler +.TP +.B /lib/f1 +code generator +.TP +.B /usr/lib/pc2 +runtime integrator (inline expander) +.TP +.B /lib/c2 +peephole optimizer +.TP +.B /usr/lib/pc3 +separate compilation consistency checker +.TP +.B /usr/lib/pc2.0strings +text of the error messages +.TP +.B /usr/lib/how_pc +basic usage explanation +.TP +.B /usr/lib/libpc.a +intrinsic functions and I/O library +.TP +.B /usr/lib/libm.a +math library +.TP +.B /lib/libc.a +standard library, see +.IR intro (3) +.SH "SEE ALSO" +.IR pascal (1), +.IR pxp (A) , +.IR cc (1), +.IR ld (1), +.IR adb (1), +.IR sdb (1), +.IR prof (1) +.br +W. N. Joy, Susan L. Graham, C. B. Haley, +`Berkeley Pascal User's Manual', in +Unix Programmer's Manual, Seventh Edition, Virtual VAX-11 Version, +1980, Vol 2C +(Berkeley). +.SH DIAGNOSTICS +See +.IR pascal (1) +for an explanation of the error message format. +Internal errors cause messages containing the word `SNARK'. +.SH BUGS +The keyword +.B packed +is recognized but has no effect. +.br +The binder is not as strict as it might be. +.br +The +.B -z +flag doesn't work for separately compiled files. +.br +Because +.B -s +is used by +.I pc, +it can't be passed to the loader. diff --git a/static/unix-v10/man1/pcopy.1 b/static/unix-v10/man1/pcopy.1 new file mode 100644 index 00000000..d8eab605 --- /dev/null +++ b/static/unix-v10/man1/pcopy.1 @@ -0,0 +1,28 @@ +.TH PCOPY 1 +.SH NAME +pcopy \- paranoid file copy +.SH SYNOPSIS +[ +.B priv +] +.B pcopy +[ +.I input output +] +.SH DESCRIPTION +.I Pcopy +copies an input file to an output file preserving, +if possible, file ownership, dates, and label. +The copying is performed in +such a way as to assure faithfulness +even in the presence of interfering processes. +.PP +Privilege, obtained via +.IR priv (1), +is required to reproduce privileged files. +The user must be able to write the output file, +and be able to read and write files with the label +of the input file. +.SH SEE ALSO +.IR cp (1), +.IR pex (4) diff --git a/static/unix-v10/man1/pfe.1 b/static/unix-v10/man1/pfe.1 new file mode 100644 index 00000000..fb139834 --- /dev/null +++ b/static/unix-v10/man1/pfe.1 @@ -0,0 +1,19 @@ +.th PFE I 11/1/73 +.sh NAME +pfe \*- print floating exception +.sh SYNOPSIS +.bd pfe +.sh DESCRIPTION +.it Pfe +will examine the floating point exception register and +print a diagnostic for the last +floating point exception. +.sh "SEE ALSO" +signal(II) +.sh BUGS +Since there is but one floating point +exception register and it cannot be +saved and restored by the system, +the floating exception +that is printed is the one that occured system wide. +Floating exceptions are therefore volatile. diff --git a/static/unix-v10/man1/pic.1 b/static/unix-v10/man1/pic.1 new file mode 100644 index 00000000..516bc370 --- /dev/null +++ b/static/unix-v10/man1/pic.1 @@ -0,0 +1,341 @@ +.de PS \" start picture +. \" $1 is height, $2 is width, both in inches +.if \\$1>0 .sp .35 +.ie \\$1>0 .nr $1 \\$1 +.el .nr $1 0 +.in (\\n(.lu-\\$2)/2u +.ne \\$1 +.. +.de PE \" end of picture +.in +.if \\n($1>0 .sp .65 +.. +.TH PIC 1 +.CT 1 writing_troff graphics +.SH NAME +pic, tpic \(mi troff and tex preprocessors for drawing pictures +.SH SYNOPSIS +.B pic +[ +.I files +] +.PP +.B tpic +[ +.I files +] +.SH DESCRIPTION +.I Pic +is a +.IR troff (1) +preprocessor for drawing figures on a typesetter. +.I Pic +code is contained between +.B .PS +and +.B .PE +lines: +.IP +.EX +\&.PS \f2optional-width\fP \f2optional-height\fP +\f2element-list\fP +\&.PE +.EE +If +.IR optional-width +is present, the picture is made that many inches wide, +regardless of any dimensions used internally. +The height is scaled in the same proportion unless +.IR optional-height +is present. +If +.B .PF +is used instead of +.BR .PE , +the typesetting position after printing is restored to what it was +upon entry. +.PP +A line of the form +.IP +.BI .PS < file +causes +.I pic +to treat the the named file as if it stood in place of the +.B .PS +line. +.PP +An +.IR element-list +is a list of elements: +.EX + \f2primitive attribute-list\fP + \f2placename\fP : \f2element\fP + \f2placename\fP : \f2position\fP + \f2var\fP = \f2expr\fP + \f2direction\fP + { \f2element-list\fP } + [ \f2element-list\fP ] + for \f2var\fP = \f2expr\fP to \f2expr\fP by \f2expr\fP do { \f2anything\fP } + if \f2expr\fP then { \f2anything\fP } else { \f2anything\fP } + copy \f2file,\fP copy thru \f2macro,\fP copy \f2file\fP thru \fPmacro\fP + sh { \f2commandline\fP } + print \f2expr\fP + reset \f2optional var-list\fP + \f2troff-command\fP +.EE +.PP +Elements are separated by newlines or semicolons; +a long element may be continued by ending the line with a backslash. +Comments are introduced by a +.BI # +and terminated by a newline. +Variable names begin with a lower case letter; +place names begin with upper case. +Place and variable names retain their values +from one picture to the next. +.PP +After each primitive +the current position moves in the current direction +.RB ( up , down , +.BR left , right +(default)) by the size of the primitive. +The current position and direction are saved upon entry +to a +.BR { ... } +block and restored upon exit. +Elements within a block enclosed in +.BR [ ... ] +are treated as a unit; +the dimensions are determined by the extreme points +of the contained objects. +Names, variables, and direction of motion within a block are local to that block. +.PP +.IR troff-command +is any line that begins with a period. +Such a line is assumed to make sense in the context where it appears; +generally, this means only size and font changes. +Changes to vertical spacing will produce broken pictures. +.PP +The +.I primitive +objects are: +.br +.EX + box circle ellipse arc line arrow spline move \f2text-list\fP +.EE +.L arrow +is a synonym for +.LR "line ->" . +.PP +An +.IR attribute-list +is a sequence of zero or more attributes; +each attribute consists of a keyword, perhaps followed by a value. +.EX +.ta .5i 2.5i + h(eigh)t \f2expr\fP wid(th) \f2expr\fP + rad(ius) \f2expr\fP diam(eter) \f2expr\fP + up \f2opt-expr\fP down \f2opt-expr\fP + right \f2opt-expr\fP left \f2opt-expr\fP + from \f2position\fP to \f2position\fP + at \f2position\fP with \f2corner\fP + by \f2expr, expr\fP then + dotted \f2opt-expr\fP dashed \f2opt-expr\fP + chop \f2opt-expr\fP -> <- <-> + invis same + \f2text-list\fP \f2expr\fP +.EE +Missing attributes and values are filled in from defaults. +Not all attributes make sense for all primitives; +irrelevant ones are silently ignored. +The attribute +.L at +causes the geometrical center to be put at the specified place; +.L with +causes the position on the object to be put at the specified place. +For lines, splines and arcs, +.L height +and +.L width +refer to arrowhead size. +A bare +.I expr +implies motion in the current direction. +.PP +Text is normally an attribute of some primitive; +by default it is placed at the geometrical center of the object. +Stand-alone text is also permitted. +A text list +is a list of text items: +.EX +\f2 text-item\fP: + "..." \f2positioning ...\fP + sprintf("\f2format\fP", \f2expr\fP, \f2...\fP) \f2positioning ...\fP +\f2 positioning\fP: + center ljust rjust above below +.EE +If there are multiple text items for some primitive, +they are arranged vertically and centered except as qualified. +Positioning requests apply to each item independently. +Text items may contain in-line +.I troff +commands for size and font changes, local motions, etc., +but make sure that these are balanced +so that the entering state is restored before exiting. +.PP +A position is ultimately an +.I x,y +coordinate pair, but it may be specified in other ways. +.EX +\f2 position\fP: + \f2expr, expr\fP + \f2place\fP \(+- \f2expr, expr\fP + \f2place\fP \(+- ( \f2expr, expr\fP ) + ( \f2position\fP,\f2 position\fP ) \f2x\fP\fR from one, \f2y\fP\fR the other\fP + \f2expr\fP [\f2of the way\fP] between \f2position\fP and \f2position\fP + \f2expr\fP < \f2position\fP , \f2position\fP > + ( \f2position\fP ) +.EE +.PP +.EX +\f2 place\fP: + \f2placename\fP \f2optional-corner\fP + \f2corner\fP of \f2placename\fP + \f2nth\fP \f2primitive\fP \f2optional-corner\fP + \f2corner\fP of \f2nth\fP \f2primitive\fP + Here +.EE +An +.IR optional-corner +is one of the eight compass points +or the center or the start or end of a primitive. +.EX +\f2 optional-corner\fP: + .n .e .w .s .ne .se .nw .sw .c .start .end +\f2 corner\fP: + top bot left right start end +.EE +Each object in a picture has an ordinal number; +.IR nth +refers to this. +.EX +\f2 nth\fP: + \f2n\fPth\f2, n\fPth last +.EE +.PP +The built-in variables and their default values are: +.EX +.ta .5i 2.5i + boxwid = 0.75 boxht = 0.5 + circlerad = 0.25 arcrad = 0.25 + ellipsewid = 0.75 ellipseht = 0.5 + linewid = 0.5 lineht = 0.5 + movewid = 0.5 moveht = 0.5 + textwid = 0 textht = 0 + arrowwid = 0.05 arrowht = 0.1 + dashwid = 0.1 arrowhead = 2 + scale = 1 +.EE +These may be changed at any time, +and the new values remain in force from picture to picture until changed again +or reset by a +.L reset +statement. +Variables changed within +.B [ +and +.B ] +revert to their previous value upon exit from the block. +Dimensions are divided by +.B scale +during output. +.PP +Expressions in +.I pic +are evaluated in floating point. +All numbers representing dimensions are taken to be in inches. +.EX +\f2 expr\fP: + \f2expr\fP \f2op\fP \f2expr\fP + - \f2expr\fP + ! \f2expr\fP + ( \f2expr\fP ) + variable + number + \f2place\fP .x \f2place\fP .y \f2place\fP .ht \f2place\fP .wid \f2place\fP .rad + sin(\f2expr\fP) cos(\f2expr\fP) atan2(\f2expr,expr\fP) log(\f2expr\fP) exp(\f2expr\fP) + sqrt(\f2expr\fP) max(\f2expr,expr\fP) min(\f2expr,expr\fP) int(\f2expr\fP) rand() +\f2 op\fP: + + - * / % < <= > >= == != && || +.EE +.PP +The +.B define +and +.B undef +statements are not part of the grammar. +.EX + define \f2name\fP { \f2replacement text\fP } + undef \f2name\fP +.EE +Occurrences of +.BR $1 , +.BR $2 , +etc., +in the replacement text +will be replaced by the corresponding arguments if +.I name +is invoked as +.EX + \f2name\fP(\f2arg1\fP, \f2arg2\fP, ...) +.EE +Non-existent arguments are replaced by null strings. +Replacement text +may contain newlines. +The +.B undef +statement removes the definition of a macro. +.PP +.I Tpic +is a +.IR tex (1) +preprocessor that accepts +.IR pic +language. +It produces Tex commands that define a box called +.BR \egraph , +which contains the picture. +The box may be output this way: +.IP +.L +\ecenterline{\ebox\egraph} +.SH EXAMPLES +.EX +arrow "input" above; box "process"; arrow "output" above +move +A: ellipse + circle rad .1 with .w at A.e + circle rad .05 at 0.5 + arc from A.c to A.se rad 0.5 +.EE +.PP +.PS +arrow "input" above; box "process"; arrow "output" above +move +A: ellipse + circle rad .1 with .w at A.e + circle rad .05 at 0.5 + arc from A.c to A.se rad 0.5 +.PE +.SH "SEE ALSO" +.IR cip (9.1), +.IR ideal (1), +.IR ped (9.1), +.IR grap (1), +.IR dag (1), +.IR doctype (1), +.IR troff (1) +.br +B. W. Kernighan, +`PIC\(ema Graphics Language for Typesetting', +this manual, Volume 2 diff --git a/static/unix-v10/man1/picasso.1 b/static/unix-v10/man1/picasso.1 new file mode 100644 index 00000000..41684f16 --- /dev/null +++ b/static/unix-v10/man1/picasso.1 @@ -0,0 +1,232 @@ +.if n .pH g1.picasso @(#)picasso 1.0 of 1/2/90 +.TH PICASSO 1 +.SH NAME +picasso \- a line drawing program +.SH SYNOPSIS +\f3picasso [ \-b\f2size\fP \-F\f2path\fP \-I\f2path\fP \-l\f2n\fP \-M\f2n\fP \-m\f2margin\fP \-p\f2m\fPx\f2n\fP \-t \-x ] [ \- ] [ \f2file_name\^(s)\fP ] +.ft 1 +.SH DESCRIPTION +.B Picasso +is a +processor for a PIC-like drawing language that produces PostScript output. +By default, this output is scaled to fit an 8 by 10 inch print area, and +centered on the page. +.PP +.B \-b +.IR size +specifies a buffer of \f2size\f1 objects accumulated before translation +into PostScript. +By default, an entire picture is buffered; +on machines with small memories, a buffer of a few thousand objects +can prevent thrashing when processing a very large picture. +This option is for exceptional cases and is not often needed. +.PP +.B \-I +.IR path +overrides the standard path for searching for the PostScript prologue +and font descriptions (not needed in normal use). +.PP +.B \-F +.IR path +overrides the standard path for font width tables. +The default is to use the \f(CWtroff\fP tables. +.PP +.B \-l +.IR n +processes layer \f2n\f1 only, as specified by \f(CWcurlayer=\f2n\fP. +.PP +.B \-M +.IR n +magnifies the output image by \f2n\f1 (shrinks if 0 < \f2n\fP < 1). +.PP +.B \-p +.IR m\f3x\fPn +.ft 1 +specifies output device size in inches (8.5x11 default). +.PP +.B \-t +packages the PostScript with surrounding troff input so that the +output file may be passed down a pipeline to +.BR troff (1). +The Drechsler/Wilks +.B mpictures +macro package can be used with +.B troff +to insert the pictures appropriately within the document. +Without the flag +.B picasso +outputs \fIonly\fR PostScript, dropping any text outside the markers +(.PS and .PE) delimiting each picture. +.PP +.B \-m +.IR margin +specifies an empty border, in printer's points, that +.B picasso +will place around each picture. +This may be useful at times to prevent too tight clipping against +adjacent text or the edge of the paper. +By default no margin is supplied; +to cause a 1/8" (9 point) margin, for example, specify +.BR \-m9 . +.PP +.B \-x +suppresses the default scaling and centering. +.PP +The +.B picasso +picture description language is object oriented, the basic objects being +.BR arrow , +.BR arc , +.BR box , +.BR circle , +.BR ellipse , +.BR line , +.BR sector , +.BR spline , +and (quoted) text. +These can be combined, hierarchically, into +.BR blocks . +Primitive objects can be drawn with +.BR solid , +.BR dashed , +.BR dotted , +or +.B invisible +edges. +These edges may be of varying +.B weight +(thickness) +and of any shade of gray (from black = 0 to white = 1) or color. +The predefined colors are +.BR black , +.BR white , +.BR red , +.BR green , +.BR blue , +.BR cyan , +.BR magenta , +and +.BR yellow . +.PP +Objects may be named and referred to by name or by anonymous +references such as +1st box, 4th object, or 2nd last circle. +Object names require an initial upper case letter; +names beginning with lower case or an underscore are numeric variables. +There are a number of predefined variables such as +.BR circlerad , +.BR boxwid , +.BR linecolor . +.B Picasso +provides a limited set of programming language constructs +(loops, if statements, macros, some arithmetic) +for combining simple objects into relatively complex pictures. +.PP +By default, objects are placed on the page adjacent to each other +and from left to right. +The default direction may be changed, and any object can be placed +.B at +a specific postion, +given either in absolute coordinates or by reference to other objects and +points of interest. +Any object has a +.BR top , +.BR bottom , +.BR left , +and +.B right +point; +these points may also be refered to directionally as +.BR north , +.BR south , +.BR west , +and +.B east +(or +.BR n , +.BR s , +.BR w , +and +.BR e .) +The ``corner'' points may also be specified, +.IR e.g. , +.B northwest +or +.BR nw. +Lines have +.B start +and +.B end +points; +you may also refer to +.BR 1st , +.BR 2nd ... +.B nth +points along a line. +Boxes, circles, and ellipses have eight predefined points corresponding +to the directional references mentioned above, the first point being in +the eastern direction and the 8th point towards the southeast. +For any object, the ``corner'' points really lie on the corners of a box +surrounding the object while the ``counted'' points lie on the object itself. +This distinction is normally relevant only for circles and ellipses, but +since an object can be rotated or otherwise transformed it occasionally +has significance for other objects as well. +.SH EXAMPLE +The following is a simple no-smoking sign described in the +.B picasso +language. + +.in +.5i +.ft CW +.nf + .PS + d = 0.5 + [ box ht d wid 3.5 weight d/20 + box ht d wid d/2 filled 0.5 noedge + spline weight 0.2 edge .75 right d then up d \\ + then right d then up d + ] + linecolor = red; lineweight = 0.375 + circle rad 3 at last block + line from last circle .4th to last circle .8th + .PE +.in -.5i +.fi +.ft R + +If this is used in a +.B troff +document and processed through +.B picasso +with the +.B -t +flag, the .PS marking the start of the picture can specify the size and +placement of the picture at that point in your document. +For example, to place the no smoking sign centered on the page in a 3 +inch square area, flag the start of the picture with\f(CW .PS 3 3 c\fR. +.SH "SEE ALSO" +.BR troff (1), +.BR troff (5) +.SH REFERENCE +R. L. Drechsler and A. R. Wilks, +.I PostScript pictures in troff documents. +.br +B. W. Kernighan, +.I PIC \(em A Crude Graphics Language for Typesetting +.br +N-P. Nelson, M. L. Siemon, +.I +Picasso 1.0, An OPEN LOOK Drawing Program +.ft P +.\" @(#)picasso.1 1.0 of 1/4/84 +.SH BUGS +.B Picasso +is not completely compatible with +.BR pic (1). +Besides having a number of new keywords and predefined variable names, +.B picasso +also centers pictures on a page rather than placing them at upper left. +.P +The interactive version is unable to generate many elements +of the language, nor will it preserve such elements (e.g., loops) +if they are read in then written out. diff --git a/static/unix-v10/man1/pico.1 b/static/unix-v10/man1/pico.1 new file mode 100644 index 00000000..a1ff018f --- /dev/null +++ b/static/unix-v10/man1/pico.1 @@ -0,0 +1,273 @@ +.TH PICO 1 +.CT 1 editor graphics +.SH NAME +pico \(mi graphics editor +.SH SYNOPSIS +.B pico +[ +.B -mfto +] +[ +.B -wN -hN +] +[ +.I files +] +.SH DESCRIPTION +.I Pico +is an interactive editor for grey-scale and color images. +Editing operations are expressed in a C-like style. +The options are +.TP \w'\f5slower\ 'u +.BI -m n +Display on a Metheus frame buffer, +.BI /dev/om n. +A missing +.I n +is taken to be 0. +.TP +.B -f +Display on an Itoh frame buffer, +.BR /dev/iti0 . +.TP +.B -t +Show parse trees for expressions; toggled by the interactive command +.LR tree . +.TP +.B -o +Turn off the optimizer; toggled by +.LR optim . +.PP +Files are referred to in expressions as +.BI $ n, +where +.I n +is the basename or an integer, +see +.B f +below. +Otherwise file names are given as strings in double quotes, +which may be elided from names that do not contain +.LR / . +.LP +In general, the result of the previous edit +operation is available under the name +.LR old . +The destination +of the current operation is called +.LR new . +.LP +.I Pico +handles images with coordinates (0,0) in the upper left hand corner +and +.RB ( X , Y ) +in the lower right. +Brightnesses range from 0 (black) to +.BR Z +(white, +.BR Z =255). +The quantities +.BR X , Y , Z +may be used in expressions and set by options: +.TP \w'\f5slower\ 'u +.BI -w " n +Set the width +.B X +of the work area to +.I n +pixels, default 511. +.TP +.BI -h " n +Set the height +.BR Y , +default 511. +.PP +.LP +.I Pico +reads commands from the standard input: +.TP +.B help +Give a synopsis of commands and functions. +.TP +.BI a " file +.br +.ns +.TP +.BI a " x y w d file" +Attach a new file. +Optional parameters +.I x +and +.I y +give the origin of a subrectangle in the work buffer; +.I w +and +.I d +define width and depth of the image as stored in the file. +.TP +.BI d " file" +.PD0 +.TP +.BI "d $" n +Delete (close) the file. +.PD +.TP +.BI h " file" +Read header information from the file. +.TP +.BI r " file" +Read commands from +.I file +as if they were typed on the terminal. +Can not be done recursively. +.TP +.BI w " file +.br +.ns +.TP +.BI "w - " file +Write the file, restricted to the current window +(see below). +Use +.I pico +format by default. +With a minus flag, +write a headerless image +(red channel only, if picture is colored); see also +.IR picfile (5). +.TP +.B nocolor +.PD0 +.TP +.B color +Set the number of channels updated in the work buffer to 1 +(black and white) or 3 (red, green, blue). +.PD +.TP +.BI window " x y w d" +Restrict the work area to a portion of the +work buffer with the upper left corner at +.RI ( x,y ), +and the lower right at +.RI ( x+w, y+d ). +.TP +.BI get " file" +.br +.ns +.TP +.BI "get $" n +The picture file is (re)opened and read into the work area. +.TP +.B f +Show names, sizes, and file numbers of open files. +.TP +.B faster +.br +.ns +.TP +.B slower +In slow display the screen is updated once per pixel computed; +in fast display (default), once per line of pixels. +.TP +.BI show " name" +Show symbol table information, such as the current value of variables. +If +.I name +is omitted, the whole symbol table is shown. +.TP +.B functions +Print information on all user defined and builtin functions. +.TP +.BI def " name \fB(\fI args \fB) {\fI program \fB}" +Define a function, with optional arguments. +Variables are declared in these styles: +.PD0 +.IP +.EX +int var; +global int var; +array var[N]; +global array var[N]; +.EE +.PD +.TP +.BI x " expr" +Execute the expression in a default loop over all pixels in the +current window. +.TP +.BI "x {" program " }" +Execute the +.I program. +The program must define its own control flow. +.TP +.B q +Quit. +.SH EXAMPLES +.TP +.L "pico -w1280 -h1024 -m5" +Get a work buffer that exactly fills a Metheus screen. +.TP +.L +a "/tmp/images/rob" +Make a file accessible. +It will be known henceforth as +.LR $rob . +.PP +.EX +.L a 1280 0 3072 512 junk +.L get $junk +.EE +.PD0 +.IP +Direct attention to a 512\(mu512 subrectangle in the middle +of a 3072\(mu512 image stored in a file named junk, +and read it into the workspace. +.LP +.EX +x new = Z - old +x new[x,y] = Z - old[x,y] +x {for(x=0; x<=X; x++) for(y=0; y<=Y; y++) new[x,y] = Z-old[x,y];} +.EE +.PD0 +.IP +Three ways to make a negative image. +Note the defaults on control flow +and array indexing. +.PD +.LP +.EX +window 0 0 256 256 +x new = $1[xclamp(x*2), yclamp(y*2)] +.EE +.PD0 +.IP +Scale a 512\(mu512 image to one quarter of the screen. +The built-in functions +.L xclamp +and +.L yclamp +guard against indexing out of range. +.PD +.LP +.EX +x { printf("current value of %s[%d]:\et%d\en", "histo", 128, hist[128]); } +.EE +.PD0 +.IP +Turn off the default control flow (curly braces) and use the +builtin function printf to check the value of an array element. +.SH "SEE ALSO" +.IR bcp (1), +.IR imscan (1), +.IR flicks (9.1), +.IR rebecca (9.1), +.IR picfile (5), +.IR flickfile (9.5) +.br +G. J. Holzmann, +`PICO Tutorial', +this manual, Volume 2 +.br +G. J. Holzmann, +.I Beyond Photography\(emthe Digital Darkroom, +Prentice-Hall, 1988 diff --git a/static/unix-v10/man1/picpack.1 b/static/unix-v10/man1/picpack.1 new file mode 100644 index 00000000..ee5a428f --- /dev/null +++ b/static/unix-v10/man1/picpack.1 @@ -0,0 +1,123 @@ +.TH PICPACK 1 +.SH NAME +.B picpack +\- PostScript picture packing preprocessor +.SH SYNOPSIS +\*(mBpicpack\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B picpack +copies +.I files +to stdout, expanding picture inclusion requests +(marked by the +.MW .BP +or +.MW .PI +macros) into an in-line +format that can be passed through +.B troff +and handled by +.BR dpost . +If no +.I files +are specified +or if +.OP \- +is one of the input +.I files +standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-k list +.I list +is a comma- or space-separated string of words used to locate +picture inclusion requests. +The start of every line in the input +.I files +is compared with each word in +.I list . +If there is a match, the second string on the line is +taken as the pathname of a picture file that is added +to the output file. +The default +.I list +is +.RM `` ".BP .PI ''. +.TP +.OP \-q +Suppress ``missing picture file'' error messages. +.PP +.B picpack +is a trivial preprocessor that, in a sense, duplicates some of the +picture inclusion capabilities already available in +.BR dpost . +.B picpack +should not be used if your formatting command line includes +a call to +.BR dpost . +Its only purpose is to combine picture files with text in a single +file that can be passed through +.B troff +and unpacked, at some later time, by +.BR dpost . +The original picture inclusion mechanism, with files are pulled in by +.BR dpost , +is the preferred approach. +.SH EXAMPLES +A typical application might be in a distributed printing environment +where everything up to +.B troff +is run by the user and everything after +.B troff +is handled by a spooling daemon (perhaps +.BR lp ). +In that case the command line would be, +.EX +pic \f2file\fP | tbl | eqn | picpack | troff -mm -Tpost | lp +.EE +A poor example, although one that should still work, would be, +.EX +pic \f2file\fP | tbl | eqn | picpack | troff -mm -Tpost | dpost >\f2file\fP.ps +.EE +In this case picture inclusion requests could (and should) be handled by +.BR dpost . +Running +.B picpack +is not needed or even recommended. +It should be dropped from any pipeline that includes a call to +.BR dpost . +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.SH WARNINGS +.PP +Combining pictures and text using the capabilities available in +.B dpost +is the recommended approach and is always guaranteed to be more +efficient than +.BR picpack . +Running +.B picpack +and +.B dpost +in the same pipeline makes little sense. +.PP +Using +.B picpack +will likely result in files that can no longer be reliably passed +through other important +.B troff +postprocessors like +.BR proof . +At present +.B picpack +is only guaranteed to work with +.BR dpost . +.SH SEE ALSO +.BR dpost (1), +.BR troff (1) diff --git a/static/unix-v10/man1/pl.1 b/static/unix-v10/man1/pl.1 new file mode 100644 index 00000000..85794975 --- /dev/null +++ b/static/unix-v10/man1/pl.1 @@ -0,0 +1,52 @@ +.TH PL 1 SHARE +.SH NAME +pl \- print share information for designated users +.SH SYNOPSIS +.B pl +[-a[g]] [-[n][v]] [-pfilename] [-u uid[-uid] ...] [login-name ...] +.SH DESCRIPTION +.I Pl +prints the share information +for the given list of login names. +The optional flags affect the default behaviour as follows:- +.TP "\w'-pfileXX'u" +.BI -a [g] +This flag causes information on all currently active users to be printed. +The optional flag +.B g +restricts the selection to real users (ie: doesn't print +.IR groups ). +.TP +.BI -n +The normal output is one item per line, +this flag puts all items for a user on the same line. +.TP +.BI -p file +Directs +.I pl +to use an alternate shares file, whose path name is +.IR file . +.TP +.BI -u +The list is assumed to be user IDs. +If any two user IDs are separated by a minus, then an inclusive range is assumed. +.TP +.BI -v +The normal output includes descriptions of each item, +this flag turns off verbose mode. +.PP +If no arguments are given then +.I pl +will use the login name of the person that executed +the command. +.SH FILES +.PD 0 +.TP "\w'/etc/sharesXX'u" +/etc/shares +The shares file. +.TP +/etc/passwd +Information on user names and \s-1ID\s0s. +.PD +.SH "SEE ALSO" +lnode(5), passwd(5), share(5). diff --git a/static/unix-v10/man1/plot.1 b/static/unix-v10/man1/plot.1 new file mode 100644 index 00000000..67165bab --- /dev/null +++ b/static/unix-v10/man1/plot.1 @@ -0,0 +1,72 @@ +.th PLOT I 6/4/73 +.sh NAME +plot \*- make a graph +.sh SYNOPSIS +.bd plot +[ option ] ... +.sh DESCRIPTION +.it Plot +takes pairs of numbers from the +standard input as abscissas and +ordinates of a graph. +The graph is plotted on the storage scope, /dev/vt0. +.s3 +The following options are recognized, +each as a separate argument. +.s3 +.lp +5 5 +\fBa\fR Supply abscissas automatically (they are missing from +the input); spacing is given by the next +argument, or is assumed to be 1 if next argument is not a number. +.s3 +.lp +5 5 +\fBc\fR Place character string given by next argument +at each point. +.s3 +.lp +5 5 +\fBd\fR Omit connections between points. (Disconnect.) +.s3 +.lp +5 5 +\fBg\fIn\fR Grid +style: +.lp +5 0 +\fIn\fR=0, no grid +.lp +5 0 +\fIn\fR=1, axes only +.lp +5 0 +\fIn\fR=2, complete grid (default). +.s3 +.lp +5 5 +\fBs\fR Save screen, don't erase before plotting. +.s3 +.lp +5 5 +\fBx\fR Next 1 (or 2) arguments are lower (and upper) \fIx\fR limits. +.s3 +.lp +5 5 +\fBy\fR Next 1 (or 2) arguments are lower (and upper) +\fIy\fR limits. +.s3 +.i0 +Points are connected by straight line segments in the order +they appear in input. +If a specified lower limit exceeds the upper limit, or if +the automatic increment is negative, the graph is plotted +upside down. +Automatic abscissas begin with the lower \fIx\fR limit, or with 0 +if no limit is specified. +Grid lines and automatically determined limits fall on round +values, however roundness +may be subverted by giving an inappropriately rounded +lower limit. +Plotting symbols specified by +.bd c +are +placed so that a small initial letter, +such as + o x, will fall +approximately on the plotting point. +.sh FILES +/dev/vt0 +.sh "SEE ALSO" +spline(VI) +.sh BUGS +A limit of 1000 points is enforced silently. diff --git a/static/unix-v10/man1/post.1 b/static/unix-v10/man1/post.1 new file mode 100644 index 00000000..2d63982c --- /dev/null +++ b/static/unix-v10/man1/post.1 @@ -0,0 +1,607 @@ +'\" t +.TH POST 1 "Post 4.0" " " +.ds q \fBpost\fP +.ds p \fIpost\fP +.SH NAME +post \- read or send mail with corporate directory access +.SH SYNOPSIS +.SS Reading Mail +\*q [\fImailx\fR(1) options] +.SS Sending Mail +\*q [\fImailx\fR(1) options] [directory query options] address ... +.SS Directory Assistance +\*q \fB\-D\fR +.br +\*q \fB\-w\fR [directory query options] address ... +.SS Directory Update +\*q \fB\-S\fR +.SS Administrative +\*q \fB\-G\fR [\fIsource\fR [\fIdest\fR]] +.br +\*q \fB\-V\fR +.SH DESCRIPTION +\*p is a mail processing system for reading and sending +messages using +.IR mailx (1). +It provides the ability to look up employee/site information in +on-line corporate directories, in addition +to recognizing +.IR mailx (1) +and +.IR mail (1) +addressing conventions. +\*p also generates paper mail for intra-company delivery. +.SS "Addressing" +An +.I address +is one of: +.RS 2 +.TS +tab(;); +l l. +\fIalias\fP;as defined in \fImailx\fR(1) +\fIlocal file delivery\fP;\fB+\fIfile\fR or \fB|\fIprogram\fR as defined in \fImailx\fR(1) +\fInetwork address\fP;[\fIsystem\fB!\fR...]\fB!\fIlogin\fR or \fIlogin\fB@\fIsystem\fR +\fIpaper address\fP;\fBpaper!\fIname\fB:\fIloc\fB:\fIroom\fR +\fIlogin\fP;local user login id +\fIquery\fP;corporate directory query +.TE +.RE +.PP +First, +.I alias +is resolved. +If the first character is a \fB+\fR or \fB|\fR, \fIlocal file delivery\fP +is assumed. +Then, \fIaddress\fP is searched from the left for the +first occurrence of a \fB!\fR, \fB@\fR, \fB/\fR, \fB:\fP, or \fB\=\fR. +If this character is a +.BR ! " or" +.BR @ , +.I address +is a +.I "network address" +.RI ( login +in +.I "network address" +can be a +.I query +or +.IR mail (1) +system-wide alias). +An +.I address +beginning with +.B paper! +delivers intra company mail specified by +.IR name , +.IR loc , +.RI and " room. +If the first character from the left is a +.BR / , +.BR : " or" +.BR = , +then +.I address +is a +.I query. +Finally, if +.B \%POSTETC +is set in the environment and +.I address +is found in +.BR /etc/passwd , +it is a +.IR login , +otherwise it is treated as a +.IR query . +A +.I query +is one more +.I "value pairs" +separated by +.BR / " or" +.BR : . +Colon must be used in place of slash in \fIsystem\fB!\fIquery\fR. +A +.I "value pair" +is the construction \fIattribute\fB=\fIvalue\fR +(see +.BR Attributes ). +.SS "Reading Mail" +.PP +See +.IR mailx (1). +.SS "Sending Mail" +See +.IR mailx (1) +and +.B Directory Queries. +A resolution prompt will appear if +.I address +is ambiguous or invalid. +.br +.SS "Directory Assistance" +.TP +.B \-D +Gives you information on the corporate directory: +a support contact for reporting problems, +the last update of the directory, +and available attributes and titles. +.TP +.B \-w +Who. +Query directory. +.br +.ne 2i +.SS "Directory Update" +.TP +.B \-S +Update user information interactively and set up a new user on the system. +This is automatically invoked when using \*p for the first time to send mail. +The session prompts for personnel identification number, +reporting organization, +location code, room number, telephone number and electronic +mail address. +The default for each prompt is displayed within brackets. +To delete a value, enter +.BR \- . +Any new information is electronically mailed to the Corporate Directory +Administrator for update of the master directory. +.SS "Administrative" +.TP +.B \-G \fR[\fIsource\fR [\fIdest\fR]] +Generate a new +.IR user (4) +file by reading the +.I source +file, deleting entries for users no longer on the system, and writing +the result to the file +.IR dest . +Both +.I source +and +.I dest +are in +.IR user (4) +format and the default for both is +.BR $POST/lib/user . +.TP +.B \-V +Print the current version and release date. +.SS "Directory Queries" +.TP +.BI \-a " attribute\fR[\fI/attribute\fR...] +Provide default +.IR attribute(s) . +If a +.I query +sequence is missing an +.IR attribute , +assume the corresponding +.I attribute +in the +.B \-a +argument. +The default is +.BR pn . +.TP +.BI \-m " mods +Opens the directory specified by +.I mods +(see +.IR modules (4)). +.TP +.BI \-o " fmt +Format output of directory search (see +.BR "Output Formatting" ). +The default format is +.br +.B "%24pn %10org %6loc %6room %12tel %ema" +.TP +.BI \-q " query +Provide default value pairs. +If a +.I query +is missing a +value pair given in the +.BR \-q +argument, add the value pair to the +.I query +(see +.BR POSTQUAL ). +.br +.ne 8i +.SS Attributes +The ``Directory Attributes'' table below contains a list of the +attributes used in +.IR queries . +The table also supplies a short description, a match type and a list +of value characteristics (see explanation following table) for each attribute. +.PP +.TS +center,allbox,tab(;); +c s s s s +c | c | c | c | c +l | l | c | c | l. +\fBDirectory Attributes\fP +\fIAttribute;Description;Match Type;Characteristics;Example\fR +_ +pn;personal name;x;i;pn=j.f.s.smith,jr +name;personal name;x;i;name=p_jones_\^_md +first;first name;p;ia;first=frederick +middle;first middle name;p;ia;middle=bernard +middle2;second middle name;p;ia;middle2=emile +last;last name;s;ia;last=adams +suffix;name suffix;e;ia;suffix=sr +soundex;soundex code;e;i;soundex=m460 +_ +pid;personnel identification number;n;a;pid=103459 +org;organization code;p;i;org=45263 +com;company affiliation;p;i;com=bl +tl;title abbreviation;w;i;tl=dh +occ;occupational code;e;;occ=c +_ +tel;full telephone number;t;a;tel="(201) 386-4419" +area;area code;e;a;area=201 +exch;exchange;e;a;exch=386 +ext;extension;e;a;ext=4419 +cornet;cornet number;e;a;cornet=232 +_ +loc;location code;s;ia;loc=wh +room;room number;p;ia;room=3a-359 +street;street address;p;ia;street="whippany road" +city;city address;p;ia;city=whippany +state;state address;e;ia;state=nj +zip;zip code;p;a;zip=07981 +_ +ema;email address;s;;ema=attmail!fsmith +_ +multi;employees with multiple locations;e;m;multi=1 +_ +attribute;display valid attributes;e;;\-o %attribute +.TE +.PP +.SS Match Type +.PD 0 +.TP +.B e +Exact match. +.TP +.B n +Numeric match. +.TP +.B p +Prefix match. +.TP +.B s +Exact match unless argument ends with a star +.RB ( * ), +in which case prefix match. +.TP +.B t +Telephone match. +Treat rightmost four numbers as extension, +next three rightmost as exchange, +and last three rightmost as area code. +Non-alphanumerics are ignored. +The output format is +.IR "area exch ext" " ." +.TP +.B w +Prefix match on every word. +.TP +.B x +Personal name match. +Syntax for personal name is: +[\fIfirst\fB.\fR[\fImiddle\fB.\fR[\fImiddle2\fB.\fR]]]\fIlast\fR[\fB,\^\fIsuffix\fR]\ \ or +[\fIfirst\fB_\fR[\fImiddle\fB_\fR[\fImiddle2\fB_\fR]]]\fIlast\fR[\fB_\^_\fIsuffix\fR] +.br +.ne 1i +To prefix match on last name, append +.B * +or +.B ... +to +.IR last . +To phonetic match on last name, append +.B ? +or +.B ~ +to +.IR last , +or prepend personal name with +.BR ? . +The output format for +.B pn +is +\fIlast\fB,\ \fIfirst\ middle\ middle2\fB,\ \fIsuffix\fR\ ; +and +.B name +is +\fIfirst\fB_\fImiddle\fB_\fImiddle2\fB_\fIlast\fB_\^_\fIsuffix\fR\ . +See +.B first, +.B middle, +.B middle2, +.B last, +and +.B suffix +for the characteristics of the individual parts of +.BR pn " and +.BR name . +.PD +.SS Characteristics +.PD 0 +.TP +.B a +Ignore non-alphanumerics. +.TP +.B i +Ignore case. +.TP +.B m +Multiple records match. +If argument is empty, +.BR 1 " or +.BR 2 , +retrieve first, second or third record for +.IR query , +respectively. +.PD +.PP +\*p attributes used for mail delivery are described in the following table. +These attributes only take effect on +.IR queries . +.PP +.TS +center,box,tab(;); +c s s +c | c | c +c | l | lw(3i). +\fBDelivery Attributes\fP +_ +\fIAttribute;Possible Values;Description += +\fRdel;paper;T{ +Delivery type. +Forces paper mail delivery for \fIquery\fP recipients. +T} +_ +ask;yes, no (default);T{ +Ask before sending mail. +The recipients of the message are displayed. +T} +_ +all;yes, no (default);T{ +Send to all recipients matching \fIquery\fP. +Useful when sending to entire organizations. +The \fIquery\fP is not expanded in the message header. +T} +_ +.TE +.SS Output Formatting +The +.I fmt +argument specified with the +.B \-o +option is used as a +.IR printf (3C)-like +string for formatting the output of directory queries. +All characters are copied literally, except for +attribute substitutions and backslash escapes. +Quoting may be necessary to prevent shell interpretation. +.PP +The syntax for attribute substitutions is: +.IP +\fB% \fIflags width . precision \fIattribute\fP +.PP +Only +.BR % " and +.I attribute +are required. +.I Flags +may be one or more of the following: +.RS 2 +.PD 0 +.TP +.B \(mi +Right justify (left justification is the default). +.TP +.B ^ +Capitalize the first letter of each word. +.TP +.B + +Capitalize all letters in the value. +.TP +.B < +If the value is empty, +delete back to the last +.B \e\^< +or beginning of output. +.TP +.B > +If the value is empty, skip to the next +.B \e\^> +or end of format string. +.RE +.PD +.PP +.I Width +is an integer giving the minimum field width. +If the value has fewer characters than this number, the +value will be padded on the right (or left, if the +.B \(mi +flag is present) with blank spaces. +The default +.I width +is zero. +.P +.I Precision +is an integer that specifies +the maximum number of characters to +be printed from the value. +If the value has +more characters than this number, they will not +be printed. +Zero is a special case meaning print all characters (the default). +A period is used to +separate +.I width +and +.I precision +and is only used if +.I precision +is used. +.PP +To follow an +.I attribute +with an alphanumeric, +enclose the attribute substitution +(except for the percent sign) in curly braces, +.BR {} . +.PP +.ne 3i +The backslash escapes are: +.PP +.TS +allbox,center,tab(;); +c s +c | c +c | l. +\fBOutput Format Backslash Escapes\fP +\fIEscape;Meaning\fR +_ +\e\^c;Suppress terminating new-line +\e\^b;Backspace +\e\^f;Form feed +\e\^n;New-line +\e\^r;Carriage return +\e\^t;Tab +\e\^v;Vertical Tab +\e\^\fInnn\fR;Octal ASCII character +\e\^<;Marker for < flag +\e\^>;Marker for > flag +.TE +.br +.SS Environment Variables +.TP +.B POSTETC +When this variable is set, \*p will search +.B /etc/passwd +for +.I login +arguments. +.TP +.BI POSTQUAL\= query +Provide default +.I "value pairs" +for +.IR query . +If a +.I query +is missing +.I "value pair" +given in the +.B POSTQUAL +argument, add it to the +.I query +.RB ( \-q +overrides +.BR POSTQUAL ). +.SH EXAMPLES +.PD 0 +Read from your \fBmbox\fP file: +.IP +post \-f +.PP +Send mail to all department heads in Division 452: +.IP +post org=452/tl=dh/all=yes +.PP +Send paper mail to all employees at Whippany in section 3A: +.IP +post loc=wh/room=3a/all=yes/del=paper +.PP +Query directory for employees using system whutt: +.IP +post \-w ema=whutt!* +.PP +Query directory and format output in label-like form: +.IP +post \-w \-o "%^pn\e\^n%+loc %+room" org=123 +.PP +Query directory for valid attributes: +.IP +post \-w \-o %attribute +.PD +.SH FILES +.PD 0 +.TP 30 +$POST/lib/dispatch +distributed directory map +.TP +$POST/lib/mailx +mailx program used by \*p +.TP +$POST/lib/user +list of +.IR post (1) +users on this system +.TP +$POST/lib/dbinfo +program to retrieve directory information +.TP +$POST/lib/update +program to update directory +.TP +$POST/lib/genuser +program to update +.IR user (4) +file +.TP +/bin/mail +local mail delivery agent +.TP +/bin/rmail +remote mail delivery agent +.TP +/etc/passwd +list of local users +.PD +.SH SEE ALSO +btoa(1), +fixmbox(1), +forward(1), +gone.fishing(1), +mail(1), +mailx(1), +pq(1), +genesis(1M), +server(1M), +upas(1M), +pq(3C), +dispatch(4), +ev(4), +mail(4), +modules(4), +user(4). +.br +.nf +.I "Post 4.0 Product Release Description" +.I "Post 4.0 Primer" +.I "Post 4.0 User Guide" +.I "Post 4.0 User Reference Manual" +.I "Post 4.0 Administrator Reference Manual" +.I "Post 4.0 Quick Reference Card" +.I "Post 4.0 Programmer Guide" +.I "Post 4.0 Administrator Guide" +.fi +.SH WARNINGS +Colon must be used in place of slash in the construction: +\fIsystem\fB!\fIquery\fR. +.SH BUGS +Mailings to very large mailing lists, e.g., +.BR com=bl/all=yes , +may fail by exceeding system limits (see +.IR exec (2)). diff --git a/static/unix-v10/man1/postbgi.1 b/static/unix-v10/man1/postbgi.1 new file mode 100644 index 00000000..971e14a0 --- /dev/null +++ b/static/unix-v10/man1/postbgi.1 @@ -0,0 +1,243 @@ +.ds dQ /usr/lib/postscript +.TH POSTBGI 1 "DWB 3.2" +.SH NAME +.B postbgi +\- PostScript translator for +.SM BGI +(Basic Graphical Instructions) files +.SH SYNOPSIS +\*(mBpostbgi\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postbgi +translates +.SM BGI +(Basic Graphical Instructions) +.I files +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-f name +Print text using font +.IR name . +Any PostScript font can be used, +although the best results will only be +obtained with constant width fonts. +The default font is Courier. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which by default is located at the center of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-w num +Set the line width used for graphics to +.I num +points, where a point is approximately 1/72 +of an inch. +By default +.I num +is set to 0 points, which forces lines to be +one pixel wide. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed at the +center of the page, with positive +x to the right and positive y up the page. +Positive +.I num +moves everything right. +The default offset is 0 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves everything up the page. +The default offset is 0 inches. +.TP +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ name .enc \f1. +A nonexistent encoding file is silently ignored. +The default selects file +.MR \*(dQ/Default.enc . +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/postbgi.ps . +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in the output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request , +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0, the request +applies to all pages. +If +.I file +is omitted, the request +lookup is done in +.MR \*(dQ/ps.requests . +.PP +.B postbgi +can handle +.SM STARE +(black and white) and +.SM PRISM +(color) +.SM BGI +jobs. +By default plots are rigidly scaled to fill the page, which produces +the good results for most +.SM STARE +jobs. +.SM PRISM +jobs typically fill regions with colors, and often require device +specific tuning to produce acceptable results. +Adding the +.MW \-P"/prism\ true\ def" +option is strongly recommended when +.B postbgi +is translating +.SM PRISM +jobs. +.br +.ne 7v +.SH EXAMPLES +For most +.SM STARE +jobs, +.EX +postbgi \f2file +.EE +gives good results, while +.EX +postbgi \-P"/prism true def" \f2file +.EE +is recommended when translating +.SM PRISM +jobs. +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.SH BUGS +The default line width is too small for write-white +print engines, like the one used by the PS-2400. +Several +.SM BGI +opcodes have not been implemented. +.SH FILES +.MW \*(dQ/postbgi.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy (1), +.BR postdmd (1), +.BR postio (1), +.BR postmd (1), +.BR postprint (1), +.BR postreverse (1), +.BR posttek (1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/postdaisy.1 b/static/unix-v10/man1/postdaisy.1 new file mode 100644 index 00000000..a8716aa2 --- /dev/null +++ b/static/unix-v10/man1/postdaisy.1 @@ -0,0 +1,217 @@ +.ds dQ /usr/lib/postscript +.TH POSTDAISY 1 "DWB 3.2" +.SH NAME +.B postdaisy +\- PostScript translator for Diablo 630 files +.SH SYNOPSIS +\*(mBpostdaisy\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postdaisy +translates Diablo 630 daisy-wheel +.I files +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-f name +Print +.I files +using font +.IR name . +Any PostScript font can be used, +although the best results will only be +obtained with constant width fonts. +The default font is Courier. +.TP +.OP \-h num +Set the initial horizontal motion index to +.IR num . +Determines the character advance and the default +point size, unless the +.OP \-s +option is used. +The default is 12. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which is located near the upper left corner of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-r num +Selects carriage return and line feed behavior. +If +.I num +is 1 a line feed generates a carriage return. +If +.I num +is 2 a carriage return generates a line feed. +Setting +.I num +to 3 enables both modes. +.TP +.OP \-s num +Use point size +.I num +instead of the default value set by the +initial horizontal motion index. +.TP +.OP \-v num +Set the initial vertical motion index to +.IR num . +The default is 8. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed near the +upper left corner of the page, with positive +x to the right and positive y down the page. +Positive +.I num +moves everything right. +The default offset is 0.25 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves text down the page. +The default offset is 0.25 inches. +.TP +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ/ name .enc \f1. +A nonexistent encoding file is silently ignored. +The default selects file +.MR \*(dQ/Default.enc . +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/postdaisy.ps . +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request , +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0, the request +applies to all pages. +If +.I file +is omitted, the request +lookup is done in +.MR \*(dQ/ps.requests . +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.SH FILES +.MW \*(dQ/postdaisy.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR dpost (1), +.BR postdmd (1), +.BR postio (1), +.BR postmd (1), +.BR postprint (1), +.BR postreverse (1), +.BR posttek (1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/postdmd.1 b/static/unix-v10/man1/postdmd.1 new file mode 100644 index 00000000..cb3317b1 --- /dev/null +++ b/static/unix-v10/man1/postdmd.1 @@ -0,0 +1,206 @@ +.ds dQ /usr/lib/postscript +.TH POSTDMD 1 +.SH NAME +.B postdmd +\- PostScript translator for +.SM DMD +bitmap files +.SH SYNOPSIS +\*(mBpostdmd\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postdmd +translates +.SM DMD +bitmap +.IR files , +as produced by +.BR dmdps , +or +.I files +written in the Ninth Edition +.BR bitfile (9.5) +format +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-b num +Pack the bitmap in the output file using +.I num +byte patterns. +A value of 0 turns off all packing of the output file. +By default +.I num +is 6. +.TP +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-f +Flip the sense of the bits in +.I files +before printing the bitmaps. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which by default is located at the center of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-u +Disables much of the unpacking for Eighth +Edition bitmap files. +Usually results in smaller output files that take longer to print. +Not a recommended option. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed at the +center of the page, with positive +x to the right and positive y up the page. +Positive +.I num +moves everything right. +The default offset is 0 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves everything up the page. +The default offset is 0. +.TP +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/postdmd.ps . +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in the output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request, +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0, the request applies to all pages. +If +.I file +is omitted, the request lookup is done in +.MR \*(dQ/ps.requests . +.PP +Only one bitmap is printed on each logical page, and each of the input +.I files +must contain complete descriptions of at least one bitmap. +Decreasing the pattern size using the +.OP \-b +option may help throughput on printers with fast processors +(e.g., \s-1PS\s+1-810), +while increasing the pattern size will often be the right move +on older models +(.e.g, \s-1PS\s+1-800). +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.br +.ne 4v +.SH FILES +.MW \*(dQ/postdmd.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy (1), +.BR postio (1), +.BR postmd (1), +.BR postprint (1), +.BR postreverse (1), +.BR posttek (1) diff --git a/static/unix-v10/man1/postgif.1 b/static/unix-v10/man1/postgif.1 new file mode 100644 index 00000000..35476893 --- /dev/null +++ b/static/unix-v10/man1/postgif.1 @@ -0,0 +1,157 @@ +.ds dQ /usr/lib/postscript +.TH POSTGIF 1 +.SH NAME +.B postgif +\- PostScript translator for +.SM GIF +files +.SH SYNOPSIS +\*(mBpostgif\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postgif +translates Graphics Interchange Format (\s-1GIF\s+1) +.I files +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-f +Flip the sense of the bits in +.I files +before printing the pixmaps. +.TP +.OP \-g +Generate picture in gray instead of color +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which by default is located at the center of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed at the +center of the page, with positive +x to the right and positive y up the page. +Positive +.I num +moves everything right. +The default offset is 0 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves everything up the page. +The default offset is 0. +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/postgif.ps . +.PP +Two options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in the output file; +.I string +must be legitimate PostScript. +.PP +Only one pixmap is printed on each logical page, +and each of the input +.I files +must contain complete descriptions of at least one pixmap. +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.br +.ne 1i +.SH FILES +.MW \*(dQ/postgif.ps +.br +.MW \*(dQ/forms.ps +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy (1), +.BR postdmd (1), +.BR postio (1), +.BR postmd (1), +.BR postprint (1), +.BR postreverse (1), +.BR posttek (1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/postio.1 b/static/unix-v10/man1/postio.1 new file mode 100644 index 00000000..3075951b --- /dev/null +++ b/static/unix-v10/man1/postio.1 @@ -0,0 +1,308 @@ +.TH POSTIO 1 "DWB 3.2" +.SH NAME +.B postio +\- serial interface for PostScript printers +.SH SYNOPSIS +\*(mBpostio\f1 +.OP \-l line +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postio +sends +.I files +to the PostScript printer attached to +.IR line . +If no +.I files +are specified the standard input is sent. +The first group of +.I options +should be sufficient for most applications: +.TP 0.75i +.OP \-b speed +Transmit data over +.I line +at baud rate +.I speed. +Recognized baud rates are 1200, 2400, 4800, 9600, and 19200. +The default +.I speed +is 9600 baud. +.TP +.OP \-c +Do not send +.MR ^C s +(interrupts) to the printer, +which means +.B postio +does not force a busy printer into the idle state. +.TP +.OP \-l line +Connect to printer attached to +.IR line . +In most cases there is no default and +.B postio +must be able to read and write +.IR line . +If +.I line +does not begin with +.MW / +it is treated as a Datakit destination. +.TP +.OP \-q +Prevents status queries while +.I files +are being sent to the printer. +When status queries are disabled a dummy message is appended +to the log file before each block is transmitted. +.TP +.OP \-B num +Set internal buffer size for reading and writing +.I files +to +.I num +bytes +(default is 2048 bytes). +.TP +.OP \-D +Enable debug mode. +Guarantees that everything read on +.I line +will be added to the log file (standard error by default). +.TP +.OP \-L file +Data received on +.I line +gets put in +.IR file . +The default log +.I file +is standard error. +Printer or status messages that do not indicate a change in state +are not normally written to +.I file +but can be forced out using the +.OP \-D +option. +.TP +.OP \-P string +Send +.I string +to the printer before any of the input files. +The default +.I string +is simple PostScript code that disables timeouts. +.TP +.OP \-R num +Run +.B postio +as a single process if +.I num +is 1 or as separate read and write processes if +.I num +is 2. +By default +.B postio +runs as a single process. +.PP +The next two +.I options +are provided for users who expect to run +.B postio +on their own. +Neither is suitable for use in spooler interface +programs: +.TP 0.35i +.OP \-i +Run the program in interactive mode. +Any +.I files +are sent first and followed by the standard input. +Forces separate read and write processes +and overrides many other options. +To exit interactive mode use your interrupt or quit character. +To get a friendly interactive connection with the printer type +.MW executive +on a line by itself. +.TP +.OP \-t +Data received on +.I line +and not recognized as printer or status information is written to +the standard output. +Forces separate read and write processes. +Convenient if you have a PostScript program that +will be returning useful data to the host. +.PP +The last option is not generally recommended and should only +be used if all else fails to provide a reliable connection: +.TP 0.35i +.OP \-S +Slow the transmission of data to the printer. +Severely limits throughput, runs as a single process, +disables the +.OP \-q +option, limits the internal buffer size to 1024 bytes, +can use an excessive amount of +.SM CPU +time, and does nothing in interactive mode. +.PP +Best performance is usually obtained by using +a large internal buffer +.OP -B "" ) ( +and by running the program as separate read and write processes +.OP \-R2 "" ). ( +Inability to fork the additional process causes +.B postio +to continue as a single read/write process. +When one process is used, only data sent to the printer is flow-controlled. +.PP +The options are not all mutually exclusive. +The +.OP \-i +option always wins, selecting its own settings for whatever is +needed to run interactive mode, independent of anything else +found on the command line. +Interactive mode runs as separate read and write processes +and few of the other +.I options +accomplish anything in the presence of the +.OP \-i +option. +The +.OP \-t +option needs a reliable two way connection to the printer and +therefore tries to force separate read and write processes. +The +.OP \-S +option relies on the status query mechanism, so +.OP \-q +is disabled and the program runs as a single process. +.PP +In most cases +.B postio +starts by making a connection to +.I line +and then attempts to force the printer into the +.SM IDLE +state by sending an appropriate sequence of +.MW ^T +(status query), +.MW ^C +(interrupt), and +.MW ^D +(end of job) characters. +When the printer goes +.SM IDLE +.I files +are transmitted along with an occasional +.MW ^T +(unless the +.OP \-q +option was used). +After all the +.I files +are sent the program waits until it is reasonably sure the +job is complete. +Printer generated error messages received at any time +except while establishing the initial connection +(or when running interactive mode) cause +.B postio +to exit with a non-zero status. +In addition to being added to the log file, printer error messages +are also echoed to standard error. +.SH EXAMPLES +Run as a single process at 9600 baud and send +.I file1 +and +.I file2 +to the printer attached to +.MR /dev/tty01 : +.EX +postio -l /dev/tty01 \f2file1 file2 +.EE +Same as above except two processes are used, +the internal buffer is set to 4096 bytes, +and data returned by the printer gets put in file +.MR log : +.EX +postio -R2 -B4096 -l/dev/tty01 -Llog \f2file1 file2 +.EE +Establish an interactive connection with the printer at Datakit +destination +.MR my/printer : +.EX +postio -i -l my/printer +.EE +Send file +.MW program +to the printer connected to +.MR /dev/tty22 , +recover any data in file +.MR results , +and put log messages in file +.MR log : +.EX +postio -t -l /dev/tty22 -L log program >results +.EE +.SH DIAGNOSTICS +A 0 exit status is returned if the files ran successfully. +System errors (e.g., ``can't open the line'') set the low order +bit in the exit status, while PostScript errors set bit 1. +An exit status of 2 usually means the printer +detected a PostScript error in the input +.IR files . +.SH WARNINGS +.PP +The input +.I files +are handled as a single PostScript job. +Sending several different jobs, each with their own internal +end of job mark +.RM ( ^D ) +is not guaranteed to work properly. +.B postio +may quit before all the jobs have completed and could be restarted +before the last one finishes. +.PP +All the capabilities described above may not be available on every +machine or even across the different versions of +.SM UNIX +that are currently supported by the program. +For example, the code needed to connect to a Datakit destination may only +work on System\ V and may require that the +.SM DKHOST +software package be available at compile time. +.PP +There may be no default +.I line +so using +.OP \-l +option is strongly recommended. +If omitted +.B postio +may attempt to connect to the printer using the standard output. +If Datakit is involved the +.OP \-b +may be ineffective and attempts by +.B postio +to flow control data in both directions may not work. +The +.OP \-q +option can help if the printer is connected to \s-1RADIAN\s+1. +The +.OP \-S +option is not generally recommended and should only be used if +all else fails to establish a reliable connection. +.SH SEE ALSO +.BR buildtables (1), +.BR dpost (1), +.BR postdaisy (1), +.BR postdmd (1), +.BR postmd (1), +.BR postprint (1), +.BR postreverse (1), +.BR posttek (1), +.BR printfont (1) diff --git a/static/unix-v10/man1/postmd.1 b/static/unix-v10/man1/postmd.1 new file mode 100644 index 00000000..fb67d969 --- /dev/null +++ b/static/unix-v10/man1/postmd.1 @@ -0,0 +1,330 @@ +.ds dQ /usr/lib/postscript +.TH POSTMD 1 "DWB 3.2" +.SH NAME +.B postmd +\- matrix display program for PostScript printers +.SH SYNOPSIS +\*(mBpostmd\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postmd +reads a series of floating point numbers from +.IR files , +translates them into a PostScript gray scale image, +and writes the results on the standard output. +In a typical application the numbers might be +the elements of a large matrix, +written in row major order, +while the printed image could help locate +patterns in the matrix. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-b num +Pack the bitmap in the output file using +.I num +byte patterns. +A value of 0 turns off all packing of the output file. +By default +.I num +is 6. +.TP +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-d dimen +Sets the default matrix dimensions for all input +.I files +to +.IR dimen . +The +.I dimen +string can be given as rows or rows\^\(mu\^columns. +If columns is omitted it will be set to rows. +By default +.B postmd +assumes each matrix is square and sets the number of rows +and columns to the square root of the number of elements in +each input file. +.TP +.OP \-g list +.I list +is a comma- or space-separated string of integers, each lying between +0 and 255 inclusive, +that assigns PostScript gray scales to the regions of the real line +selected by the +.OP \-i +option. +255 corresponds to white and 0 to black. +.B postmd +assigns a default gray scale that omits white (i.e., 255) and gets +darker as the regions move from left to right along the real line. +.TP +.OP \-i list +.I list +is a comma- or space-separated string of +.I N +floating point numbers that +partition the real line into +.RI 2 N +1 +regions. +The +.I list +must be given in increasing numerical order. +The partitions are used to map floating point numbers read from the input +.I files +into gray scale integers that are assigned automatically by +.B postmd +or arbitrarily selected using the +.OP \-g +option. +The default interval +.I list +is ``\*(mB\-1,0,1\fP'' which partions the real line into 7 regions. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which by default is located at the center of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-w window +.I window +is a comma- or space-separated list of four positive integers that +select the upper left and lower right corners of a submatrix from +each of the input +.IR files . +Row and column indices start at 1 in the upper left corner and the +numbers in the input +.I files +are assumed to be written in row major order. +By default the entire matrix is displayed. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed at the +center of the page, with positive +x to the right and positive y up the page. +Positive +.I num +moves everything right. +The default offset is 0 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves everything up the page. +The default offset is 0. +.TP +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ/ name .enc \f1. +A nonexistent encoding file is silently ignored. +The default selects file +.MR \*(dQ/Default.enc . +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/postmd.ps . +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in the output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request , +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0, the request +applies to all pages. +If +.I file +is omitted, the request +lookup is done in +.MR \*(dQ/ps.requests . +.PP +Only one matrix is displayed on each logical page, +and each of the input +.I files +must contain complete descriptions of exactly one matrix. +Matrix elements are floating point numbers arranged in row major order in +each input file. +White space, including newlines, is not used to determine matrix +dimensions. +By default +.B postmd +assumes each matrix is square and sets the number of rows and columns +to the square root of the number of elements in the input file. +Supplying default dimensions on the command line using the +.OP \-d +option overrides this default behavior, and in that case the +dimensions apply to all input +.IR files . +.PP +An optional header can be supplied with each input file and is used +to set the matrix dimensions, the partition of the real line, the gray scale +map, and a window into the matrix. +The header consists of keyword/value pairs, each on a separate line. +It begins on the first line of each input file and ends with the +first unrecognized string, which should be the first matrix element. +Values set in the header take precedence, but only apply to the +current input file. +Recognized header keywords are +.MR dimension , +.MR interval , +.MR grayscale , +and +.MR window . +The syntax of the value string that follows each keyword parallels what is +accepted by the +.OP \-d , +.OP \-i , +.OP \-g , +and +.OP \-w +options. +.SH EXAMPLES +For example, suppose +.I file +initially contains the 1000 numbers +in a 20\(mu50 matrix. +Then the command line: +.EX +postmd -d20x50 -i"-100 100" -g0,128,254,128,0 \f2file +.EE +and prepending the header, +.EX +dimension 20x50 +interval -100.0 .100e+3 +grayscale 0 128 254 128 0 +.EE +to +.I file +and typing the command line: +.EX +postmd \f2file +.EE +produce exactly the same output. +The interval list partitions the real line into five regions and +the gray scale list maps numbers less than \-100 or greater than 100 +into 0 (i.e., black), numbers equal to \-100 or 100 into 128 +(i.e., 50 percent +black), and numbers between \-100 and 100 into 254 (i.e., almost white). +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.SH WARNINGS +The largest matrix that can be adequately displayed is a function +of the interval and gray scale lists, the printer resolution, +and the paper size. +A 600\(mu600 matrix is an optimistic upper bound for a two element interval +list (i.e. five regions) using 8.5\(mu11 inch paper on a 300 dpi printer. +.PP +Using white (i.e., 255) in a gray scale list is not recommended and will not +show up in the legend and bar graph that +.B postmd +displays below each image. +.SH FILES +.MW \*(dQ/postmd.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy (1), +.BR postdmd (1), +.BR postio (1), +.BR postprint (1), +.BR postreverse (1), +.BR posttek (1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/postnews.1 b/static/unix-v10/man1/postnews.1 new file mode 100644 index 00000000..994091a6 --- /dev/null +++ b/static/unix-v10/man1/postnews.1 @@ -0,0 +1,74 @@ +.TH POSTNEWS 1 +.UC +.SH NAME +postnews \- submit news articles +.SH SYNOPSIS +.BR postnews " [ " +.IR article " ]" +.SH DESCRIPTION +.I Postnews +is a shell script that calls +.IR inews (1) +to submit news articles to USENET. +It will prompt the user for the title of the article +(which should be a phrase suggesting the subject, +so that persons reading the news can tell if they +are interested in the article) +for the newsgroup, +and for the distribution. +.PP +An omitted newsgroup (from hitting return) +will default to +.IR general . +.PP +.I general +is read by everyone on the local machine. +Other possible newsgroups include, but are not limited to, +.IR btl.general , +which is read by all users at all Bell Labs sites on USENET, +.IR net.general , +which is read by all users at all sites on USENET, +and +.IR net.news , +which is read by users interested in the network news on all sites. +There is often a local set of newsgroups, such as +.IR ucb.all , +that circulate within a local set of machines. +(In this case, +.I ucb +newsgroups circulate among machines at the +University of California at Berkeley.) +.PP +The distribution can be any valid newsgroup name list, +and defaults to the same as the newsgroup. +(If they are the same, the distribution will be omitted from the +headers put into the editor buffer.) +A distribution header will, if given, be included in the headers +of the article, affecting where the article is distributed to. +.PP +After entering the title, newsgroup, and distribution, +the user will be placed in an editor. +If $EDITOR is set in the environment, that editor will be used. +Otherwise, postnews defaults to +.IR vi (1). +.PP +An initial set of headers containing the subject and newsgroups +will be placed in the editor, followed by a blank line. +The article should be appended to the buffer, after the blank line. +These headers can be changed, or additional headers added, +while in the editor, if desired. +.PP +Optionally, the article +will be read from the specified +.IR filename . +.PP +For more sophisticated uses, such as posting news from a program, see +.IR inews (1). +.SH FILES +.PD 0 +.SH "SEE ALSO" +Mail(1), +checknews(1), +inews(1), +mail(1), +readnews(1). diff --git a/static/unix-v10/man1/postprint.1 b/static/unix-v10/man1/postprint.1 new file mode 100644 index 00000000..93dd3ff8 --- /dev/null +++ b/static/unix-v10/man1/postprint.1 @@ -0,0 +1,257 @@ +.ds dQ /usr/lib/postscript +.TH POSTPRINT 1 "DWB 3.2" +.SH NAME +.B postprint +\- PostScript translator for text files +.SH SYNOPSIS +\*(mBpostprint\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B postprint +translates text +.I files +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-f name +Print +.I files +using font +.IR name . +Any PostScript font can be used, +although the best results will only be +obtained with constant width fonts. +The default font is Courier. +.TP +.OP \-l num +Set the length of a page to +.I num +lines. +By default +.I num +is 66. +Setting +.I num +to 0 is allowed, and will cause +.B postprint +to guess a value, based on the point size that is being used. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which is located near the upper left corner of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP +.OP \-r num +Selects carriage return behavior. +Carriage returns are ignored if +.I num +is 0, +cause a return to column 1 if +.I num +is 1, +and generate a newline if +.I num +is 2. +The default +.I num +is 0. +.TP +.OP \-s num +Print +.I files +using point size +.IR num . +When printing in landscape mode +.I num +is scaled by a factor that depends on the +imaging area of the device. +The default size for portrait mode is 10. +.TP +.OP \-t num +Assume tabs are set every +.I num +columns, starting with the first column. +By default tabs are set every 8 columns. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed near the +upper left corner of the page, with positive +x to the right and positive y down the page. +Positive +.I num +moves everything right. +The default offset is 0.25 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves text down the page. +The default offset is 0.25 inches. +.TP +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ/ name .enc \f1. +A nonexistent encoding file is silently ignored. +The default selects file +.MR \*(dQ/Default.enc . +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/postprint.ps . +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include +.I string +in the output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request , +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0, the request +applies to all pages. +If +.I file +is omitted, the request +lookup is done in +.MR \*(dQ/ps.requests . +.PP +A new logical page is started after 66 lines have been printed +on the current page, or whenever an +.SM ASCII +form feed character is read. +The number of lines per page can be changed using the +.OP \-l +option. +Unprintable +.SM ASCII +characters are ignored, +and lines that are too long are silently truncated +by the printer. +.SH EXAMPLES +.PP +Print +.I file1 +and +.I file2 +in landscape mode: +.EX +postprint -pland \f2file1 file2 +.EE +Print three logical pages on each physical page in portrait mode: +.EX +postprint -n3 \f2file +.EE +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.SH FILES +.MW \*(dQ/postprint.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy(1), +.BR postdmd(1), +.BR postio(1), +.BR postmd(1), +.BR postreverse(1), +.BR posttek(1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/postreverse.1 b/static/unix-v10/man1/postreverse.1 new file mode 100644 index 00000000..d7c3fd1e --- /dev/null +++ b/static/unix-v10/man1/postreverse.1 @@ -0,0 +1,112 @@ +.TH POSTREVERSE 1 +.SH NAME +.B postreverse +\- reverse the page order in a PostScript file +.SH SYNOPSIS +\*(mBpostreverse\f1 +.OP "" options [] +.OP "" file [] +.SH DESCRIPTION +.B postreverse +reverses the page order in files that conform to Adobe's +Version 1.0 or Version 2.0 PostScript file structuring conventions, +and writes the results on the standard output. +Only one input +.I file +is allowed and if no +.I file +is specified, the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-o list +Select pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-r +Do not reverse the pages in +.IR file . +.TP +.OP \-T dir +Use +.I dir +as the temporary file directory when +reading from the standard input. +By default +.I dir +is set to +.MR /tmp . +.PP +.B postreverse +can handle a limited class of files +that violate page independence, +provided all global definitions are bracketed by +.MW %%BeginGlobal +and +.MW %%EndGlobal +comments. +In addition, files that mark the end of each page with +.MW "%%EndPage:\ label\ ordinal" +comments will also reverse properly, provided the prologue and +trailer sections can be located. +If +.B postreverse +fails to find an +.MW %%EndProlog +or +.MW %%EndSetup +comment the entire +.I file +is copied, unmodified, to the standard output. +.PP +Since global definitions are pulled out of individual +pages and put in the prologue, the output file can be +minimally conforming, even if the input +.I file +was not. +.SH EXAMPLES +Select pages 1 to 100 from +.I file +and reverse the pages: +.EX +postreverse -o1-100 \f2file +.EE +Print four logical pages on each physical page +and reverse all the pages: +.EX +postprint -n4 \f2file\fP | postreverse +.EE +Produce a minimally conforming file from output +generated by dpost without reversing the pages: +.EX +dpost \f2file\fP | postreverse -r +.EE +.SH DIAGNOSTICS +A 0 exit status is returned if +.I file +was successfully processed. +.SH BUGS +No attempt has been made to deal with redefinitions of global +variables or procedures. +If standard input is used, the input +.I file +will be read three times before being reversed. +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy(1), +.BR postdmd(1), +.BR postio(1), +.BR postmd(1), +.BR postprint(1), +.BR posttek(1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/posttek.1 b/static/unix-v10/man1/posttek.1 new file mode 100644 index 00000000..2477170b --- /dev/null +++ b/static/unix-v10/man1/posttek.1 @@ -0,0 +1,198 @@ +.ds dQ /usr/lib/postscript +.TH POSTTEK 1 "DWB 3.2" +.SH NAME +.B posttek +\- PostScript translator for Tektronix 4014 files +.SH SYNOPSIS +\*(mBposttek\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B posttek +translates Tektronix 4014 graphics +.I files +into PostScript and writes the results on the +standard output. +If no +.I files +are specified, or if +.OP \- +is one of the input +.IR files , +the standard input is read. +The following +.I options +are understood: +.TP 0.75i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP +.OP \-f name +Print text using font +.IR name . +Any PostScript font can be used, +although the best results will only be +obtained with constant width fonts. +The default font is Courier. +.TP +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which by default is located at the center of +each page. +The default magnification is 1.0. +.TP +.OP \-n num +Print +.I num +logical pages on each piece of paper, +where +.I num +can be any positive integer. +By default +.I num +is set to 1. +.TP +.OP \-o list +Print pages whose numbers are given in the comma-separated +.IR list . +The list contains single numbers +.I N +and ranges +.IR N1\-\|N2 . +A missing +.I N1 +means the lowest numbered page, a missing +.I N2 +means the highest. +.TP +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBlandscape\fP. +.TP +.OP \-w num +Set the line width used for graphics to +.I num +points, where a point is approximately 1/72 +of an inch. +By default +.I num +is set to 0 points, which forces lines to be +one pixel wide. +.TP +.OP \-x num +Translate the origin +.I num +inches along the positive x axis. +The default +coordinate system has the origin fixed at the +center of the page, with positive +x to the right and positive y up the page. +Positive +.I num +moves everything right. +The default offset is 0.0 inches. +.TP +.OP \-y num +Translate the origin +.I num +inches along the positive y axis. +Positive +.I num +moves everything up the page. +The default offset is 0.0. +.TP +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ/ name .enc \f1. +A nonexistent encoding file is silently ignored. +The default selects file +.MR \*(dQ/Default.enc . +.TP +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/posttek.ps . +.PP +Three options allow insertion of arbitrary PostScript +at controlled points in the translation process: +.TP 0.75i +.OP \-C file +Copy +.I file +to the output file; +.I file +must contain legitimate PostScript. +.TP +.OP \-P string +Include. +.I string +in the output file; +.I string +must be legitimate PostScript. +.TP +.OP \-R action +Requests special +.I action +(e.g., +.MR manualfeed ) +on a per page or global basis. +The +.I action +string can be given as +.IR request, +.IM request : page\f1\|, +or +.IM request : page : file\f1\|. +If +.I page +is omitted or given as 0, the request +applies to all pages. +If +.I file +is omitted, the request +lookup is done in +.MR \*(dQ/ps.requests . +.SH DIAGNOSTICS +A 0 exit status is returned if +.I files +were successfully processed. +.SH BUGS +The default line width is too small for write-white +print engines, like the one used by the \s-1PS\s+1-2400. +.br +.ne 4v +.SH FILES +.MW \*(dQ/posttek.ps +.br +.MW \*(dQ/forms.ps +.br +.MW \*(dQ/ps.requests +.SH SEE ALSO +.BR dpost (1), +.BR postdaisy(1), +.BR postdmd(1), +.BR postio(1), +.BR postmd(1), +.BR postprint(1), +.BR postreverse(1), +.BR psencoding (1) diff --git a/static/unix-v10/man1/pp.1 b/static/unix-v10/man1/pp.1 new file mode 100644 index 00000000..ef00f5ad --- /dev/null +++ b/static/unix-v10/man1/pp.1 @@ -0,0 +1,39 @@ +.TH PP 1 +.SH NAME +pp \- C pretty printer +.SH SYNOPSIS +.B pp +[\fB\-T\fPdev] +[\fB\-f\fPfont] +[\fB\-t\fPtitle] +[files] +.SH DESCRIPTION +.I Pp +formats the named C source files, or its standard input +if none are given, +and produces troff +.I output +format on its standard output. +Thus, its output is suitable for printing on a typesetter with +a program such as +d202(1). +In the output, comments are italicized, +keywords are emboldened, +and each page has header and footer tags. +The +.B \-T +option sets the device for output; the default is 202. +The +.B \-f +option sets the main font; the default is E, or Eurostyle. +The +.B \-t +option generates a title page with the title specified and a +date stamp. +.SH DIAGNOSTICS +.I Pp +complains and exits if it cannot find a required font. +If this happens, take the name of the missing font to +a local font guru. +.SH "SEE ALSO" +pr(1), troff(1), d202(1), dcan(1), etc. diff --git a/static/unix-v10/man1/pq.1 b/static/unix-v10/man1/pq.1 new file mode 100644 index 00000000..7cfec15c --- /dev/null +++ b/static/unix-v10/man1/pq.1 @@ -0,0 +1,52 @@ +.TH PQ 1 "Post 4.0" " " +.SH NAME +pq \- directory query interface +.SH SYNOPSIS +.B pq +.RB [ \-l ] +[directory query options] query ... +.SH DESCRIPTION +.I pq\^ +is a fast directory query interface; the +.I "directory query options" +and +.I query +are defined in +.IR post (1). +Unlike +.BR "post \-w" , +.I pq +does not recognize aliases and +.BR \-q , +and only uses the +.B POST +environment variable. +.TP +.B \-l +Query location directory; equivalent to +.br +.B +\-a loc \-o "%6loc %12tel [%3cornet] %street, %city, %state, %zip" +.SH EXAMPLES +.PD 0 +Query directory for members of an office: +.IP +pq loc=mh/room=2b519 +.PP +Query directory for location information: +.IP +pq \-l mt +.PP +Query directory for cornet number of a location: +.IP +pq \-l \-o %cornet ih +.PD +.SH FILES +.TP 30 +$POST/lib/dispatch +directory configuration file +.SH SEE ALSO +post(1), +pq(3C), +dispatch(4), +modules(4). diff --git a/static/unix-v10/man1/pr.1 b/static/unix-v10/man1/pr.1 new file mode 100644 index 00000000..80bd0dcc --- /dev/null +++ b/static/unix-v10/man1/pr.1 @@ -0,0 +1,49 @@ +.pa 1 +.he 'PR (I)'1/15/73'PR (I)' +.ti 0 +NAME pr -- print file +.sp +.ti 0 +SYNOPSIS pr__ [-cm___] [-h__ name] [-_n] [+_n] [file918 ...] +.sp +.ti 0 +DESCRIPTION pr__ +produces a printed listing of one or more files. +The output is separated into pages headed by a date, +the name of the file or a header (if any), and the page number. +If there are no file arguments, pr__ prints the standard +input file, and is thus usable as a filter. + +Options apply to all following files but may be reset +between files: + + -c__ print current date + -m__ print date file last modified (default) +.sp + -_n produce n-column output +.sp + +_n begin printing with page n +.sp + -h__ treats the next argument as a header +.sp +If there is a header in force, it is printed in place of +the file name. +.sp +Interconsole messages via write_____(I) are +forbidden during a pr__. +.sp +.sp +.ti 0 +FILES /dev/tty? +to suspend messages. +.sp +.ti 0 +SEE ALSO cat(I), cp(I) +.sp +.ti 0 +DIAGNOSTICS none (files not found are ignored) +.sp +.ti 0 +BUGS In multi-column +output, non-printing characters other than new-line +cause misalignment. diff --git a/static/unix-v10/man1/prefer.1 b/static/unix-v10/man1/prefer.1 new file mode 100644 index 00000000..71debd08 --- /dev/null +++ b/static/unix-v10/man1/prefer.1 @@ -0,0 +1,489 @@ +.tr @| +.TH PREFER 1 +.CT 1 writing_troff +.SH NAME +prefer, pinvert, penter, plook, pconvert \- maintain and use bibliographic references +.SH SYNOPSIS +.B prefer +[ +.I option ... +] +.PP +.B penter +[ +.I outfile +] +.PP +.B pinvert +[ +.I option ... +] +[ +.I file ... +] +.PP +.B plook +[ +.B -p +.I dbfile +] +[ +.I keyword ... +] +.PP +.B pconvert +[ +.B -d +] +.I file +.SH DESCRIPTION +.I Prefer +is a +.IR troff (1) +preprocessor for bibliographic references. +It copies a document from the standard input +to the standard output, using a bibliographic database to +change symbolic references +into full references ready for typesetting by +.IR troff (1). +Although symbolic references are in the style of +.IR monk (1), +.I prefer +does not depend on +.I monk. +The options are: +.TF dbfile +.TP +.B -n +Format for +.IR nroff . +.TP +.BI -o sortkey +Under the +.B @reference_list +command, sort according to +.IR sortkey , +any combinations of the letters +.LR a +(author) +.LR d +(date), and +.LR t +(title), +rather than +in database sequence. +If +.I sortkey is +.LR sort , +sort according to the current style. +.TP +.BI -p dbfile +Use +.I dbfile +as the bibliographic database (default +.FR prefer.out ). +.TP +.B -r +Format as a released paper +(technical memorandum default). +.TP +.BI -s style +Set the formatting +.I style , +one of +.LR att +(default), +.LR acm , +.LR apa , +.LR ieee , +.LR lsa , +.LR pami , +.LR spectrum . +.PD +.PP +.I Prefer +recognizes the following commands, +which may appear anywhere in a document. +Parentheses +.B () +in the commands +may be replaced by any of +.B "{} [] <>". +.TP +.BI @reference_style( " style arg ..." ) +Switch to a new formatting style. +All previous references are forgotten +and a new list of references is begun. +If +.I style +is +.B same +the current style remains (but all previous references are forgotten). +Optional +.IR args +are: +.RS +.TF sequence +.TP +.BR tm +Format as a technical memorandum. +.TP +.B rp +Format as a released paper. +.TP +.B nroff +Format for +.I nroff. +.TP +.B troff +Format for +.I troff. +.TP +.B sort +Print a +.B @reference_list +in an order appropriate for the current style. +.TP +.B sequence +Print a +.B @reference_list +in database sequence. +.TP +.I sortkey +Print a +.B @reference_list +according to the +.IR sortkey , +any combination of the letters +.LR a , +.LR d , +.LR t +as above. +.PD +.RE +.TP +.BI @reference( keywords +.I %ref_fields +.IB %flags ) +.br +Insert a citation mark +in the current style +(e.g. [7], \s-2\v'-0.4m'3\v'0.4m'\s+2, (Knuth, 1975)). +One or more +.I keywords +cause selection from the bibliographic database. +Each +.B % +argument must begin a new line. +.I %ref_field +lines override information from the database; +with no +.I keywords +a complete reference +may be given. +For the form of reference fields, see the output of +.I penter +or the paper in Volume 2. +The following +.I %flags +may modify the citation. +.RS +.TF posttextstring +.TP +.B %no_author +Exclude author information. +.TP +.B %no_date +Exclude date from the citation mark. +.TP +.B %no_cite +Omit the entire citation, but include the entry in the final reference list. +.TP +.BI %pre_text " string +Insert +.I string +before the citation mark. +.TP +.BI %post_text " string +Insert +.I string +after the citation mark +.PD +.RE +.TP +.BI @reference_include( " dbfile ..." ) +Include the contents of the database(s) +.I dbfile(s) +in the list of references, +treating them as +.B %no_cite +entries. +.TP +.B @reference_placement +Produce a list of all references specified in +.B @reference +or +.B @reference_include +commands since +the beginning of the document or the last +.B @reference_style +or +.BR @reference_placement . +.TP +.BI @reference_list( " dbfile ..." ) +Format the contents of the database(s) +.IR dbfile . +.TP +.BI @\^reference_database( " dbfile " ) +Switch to database +.I dbfile +.PP +.I Penter +helps build +.I prefer +bibliographic databses. +It prompts for a reference type, +and then for admissible attributes, such as author, date, etc. +A default value proposed in brackets +.B [] +may be accepted by typing a newline, +skipped by typing spaces before the newline, +or overridden by typing a new value. +The character +.L & +appended to an attribute causes +.I penter +to prompt for the attribute again +(to enter multiple authors, for example). +.PP +The answer +.L ? +to the initial prompt gets a list of all reference types. +The answer +.L help +gets a subprompt for a reference type +whose pertinent attributes will then be listed. +The answer +.L ? +to the subprompt gets attributes for every type. +.PP +The attribute +.B also +permits one entry to refer to another +by naming keywords for +the other reference. +An entire `also' citation may be included within a +.B @reference +thus: +.br +.ns +.IP +.EX +%also_begin \fItext\fP +\fI%ref_fields\fP +%also_end +.EE +.PP +The attribute +.B keywords +prompts for distinguishing keys for the current entry, in addition to +those already occurring within author, title, etc. +.PP +The `reference type' +.B quit +causes +.I penter +to exit, first appending the collected database information to +.I outfile +.RF ( prefer.out +by default). +.PP +The `attribute' +.B ~e +permits editing of the current reference with the editor +specified by environment variable +.BR EDITOR , +.IR ed (1) +by default; +.B ~v +gets the editor +.BR VISUAL , +.IR vi (1) +by default. +.PP +.I Pinvert +creates an inverted index to one or more bibliographic database +.I files. +The index is placed in +.IB file .i , +where +.I file +is the first input file. +An associated +.IB file .h +contains the names of the input files. +The options are: +.TF commmon +.TP +.BI -c common +Do not index words listed in file +.I common +(default +.FR /usr/lib/eign ). +.TP +.BI -i ignore +Do not index information about attributes listed in file +.I ignore. +(The default +.F /usr/lib/prefer/ignore +lists +.BR %volume , +.BR %number , +.BR %part , +.BR %pages , +.B %X +(location status), +.B %Y +(read status), +.B %Z +(comment).) +.TP +.BI -k i +Maximum number of keys kept per record (default 100). +.TP +.BI -l i +Maximum length of keywords (default 6, none is less than 3). +.TP +.BI -p file +The basename of the index is +.I file. +Prefer will write the index to +.IB file .i . +.TP +.B -v +Verbose. +Print statistics. +.PD +.PP +.I Plook +uses the inverted index to +retrieve bibliographic records by +.I keywords +from the command line +or the standard input. +Records that contain all the keywords in the request +are sent to +the standard output. +Option +.B -p +is the same as for +.I pinvert. +.PP +.I Pconvert +converts a +.IR refer (1) +database to +.I prefer +style. +Under option +.B -d +it converts +.IR refer -style +commands in a document to +.I prefer +style. +.ig +.SH EXAMPLES +.EX +@\^reference_style +A keyword citation@reference in the middle of a line. +.br +A complete citation +.br +@reference( +.br +%post_text , Chapter 6 +.br +%type book +.br +%author Aho, Alfred V. +.br +%author Sethi, Ravi +.br +%author Ullman, Jeffrey D. +.br +%title Compilers, Principles, Techniques, and Tools +.br +%publisher Addison-Wesley +.br +%address Reading, Massachusetts +.br +%date 1986 ). +.br +\&.ce +Bibliography +@\^reference_placement +.. +.SH FILES +.TF /usr/lib/prefer/mypubenter +.TP +.F prefer.out +default database +.TP +.F prefer.out.i +default index file +.TP +.F prefer.out.h +default header file containing names of databases +.TP +.F /usr/lib/eign +default list of common words +.TP +.F /usr/lib/prefer/ignore +default list of +.I %ref_fields +to ignore for indexing +.TP +.F /usr/lib/prefer/styles/* +.I awk +scripts of formatting instructions for each style +.TP +.F /tmp/prefer* +scratch file +.TP +.F /usr/lib/prefer/ptemplate +reference type definitions, self-describing +.TP +.F /usr/lib/prefer/mypubenter +program executed by penter +.SH +.SH SEE ALSO +M. A. Derr, +`Formatting References with Prefer', +this manual, Volume 2 +.br +.IR refer (1), +.IR monk (1), +.IR troff (1) +.SH BUGS +.I Prefer +commands don't work immediately after certain +formatting macros, e.g. .SM, .I, .B. +.br +.I Plook +complains if the first key matches more references than it can store. +Try rearranging your request so a less common word comes first. +.br +.I Pinvert +does not record options +.B -c +and +.BR -l . +If you use them with +.I pinvert, +you will have to supply them for +.I prefer +and +.I plook +as well. +.tr @@ diff --git a/static/unix-v10/man1/printenv.1 b/static/unix-v10/man1/printenv.1 new file mode 100644 index 00000000..1deddc08 --- /dev/null +++ b/static/unix-v10/man1/printenv.1 @@ -0,0 +1,33 @@ +.TH PRINTENV 1 +.CT 1 shell +.SH NAME +printenv \- print environment +.SH SYNOPSIS +.B printenv +[ +.I name +] +.SH DESCRIPTION +With no arguments, +.I printenv +places the strings of the environment, described in +.IR environ (5), +on the standard output one per line. +.PP +If a +.I name +is specified, its value is retrieved from the environment +and printed. +.SH SEE ALSO +.IR sh (1), +.IR rc (1), +.IR environ (5), +.IR getenv (3) +.SH DIAGNOSTICS +Exit status 1 is returned when a specified +.I name +is not present in the environment. +.SH BUGS +The +.I name +feature cannot handle functions. diff --git a/static/unix-v10/man1/printfont.1 b/static/unix-v10/man1/printfont.1 new file mode 100644 index 00000000..0e1bfcba --- /dev/null +++ b/static/unix-v10/man1/printfont.1 @@ -0,0 +1,183 @@ +.ds dQ /usr/lib/postscript +.TH PRINTFONT 1 "DWB 3.2" +.SH NAME +.B printfont +\- font listing program for PostScript printers +.SH SYNOPSIS +\*(mBprintfont\f1 +.OP "" options [] +.OP "" files [] +.SH DESCRIPTION +.B printfont +builds a PostScript program that prints character set tables for +one or more PostScript fonts. +The program is written on the standard output, +and when sent to a PostScript printer usually prints a 16\(mu16 table +that shows the available (encoded) characters in each font. +The following +.I options +are understood: +.TP 1.0i +.OP \-a num +Set the character cell axes mode to +.IR num . +0 disables axes printing, 1 draws a baseline, +2 adds a vertical line through the character origin, +and 3 adds a vertical line through the next character origin. +The default is 0. +.TP 1.0i +.OP \-b num +Print each table in base +.IR num . +The base determines the number of rows and columns in the table. +It also affects the character code placed in the lower left corner of each cell. +The default is 16 (hexadecimal). +.TP 1.0i +.OP \-c num +Print +.I num +copies of each page. +By default only one copy is printed. +.TP 1.0i +.OP \-f name +Use font +.I name +for labeling the tables. +The default font is Helvetica. +.TP 1.0i +.OP \-g num +Use +.I num +as the gray level for marking cells not currently assigned to characters. +The gray level should fall between 0 (black) and 1 (white). +The default is 0.85. +.TP 1.0i +.OP \-m num +Magnify each logical page by the factor +.IR num . +Pages are scaled uniformly about the origin, +which is located near the upper left corner of each page. +The default is 1.0. +.TP 1.0i +.OP \-p mode +Print +.I files +in either \*(mBportrait\fP or \*(mBlandscape\fP +.IR mode . +Only the first character of +.I mode +is significant. +The default +.I mode +is \*(mBportrait\fP. +.TP 1.0i +.OP \-v +Completely label each character cell. +The full character name goes in the upper left corner and the +character width (at point size 1) goes in the lower right corner. +.TP 1.0i +.OP \-w num +Set the line width to +.I num +points, where a point is approximately 1/72 of an inch. +A line width of 0 means 1 pixel. +The default line width is resolution dependent. +.TP 1.0i +.OP \-x num +Translate the origin +.I num +inches along the x axis. +Positive +.I num +shifts the table to the right. +The default offset is 0. +.TP 1.0i +.OP \-y num +Translate the origin +.I num +inches along the y axis. +Positive +.I num +shifts the table up the page. +The default offset is 0. +.TP 1.0i +.OP \-C file +Copy +.I file +to the output file; +.B file +must contain legitimate PostScript. +.TP 1.0i +.OP \-E name +Set the character encoding for text fonts to +.IR name . +Requesting +.I name +means include file +.MI \*(dQ/ name .enc \f1. +A nonexistent encoding file is silently ignored. +The default selects file +.MR \*(dQ/Default.enc . +.TP 1.0i +.OP \-L file +Use +.I file +as the PostScript prologue. +.br +The default is +.MR \*(dQ/printfont.ps . +.PP +Arguments should be PostScript +.I font +names or the word +.MR all , +which means the full set of +.SM ROM +and disk based fonts available on a printer. +.B printfont +prints one font table per page. +Each page is labeled with the +.I font +name, the printer product name and interpreter version number, +and the gray level, linewidth, and printer resolution. +.PP +Black cells are used to mark characters listed in the font's +.MW Encoding +array but missing from its +.MW CharStrings +dictionary. +They usually indicate an incomplete font or a mistake in the +.MW Encoding +array. +The check is skipped if the font doesn't include a +.MW CharStrings +dictionary. +.br +.ne 4v +.SH EXAMPLES +Print the characters available in the Times-Roman, Symbol and +ZapfDingbats fonts: +.EX +printfont Times-Roman Symbol ZapfDingbats | lp ... +.EE +Print a baseline under each character and fully label the cells: +.EX +printfont -a1 -v Times-Roman Symbol ZapfDingbats | lp ... +.EE +Dump all the fonts available on a printer using the Latin1 character encoding: +.EX +printfont -ELatin1 all | lp ... +.EE +.SH WARNINGS +Printing a single table can take several minutes. +Dumping all available fonts can tie a printer up for an hour or more. +.SH FILES +.MW \*(dQ/printfont.ps +.br +.MW \*(dQ/*.enc +.SH SEE ALSO +buildtables(1), +dpost(1), +postio(1), +psencoding(1), +trofftable(1) diff --git a/static/unix-v10/man1/priv.1 b/static/unix-v10/man1/priv.1 new file mode 100644 index 00000000..3a649446 --- /dev/null +++ b/static/unix-v10/man1/priv.1 @@ -0,0 +1,145 @@ +.TH PRIV 1 +.CT 1 sa_nonmortals secur +.SH NAME +priv, privedit \- run a command with privileges +.SH SYNOPSIS +.B priv +[ +.I option ... +] [ +.I command +.I arg ... +] +.PP +.B priv privedit +.I node +.I changes +.SH DESCRIPTION +If a +.I command +is given, +.I priv +determines from the +.IR privs (5) +file the most specifically matching +.B REQUEST +for which the process has all the +.B NEEDS +and to which it has +.BR ACCESS +(terminology explained in +.IR privs (5)). +If a unique most specific match is found, +.I priv +asks for confirmation. +Then, if the confirmation is +.LR y , +the request is executed. +Privileges and process ceiling are set according to +the pertinent entry in +.FR /etc/privs +and the current directory is set to a place with +security label +.BR L_NO ; +see +.IR getflab (2). +Thus relative pathnames won't work in the +.I command +until it executes +.IR chdir (2). +.PP +If no command is given, the contents of the +.I privs +file are printed on the standard output. +.PP +The options are +.TP +.B -n +Determine and report authorization and actions. +Do not execute them except, if +.B PRIVEDIT +is requested, place the edited privilege +file on the standard output. +.TP +.BI -f " servfile +Use +.I servfile +instead of +.FR /cs/priv , +to use a non-standard privilege server. +.PP +One request is more specific than another +if the regular language for each argument +of the first request is contained in the corresponding +language for the second request, +and at least one containment is proper. +.PP +The standard error and standard input are used for confirmations. +Both must come from the same trusted source, either a pexable +stream with a stream identifier, or a pipe from a trusted +process; see +.IR pex (4) +and +.IR stream (4). +.PP +.I Privedit +applies to the +.I privs +file the modifications given in the +.I changes +file. +Only the part of the authorization tree rooted at the given +.I node +may be changed. +The form of +.I changes +is described in +.IR privs (5). +The changes are echoed and confirmation is requested. +.RI ( Privedit, +like any other +.I command, +is a conventional token defined by the +.I privs +file; it is not built in.) +.PP +.I Priv +clears the environment to prevent hidden corruption +by untrusted processes. +For the same reason it asks confirmation of the argument list. +What you see is what it will do. +.PP +The real work of +.I priv +is done by +.IR privserv (8). +.I Priv +communicates with +.I privserv +via a pipe that the latter mounts on +.BR /cs/priv . +.SH FILES +.F /etc/privs +.br +.F /cs/priv +.SH SEE ALSO +.IR privs (5), +.IR privserv (8), +.IR session (1) +.SH DIAGNOSTICS +If a +.I command +is performed, +.I priv +returns the result of the last constituent action; see +.IR privs (5). +.SH BUGS +Trailing null +.I args +are deleted. +.br +The standard input and standard error cannot freely be redirected. +.br +It is possible for a password to be demanded twice. +This would be mitigated if requests were assessed in +decreasing order of specificity instead of table order. diff --git a/static/unix-v10/man1/prof.1 b/static/unix-v10/man1/prof.1 new file mode 100644 index 00000000..da7c5521 --- /dev/null +++ b/static/unix-v10/man1/prof.1 @@ -0,0 +1,53 @@ +.th PROF I 3/12/73 +.sh NAME +prof \*- display profile data +.sh SYNOPSIS +.bd prof +[ +.bd \*-v +] [ +.bd \*-a +] [ +.bd \*-l +] [ file ] +.sh DESCRIPTION +.it Prof +will read the file +mon.out +produced by the +monitor subroutine. +Under default modes, +the namelist in the +object file (a.out default) +is read and correlated to the +mon.out profile. +The percentage of time spent +between adjacent valued +external symbols is printed +in decreasing order. +If the +.bd \*-a +option is used, +all symbols are used rather than +just external symbols. +If the option +.bd \*-l +is used, +the output is listed by +symbol value rather than +decreasing percentage. +If the +.bd \*-v +option is used, +all printing is suppressed +and a profile plot is produced +on /dev/vt0. +.sh FILES +mon.out for profile +.br +a.out for namelist +.br +/dev/vt0 for plotting +.sh "SEE ALSO" +mon(III), profil(II) +.sh BUGS diff --git a/static/unix-v10/man1/proof.1 b/static/unix-v10/man1/proof.1 new file mode 100644 index 00000000..b817bd9c --- /dev/null +++ b/static/unix-v10/man1/proof.1 @@ -0,0 +1,41 @@ +.pa 1 +.he 'PROOF (I)'1/15/73'PROOF (I)' +.ti 0 +NAME proof -- compare two text files +.sp +.ti 0 +SYNOPSIS proof_____ +oldfile newfile +.sp +.ti 0 +DESCRIPTION proof_____ +lists +those lines of +.ul +newfile +that differ from corresponding lines in +.ul +oldfile. +The line number in +.ul +newfile +is given. +When changes, insertions or deletions have +been made the program attempts to resynchronize +the text in the two files by finding a sequence of +lines in both files that again agree. +.sp +.ti 0 +FILES -- +.sp +.ti 0 +SEE ALSO cmp(I) +.sp +.ti 0 +DIAGNOSTICS yes, +but they are undecipherable, e.g. "?1". +.sp +.ti 0 +BUGS proof_____ +is still evolving. Any bugs discovered or suggestions +should be brought to ENP. diff --git a/static/unix-v10/man1/proofr.1 b/static/unix-v10/man1/proofr.1 new file mode 100644 index 00000000..ea98fd87 --- /dev/null +++ b/static/unix-v10/man1/proofr.1 @@ -0,0 +1,111 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.1, January 1981 +.TH PROOFR 1 +.SH NAME +proofr \- automatic proofreader +.br +proofer \- alternative command-name for proofr +.SH SYNOPSIS +.B proofr +[ +.B \-s +][ +.B \-flags +][ +.B \-ver +] +file ... +.SH DESCRIPTION +.I Proofr +is an automatic proofreading system +that runs modified versions of 5 programs: +.RS 5 +.TP 14 +.IR spellwwb (1) +- checks for misspelled words. +.TP +.IR punct (1) +- checks for rudimentary punctuation errors. +.TP +.IR double (1) +- searches for consecutive occurrences of the same word. +.TP +.IR dictplus (1) +- locates wordy and/or misused phrases and suggests alternatives. +.TP +.IR splitinf (1) +- searches for split infinitives. +.RE +.PP +.I Proofr +is one of the programs run under the +.IR wwb (1) +command. +.PP +Options are: +.RS 5 +.TP 7 +.B \-s +produce a short summary version of +.IR proofr . +.RE +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.SH NOTE +If the user has a file called +.IR $HOME/lib/ddict , +.I proofr +will run +.I dictplus +so that phrases in +.I ddict +are located or ignored, as specified. +See diction(1), dictadd(1), dictplus(1) for more information. +.PP +If the user has a file called +.IR $HOME/lib/spelldict , +.I proofr +will run +.I spellwwb +so that words in +.I spelldict +are not listed as errors. +See spellwwb(1) and spelladd(1) for more information. +.SH FILES +.TP 21 +/tmp/$$* +temporary files +.SH SEE ALSO +spellwwb(1), +punct(1), +double(1), +splitinf(1), +diction(1), +wwb(1), +worduse(1), +spelltell(1), +deroff(1). +.SH BUGS +See other manual pages for bugs in individual programs. +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/prose.1 b/static/unix-v10/man1/prose.1 new file mode 100644 index 00000000..29be4d2d --- /dev/null +++ b/static/unix-v10/man1/prose.1 @@ -0,0 +1,228 @@ +.id NOTICE-NOT TO BE DISCLOSED OUTSIDE BELL SYS EXCEPT UNDER WRITTEN AGRMT +.id Writer's Workbench version 2.2, February 24, 1981 +.TH PROSE 1 +.SH NAME +prose \- describe style characteristics of text +.SH SYNOPSIS +.B prose +[ +.B \-flags +][ +.B \-ver +] +[ +.B \-tm +| +.B \-c +| +.B \-t +| +.B \-x +standards-file +][ +.B \-mm +| +.B \-ms +] [ +.B \-li +| +.B \+li +][ +.B \-s +][ +.B \-f +style-file | file ...] +.SH DESCRIPTION +.I Prose +describes the writing style of a document +as determined by +.IR style "(1), +but the output is in prose form. +The output describes readability, word and sentence lengths, +sentence structure and variation. +.PP +The program checks that a document's scores on certain +.I style +variables fall within the average range for documents of a specified type. +Whenever the score for a variable is outside the average range, +a warning message is printed with information +about the variable, +and commands that can be run to get further information. +.PP +.I Prose +creates a file called +.I styl.tmp +that contains the table produced by +.IR style . +.PP +.I Prose +compares a document with standards +for one of several document types, +according to the following flags: +.RS 5 +.TP 5 +.B \-tm +Compare input text to good Bell Laboratories TM's. (This is the default.) +.TP +.B \-c +Evaluate input text for craft suitability. +.TP +.B \-t +Compare input text with good training documents. +.TP +.BI \-x " standards-file" +Compare input text with standards contained in user-specified +.IR standards-file . +See +.IR mkstand (1) +to set up the +.IR standards-file . +.RE +.PP +Because +.I prose +runs +.IR deroff (1) +before looking at the text, +formatting header files should be included as part of the input. +.PP +Options affecting +.IR deroff (1) +are: +.RS 5 +.TP +.B \-mm +eliminate +.IR mm (1) +macros, and associated text that is not part of sentences +(e.g. headings), +from the analysis. +This is the default. +.TP +.B \-ms +eliminate +.IR ms (1) +macros, and associated text that is not part of sentences, +from the analysis. +The +.B \-ms +flag overrides the default, +.BR \-mm . +.TP +.B \-li +eliminate list items, +as defined by +.I mm +macros, from the analysis. +This is the default. +.TP +.B \+li +Include list items in the input text, +in the analysis. +This flag should be used if the text contains lists of sentences, +but not if the text contains many lists of non-sentences. +.RE +.PP +Other options are: +.RS 5 +.TP +.B \-s +Produce a short (10 line) summary version of +.IR prose . +.TP +.BI \-f " style-file" +If a file containing the +.I style +table exists as output from the +.I style +program, +or from a previous +.I prose +run, +it may be specified so that +.I prose +need not run +.I style +again. +.I Styl.tmp +can be used as the +.IR style-file . +The input text file should not be used with the +.B \-f +flag. +.RE +.PP +Two options give information about the program: +.RS 5 +.TP 7 +.B \-flags +print the command synopsis line (see above) +showing command flags and options, +then exit. +.TP +.B \-ver +print the Writer's Workbench version number of the command, then exit. +.RE +.PP +.I Prose +is one of the programs run under the +.IR wwb (1) +command. +.SH EXAMPLES +The command: +.PP +.RS 5 +.B "prose \-t \+li filename" +.RE +.PP +will describe how the style characteristics of +.I filename +compare with standards for training documents. +Lists will be included in the analysis. +The +.IR style (1) +table will be left in the file +.IR styl.tmp . +.br +Then the command: +.PP +.RS 5 +.B "prose \-x standards-file \-f styl.tmp" +.RE +.PP +will use the style statistics already gathered for +.IR filename , +and describe how they compare with the user-defined +standards contained in +.IR standards-file . +.SH FILES +.TP 21 +styl.tmp +contains +.I style +table +.TP +wwb/lib/prosedoc +contains all standards used for comparison, +and stored +.I prose +output text files +.SH SEE ALSO +style(1), wwb(1), +deroff(1), +match(1), +wwbstand(1), +mkstand(1), +worduse(1). +.SH SUPPORT +.IR "COMPONENT NAME: " "Writer's Workbench" +.br +.IR "APPROVAL AUTHORITY: " "Div 452" +.br +.IR "STATUS: " Standard +.br +.IR "SUPPLIER: " "Dept 45271" +.br +.IR "USER INTERFACE: " "Stacey Keenan, Dept 45271, PY x3733" +.br +.IR "SUPPORT LEVEL: " "Class B - unqualified support other than Div 452" diff --git a/static/unix-v10/man1/ps.1 b/static/unix-v10/man1/ps.1 new file mode 100644 index 00000000..3819a0fa --- /dev/null +++ b/static/unix-v10/man1/ps.1 @@ -0,0 +1,66 @@ +.th PS I 10/15/73 +.sh NAME +ps \*- process status +.sh SYNOPSIS +.bd ps +[ +.bd alx +] +.sh DESCRIPTION +.it Ps +prints certain indicia about active +processes. +The +.bd a +flag asks for information about all processes with teletypes (ordinarily +only one's own processes are displayed); +.bd x +asks even about processes with no typewriter; +.bd l +asks for a long listing. +Ordinarily only the typewriter number (if not one's own) +and the process number are given. +.s3 +The long listing is columnar and contains +.s3 +.lp +5 0 +A number encoding the state (last digit) +and flags (first 1 or 2 digits) of the process. +.s3 +The priority of the +process; high numbers mean low priority. +.s3 +A number related in some unknown way to the +scheduling heuristic. +.s3 +The last character of +the control typewriter of the process. +.s3 +The process unique number +(as in certain cults it is possible +to kill a process if you know its true name). +.s3 +The size in blocks of the core image of the process. +.s3 +The last column if non-blank tells the core +address in the system of the +event which the process is waiting for; +if blank, the process is running. +.s3 +.i0 +.dt +Unfortunately if you have forgotten the number of a process +you will have to guess which one it is. +Plain +.it ps +will tell you only a list of numbers. +.sh FILES +/usr/sys/unix system namelist +.br +/dev/mem resident system +.sh "SEE ALSO" +kill(I) +.sh BUGS +The ability to see, even if dimly, +the name by which the process was invoked would +be welcome. diff --git a/static/unix-v10/man1/psencoding.1 b/static/unix-v10/man1/psencoding.1 new file mode 100644 index 00000000..0c0a3a65 --- /dev/null +++ b/static/unix-v10/man1/psencoding.1 @@ -0,0 +1,37 @@ +.ds dQ /usr/lib/postscript +.TH PSENCODING 1 "DWB 3.2" +.SH NAME +.B psencoding +\- check or set the default PostScript font encoding +.SH SYNOPSIS +\*(mBpsencoding\f1 +.OP "" encoding [] +.SH DESCRIPTION +.B psencoding +sets the default font Encoding used by many PostScript translators to +.IR encoding . +No arguments means list the available choices and the current default. +.PP +PostScript encoding files are in directory +.MR \*(dQ . +Many existing PostScript translators include the encoding file +.MR Default.enc , +if it exists, in the output they generate. +.PP +Requesting +.I encoding +as the default means link the file +.MI \*(dQ/ encoding .enc +to the file +.MR \*(dQ/Default.enc . +Changing the default encoding assumes you can write in directory +.MR \*(dQ . +.SH FILES +.MW \*(dQ/Default.enc +.br +.MW \*(dQ/*.enc +.SH SEE ALSO +.BR buildtables (1), +.BR dpost (1), +.BR postprint (1), +.BR trofftable (1) diff --git a/static/unix-v10/man1/psifile.1 b/static/unix-v10/man1/psifile.1 new file mode 100644 index 00000000..9e9078da --- /dev/null +++ b/static/unix-v10/man1/psifile.1 @@ -0,0 +1,156 @@ +.TH PSIFILE 1 +.CT 1 writing_output +.SH NAME +psifile, mhssend\- postscript interpreter/fax sender +.lg 0 +.SH SYNOPSIS +.B psifile +[ +.I option ... +] [ +.I file +] +.br +.B mhssend +.I phone_number +.I file +.SH DESCRIPTION +.I Psifile +reads Postscript input from +.I file +or from standard input +and produces a file containing an image of the page. +The format of the output file is specified by the following options: +.TF /make/it +.TP +.B -fax +runs at 200 dpi and produces g31 fax in the multipage fax format called +.BR mhs , +putting its output in file +.B fax\fI$$\fP.mhs +by default. If a phone number is supplied, +the output file is pushed to +.B /tmp +on fama +and +.B mhssend +is run to send the fax. +.TP +.BI -P " phone_no" +specifies the destination phone number for +.BR -fax . +.TP +.B -g4 +runs at 300 dpi and produces a fax g4 file called +.B psi.out.g4 +by default that +can be displayed on the gnots with +.IR rbits . +.TP +.B -bm +produces +.IR bitfile (9.5) +output in file +.B psi.out +by default. +.I -bm +is useful for debugging postscript programs because +it has better diagnostics than the printers. +.PP +Other options are +.TF /this/is +.TP +.B -s +assumes the file is in +.B mhs +format and sends it to the phone number provided with +.B -P +above. +.TP +.BI -o " name" +use +.I name +as the basename of the output file. +.TP +.BI -p " page" +only output postscript page number +.I page +as determined by +.B %%Page +comments in the file. +.sp +.PP +Fonts are implemented with 24 point bitmap fonts. +Those available are +Symbol, Courier, Times-Roman, Times-Italic, Times-Bold, Times-BoldItalic, Helvetica, +Helvetica-Oblique, Helvetica-Bold, Helvetica-BoldOblique. +Fonts +Courier-Bold, +Courier-Oblique, +and +Courier-BoldOblique +are mapped to +Courier. +Postscript type 1 fonts are implemented and work if supplied +with the input. +.sp +.PP +For best results with TeX documents, run +.B dvips +with the +.B -Tfax +or +.B "-D 200" +option to get fonts of the proper resolution. +.SH EXAMPLES +.TP +.L +troff -ms memo | lp -dstdout -H | psifile -fax -P 4223 +.br +.TP +.L +troff -ms memo | dpost | psifile -fax -P 4223 +Two equivalent ways to format a memo, convert it to PostScript, +and produce a fax file. +.SH FILES +.TF /usr/lib/psi/psifaxg4 +.TP +.F fax\fI$$\fP.mhs +default +.B -fax +output file +.TP +.F psi.out.g4 +default +.B -g4 +output file +.TP +.F psi.out +default +.B -bm +output file +.TP +.B /usr/lib/psi/psifax +postscript\->mhs format program +.TP +.B /usr/lib/psi/psifaxg4 +postscript\->fax g4 program +.TP +.B /usr/lib/psi/psibm +postscript\->bitfile program +.SH SEE ALSO +.IR psi (9.1), +.IR lp (1), +.IR dvips (1), +.IR postscript (8), +.IR proof (9.1) , +.IR bcp (1) +.SH DIAGNOSTICS +.PP +Symbols that lack bitmaps are replaced by `?' +and an error is reported. +.SH BUGS +Unimplemented PostScript features are rotated images +and half tone screens. +Imagemasks may only be rotated by multiples of 90 degrees, +not by arbitrary angles. diff --git a/static/unix-v10/man1/psix.1 b/static/unix-v10/man1/psix.1 new file mode 100644 index 00000000..de343774 --- /dev/null +++ b/static/unix-v10/man1/psix.1 @@ -0,0 +1,132 @@ +.TH PSIX 1 +.CT 1 writing_output +.SH NAME +psix \- postscript interpreter +.SH SYNOPSIS +.B psix +[ +.I option ... +] [ +.I file +] +.SH DESCRIPTION +.I Psix +reads Postscript input from +.I file +or from standard input +and simulates the resulting pages in a +window under X Windows. +If the large window it brings up is too big +for your screen, you can use +.I -geometry +to change its size. You may also want to use the +.I -a +option described below. +.PP +The options are +.TP +.BI -p n +Display page +.IR n , +where +.I n +is determined from the +.B %%Page +comments in the file. +If these are not present, page selection will not work. +.TP +.B -R +Pages in the file are in reverse order. This flag must be used on such files +for the +.I -p +option to work. +.TP +.B -r +Display the image at full scale, with the bottom left +corner positioned at the bottom left corner of the window. +(By default, the image is scaled to fit the window, maintaining +the aspect ratio of a printer.) +.HP +.B -a +.I x y +.br +Display the image at full scale with position +.I x,y +of the image placed at the bottom left corner of the window. +.PP +Fonts are implemented with size-24 bitmap fonts. +Those available are +Symbol, Courier, Times-Roman, Times-Italic, Times-Bold, Times-BoldItalic, Helvetica, +Helvetica-Oblique, Helvetica-Bold, Helvetica-BoldOblique. +Fonts +Courier-Bold, +Courier-Oblique, +and +Courier-BoldOblique +are mapped to +Courier. +Other postscript fonts, including type1, may be used if +they are supplied before they're referenced. +.PP +When the `cherries' icon is displayed, you can move forward +by typing return or you can use mouse button 3 +to move forward +.RB ( more ), +to a particular page +.RB ( page ), +or quit +.RB ( done ). +.SH EXAMPLES +.TP +.L +troff -ms memo | lp -dstdout -H | psi +.br +.ns +.TP +.L +troff -ms memo | dpost | psi +Two equivalent ways to format a memo, convert it to PostScript, +and display it. +.PP +For best results with TeX documents, use +.B dvips +with the +.BR -Tjerq , +.BR -Tgnot , +or +.B "-D 100" +option to get fonts of the proper resolution and run +.I psi +with the +.I -r +or +.I -a +flag to prevent +.I psi +from scaling. +.SH FILES +.TF psi.err +.TP +.F psi.err +error messages +.SH SEE ALSO +.IR lp (1), +.IR dvips (1), +.IR postscript (8), +.IR proof (9.1), +.IR psifile (1), +.IR psi (9.1) +.SH DIAGNOSTICS +A `dead mouse' icon signals an error; +error comments are placed on file +.FR psi.err . +.PP +Symbols that lack bitmaps are replaced by `?' +and an error is reported. +.SH BUGS +Unimplemented PostScript features are rotated images and +half tone screens. +Imagemasks may only be rotated by multiples of 90 degrees, not +by arbitrary angles. +.br +Skipping pages may cause operators to be undefined. diff --git a/static/unix-v10/man1/ptx.1 b/static/unix-v10/man1/ptx.1 new file mode 100644 index 00000000..b14ad396 --- /dev/null +++ b/static/unix-v10/man1/ptx.1 @@ -0,0 +1,120 @@ +.TH PTX 1 +.CT 1 writing_aids +.SH NAME +ptx \- permuted index +.SH SYNOPSIS +.B ptx +[ +.I option ... +] +[ +.I input +[ +.I output +] +] +.SH DESCRIPTION +.I Ptx +generates a permuted index to file +.I input +on file +.I output +(standard input and output default). +It has three phases: the first does the permutation, generating +one line for each keyword in an input line. +The keyword is rotated to the front. +The permuted file is then +sorted. +Finally, the sorted lines are rotated so the keyword +comes at the middle of the page. +.I Ptx +produces output exemplified by: +.br +.IP +.L +\&.xx "tail" "before" "keyword and after" "head" +.LP +where +.L .xx +may be defined as a +.IR troff (1) +macro +for user-defined formatting. +The +.I before +and +.I keyword and after +fields incorporate as much of the line as will fit +around the keyword when it is printed at the middle of the page. +.I Tail +and +.I head, +at least one of which is an empty string, +are wrapped-around pieces small enough to fit +in the unused space at the opposite end of the line. +When original text must be discarded, +.L / +marks the spot. +.PP +The following options can be applied: +.TP +.BR -f +Fold upper and lower case letters for sorting. +.TP +.BR -t +Prepare the output for the phototypesetter; +the default line length is 100 characters. +.TP +.BI -w " n" +Use the next argument, +.I n, +as the width of the output line. +The default line length is 72 characters. +.TP +.BI -g " n" +Use the next argument, +.I n, +as the number of characters to allow for each gap +among the four parts of the line as finally printed. +The default gap is 3 characters. +.TP +.BI -o " only" +Use as keywords only the words given in the +.I only +file. +.TP +.BI -i " ignore" +Do not use as keywords any words given in the +.I +ignore +file. +If the +.B -i +and +.B -o +options are missing, use +.F /usr/lib/eign +as the +.I +ignore +file. +.TP +.BI -b " break" +Use the characters in the +.I break +file to separate words. +In any case, tab, newline, and space characters are always used as break characters. +.TP +.B -r +Take any leading nonblank characters of each input line to +be a reference identifier (as to a page or chapter) +separate from the text of the line. +Attach that identifier as a 5th field on each output line. +.PP +The index for this manual was generated using +.I ptx. +.SH FILES +.F /usr/lib/eign +.SH BUGS +Line length counts do not account for overstriking or +proportional spacing. diff --git a/static/unix-v10/man1/punct.1 b/static/unix-v10/man1/punct.1 new file mode 100644 index 00000000..06574a94 --- /dev/null +++ b/static/unix-v10/man1/punct.1 @@ -0,0 +1,22 @@ +.TH PUNCT 1 +.SH NAME +punct \- punctuation checker +.SH SYNOPSIS +.B /usr/bin/WWB/punct +[ file ... ] +.SH DESCRIPTION +.I Punct +scans English text for punctuation errors and doubled words. +When it finds an error, +it places the error on the standard output +together with line number and suggested repunctuation. +.SH FILES +.ta \w'/tmp/$$* 'u +/tmp/$$* temporary files +.SH SEE ALSO +style(1), diction(1), wwb(1) +.SH BUGS +.I Punct +will consider unfamiliar abbreviations ending with a period (except initials) +to be the end of the sentence, +consequently, it will capitalize the next word. diff --git a/static/unix-v10/man1/push.1 b/static/unix-v10/man1/push.1 new file mode 100644 index 00000000..af26404b --- /dev/null +++ b/static/unix-v10/man1/push.1 @@ -0,0 +1,104 @@ +.TH PUSH 1 +.CT 1 comm_mach +.SH NAME +push, pull, npush, npull \- datakit remote file copy +.SH SYNOPSIS +.B push +[ +.B -v +] +.I machine file ... remotedir +.PP +.B pull +[ +.B -v +] +.I machine file ... localdir +.PP +.B npush +[ +.B -v +] +.I machine file ... remotedir +.PP +.B npull +[ +.B -v +] +.I machine file ... localdir +.SH DESCRIPTION +.I Push +and +.I pull +copy files between machines over Datakit. +.I Push +copies +.I files +from the local machine +to the directory +.I remotedir +on the named +.I machine. +.I Pull +copies +.I files +from the named +.I machine +to the directory +.I localdir +on the local machine. +The last component of the name of a copy is the same +as that of the original. +If one of the +.I files +is a directory, a corresponding +directory is created +and the directory's files are copied, recursively. +.PP +Option +.B -v +announces each file as it is copied. +.PP +Pushing and pulling involve two programs running in +different contexts on different machines. +In particular, pulling +to directory +.L . +puts files in the local current directory, +but pushing to +.L . +puts files in the remote home directory. +Shell metacharacters which are to be interpreted +on the remote machine must be quoted. +.PP +.I Npush +and +.I npull +behave exactly like +.I push +and +.I pull, +but use a different protocol, necessary for communicating +to some other Datakit clusters. +.SH FILES +.TF /usr/lib/Rpush +.TP +.F /usr/lib/Rpull +link to +.F /usr/bin/pull +for remote end of transaction +.TP +.F /usr/lib/Rpush +link to +.F /usr/bin/push +.SH SEE ALSO +.IR con (1), +.IR cp (1), +.IR rcp (1), +.IR cu (1), +.IR uucp (1) +.SH DIAGNOSTICS +Messages marked +.L (remote) +are from the sister process running on the +remote machine. diff --git a/static/unix-v10/man1/pwd.1 b/static/unix-v10/man1/pwd.1 new file mode 100644 index 00000000..bd408d3d --- /dev/null +++ b/static/unix-v10/man1/pwd.1 @@ -0,0 +1,21 @@ +.TH PWD 1 +.CT 1 dirs +.SH NAME +pwd, where \(mi machine name and working directory +.SH SYNOPSIS +.B pwd +.PP +.B where +.SH DESCRIPTION +.I Pwd +prints the pathname of the working (current) directory. +.PP +.I Where +prints the name of the machine and the pathname of the +current directory in the form +.IP +.IB machine ! fullpathname +.SH SEE ALSO +.I cd +in +.IR sh (1) diff --git a/static/unix-v10/man1/pwintf.1 b/static/unix-v10/man1/pwintf.1 new file mode 100644 index 00000000..40c4dd7f --- /dev/null +++ b/static/unix-v10/man1/pwintf.1 @@ -0,0 +1,178 @@ +.TH PWINTF 1 SHARE +.SH NAME +pwintf \- print selected limits file entries using printf formats +.SH SYNOPSIS +.B pwintf +[-p shares_file] expression format [identifier..] +.SH DESCRIPTION +For each entry in the system shares file the expression +argument is evaluated. +If the result is non zero +the remaining arguments are treated as if they were arguments +to +.I printf +(see +.IR printf (3S)). +An alternative shares file may be specified with the +.I -p +option. +.PP +Expression elements are: +.TP "\w'identifierXXXX'u" +|| +Binary or. Non zero if the left hand side or the right hand side +evaluates to a non zero value. +.TP +&& +Binary and. Non zero if the left hand side and the right hand +side are both non zero. +.TP +== != +Equal/not equal to. Non zero if the left hand side +and the right hand side +are equal/not equal. +.TP +> < +Greater/less than. Non zero is the left hand side is +greater/less than the right hand side. +.TP +>= <= +Greater/less than or equal to. Non zero if the left hand side +is greater/less than or equal to the right hand side. +.TP +~ +Regular expression matching. Non zero if the string on the left +hand side matches the regular expression given by the string +on the right hand side. Regular expressions are given in the +style of +.I ed +(see +.IR ed (1)). +.TP +! +Unary not. Non zero if the right hand side evaluates to zero. +.TP +".." +A string of characters. +.TP +{..} +A date. +Date specifications are in the style: +.B {[[[[[yy]mm]dd]hh]mm][.ss]}. +For example +.B {01271200} +would be noon on the 27th of January in the current year. +.TP +(..) +A sub-expression. +.TP +identifier +Any one of the identifiers described below. +.TP +number +A decimal digit string. +.PP +Note that the expression may have to be quoted +to stop the shell from interpreting symbols such as +\fB&\fR +as symbols having special meaning. +.SH FORMATS +All +.I printf +format specifications and modifiers are allowed except the +\&'*' modifier. To facilitate the printing of dates +which are stored as the number of seconds since +1st January 1970, +\fB%t\fR +may be used. This will cause the corresponding integral +argument to be interpreted as a time and given in the style +of +.I ctime +(see +.IR ctime (3C)). +All modifiers will be ignored in such a time specification. +.SH IDENTIFIERS +In the following list words printed in +.B "this font" +are as defined in the include files and . +.PD 0 +.TP "\w'assumeddisconXX'u" +activelnode +1 if the account has the +.B ACTIVELNODE +flag set. +.TP +changed +1 if the account has the +.B CHANGED +flag set. +.TP +charge +The long term accumulated costs of the account as a floating point number. +.TP +deadgroup +1 if the account has the +.B DEADGROUP +flag set. +.TP +dirpath +The initial directory of the account as a string. +.TP +flags +A string containing the names of the flags set for this account. +.TP +gecos +The ``gecos'' field of the account as a string. +.TP +gid +The integral gid of this account. +.TP +lastref +1 if the account has the +.B LASTREF +flag set. +.TP +lastused +The time the account last did anything. +.TP +lname +The login name of the account as a string. +.TP +notshared +1 if the account has a +.B NOTSHARED +flag. +.TP +now +The current time. +.TP +pword +The encrypted password of the account as a string. +.TP +sgroup +The uid of the scheduling group of this account. +.TP +sgroupname +The lname of the scheduling group of this account. +.TP +shares +The integral number of shares the account has. +.TP +shellpath +The initial shell of the account as a string. +.TP +usage +The usage of the account as a floating point number. +.TP +uid +The integral uid of this account. +.PD +.SH FILES +/etc/passwd +.br +/etc/shares +.SH SEE ALSO +printf(3S), ctime(3C), shares(5). +.SH DIAGNOSTICS +Yes. A summary of usage is given when pwintf +is invoked with no arguments. diff --git a/static/unix-v10/man1/pxp.1 b/static/unix-v10/man1/pxp.1 new file mode 100644 index 00000000..3cffc462 --- /dev/null +++ b/static/unix-v10/man1/pxp.1 @@ -0,0 +1,125 @@ +.TH PXP 1 +.CT 1 prog_other +.SH NAME +pxp, pxref \- pascal printer, profiler, and cross-reference lister +.SH SYNOPSIS +.B pxp +[ +.B -acdefjnstuw_ +] +[ +.B -23456789 +] +[ +.B -z +[ +.I name ... +] +] +.IB name .p +.PP +.B pxref +[ +.B - +] +.IB name .p +.SH DESCRIPTION +.I Pxp +prints the Pascal program +.IB name .p +in a standard `pretty' form. +Under option +.B -z +the listing is annotated with statement execution counts +from a previous +.IR pascal (1) +run. +.TP +.B -a +Print the bodies of all procedures and functions in the profile; +even those which were never executed. +.TP +.B -d +Include declaration parts in a profile. +.TP +.B -e +Eliminate +.B include +directives when reformatting a file; +the +.B include +is replaced by the reformatted contents of the specified +file. +.TP +.B -f +Fully parenthesize expressions. +.TP +.B -j +Left justify all procedures and functions. +.TP +.B -n +Eject a page +as each file is included; +in profiles, print a blank line at the top of the page. +.TP +.B -s +Strip comments from the input text. +.TP +.B -t +Print only a table of counts of +procedure and function calls. +.TP +.B -u +Card image mode; only the first 72 characters of input lines +are used. +.TP +.B -w +Suppress warning diagnostics. +.TP +.B -z +Generate an execution profile. +The presence of any +.I names +causes the profile to be restricted to the named procedures, +functions, and include files. +.TP +.B -\_ +Underline keywords. +.TP +.BI - d +With +.I d +a digit, +use +.I d +spaces as the indenting unit. +The default is 4. +.PP +.I Pxref +makes a line-numbered listing and cross-reference index for +.IB name .p . +The optional +.B - +argument suppresses the listing. +.SH FILES +.TF /usr/lib/how_pxp +.TP +.F *.p +input files +.TP +.F *.i +include files +.TP +.F pmon.out +profile data +.TP +.F /usr/lib/how_pxp +information on basic usage +.DT +.SH "SEE ALSO" +Berkeley Pascal User's Manual +.br +.IR pascal (1) +.SH BUGS +.I Pxref +trims identifiers to 10 characters and pads lines with blanks. diff --git a/static/unix-v10/man1/qed.1 b/static/unix-v10/man1/qed.1 new file mode 100644 index 00000000..21e7b38d --- /dev/null +++ b/static/unix-v10/man1/qed.1 @@ -0,0 +1,1617 @@ +.TH "QED" 1 +. \" /*% nroff -man % +.if t .ds q \(aa +.if n .ds q ' +.SH NAME +qed \- multi-file text editor +.SH SYNOPSIS +.B qed +[ +.B \- +] [ +.B \-i +] [ +.B \-q +] [ +.B \-e +] [ +.B \-x +startupfile +] [ filename1 filename2 ... ] +.SH DESCRIPTION +\fIQed\fP +is a multiple-file programmable text editor based on +.IR ed . +.PP +.I Qed +operates on a copy of any file it is editing; changes made +in the copy have no effect on the file until a \fIw\fR +or \fIW\fR (write) +command is given. +The copy of the text being edited resides +in a scratch area called a +.I buffer. +There are 56 buffers, labeled by alphabetics `a' to `z' and `A' to `Z', +and the characters `{', `|', `}' and `~' +(the four ASCII characters following `z'). +These 56 characters are called, for notational efficiency, +.I bnames. +The buffers can contain any ASCII character except NUL. +.PP +If +.I file +arguments are given, +.I qed +simulates an +.I r +command (see below) on each of the named files; that is to say, +the files are read into +.I qed's +buffers so that they can be edited. +The first is read into buffer `a', the second into buffer `b', +through `z', +then from `A' to `Z', +up to a maximum of 52 files. +The optional +.B \- +puts +.I qed +in non-\c +.I verbose +mode (described with the +.I o +command). +The +\fB\-q\fR, \fB\-e\fR +and +.B \-i +are equivalent to performing an initial +`oqs', `oes' or `ois' command (see the +.I o +command below). +.PP +When \fIqed\fP starts up, +the file named by the environment variable +.B QEDFILE +is read into +buffer `~' and executed +(i.e. read as command input), before +reading in files and accepting commands from the terminal. +The argument +.I filename\c +s are set in the buffers before the startup file is executed, +so the startup file can treat the \fIfilenames\fR as arguments. +The default startup file may be overridden with the \fB\-x\fR option. +.PP +Input to +.I qed +can be redirected, at any time, +to come from storage such as a buffer +by use of a +.I special +.I character +such as ``\eb''. +All the +.I qed special character +sequences are discussed in detail below; +they all begin with a +backslash `\\'. +.PP +.I Qed +has a +.I truth flag +which is set according to the success of certain commands +and which can be tested for conditional execution, and a +.I count +which is set to such values as the number of successful substitutions +performed in an +.I s +command. +Each buffer has associated with it a +(possibly null) filename and a +.I changed +flag, which is +set if the contents of the buffer are known to differ +from the contents of the named file in that buffer. +.PP +Commands to +.I qed +have a simple and regular structure: zero or +more +.I addresses +followed by a single character +\fIcommand\fP, +possibly +followed by parameters to the command. +These addresses specify one or more lines in the buffer. +Every command which requires addresses has default addresses, +so that the addresses can often be omitted. +.PP +In general, any number of commands can appear on a line. +Some commands require that the character following +the command be a separator, such as blank, tab or newline. +Usually, a +.I display +.IR character , +.IR p , +.IR P , +.IR l , +or +.I L +may precede the separator, +causing the resulting line to be displayed in the specified format +after the command. +Certain commands allow the input of text for placement in the buffer. +This text can be supplied in two forms: +either +on the same line, after the command, +or on lines following the command, +terminated by a line containing only a period `\fB.\fP'. +If the text is on the command line, +it is separated from the command by a space or a tab. +If the tab is used, it is considered part of the text. +.PP +.I Qed +supports a limited form of +\fIregular\fP \fIexpression\fP +notation. +A regular expression specifies +a set of strings of characters. +A member of this set of strings is said to be +.I matched +by the regular expression. +Regular expressions in +.I qed +are delimited by enclosing them in a pair of identical characters, +frequently slashes `/'. +In the following specification for regular expressions the word `character' +means any character but newline. +Note that special character interpretation always occurs +.I before +executing a command. +Thus, the backslashes mentioned below are those present +after special characters have been interpreted. +.IP 1. +Any character except a metacharacter matches itself. +Metacharacters are the regular expression delimiter plus +< [ \fB.\fP and \e | > ^ * \+ $ +when another rule gives them a meaning. +.IP 2. +A \fB.\fP matches any character. +.IP 3. +A backslash \\ followed by +any metacharacter in the list given in rule 1 +is a regular expression and matches that character. +A backslash followed by one of +! _ { } ( ) +or a non-zero digit +has a special meaning discussed below; +otherwise, backslashes have literal meaning in regular expressions. +.IP 4. +The metacharacter \e\|! matches any control character +except tab or newline. +.IP 5. +A non-empty string +.I s +enclosed in square brackets +[\fIs\fP] (or [^\fIs\fP]) matches any character in (or not in) \fIs\fP. +In +.IR s , +\\ has no special meaning, and ] may only appear as the first character. +A substring +.IR a \- b , +with +.I a +and +.I b +in ascending ASCII order, stands for the inclusive range of ASCII characters. +.IP 6. +A regular expression, +of the form <\fIx1\fP> or <\fIx1\fR|\|\fIx2\fR|\|...|\|\fIxn\fR>, +where the \fIx\fR's are regular expressions of form 1-12, matches what +the leftmost successful \fIx\fR +matches. +.IP 7. +A backslash followed by a non-zero digit +.I n +matches a copy of the string that the bracketed regular expression +(see rule 11) +beginning with the \fIn\fPth \e\|( matched. +.IP 8. +A regular expression of form 1-7 followed by * (\+) +matches a sequence of zero (one) or more matches of the regular expression. +.IP 9. +The metacharacter \\\|_ matches a non-empty +maximal-length sequence of blanks and tabs. +.IP 10. +The metacharacter \\\|{ (\\\|}) matches the empty string at the beginning +(end) of an identifier. An identifier is defined to be +an underscore _ or alphabetic followed by zero or more +underscores, alphabetics or digits. +.IP 11. +A regular expression, +.IR x , +of form 1-12, bracketed \e\|(\|\fIx\fP\|\e\|) matches what +.I x +matches. +The nesting of these brackets in each regular expression of an +alternation (rule 6) must be identical. +An alternation with these brackets may not be iterated (rule 8). +.IP 12. +A regular expression of form 1-12, +.IR x , +followed by a regular expression of form 1-11, +.IR y , +matches a match for +.I x +followed by a match for +.IR y , +with the +.I x +match being as long as possible while still permitting a +.I y +match. +.IP 13. +A regular expression of form 1-12 preceded by ^ (followed by $) is constrained +to matches that begin at the left (end at the right) end of a line. +.IP 14. +A regular expression of form 1-13 picks out the longest among the leftmost matches +in a line. +.IP 15. +An empty regular expression stands for a copy of the last regular expression encountered. +.PP +.i0 +Regular expressions are used in addresses and the +.I g +and +.I v +commands +to specify +lines, in the +.I s +command +to specify a portion of a line which is to be replaced, +in the +.I G +and +.I V +commands to refer to buffers in which to perform commands, +and in general whenever text +is being specified. +.PP +To understand addressing in +.I qed +it is necessary to know that at any time there is a +\fIcurrent buffer\fR +and a +\fIcurrent line.\fR +When +.I qed +is invoked, +the current buffer is +buffer `a', +but may be changed at any time by a +.I b +(change buffer) command. +All addresses refer to lines in the current buffer, +except for a special case described under the +.I m +(move) command. +.PP +Generally speaking, the current line is +the last line affected by a command; however, +the exact effect on the current line +is discussed under the description of +the command. +Addresses are constructed as follows. +.IP 1. +The character `\fB.\fR' addresses the current line. +.IP 2. +The character `$' addresses the last line of the buffer. +.IP 3. +A decimal number +.I n +addresses the +\fIn\fR-th +line of the buffer. +.IP 4. +`\*q\fIx\fR' addresses the line marked with the +mark name character \fIx\fR, +which must be a bname. +Lines are marked with the +.I k +command described below. +It is an error for the marked line to be outside of the current buffer. +.IP 5. +A regular expression enclosed in slashes `/' addresses +the first matching line +found by searching forwards from the line after the current line. +If necessary, the search wraps around to the beginning of the +buffer. +If the trailing `/' would be followed by a newline, +it may be omitted. +.IP 6. +A regular expression enclosed in queries `?' addresses +the first matching line +found by searching backwards from the line before +the current line. +If necessary +the search wraps around to the end of the buffer. +If the trailing `?' would be followed by a newline, +it may be omitted. +.IP 7. +An address followed by a plus sign `+' +or a minus sign `\-' followed by a decimal number specifies that address plus +(resp. minus) the indicated number of lines. +The plus sign may be omitted. +.IP 8. +An address followed by `+' or `\-' followed by a +regular expression enclosed in slashes specifies the first +matching line following (resp. preceding) that address. +The search wraps around if necessary. +The `+' may be omitted. +Enclosing the regular expression in `?' reverses the search direction. +.IP 9. +If an address begins with `+' or `\-' +the addition or subtraction is taken with respect to the current line; +e.g. `\-5' is understood to mean `\fB.\fR\-5'. +.IP 10. +If an address ends with a `+' (or `\-') 1 is added (resp. subtracted). +As a consequence of this rule and rule 9, +the address `\-' refers to the line before the current line. +Moreover, trailing `+' and `\-' characters have cumulative effect, so `\-\-' +refers to the current line less 2. +.IP 11. +To maintain compatibility with earlier versions of the editor, +the character `^' in addresses is entirely +equivalent to `\-'. +.PP +.i0 +Commands may require zero, one, or two addresses. +Commands which require no addresses regard the presence +of an address as an error. +Commands which accept one or two addresses +assume default addresses when none is given. +If more addresses are given than the command requires, +the last one or two (depending on what is accepted) are used. +The last addressed line must not precede the second-last addressed line. +.PP +Typically, addresses are separated from each other by a comma `,'. +They may instead be separated by a semicolon `;' +in which case the current line `\fB.\fR' is set to the first address +before the second address is interpreted. +The second of two separated addresses may not be a line +earlier in the buffer than the first. +If the address on the left (right) side of a comma or semicolon +is absent, it defaults to the first (resp. last) line. +.PP +Filename operands of commands may be made up of printing characters only. +However, when the filename appears as the argument to the invocation of +\fIqed\fP, +non-printing characters may be included. +When a filename is specified for a command, +it is terminated at the first blank, tab or newline. +.PP +In the following list of +.I qed +commands, the default addresses +are shown in parentheses. +The parentheses are not part of +the address, but are used to show that the given addresses are +the default. +.TP 5 +( \fB. \fR)\|a +The append command accepts input text +and appends it after the addressed line. +`\fB.\fR' is left +on the last line input, if there +were any, otherwise at the addressed line. +Address `0' is legal for this command; text is placed +at the beginning of the buffer. +.TP 5 +b +The change buffer command sets the current buffer +to be that named. +`\fB.\fR', `$' and the remembered +.I filename +are set to those of the new buffer; +upon return to a previously used buffer, +`\fB.\fR' will be set to its value when the buffer was last used. +.TP 5 +( \fB. \fR)\|b[+\-\^\fB.\fP\^][pagesize][display character] +The browse command provides page-oriented printing. +The optional `+', `\-', or +.RB ` . ' +specifies whether the next, +previous, +or surrounding page +is to be printed; if absent, `+' is assumed. +.IB b . +also prints several carets `^^^^^' +immediately below the current line. +If a pagesize is given, it is used for the current browse +command and remembered as the default. +The pagesize is initially 22 lines. +If a display character is given, +the lines are printed in the specified format, +and the format is remembered as the default. +Initially, `p' is the default. +For +.I b+ +and +.IR b\- , +`\fB.\fP' is left at the last line displayed; +for +\fIb\fP\fB.\fP, +it is unchanged. +NOTE: The browse and change buffer commands are the same character! +The two commands can be syntactically distinguished +in all cases except for `b'; +this ambiguity may be resolved by typing the (implicit) `+' +after the `b'. +.TP 5 +( \fB. \fR, \fB. \fR)\|c +The change +command deletes the addressed lines, then accepts input +text which replaces these lines. +`\fB.\fR' is left at the last line input; if there were none, +it is left at the line preceding the deleted lines. +If an interrupt signal (usually ASCII DEL) is received during a +change command, the old lines are not deleted. +.TP 5 +( \fB. \fR, \fB. \fR)\|d +The delete command deletes the addressed lines from the buffer. +The line after the deleted section becomes the current line; +if the deleted lines were originally at the end, +the new last line becomes the current line. +The character after the `d' can only be one of +a blank, newline, tab, or display character. +Line 0 is a valid address for deletion; +deleting line 0 has no affect on any lines in the buffer. +.TP 5 +e filename +The edit +command causes the entire contents of the current buffer to be deleted, +and then the named file to be read in. +`\fB.\fR' is set to the last line of the buffer. +The number of characters read is typed +if +.I qed +is in +.I verbose +mode. +The \fIfilename\fP is remembered for possible use as a default file name +in a subsequent +\fIf\fP, \fIr\fR, \fIw\fR, or \fIW\fR command. +.TP 5 +E filename +The +.I E +command is like +.IR e , +except that +.I qed +does not check to see +if the buffer has been modified +since the last +.I w +command. +.TP 5 +f filename +The filename command prints information about the current buffer, +in the format used by the \fIn\fR command. +If \fIfilename\fP is given, +the currently remembered file name is changed to \fIfilename\fP. +If +.I qed +is not in verbose mode, +the information is only printed if the +.I filename +is not specified. +If it is not desired to set the +.I filename, +the character immediately after the f must be a newline. +Otherwise, the first token +(which may be the null string) +on the line, after a mandatory non-empty sequence of blanks and tabs, +is taken to be the +.I filename. +These rules apply to all +.I filename\c +-using commands, +.I e, +.I f, +.I r, +.I R, +.I S, +.I w +and +.I W, +although some regard specification of an explicitly null \fIfilename\fP as an +error. +.TP 5 +( 1 , $ )\|g/regular expression/command list +In the global +command, the first step is to mark every line in the range which matches +the regular expression. +Then for every such line, the +command list is executed with `\fB.\fR' initially set to that line. +Any embedded newlines in the command list +must be escaped with a backslash. +The +\fIa\fP, +\fIi\fP, +and +.I c +commands and associated input are permitted; +the `\fB.\fR' terminating input mode may be omitted if it would be on the +last line of the command list. +The commands +.I g +and +.I v +are not permitted in the command list. +If the command list is empty, `\fB.\fPp' is assumed. +The regular expression may be delimited by any character other than newline. +.TP 5 +G/regular expression/command list +In the globuf +command, the first step is to mark every active buffer +whose output from an +.I f +command +(with the +.I filename +printed literally) +would match the regular expression. +(An active buffer is one which has either some text or +a remembered file name.)\ +Then for every such buffer, the +command list is executed with the current buffer set to that buffer. +In other respects it is like the global command, +except that only the commands +.I G +and +.I V +are not permitted in the command list. +If the command list is empty, `f' is assumed. +.TP 5 +h